Condividi tramite


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 del tipo è 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à di compilazione Publish Test Results è 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 mirati

Un contributo può target 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 contributo hub (Explorer) potrebbe essere destinato a un contributo hub-group specifico (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ò interrogare tutti i contributi al gruppo hub per sapere quali hub devono essere renderizzati.

Identificare contributi e tipi

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

Un identificatore completo del contributo include i seguenti elementi, separati da un punto ..

  • ID editore
  • ID estensione
  • Codice contributo e tipo

Ad esempio: ms.vss-web.hub è l'identificatore completo per il contributo seguente:

  • ID editore: ms
  • ID estensione: vss-web
  • ID contributo o tipo: hub

È possibile utilizzare riferimenti relativi al contributo all'interno di un manifesto dell'estensione per fare riferimento da un contributo a un altro contributo o tipo di contributo all'interno della stessa estensione. In questo caso, gli ID editore e di 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.