Développer une extension web
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Utilisez des extensions pour améliorer Azure DevOps avec de nouvelles expériences web, des widgets de tableau de bord, des tâches de génération, etc. Vous pouvez développer des extensions à l’aide de technologies standard telles que HTML, JavaScript et CSS. Ce tutoriel vous guide tout au long de la création d’une extension web pour Azure DevOps.
Conseil
Explorez les exemples d’extensions et la documentation la plus récente sur le développement d’extensions à l’aide du Kit de développement logiciel (SDK) d’extension Azure DevOps.
Prérequis
Vous devez disposer de l’autorisation et des installations suivantes.
- Vous devez être un propriétaire d'organisation. Si vous n’avez pas d’organisation, vous pouvez créer une organisation gratuitement.
- Installez Node.js.
- Installez l’outil d’empaquetage d’extension (TFX). Exécutez à
npm install -g tfx-cli
partir d’une invite de commandes, que vous utilisez pour empaqueter votre extension ultérieurement.
Créer un répertoire et un manifeste
Une extension est composée d’un ensemble de fichiers qui inclut un fichier manifeste requis. Vous l’empaquetez dans un fichier .vsix et publiez-le sur Visual Studio Marketplace.
Créez un répertoire pour contenir les fichiers nécessaires à votre extension :
mkdir my-first-extension
À partir de ce répertoire, initialisez un nouveau manifeste de package npm :
npm init -y
Ce fichier décrit les bibliothèques requises par votre extension.
Installez le package sdk d’extension web Microsoft VSS et enregistrez-le dans votre manifeste de package npm :
npm install azure-devops-extension-sdk --save
Ce Kit de développement logiciel (SDK) inclut une bibliothèque JavaScript qui fournit des API requises pour communiquer avec la page dans laquelle votre extension est incorporée.
Créez un fichier manifeste d’extension nommé
vss-extension.json
à la racine de votre répertoire d’extension avec le contenu suivant :{ "manifestVersion": 1, "id": "my-first-extension", "publisher": "", "version": "1.0.0", "name": "My First Extension", "description": "A sample Visual Studio Services extension", "public": false, "categories": ["Azure Repos"], "targets": [ { "id": "Microsoft.VisualStudio.Services" } ], "contributions": [ { "id": "my-hub", "type": "ms.vss-web.hub", "targets": [ "ms.vss-code-web.code-hub-group" ], "properties": { "name": "My Hub", "uri": "my-hub.html" } } ], "files": [ { "path": "my-hub.html", "addressable": true }, { "path": "node_modules/azure-devops-extension-sdk", "addressable": true, "packagePath": "lib" } ] }
Remarque
La
public
propriété contrôle si l’extension est visible par tout le monde sur Visual Studio Marketplace. Gardez vos extensions privées pendant le développement.Créez un fichier nommé
my-hub.html
à la racine de votre répertoire d’extension avec le contenu suivant, qui est destiné à la vue (également appelée hub) contribué à l’expérience web.<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <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) { if (typeof SDK !== 'undefined') { console.log("SDK is defined. Trying to initialize..."); SDK.init(); SDK.ready().then(() => { console.log("SDK is ready"); document.getElementById("name").innerText = SDK.getUser().displayName; }); } else { console.log('SDK is not defined'); } }); </script> <style> body { background-color: rgb(0, 67, 117); color: white; margin: 10px; font-family: "Segoe UI VSS (Regular)","-apple-system",BlinkMacSystemFont,"Segoe UI",sans-serif; } </style> </head> <body> <h1>Hello, <span id="name"></span></h1> </body> </html>
Votre répertoire d’extension doit ressembler à l’exemple suivant.
|-- my-hub.html |-- node_modules |-- @types |-- azure-devops-extension-sdk |-- package.json |-- vss-extension.json