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:
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 è 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à Publish Test Results
di compilazione è 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 di destinazione
Un contributo può essere destinato a 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 hub
contributo (Explorer
) potrebbe essere destinato a un contributo specifico hub-group
(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ò eseguire una query per tutti i contributi dell'hub destinati al gruppo hub per sapere quali hub eseguire il rendering.
Identificare contributi e tipi
Ogni tipo di contributo e contributo deve avere un ID univoco all'interno dell'estensione in cui è dichiarato.
Un identificatore completo del contributo include gli elementi seguenti, separati da un punto .
:
- Publisher ID (ID editore)
- ID estensione
- ID contributo/tipo
Ad esempio: ms.vss-web.hub
è l'identificatore completo per il contributo seguente:
- ID editore:
ms
- ID estensione:
vss-web
- ID contributo/tipo:
hub
È possibile usare riferimenti relativi ai contributi all'interno di un manifesto dell'estensione per il riferimento di un contributo a un altro tipo di contributo o di contributo all'interno della stessa estensione. In questo caso, gli ID di pubblicazione e 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
.