Beitragsmodell

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Erweiterungen fügen dem System neue Funktionen hinzu, indem sie Beiträge bereitstellen und Möglichkeiten für andere Erweiterungen definieren, die sie anschließen können. Ein Beitragstyp definiert etwas, das dem System hinzugefügt werden kann. Ein Beitrag ist eine bestimmte Instanz eines Beitragstyps. Beispielsweise handelt es sich um einen Beitragstyp, hub der durch eine von Microsoft bereitgestellte Kernerweiterung definiert ist. Der Explorer Hub unter der Gruppe "Hub erstellen" ist ein bestimmter Beitrag vom Typ hub.

Weitere Informationen finden Sie in den folgenden Referenzen:

Beitragstypen

Ein Beitragstyp definiert einen Vertrag, den alle Beiträge für das System dieses Typs einhalten müssen. Ein Beitragstyp kann sich auch von einem anderen Beitragstyp erstrecken. Die folgenden Beispiele für Beitragstypen definieren die von Instanzen dieses Typs festgelegten Eigenschaften:

  • hub
  • action
  • build-task

Jede Eigenschaftsdefinition gibt die folgenden Aspekte an:

  • Eigenschaftstyp, z. B. Zeichenfolge, boolescher Wert usw.
  • Gibt an, ob die Eigenschaft erforderlich ist.
  • Standardwert, wenn nicht durch einen Beitrag angegeben (optional).

Beispiel

Hier ist ein Beispiel für eine Beitragstypdeklaration in einem Erweiterungsmanifest:

{
    ...
    "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"
                }
				...
            }
        }
    ]
}

Beiträge

Ein Beitrag ist eine Instanz eines Beitragstyps. Beispielsweise ist der Queries Hub unter der Arbeitshubgruppe ein Beitrag vom Typ hub und die Publish Test Results Buildaufgabe ist ein Beitrag vom Typ build-task.

Alle Beiträge müssen einen Typ angeben und Werte für alle Eigenschaften angeben, die für diesen Beitragstyp erforderlich sind.

Beispiel

Hier ist ein Beispiel für eine Hub-Beitragsdeklaration in einem Erweiterungsmanifest:

{
    "contributions": [
        {
            "id": "build-explorer-hub",
            "type": "ms.vss-web.hub",
            "targets": [
                ".build-hub-group"
            ],
            "properties": {
                "name": "Explorer",
                "uri": "/_build",
                "order": 22
            }
        }
    ]
}

Ziel-Beiträge

Ein Beitrag kann auf einen oder mehrere andere Beiträge abzielen, wodurch eine Beziehung zwischen dem Beitrag und jedem seiner Ziele entsteht. Das System kann Beiträge für das Ziel zur Laufzeit ermitteln. Beispielsweise kann ein hub Beitrag (Explorer) auf einen bestimmten hub-group Beitrag (Build) abzielen.

{
    "id": "build-explorer-hub",
    "type": "ms.vss-web.hub",
    "targets": [
        ".build-hub-group"
    ]
}

Wenn die Hubgruppe gerendert wird, kann das System alle Hub-Beiträge abfragen, die für die Hubgruppe bestimmt sind, um zu wissen, welche Hubs gerendert werden sollen.

Identifizieren von Beiträge und Typen

Jeder Beitrags- und Beitragstyp muss eine eindeutige ID innerhalb der Erweiterung aufweisen, in der er deklariert ist.

Ein vollständiger Beitragsbezeichner enthält die folgenden Elemente, die Sie durch einen Punkt . trennen:

  • Herausgeber-ID
  • Erweiterungs-ID
  • Beitrags-/Typ-ID

Beispiel: ms.vss-web.hub ist der vollständige Bezeichner für den folgenden Beitrag:

  • Herausgeber-ID: ms
  • Erweiterungs-ID: vss-web
  • Beitrags-/Typ-ID: hub

Sie können relative Beitragsverweise innerhalb eines Erweiterungsmanifests für einen Beitragsverweis auf einen anderen Beitrags- oder Beitragstyp innerhalb derselben Erweiterung verwenden. In diesem Fall sind die Herausgeber- und Erweiterungs-IDs nicht enthalten, und die ID ist ein Punkt . , gefolgt von der Beitrags-ID. Kann z. B. innerhalb der vss-web Erweiterung verwendet werden, .hub Erwähnung zuvor als Verknüpfung für ms.vss-web.hub.