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 en déclarant des types de contributions et des instances de contribution. 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. Un type de contribution peut étendre un autre type de contribution, hériter de ses propriétés.
Les types de contributions courants sont les suivants :
hubactionbuild-task
Chaque définition de propriété inclut :
- type de propriété (par exemple, chaîne ou booléen)
- si la propriété est requise
- valeur par défaut facultative
Example
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 Queries hub sous le groupe de hubs de travail est une contribution de type hub et la Publish Test Results tâche de génération est une contribution de type build-task.
Toutes les contributions doivent spécifier un type et spécifier des valeurs pour toutes les propriétés requises par ce type de contribution.
Example
Voici un exemple de déclaration de contribution hub dans un manifeste d’extension :
{
"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, ce qui crée une relation entre la contribution et chacune de ses cibles. Le système peut découvrir des contributions pour la cible au moment de l’exécution. Par exemple, une hub contribution (Explorer) peut cibler une contribution spécifique hub-group (Build).
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
Lorsque le groupe hub s’affiche, le système peut interroger toutes les contributions hub qui ciblent le groupe hub pour savoir quels hubs effectuer le rendu.
Identifier les contributions et les types
Chaque type de contribution et de contribution doit avoir un ID unique dans l’extension dans laquelle il est déclaré.
Un identificateur de contribution complet inclut les éléments suivants, que vous séparez par un point . :
- ID du serveur de publication
- ID d’extension
- Type d'identifiant de contribution
Par exemple : ms.vss-web.hub est l’identificateur complet de la contribution suivante :
- ID de l’éditeur :
ms - ID d’extension :
vss-web - ID de contribution/type :
hub
Vous pouvez utiliser des références relatives de contribution au sein d’un manifeste d’extension pour la référence d’une contribution à un autre type de contribution ou de contribution dans cette même extension. Dans ce cas, les ID d’éditeur et d’extension ne sont pas inclus, et l’ID est un point . suivi de l’ID de contribution. Par exemple, .hub peut être utilisé dans l’extension vss-web mentionnée précédemment comme raccourci pour ms.vss-web.hub.