Добавление действия меню
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
В этом примере мы добавим действие в контекстное меню запроса в центре запросов рабочих элементов.
Совет
Ознакомьтесь с нашей новой документацией по разработке расширений с помощью пакета SDK для расширений Azure DevOps.
Необходимые условия
Обновление файла манифеста расширения
Ниже приведен фрагмент кода, который добавляет ваше действие в раздел вашего вклада в манифесте расширения .
...
"contributions": [
{
"id": "myAction",
"type": "ms.vss-web.action",
"description": "Run in Hello hub action",
"targets": [
"ms.vss-work-web.work-item-query-menu"
],
"properties": {
"text": "Run in Hello hub",
"title": "Run in Hello hub",
"icon": "images/icon.png",
"groupId": "actions",
"uri": "action.html"
}
}
]
...
Свойства
Свойство | Описание |
---|---|
текст | Текст, отображаемый в элементе меню. |
название | Текст подсказки, отображаемый в элементе меню. |
икона | URL-адрес значка, отображаемого в элементе меню. Относительные URL-адреса разрешаются с помощью baseUri. |
идентификатор группы | Определяет, где этот элемент меню отображается по отношению к другим. |
URI | Ссылка (URI) на страницу, которая регистрирует обработчик действий меню (см. ниже). |
зарегистрированныйИдентификаторОбъекта | (Необязательно) Имя зарегистрированного обработчика действия меню. По умолчанию используется идентификатор участника. |
Узнайте обо всех местах, где можно добавлять действия в точки расширения .
Html-страница
Действие меню представлено скриптом JavaScript, внедренным в HTML-файл. Сохраните следующее содержимое в файле и расположении, которое соответствует ссылке на него в файле манифеста расширения.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Action Sample</title>
</head>
<body>
<div>
The end user doesn't see the content on this page.
It is only in the background to handle the contributed menu item being selected.
</div>
</body>
</html>
Ваш JavaScript
Приведенный ниже скрипт регистрирует объект обработчика для обработки действия, поместите его в head
разделе предыдущей HTML-страницы.
Мы переименовали
lib
вnode_modules/azure-devops-extension-sdk/lib
в нашем файле манифестаsdk-extension.json
.
<script src="lib/SDK.min.js"></script>
<script>
SDK.init();
// Use an IIFE to create an object that satisfies the IContributedMenuSource contract
var menuContributionHandler = (function () {
"use strict";
return {
// This is a callback that gets invoked when a user selects the newly contributed menu item
// The actionContext parameter contains context data surrounding the circumstances of this
// action getting invoked.
execute: function (actionContext) {
alert("Hello, world");
}
};
}());
// Associate the menuContributionHandler object with the "myAction" menu contribution from the manifest.
SDK.register(SDK.getContributionId(), menuContributionHandler);
</script>
Совет
Дополнительные сведения см. в разделе точки расширяемости, меню и панели инструментов, модель контрибуции , система проектирования формул , справочник по REST API , примеры расширений и ресурсы в сообществе разработчиков .
Дальнейшие действия
Теперь, когда вы написали расширение, выполните следующие действия: "Упаковка", "Публикация" и "Установка расширения". Вы также можете ознакомиться с документацией по тестированию и отладке расширения.