Modello di contributo
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Le estensioni aggiungono nuove funzionalità al sistema fornendo contributi e definendo modi per collegarsi ad altre estensioni. Un tipo di contributo definisce un elemento che può essere aggiunto al sistema. Un contributo è un'istanza specifica di un tipo di contributo. Ad esempio, hub
è un tipo di contributo definito da un'estensione fornita da Microsoft di base. L'hub Explorer
nel gruppo hub di compilazione è un contributo specifico di tipo hub
.
Per altre informazioni, consultare i riferimenti seguenti:
- Punti di Estensibilità
- azure-devops-extension-api
- azure-devops-extension-sdk
Tipi di contributo
Un tipo di contributo definisce un contratto a cui devono essere conformi tutti i contributi al sistema di tale tipo. Un tipo di contributo può anche estendersi da un altro tipo di contributo. Gli esempi seguenti di tipi di contributo definiscono le proprietà impostate dalle istanze di quel tipo:
hub
action
build-task
Ogni definizione di proprietà specifica gli aspetti seguenti:
- Tipo di proprietà, ad esempio stringa, booleano e così via.
- Indica se la proprietà è obbligatoria
- Valore predefinito, se non specificato da un contributo (facoltativo).
Esempio
Ecco un esempio di dichiarazione di tipo di contributo in un manifesto dell'estensione:
{
...
"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": "An optional ordering value which can indicate in which position to place the hub 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 hub
e l'attività di compilazione Publish Test Results
è un contributo di tipo build-task
.
Tutti i contributi devono specificare un tipo e specificare i valori per tutte le proprietà richieste da tale tipo di contributo.
Esempio
Ecco un esempio di dichiarazione di contributo dell'hub in un manifesto dell'estensione:
{
"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ò target uno o più contributi, che crea una relazione tra il contributo e ognuno dei relativi obiettivi. Il sistema può individuare i contributi per la destinazione in fase di esecuzione. Ad esempio, un contributo hub
(Explorer
) potrebbe essere destinato a un contributo hub-group
specifico (Build
).
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
Quando viene eseguito il rendering del gruppo hub, il sistema può interrogare tutti i contributi al gruppo hub per sapere quali hub devono essere renderizzati.
Identificare contributi e tipi
Ogni contributo e tipo di contributo deve avere un ID univoco all'interno dell'estensione in cui è dichiarato.
Un identificatore completo del contributo include i seguenti elementi, separati da un punto .
.
- ID editore
- ID estensione
- Codice contributo e tipo
Ad esempio: ms.vss-web.hub
è l'identificatore completo per il contributo seguente:
- ID editore:
ms
- ID estensione:
vss-web
- ID contributo o tipo:
hub
È possibile utilizzare riferimenti relativi al contributo all'interno di un manifesto dell'estensione per fare riferimento da un contributo a un altro contributo o tipo di contributo all'interno della stessa estensione. In questo caso, gli ID editore e di estensione non sono inclusi e l'ID è un punto .
seguito dall'ID contributo. Ad esempio, .hub
può essere usato all'interno dell'estensione vss-web
menzionata in precedenza come collegamento per ms.vss-web.hub
.