Condividi tramite


Modello di contributo

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

Le estensioni aggiungono funzionalità ad Azure DevOps tramite contributi e tipi di contributo dichiarati nel manifesto dell'estensione. Un tipo di contributo definisce un contratto, ovvero le proprietà e il comportamento che i contributi di tale tipo devono implementare. Un contributo è un'istanza concreta di un tipo di contributo (ad esempio, un hub o un'attività di compilazione).

Suggerimento

Se si avvia una nuova estensione Di Azure DevOps, provare prima queste raccolte di esempi mantenute, che funzionano con le build di prodotto correnti e coprono scenari moderni, ad esempio aggiungendo schede nelle pagine delle richieste pull.

Se un campione non funziona nella tua organizzazione, installalo in un'organizzazione personale o di test e confronta gli ID di destinazione e le versioni API del manifesto dell'estensione con la documentazione corrente. Per riferimento e API, vedi:

Per altre informazioni, vedere:

Tipi di contributo

Un tipo di contributo definisce le proprietà e le regole che devono essere seguite dai contributi di tale tipo. I tipi di contributo possono estendere altri tipi di contributo, ereditando le relative proprietà.

I tipi comuni di contributi predefiniti includono:

  • ms.vss-web.hub — una pagina nell'interfaccia utente Web
  • ms.vss-web.action — un'azione di menu
  • ms.vss-distributed-task.task — un'attività di compilazione e distribuzione

Ogni definizione di proprietà in un tipo di contributo specifica:

  • type — tipo di dati (ad esempio, string, boolean, integer)
  • obbligatorio : indica se la proprietà deve essere fornita
  • default : valore predefinito facoltativo

Esempio di tipo di contributo

Una dichiarazione di tipo di contributo in un manifesto è simile alla seguente:

{
  "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": "Optional ordering value indicating the hub's position 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 ms.vss-web.hube l'attività Publish Test Results di compilazione è un contributo di tipo ms.vss-distributed-task.task.

Ogni contributo deve specificare un tipo e fornire valori per le proprietà richieste da tale tipo.

Esempio di contributo

La dichiarazione di contributo dell'hub seguente in un manifesto dell'estensione aggiunge un hub denominato "Explorer" a un gruppo di hub di compilazione:

{
    "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ò avere come destinazione uno o più contributi, creando una relazione padre-figlio. Il sistema individua queste relazioni in fase di esecuzione per determinare cosa renderizzare. Ad esempio, un hub contributo è destinato a un hub-group contributo in modo che il sistema sappia quali hub appartengono a quale gruppo.

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

Quando il gruppo di hub viene renderizzato, il sistema esegue una query per tutti i contributi dell'hub destinati ad esso per determinare quali hub visualizzare.

Identificatori di contributo

Ogni contributo e tipo di contributo deve avere un ID univoco all'interno dell'estensione.

Un identificatore completo ha tre parti separate da punti (.):

Parte Esempio
ID editore ms
ID estensione vss-web
Codice contributo e tipo hub

Identificatore completo: ms.vss-web.hub

All'interno dello stesso manifesto di estensione è possibile usare riferimenti relativi , ovvero un punto seguito dall'ID contributo. Ad esempio, .hub è un collegamento per ms.vss-web.hub quando viene usato all'interno dell'estensione vss-web .