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 por meio de contribuições e tipos de contribuiçãodeclarados no manifesto da extensã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 build).
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. Os tipos de contribuição podem estender outros tipos de contribuição, herdando suas propriedades.
Os tipos comuns de contribuição interna incluem:
-
ms.vss-web.hub— uma página na interface do usuário da Web -
ms.vss-web.action— uma ação de menu -
ms.vss-distributed-task.task— uma tarefa de build/versão
Cada definição de propriedade em um tipo de contribuição especifica:
-
type — o tipo de dados (por exemplo,
string, ,boolean,integer) - obrigatório – se a propriedade deve ser fornecida
- padrão – um valor padrão opcional
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 no grupo do Hub de Trabalho é uma contribuição do tipo ms.vss-web.hub, e a Publish Test Results tarefa de compilação é uma contribuição do tipo ms.vss-distributed-task.task.
Cada contribuição deve especificar um tipo e fornecer valores para todas as propriedades exigidas por esse tipo.
Exemplo de contribuição
A seguinte declaração de contribuição do hub em um manifesto de extensão adiciona um hub chamado "Explorer" a um grupo de hubs de build:
{
"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 pai-filho. O sistema descobre essas relações em runtime para determinar o que renderizar. Por exemplo, uma hub contribuição destina-se a uma hub-group contribuição para que o sistema saiba quais hubs pertencem a qual grupo.
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
Quando o grupo de hubs é renderizado, o sistema consulta todas as contribuições de hub direcionadas a ele para determinar quais hubs serão exibidos.
Identificadores de contribuição
Cada tipo de contribuição e cada contribuição individual deve ter um ID exclusivo dentro de seu contexto.
Um identificador totalmente qualificado tem três partes separadas por pontos (.):
| Parte | Example |
|---|---|
| ID do Publicador | ms |
| ID da extensão | vss-web |
| ID de contribuição/tipo | hub |
Identificador completo: ms.vss-web.hub
No mesmo manifesto de extensão, você pode usar referências relativas — um ponto seguido pela ID de contribuição. Por exemplo, .hub é um atalho para ms.vss-web.hub quando usado dentro da vss-web extensão.