Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Serviços de DevOps do Azure | Azure DevOps Server | Azure DevOps Server 2022
As extensões adicionam capacidades ao Azure DevOps através de contribuições e tipos de contribuição declarados no manifesto de extensões. Um tipo de contribuição define um contrato — as propriedades e comportamentos 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 construção).
Sugestão
Se você estiver iniciando uma nova extensão do Azure DevOps, experimente essas coleções de exemplo mantidas primeiro — elas funcionam com compilações 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 inicial compacto que demonstra padrões de extensão comuns: https://github.com/microsoft/azure-devops-extension-sample
- Exemplos de extensão do Azure DevOps (coleções herdadas e guia de contribuições) — instale para inspecionar alvos da interface do utilizador 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 (procure exemplos de DevOps do Azure) — exemplos selecionados e atualizados na documentação 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 e as versões de API do manifesto de extensão com os documentos 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. Os tipos de contribuição podem estender outros tipos de contribuição, herdando as suas propriedades.
Tipos comuns de contribuição incorporada incluem:
-
ms.vss-web.hub— uma página na interface web -
ms.vss-web.action— uma ação de menu -
ms.vss-distributed-task.task— uma tarefa de compilação/lançamento
Cada definição de propriedade num tipo de contribuição especifica:
-
Tipo — o tipo de dados (por exemplo,
string,boolean,integer) - obrigatório — se a propriedade deve ser fornecida
- Padrão — um valor opcional por padrão
Exemplo de tipo de contribuição
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 sob o grupo Work hub é uma contribuição do tipo ms.vss-web.hub, e a tarefa Publish Test Results de build é uma contribuição do tipo ms.vss-distributed-task.task.
Cada contribuição deve especificar um tipo e fornecer valores para quaisquer propriedades exigidas por esse tipo.
Exemplo de contribuição
A seguinte declaração de contribuição do hub num manifesto de extensão adiciona um hub chamado "Explorer" a um grupo de build hub:
{
"contributions": [
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
],
"properties": {
"name": "Explorer",
"uri": "/_build",
"order": 22
}
}
]
}
Contribuições-alvo
Uma contribuição pode direcionar uma ou mais outras contribuições, criando uma relação entre pais e filhos. O sistema descobre estas relações em tempo de execução para determinar o que renderizar. Por exemplo, uma hub contribuição visa uma hub-group contribuição para que o sistema saiba a que hubs pertencem a que grupo.
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
Quando o grupo de hub é renderizado, o sistema consulta todas as contribuições de hub que o direcionam para determinar quais os hubs a exibir.
Identificadores de contribuição
Cada contribuição e tipo de contribuição deve ter um ID único dentro da sua extensão.
Um identificador totalmente qualificado tem três partes separadas por pontos (.):
| Parte | Example |
|---|---|
| ID do publicador | ms |
| ID da extensão | vss-web |
| ID da contribuição/tipo | hub |
Identificador completo: ms.vss-web.hub
Dentro do mesmo manifesto de extensão, pode usar referências relativas — um ponto seguido do ID da contribuição. Por exemplo, .hub é um atalho para ms.vss-web.hub quando usado dentro da vss-web extensão.