Bidragsmodell
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Tillägg lägger till nya funktioner i systemet genom att ge bidrag och genom att definiera sätt för andra tillägg att ansluta till dem. En bidragstyp definierar något som kan läggas till i systemet. Ett bidrag är en specifik instans av en bidragstyp. Är till exempel hub
en bidragstyp som definieras av ett grundläggande Microsoft-tillägg. Hubben Explorer
under gruppen Skapa hubb är ett specifikt bidrag av typen hub
.
Mer information finns i följande resurser:
Bidragstyper
En bidragstyp definierar ett kontrakt som alla bidrag till systemet av den typen måste följa. En bidragstyp kan också utökas från en annan bidragstyp. Följande exempel på bidragstyper definierar de egenskaper som anges av instanser av den typen:
hub
action
build-task
Varje egenskapsdefinition anger följande aspekter:
- Egenskapstyp, till exempel sträng, boolesk och så vidare.
- Om egenskapen krävs
- Standardvärde, om det inte anges av ett bidrag (valfritt).
Exempel
Här är ett exempel på en deklaration av bidragstyp i ett tilläggsmanifest:
{
...
"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"
}
...
}
}
]
}
Bidrag
Ett bidrag är en instans av en bidragstyp. Hubben under gruppen Arbetshubb är till exempel Queries
ett bidrag av typen hub
och byggaktiviteten Publish Test Results
är ett bidrag av typen build-task
.
Alla bidrag måste ange en typ och ange värden för alla egenskaper som krävs av den bidragstypen.
Exempel
Här är ett exempel på en hubbbidragsdeklaration i ett tilläggsmanifest:
{
"contributions": [
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
],
"properties": {
"name": "Explorer",
"uri": "/_build",
"order": 22
}
}
]
}
Målbidrag
Ett bidrag kan rikta in sig på ett eller flera andra bidrag, vilket skapar en relation mellan bidraget och vart och ett av dess mål. Systemet kan identifiera bidrag för målet vid körning. Till exempel kan ett hub
bidrag (Explorer
) rikta in sig på ett specifikt hub-group
bidrag (Build
).
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
När hubbgruppen renderas kan systemet fråga efter alla hubbbidrag som riktar sig till hubbgruppen för att veta vilka hubbar som ska återges.
Identifiera bidrag och typer
Varje bidrags- och bidragstyp måste ha ett unikt ID i tillägget som det deklareras i.
En fullständig bidragsidentifierare innehåller följande objekt som du separerar med en punkt .
:
- Utgivar-ID
- Tilläggs-ID
- Bidrag/typ-ID
Till exempel: ms.vss-web.hub
är den fullständiga identifieraren för följande bidrag:
- Utgivar-ID:
ms
- Tilläggs-ID:
vss-web
- Bidrag/typ-ID:
hub
Du kan använda relativa bidragsreferenser i ett tilläggsmanifest för ett bidrags referens till en annan bidrags- eller bidragstyp inom samma tillägg. I det här fallet ingår inte utgivar- och tilläggs-ID:t och ID:t är en punkt .
följt av bidrags-ID:t. Kan till exempel .hub
användas i tillägget vss-web
som nämndes tidigare som en genväg för ms.vss-web.hub
.