Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Les extensions ajoutent des fonctionnalités à Azure DevOps par le biais de contributions et de types de contribution déclarés dans le manifeste d’extension. Un type de contribution définit un contrat : les propriétés et le comportement que les contributions de ce type doivent implémenter. Une contribution est une instance concrète d’un type de contribution (par exemple, un hub ou une tâche de génération).
Conseil / Astuce
Si vous démarrez une nouvelle extension Azure DevOps, essayez d'abord ces collections d'exemples maintenues : elles fonctionnent avec les builds de produit actuels et couvrent les scénarios modernes (par exemple, en ajoutant des onglets sur les pages de requête de tirage).
- Exemple d’extension Azure DevOps (GitHub) : exemple de démarrage compact qui illustre les modèles d’extension courants : https://github.com/microsoft/azure-devops-extension-sample
- Exemples d’extensions Azure DevOps (collection héritée et guide des contributions) : installez pour examiner les cibles de l'interface utilisateur, ou consultez la source : https://marketplace.visualstudio.com/items/ms-samples.samples-contributions-guidehttps://github.com/Microsoft/vso-extension-samples/tree/master/contributions-guide
- Exemples Microsoft Learn (parcourir des exemples Azure DevOps) : organisés, des exemples à jour dans les documents Microsoft : /samples/browse/?terms=azure%20devops%20extension
Si un exemple ne fonctionne pas dans votre organisation, installez-le dans une organisation personnelle ou de test et comparez les ID cibles et les versions d’API du manifeste d’extension avec les documents actuels. Pour obtenir des informations de référence et des API, consultez :
Pour plus d’informations, consultez :
Types de contributions
Un type de contribution définit les propriétés et les règles que les contributions de ce type doivent suivre. Les types de contributions peuvent étendre d’autres types de contributions en héritant de leurs propriétés.
Les types de contribution intégrés courants sont les suivants :
-
ms.vss-web.hub— une page dans l’interface utilisateur web -
ms.vss-web.action— action de menu -
ms.vss-distributed-task.task— une tâche de génération/mise en production
Chaque définition de propriété dans un type de contribution spécifie :
-
type : le type de données (par exemple,
string,boolean,integer) - obligatoire : indique si la propriété doit être fournie
- par défaut : valeur par défaut facultative
Exemple de type de contribution
Une déclaration de type de contribution dans un manifeste ressemble à ceci :
{
"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"
}
}
}
]
}
Contributions
Une contribution est une instance d’un type de contribution. Par exemple, le hub sous le Queries groupe de hubs de travail est une contribution de type ms.vss-web.hub, et la Publish Test Results tâche de construction est une contribution de type ms.vss-distributed-task.task.
Chaque contribution doit spécifier un type et fournir des valeurs pour toutes les propriétés requises par ce type.
Exemple de contribution
La déclaration de contribution hub suivante dans un manifeste d’extension ajoute un hub nommé « Explorateur » à un groupe de hubs de build :
{
"contributions": [
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
],
"properties": {
"name": "Explorer",
"uri": "/_build",
"order": 22
}
}
]
}
Contributions cibles
Une contribution peut cibler une ou plusieurs autres contributions, en créant une relation parent-enfant. Le système découvre ces relations au moment de l’exécution pour déterminer ce qu’il faut afficher. Par exemple, une hub contribution cible une hub-group contribution afin que le système sache quels hubs appartiennent à quel groupe.
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
Lorsque le groupe hub s’affiche, le système interroge toutes les contributions hub qui le ciblent pour déterminer les hubs à afficher.
Identificateurs de contribution
Chaque contribution et chaque type de contribution doit avoir un identifiant unique dans son extension.
Un identificateur qualifié complet comporte trois parties séparées par des points (.) :
| Élément | Example |
|---|---|
| ID du serveur de publication | ms |
| ID d’extension | vss-web |
| Type d'identifiant de contribution | hub |
Identificateur complet : ms.vss-web.hub
Dans le même manifeste d’extension, vous pouvez utiliser des références relatives , un point suivi de l’ID de contribution. Par exemple, .hub est un raccourci pour ms.vss-web.hub lorsqu'il est utilisé à l'intérieur de l'extension vss-web.