Добавление действия меню

Сервисы Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

В этом примере мы добавим действие в контекстное меню запроса в центре запросов рабочих элементов.

Совет

Для получения последних рекомендаций по разработке расширений, включая темизацию и миграцию из VSS.SDK, смотрите на портале разработчика пакета 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>
    <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(() => {
                // Register the menu action handler
                SDK.register(SDK.getContributionId(), {
                    execute: function (actionContext) {
                        alert("Hello, world");
                    }
                });
            });
        });
    </script>
</head>
<body>
    <div>
        The end user doesn't see the content on this page.
        It runs in the background to handle the contributed menu item being selected.
    </div>
</body>
</html>

Совет

Дополнительные сведения см. в разделе точки расширяемости, меню и панели инструментов, модель контрибуции , система проектирования формул , справочник по REST API , примеры расширений и ресурсы в сообществе разработчиков .

Дальнейшие действия

Упаковка, публикация и установка расширения.