Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
As extensões adicionam recursos ao Azure DevOps declarando tipos de contribuição e instâncias de contribuição. Um tipo de contribuição define um contrato (as propriedades e o comportamento) que as contribuições desse tipo devem implementar. Uma contribuição é uma instância concreta de um tipo de contribuição (por exemplo, um hub ou uma tarefa de compilação).
Dica
Se você estiver iniciando uma nova extensão do Azure DevOps, experimente essas coleções de exemplo mantidas primeiro— elas funcionam com builds de produtos atuais e abrangem cenários modernos (por exemplo, adicionando guias em páginas de solicitação pull).
- Exemplo de extensão do Azure DevOps (GitHub)— um exemplo de inicialização compacta que demonstra padrões de extensão comuns: https://github.com/microsoft/azure-devops-extension-sample
- Exemplos de extensão do Azure DevOps (coleção legada e guia de contribuições) – instale para inspecionar os alvos da UI ou exiba a origem: https://marketplace.visualstudio.com/items/ms-samples.samples-contributions-guide e https://github.com/Microsoft/vso-extension-samples/tree/master/contributions-guide
- Exemplos do Microsoft Learn (navegar por amostras do Azure DevOps) — amostras atualizadas e selecionadas em documentos da Microsoft: /samples/browse/?terms=azure%20devops%20extension
Se um exemplo não funcionar em sua organização, instale-o em uma organização pessoal ou de teste e compare as IDs de destino do manifesto de extensão e as versões da API com as documentações atuais. Para referência e APIs, consulte:
Para obter mais informações, consulte:
Tipos de contribuição
Um tipo de contribuição define as propriedades e as regras que as contribuições desse tipo devem seguir. Um tipo de contribuição pode estender outro tipo de contribuição, herdando suas propriedades.
Os tipos de contribuição comuns incluem:
hubactionbuild-task
Cada definição de propriedade inclui:
- tipo de propriedade (por exemplo, cadeia de caracteres ou booliano)
- se a propriedade é necessária
- um valor padrão opcional
Example
Uma declaração de tipo de contribuição em um manifesto tem esta aparência:
{
"contributionTypes": [
{
"id": "hub",
"name": "Web Access Hub",
"description": "A hub that appears in the hubs menu at the top of web pages.",
"properties": {
"name": {
"description": "The text to display for the hub",
"type": "string",
"required": true
},
"uri": {
"description": "URI of the contents of the hub page",
"type": "string",
"required": true
},
"order": {
"description": "Optional ordering value indicating the hub's position within the hub group",
"type": "integer"
}
}
}
]
}
Contribuições
Uma contribuição é uma instância de um tipo de contribuição. Por exemplo, o Queries hub no grupo do Hub de Trabalho é uma contribuição do tipo hub e a Publish Test Results tarefa de build é uma contribuição do tipo build-task.
Todas as contribuições devem especificar um tipo e especificar valores para todas as propriedades exigidas por esse tipo de contribuição.
Example
Aqui está um exemplo de uma declaração de contribuição de hub em um manifesto de extensão:
{
"contributions": [
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
],
"properties": {
"name": "Explorer",
"uri": "/_build",
"order": 22
}
}
]
}
Contribuições de destino
Uma contribuição pode ser direcionada a uma ou mais outras contribuições, o que cria uma relação entre a contribuição e cada uma de suas metas. O sistema pode descobrir contribuições para o destino em runtime. Por exemplo, uma hub contribuição (Explorer) pode ser direcionada a uma contribuição específica hub-group (Build).
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
Quando o grupo de hubs é renderizado, o sistema pode consultar todas as contribuições de hub direcionadas ao grupo de hubs para saber quais hubs renderizar.
Identificar contribuições e tipos
Cada tipo de contribuição e contribuição deve ter uma ID exclusiva dentro da extensão em que está declarada.
Um identificador de contribuição completo inclui os seguintes itens, que você separa com um ponto . :
- ID do Publicador
- ID da extensão
- ID de contribuição/tipo
Por exemplo: ms.vss-web.hub é o identificador completo para a seguinte contribuição:
- ID do publicador:
ms - ID da extensão:
vss-web - ID de contribuição/tipo:
hub
Você pode usar referências relativas de contribuição em um manifesto de extensão para uma referência de contribuição a outro tipo de contribuição ou contribuição dentro dessa mesma extensão. Nesse caso, as IDs do publicador e da extensão não são incluídas e a ID é um ponto . seguido pela ID de contribuição. Por exemplo, .hub pode ser usado dentro da vss-web extensão mencionada anteriormente como um atalho para ms.vss-web.hub.