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
Conseil / Astuce
Pour obtenir les dernières instructions de développement d’extension, notamment les thèmes et la migration à partir de VSS. Sdk, consultez le portail du kit de développement logiciel (SDK) d’extension Azure DevOps.
Dans cet article, vous allez créer un hub qui s’affiche dans Azure Boards après les hubs Sprints et Requêtes .
Prerequisites
- Node.js
- Outil d’empaquetage d’extension : Exécuter
npm install -g tfx-cli
Créer la structure d’extension
Créez un répertoire pour votre extension et initialisez-le :
mkdir my-hub-extension cd my-hub-extension npm init -y npm install azure-devops-extension-sdk --saveVotre répertoire doit ressembler à ceci :
|--- my-hub-extension |--- node_modules |--- azure-devops-extension-sdk |--- images |--- icon.png |--- hello-world.html |--- package.json |--- vss-extension.json
Créer la page hub
Créez hello-world.html à la racine de votre répertoire d’extension. Cette page charge le Kit de développement logiciel (SDK), l’initialise et affiche le nom de l’utilisateur actuel.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Hello World</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"></script>
<script>
window.requirejs.config({
enforceDefine: true,
paths: {
'SDK': './lib/SDK.min'
}
});
window.requirejs(['SDK'], function (SDK) {
SDK.init();
SDK.ready().then(() => {
document.getElementById("name").innerText = SDK.getUser().displayName;
});
});
</script>
</head>
<body>
<h1>Hello, <span id="name"></span></h1>
</body>
</html>
Pour obtenir la liste complète des groupes hub que vous pouvez cibler, consultez la référence des points d’extensibilité.
Créer le manifeste d’extension
Créez vss-extension.json à la racine de votre répertoire d’extension :
{
"manifestVersion": 1,
"id": "sample-extension",
"version": "0.1.0",
"name": "My first sample extension",
"description": "A sample Azure DevOps extension.",
"publisher": "fabrikamdev",
"public": false,
"categories": ["Azure Boards"],
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
],
"icons": {
"default": "images/icon.png"
},
"contributions": [
{
"id": "hello-world-hub",
"type": "ms.vss-web.hub",
"description": "Adds a 'Hello' hub to the Work hub group.",
"targets": [
"ms.vss-work-web.work-hub-group"
],
"properties": {
"name": "Hello",
"order": 99,
"uri": "hello-world.html"
}
}
],
"scopes": [
"vso.work"
],
"files": [
{
"path": "hello-world.html", "addressable": true
},
{
"path": "node_modules/azure-devops-extension-sdk",
"addressable": true,
"packagePath": "lib"
},
{
"path": "images/icon.png", "addressable": true
}
]
}
Important
Remplacez l’éditeur par le nom de votre éditeur. Pour créer un éditeur, consultez Package, publication et installation. Gardez public à false pendant le développement.
Propriétés clés du manifeste
| Propriété | Descriptif |
|---|---|
| contributions | Déclare le hub. Le type est ms.vss-web.hub, et targets spécifie le groupe de hubs auquel l’ajouter. Consultez les points d’extensibilité pour tous les groupes de hubs ciblables. |
| contributions.properties.name | Nom complet du hub. |
| contributions.properties.order | Position du hub au sein du groupe de hubs. |
| contributions.properties.uri | Chemin de la page à afficher en tant que hub (relatif à l’URI de base de l’extension). |
| scopes | Autorisations requises par l’extension.
vso.work accorde l’accès en lecture aux éléments de travail. Voir Étendues. |
| fichiers | Fichiers à inclure dans le package. Configurez addressable: true pour les fichiers qui ont besoin d'une URL. |
Pour plus d’informations sur le manifeste, consultez la référence du manifeste d’extension.
Ajouter un groupe hub personnalisé
Au lieu d’ajouter un hub à un groupe hub intégré, tel que Travail ou Code, créez votre propre groupe hub et ajoutez-y des hubs. Ajoutez une contribution ms.vss-web.hub-group ainsi qu'une contribution ms.vss-web.hub qui la cible :
"contributions": [
{
"id": "sample-hub-group",
"type": "ms.vss-web.hub-group",
"description": "Adds a 'Samples' hub group at the project level.",
"targets": [
"ms.vss-web.project-hub-groups-collection"
],
"properties": {
"name": "Samples",
"order": 100
}
},
{
"id": "hello-hub",
"type": "ms.vss-web.hub",
"description": "Adds a 'Hello' hub to the Samples hub group.",
"targets": [
".sample-hub-group"
],
"properties": {
"name": "Hello",
"order": 99,
"uri": "hello-world.html"
}
}
]
Principales différences entre l’ajout d’un hub à un groupe intégré :
- Objectifs de contribution du groupe hub pour le niveau de projet ou le niveau d'organisation.
- Le tableau du
targetshub utilise une référence relative (.sample-hub-group) pour référencer le groupe de hubs défini au sein de la même extension. - La propriété
orderdu groupe hub contrôle l’emplacement où le groupe apparaît dans la navigation.