Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Le estensioni aggiungono funzionalità ad Azure DevOps tramite contributi e tipi di contributo dichiarati nel manifesto dell'estensione. Un tipo di contributo definisce un contratto, ovvero le proprietà e il comportamento che i contributi di tale tipo devono implementare. Un contributo è un'istanza concreta di un tipo di contributo (ad esempio, un hub o un'attività di compilazione).
Suggerimento
Se si avvia una nuova estensione Di Azure DevOps, provare prima queste raccolte di esempi mantenute, che funzionano con le build di prodotto correnti e coprono scenari moderni, ad esempio aggiungendo schede nelle pagine delle richieste pull.
- Esempio di estensione Azure DevOps (GitHub): esempio di avvio compatto che illustra i modelli di estensione comuni: https://github.com/microsoft/azure-devops-extension-sample
- Esempi di estensione Azure DevOps (raccolta legacy e guida ai contributi): installare per esaminare gli obiettivi dell'interfaccia utente o visualizzare l'origine: https://marketplace.visualstudio.com/items/ms-samples.samples-contributions-guide e https://github.com/Microsoft/vso-extension-samples/tree/master/contributions-guide
- Esempi di Microsoft Learn (esplora gli esempi di Azure DevOps)—campioni curati e aggiornati nei documenti di Microsoft: /samples/browse/?terms=azure%20devops%20extension
Se un campione non funziona nella tua organizzazione, installalo in un'organizzazione personale o di test e confronta gli ID di destinazione e le versioni API del manifesto dell'estensione con la documentazione corrente. Per riferimento e API, vedi:
- azure-devops-extension-api
- azure-devops-extension-sdk
- API di estensione installata
Per altre informazioni, vedere:
- Punti di Estensibilità
- azure-devops-extension-api
- azure-devops-extension-sdk
Tipi di contributo
Un tipo di contributo definisce le proprietà e le regole che devono essere seguite dai contributi di tale tipo. I tipi di contributo possono estendere altri tipi di contributo, ereditando le relative proprietà.
I tipi comuni di contributi predefiniti includono:
-
ms.vss-web.hub— una pagina nell'interfaccia utente Web -
ms.vss-web.action— un'azione di menu -
ms.vss-distributed-task.task— un'attività di compilazione e distribuzione
Ogni definizione di proprietà in un tipo di contributo specifica:
-
type — tipo di dati (ad esempio,
string,boolean,integer) - obbligatorio : indica se la proprietà deve essere fornita
- default : valore predefinito facoltativo
Esempio di tipo di contributo
Una dichiarazione di tipo di contributo in un manifesto è simile alla seguente:
{
"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"
}
}
}
]
}
Contributi
Un contributo del tipo è un'istanza di un tipo di contributo. Ad esempio, l'hub Queries nel gruppo Hub di lavoro è un contributo di tipo ms.vss-web.hube l'attività Publish Test Results di compilazione è un contributo di tipo ms.vss-distributed-task.task.
Ogni contributo deve specificare un tipo e fornire valori per le proprietà richieste da tale tipo.
Esempio di contributo
La dichiarazione di contributo dell'hub seguente in un manifesto dell'estensione aggiunge un hub denominato "Explorer" a un gruppo di hub di compilazione:
{
"contributions": [
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
],
"properties": {
"name": "Explorer",
"uri": "/_build",
"order": 22
}
}
]
}
Contributi mirati
Un contributo può avere come destinazione uno o più contributi, creando una relazione padre-figlio. Il sistema individua queste relazioni in fase di esecuzione per determinare cosa renderizzare. Ad esempio, un hub contributo è destinato a un hub-group contributo in modo che il sistema sappia quali hub appartengono a quale gruppo.
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
Quando il gruppo di hub viene renderizzato, il sistema esegue una query per tutti i contributi dell'hub destinati ad esso per determinare quali hub visualizzare.
Identificatori di contributo
Ogni contributo e tipo di contributo deve avere un ID univoco all'interno dell'estensione.
Un identificatore completo ha tre parti separate da punti (.):
| Parte | Esempio |
|---|---|
| ID editore | ms |
| ID estensione | vss-web |
| Codice contributo e tipo | hub |
Identificatore completo: ms.vss-web.hub
All'interno dello stesso manifesto di estensione è possibile usare riferimenti relativi , ovvero un punto seguito dall'ID contributo. Ad esempio, .hub è un collegamento per ms.vss-web.hub quando viene usato all'interno dell'estensione vss-web .