Dela via


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.