Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
У каждого расширения есть JSON-файл манифеста, который определяет основные сведения о расширении. Файл также определяет, как он может расширить и улучшить интерфейс. В этой статье показано, как создать манифест для расширения в Azure DevOps.
Совет
Ознакомьтесь с нашей новой документацией по разработке расширений с помощью пакета SDK для расширений Azure DevOps.
Создайте файл с именем vss-extension.json в корне папки расширения. Этот файл содержит обязательные атрибуты, такие как идентификатор расширения и его целевые объекты установки, где он может выполняться. Он также описывает вклад, внесенный расширением.
См. следующий пример типичного манифеста:
{
"manifestVersion": 1,
"id": "tools",
"version": "0.1.0",
"name": "Fabrikam Tools",
"publisher": "fabrikam",
"description": "Awesome tools to help you and your team do great things everyday.",
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
],
"icons": {
"default": "images/fabrikam-logo.png"
},
"scopes": [
"vso.work",
"vso.code_write",
"vso.build_execute"
],
"categories": [
"Azure Boards"
],
"branding": {
"color": "rgb(34, 34, 34)",
"theme": "dark"
},
"content": {
"details": {
"path": "readme.md"
},
"license": {
"path": "eula.md"
}
},
"links": {
"getstarted": {
"uri": "https://www.fabrikam-fiber-inc.com/help/getstarted"
},
"support": {
"uri": "https://www.fabrikam-fiber-inc.com/support"
}
},
"repository": {
"type": "git",
"uri": "https://github.com/fabrikam-fiber-inc/myextension"
},
"contributions": [
{
"id": "showCommits",
"type": "ms.vss-web.action",
"description": "Adds a menu action from builds grid to show associated items.",
"targets": [
"ms.vss-build-web.completed-build-menu"
],
"properties": {
"title": "View associated items",
"uri": "launch.html"
}
}
],
"files": [
{
"path": "launch.html",
"addressable": true
},
{
"path": "node_modules/vss-web-extension-sdk/lib",
"addressable": true,
"packagePath": "lib"
}
]
}
Сведения о входных данных см. в разделе ...
Требуемые атрибуты
| Имущество | Описание | Заметки |
|---|---|---|
| версия манифеста | Число, соответствующее версии формата манифеста. | должен иметь значение 1. |
| ИД | Идентификатор расширения. | Th ID — это строка, которая должна быть уникальной среди расширений одного издателя. Он должен начинаться с алфавитного или числового символа и содержать "A" до "Z", "a" до "z", "0" до "9" и "-" (дефис). Пример: sample-extension. |
| версия | Строка, указывающая версию расширения. | Должен быть в формате major.minor.patch, например 0.1.2 или 1.0.0. Вы также можете добавить четвертый номер для следующего формата: 0.1.2.3 |
| имя | Короткое, доступное для чтения имя расширения. Ограничено 200 символами. | Пример: "Fabrikam Agile Board Extension". |
| издатель | Идентификатор издателя. | Этот идентификатор должен соответствовать идентификатору, в котором публикуется расширение. См. статью "Создание и управление издателем". |
| Категории | Массив строк, представляющих категории, к которой принадлежит расширение. Необходимо указать по крайней мере одну категорию и не ограничивать количество категорий, которые могут быть включены. | Допустимые значения: Azure Repos, , Azure BoardsAzure Pipelines, Azure Test Plansи Azure Artifacts.Примечания:
— Если вы используете расширение "Azure DevOps Extension Tasks" для публикации, убедитесь, что его версия — >>= 1.2.8. Возможно, потребуется утвердить обновление расширения из-за недавних изменений области. . Ранее упомянутые категории изначально присутствуют в Visual Studio Marketplace и Azure DevOps Server 2019 & выше. |
| Цели | Продукты и службы, поддерживаемые интеграцией или расширением. Дополнительные сведения см. в разделе целевых объектов установки. | Массив объектов, где каждый объект имеет id поле, указывающее одно из следующих значений:
Microsoft.VisualStudio.Services (расширения, которые работают с Azure DevOps),- Microsoft.TeamFoundation.Server (расширение, которое работает с Azure DevOps Server),- Microsoft.VisualStudio.Services.Integration, - Microsoft.TeamFoundation.Server.Integration (интеграции, которые работают с Azure DevOps Server) |
Примеры обязательных атрибутов
{
"manifestVersion": 1,
"id": "tools",
"version": "0.1.0",
"name": "Fabrikam Tools",
"publisher": "fabrikam",
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
]
}
Необязательные атрибуты
Атрибуты среды выполнения
| Имущество | Описание | Заметки |
|---|---|---|
| Области действия | Массив областей авторизации (строк) с разрешениями, необходимыми для расширения. | Например, vso.work и vs.code_write указывают, что вашему расширению требуется доступ только для чтения к рабочим элементам и доступ на чтение и запись к исходному коду (и связанным ресурсам). Области доступа отображаются пользователю при установке расширения. Дополнительные сведения см. в полном списке областей. |
| Требования | Массив запросов (строк) содержит список возможностей, необходимых вашему расширению. | Например, указывает, api-version/3.0 что расширение использует API версии 3.0 и поэтому не может работать в старых продуктах, которые не поддерживают эту версию. Дополнительные сведения см. в полном списке требований. |
| baseUri | (Необязательно) базовый URL-адрес для всех относительных URL-адресов, указанных вкладом расширения. | Например: https://myapp.com/{{account.name}}/. Это свойство должно оставаться пустым, если содержимое вашего расширения упаковано вместе с ним. |
| Взносы | Массив вкладов в систему. | |
| типы вкладов | Массив типов вкладов, определенных расширением |
{
"scopes": [
"vso.work",
"vso.code_write",
"vso.build_execute"
],
"demands": [
"api-version/3.0"
],
"contributions": [
{
"id": "showCommits",
"type": "ms.vss-web.action",
"description": "Adds a menu action from builds grid to show associated items.",
"targets": [
"ms.vss-build-web.completed-build-menu"
],
"properties": {
"title": "View associated items",
"uri": "launch.html"
}
}
]
}
Атрибуты обнаружения
Следующие необязательные свойства помогают пользователям обнаруживать и узнать о расширении.
| Имущество | Описание | Заметки |
|---|---|---|
| описание | Несколько предложений, описывающих расширения. Ограничено 200 символами. | Описание должно быть вашим расширением "краткое представление" - пару строк, чтобы описать расширение в Marketplace и чтобы люди захотели его установить. См. приведенный ниже пример |
| Иконки | Словарь значков, представляющих расширение. | Допустимые ключи: default (128x128 пикселей) типа BMP, GIF, EXIF, JPG, PNG и TIFF. Другие ключи, такие как large (512x512 пикселей), могут поддерживаться в будущем. Значение каждого ключа — путь к файлу значка в расширении |
| теги | Массив строковых тегов, помогающие пользователям найти расширение. | Примеры: agile, project management, task timerи т. д. |
| снимки экрана | Набор изображений, которые не были включены в ваше содержимое. | Снимки экрана становятся более ценными, когда они представлены в вашем контенте и должны использоваться там, чтобы создать качественную страницу сведений о рынке для вашего расширения. Используйте снимки экрана для менее важных изображений, которые не представлены в содержимом. Каждое изображение должно составлять 1366x768 пикселей. Каждый path элемент — это путь к файлу в расширении. |
| содержание | Словарь файлов содержимого, описывающих расширение для пользователей. |
Каждое расширение должно содержать твердое содержимое. Вот как вы покажете пользователям, что может сделать расширение. Сделайте его содержательным, удобным для восприятия и включите снимки экрана при необходимости. Включите overview.md файл в качестве базового содержимого. Предполагается, что каждый файл находится в формате GitHub Flavored Markdown . Каждый path элемент — это путь к файлу Markdown в расширении. Допустимые ключи: details. В будущем могут поддерживаться другие ключи. |
| ссылки | Словарь ссылок, помогающих пользователям узнать больше о расширении, получить поддержку и переместить. | Допустимые ключи: getstarted — первые шаги, как настроить или использовать.
learn — более глубокое содержимое, помогающее пользователям лучше понять расширение или службу.
license — лицензионное соглашение конечного пользователя.
privacypolicy — политика конфиденциальности для расширения.
support — справка и поддержка для расширения. Значение каждого ключа — это объект с uri полем, которое является абсолютным URL-адресом ссылки. |
| репозитории | Словарь свойств, описывающих репозиторий исходного кода для расширения | Допустимые ключи: type тип репозитория. Пример: git.
uri — абсолютный URL-адрес репозитория. |
| Значки | Допустимые ключи: href — при выборе значка пользователь переходит к ссылке.
uri — абсолютный URL-адрес отображаемого изображения значка.
description — Описание значка, отображаемое при наведении курсора. |
|
| фирменная символика | Словарь свойств, связанных с брендом. | Допустимые ключи: color — основной цвет расширения или издателя; может быть шестнадцатеричным (#ff00ff), RGB (rgb(100 200 50)) или поддерживаемыми именами цветов HTML (синий).
theme — дополняет цвет; используйте темные цвета фирменной символики или свет для более светлых цветов фирменной символики. |
Сделать расширение общедоступным
По умолчанию все расширения в Azure DevOps Marketplace являются частными. Они скрыты из общедоступного представления и отображаются только издателю и определенным учетным записям, к которым предоставлен доступ издателю. Если издатель проверен, вы можете сделать расширение общедоступным, задав Public флаг в манифесте расширения:
{
"galleryFlags": [
"Public"
]
}
Или сделайте так:
{
"public": true
}
Дополнительные сведения см. в разделе "Package/Publish/Install".
Пометка расширения, которое должно быть в предварительном просмотре
Если ваше расширение готово для пользователей в магазине, но вы всё ещё устраняете некоторые ошибки или добавляете функции, вы можете пометить его как preview:
{
"galleryFlags": [
"Preview"
]
}
Пометить расширение как платную предварительную версию
Если вы планируете продать расширение в Marketplace, пометьте его как платную предварительную версию. Расширение, помеченное бесплатно, не может быть изменено на платную.
{
"galleryFlags": [
"Paid",
"Preview"
]
}
Пометить расширение как платное
Если вы хотите продать расширение на Marketplace, вы можете пометить его флагом Paid и тегом __BYOLENFORCED (начинается с двух подчеркиваний).
{
"galleryFlags": [
"Paid"
],
"tags": [
"__BYOLENFORCED"
]
}
Paid флаг и __BYOLENFORCED тег должны присутствовать, чтобы пометить расширение как платное в marketplace. Перенос собственной лицензии (BYOL) означает, что издатель расширения предоставляет механизм выставления счетов и лицензирования для расширения, поскольку Microsoft не предоставляет этот механизм для расширений Azure DevOps. Все платные расширения необходимы для определения политики конфиденциальности, политики поддержки и лицензионного соглашения конечного пользователя. Издатели должны предоставить содержимое для вкладки цен в Marketplace следующим образом:
{
"content": {
"details": {
"path": "overview.md"
},
"pricing": {
"path": "pricing.md"
}
}
}
Кроме того, необходимо добавить новый раздел в манифест расширения, чтобы переопределить платное лицензирование. В будущем мы удалим проверку платной лицензии и больше не будем требовать переопределения. Теперь убедитесь, что расширение отображается должным образом. Каждое переопределение состоит из "ID" и "поведения". Убедитесь, что "ID" совпадает с ID вкладов, определённых в манифесте.
"licensing": {
"overrides": [
{ "id": "my-hub", "behavior": " AlwaysInclude" }
]
}
Если платное расширение BYOL предлагает пробный период (рекомендуется), можно указать длину пробной версии в днях:
{
"galleryproperties": {
"trialDays": "30"
}
}
Примечание.
Если вы хотите работать с Azure DevOps, но не хотите отображать опцию "Скачать" для вашего расширения, добавьте тег (начинается с двух подчеркиваний) в манифест расширения. Если вы перемещаете расширение из ранее предлагаемого выставления счетов и лицензирования от Майкрософт к модели BYOL, обратитесь к нам, чтобы получить дальнейшие инструкции.
Пример дополнительных свойств
{
"description": "Awesome tools to help you and your team do great things everyday.",
"icons": {
"default": "images/fabrikam-logo.png"
},
"categories": [
"Plan and track"
],
"tags": [
"working",
"people person",
"search"
],
"content": {
"details": {
"path": "overview.md"
},
"license": {
"path": "license-terms.md"
}
},
"links": {
"home": {
"uri": "https://www.fabrikam-fiber-inc.com"
},
"getstarted": {
"uri": "https://www.fabrikam-fiber-inc.com/help/getstarted"
},
"learn": {
"uri": "https://www.fabrikam-fiber-inc.com/features"
},
"support": {
"uri": "https://www.fabrikam-fiber-inc.com/support"
},
"repository": {
"uri": "https://github.com/fabrikam-fiber-inc/tools"
},
"issues": {
"uri": "https://github.com/fabrikam-fiber-inc/tools/issues"
}
},
"repository": {
"type": "git",
"uri": "https://github.com/fabrikam-fiber-inc/tools"
},
"badges": [
{
"href": "https://travis.ci/fabrikam-fiber-inc/myextension",
"uri": "https://travis.ci/fabrikam-fiber-inc/myextension.svg?branch=master",
"description": "TravisCI build for the project"
},
{
"href": "https://ci.appveyor.com/projects/fabrikam-fiber-inc/myextension",
"uri": "https://ci.appveyor.com/api/projects/status/vlg2sgs2y7tsdxpj4c?svg=true",
"description": "AppVeyor build for the project"
}
],
"branding": {
"color": "rgb(34, 34, 34)",
"theme": "dark"
},
"screenshots": [
{
"path": "screenshots/screen1.png"
},
{
"path": "screenshots/screen2.png"
}
]
}
Пример страницы сведений
- 1 — описание
- 2 — значок
- 3 — категории
- 4 — снимки экрана
- 5 — содержимое (подробности)
- 6 — ссылки
- 7 — фирменная символика
Marketplace Q и A — свойство CustomerQnASupport
Все расширения на Visual Studio Marketplace содержат раздел "Вопросы и ответы" (Q & A), позволяющий публичные беседы один-на-один между пользователями расширений и издателями. Издатели могут выбирать между вопросами и ответами на Marketplace, задачами GitHub или настраиваемым URL-адресом для вопросов и ответов. Вы можете отключить Q и A в Marketplace с помощью CustomerQnASupport свойства в манифесте.
Интерфейс по умолчанию (изменения манифеста не требуются)
- Для расширений с репозиторием GitHub Marketplace перенаправляет пользователей из раздела Q&A на связанные проблемы GitHub.
- Для расширений без репозитория GitHub включена функция Q&A Marketplace.
Для работы с одним из вариантов по умолчанию используйте CustomerQnASupport свойство в манифесте.
{
"CustomerQnASupport": {
"enablemarketplaceqna": true,
"url": "http://uservoice.visualstudio.com"
}
}
Свойства
Свойства раздела "Вопросы и поддержка клиента":
- enablemarketplaceqna — логическое поле, установленное в true для торговой площадки или настраиваемых вопросов и ответов; false для отключения вопросов и ответов.
- URL-адрес — строка для настраиваемого Q&A
Примеры использования поддержки Q и A
Пример: расширение с помощью настраиваемой системы вопросов и ответов
{
"CustomerQnASupport": {
"enablemarketplaceqna":"true",
"url": "http://uservoice.visualstudio.com"
}
}
Пример: расширение с репозиторием GitHub, но с использованием вопросов и ответов Marketplace Q & A вместо вопросов GitHub.
{
"CustomerQnASupport": {
"enablemarketplaceqna":"true"
}
}
Пример: расширение, отключающее раздел Q и A
{
"CustomerQnASupport": {
"enablemarketplaceqna":"false"
}
}
Сферы
В расширении можно определить одну или несколько областей. Эти права доступа определяют ресурсы, к которым может получить доступ расширение, и операции, которые разрешено выполнять с этими ресурсами. Области, указанные в манифесте расширения, — это области, заданные для маркеров доступа, выданных вашему расширению. Дополнительные сведения см. в разделе "Проверка подлинности" и "Безопасность".
Если области не указаны, расширениям предоставляется доступ только к данным профиля пользователя и данных расширений.
Поддерживаемые области
| Категория | Область | Имя | Высокий уровень привилегий | Описание | Наследует от |
|---|---|---|---|---|---|
| Расширенная безопасность | vso.advsec |
Расширенная безопасность (чтение) | Да | Предоставляет возможность чтения оповещений, экземпляров результатов и экземпляров результатов анализа. | |
vso.advsec_write |
Расширенная безопасность (чтение и запись) | Да | Предоставляет возможность отправлять анализы в засечках. | vso.advsec |
|
vso.advsec_manage |
Расширенная безопасность (чтение, запись и управление) | Да | Предоставляет возможность отправлять анализы в засечках. | vso.advsec_write |
|
| Пулы агентов | vso.agentpools |
Пулы агентов (чтение) | Предоставляет возможность просматривать: задачи, пулы, очереди, агентов, а также выполняющиеся или недавно завершенные задания агентов. | ||
vso.agentpools_manage |
Пулы агентов (чтение и управление ими) | Да | Предоставляет возможность управлять пулами, очередями и агентами. | vso.agentpools |
|
vso.environment_manage |
Среда (чтение и управление) | Да | Предоставляет возможность управлять пулами, очередями, агентами и окружениями. | vso.agentpools_manage |
|
| Аналитика | vso.analytics |
Аналитика (чтение) | Предоставляет возможность запрашивать данные аналитики. | ||
| Auditing | vso.auditlog |
Журнал аудита (чтение) | Предоставляет пользователям возможность читать журнал аудита. | ||
vso.auditstreams_manage |
Аудит потоков (чтение) | Да | Предоставляет пользователям возможность управлять потоками аудита. | vso.auditlog |
|
| Build | vso.build |
Сборка (чтение) | Предоставляет возможность доступа к артефактам сборки, включая результаты сборки, определения и запросы, а также возможность получать уведомления о событиях сборки с помощью хуков сервиса. | vso.hooks_write |
|
vso.build_execute |
Компиляция (чтение и выполнение) | Да | Предоставляет возможность доступа к артефактам сборки, включая результаты сборки, определения и запросы. Кроме того, предоставляет возможность очереди сборки, обновления свойств сборки и получения уведомлений о событиях сборки с помощью перехватчиков служб. | vso.build |
|
| Code | vso.code |
Код (чтение) | Предоставляет возможность читать исходный код и метаданные о коммитах, наборах изменений, ветвях и других артефактах управления версиями. Также предоставляет возможность искать код и получать уведомления о событиях контроля версий через сервисные хуки. | vso.hooks_write |
|
vso.code_write |
Код (чтение и запись) | Да | Предоставляет возможность читать, обновлять и удалять исходный код и получать метаданные о фиксациях, изменениях, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность создавать запросы на вытягивание и просматривать код и получать уведомления о событиях управления версиями с помощью перехватчиков служб. | vso.code |
|
vso.code_manage |
Код (чтение, запись и управление) | Да | Предоставляет возможность читать, обновлять и удалять исходный код, получать доступ к метаданным о фиксациях, изменениях, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность создавать и управлять репозиториями кода, создавать и управлять pull-реквестами и обзорами кода, а также получать уведомления о событиях системы управления версиями через вебхуки. | vso.code_write |
|
vso.code_full |
Код (полный) | Да | Предоставляет полный доступ к исходному коду, метаданным о фиксациях, наборах изменений, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность создавать репозитории кода и управлять ими, создавать запросы на вытягивание и проверки кода и получать уведомления о событиях управления версиями с помощью перехватчиков служб. Также включает ограниченную поддержку клиентских API OM. | vso.code_manage |
|
vso.code_status |
Код (состояние) | Предоставляет возможность чтения и записи фиксации и записи состояния запроса на вытягивание. | |||
| Подключенный сервер | vso.connected_server |
Подключенный сервер | Предоставляет возможность доступа к конечным точкам, необходимым с локального подключенного сервера. | ||
| Объемы обслуживания | vso.entitlements |
Права (чтение) | Предоставляет доступ только для чтения к конечным точкам прав лицензирования для получения прав учетной записи. | ||
vso.memberentitlementmanagement |
Управление правами участников (чтение) | Предоставляет возможность читать пользователей, их лицензии и проекты и расширения, к которые они могут получить доступ. | |||
vso.memberentitlementmanagement_write |
Управление правами участников (запись) | Да | Предоставляет возможность управлять пользователями и их лицензиями, а также проектами и расширениями, к которым они могут получить доступ. | vso.memberentitlementmanagement |
|
| Extensions | vso.extension |
Расширения (чтение) | Предоставляет возможность чтения установленных расширений. | vso.profile |
|
vso.extension_manage |
Расширения (чтение и управление) | Да | Предоставляет возможность устанавливать, удалять и выполнять другие административные действия в установленных расширениях. | vso.extension |
|
vso.extension.data |
Данные расширения (чтение) | Предоставляет возможность считывать данные (параметры и документы), хранящиеся установленными расширениями. | vso.profile |
||
vso.extension.data_write |
Данные расширения (чтение и запись) | Предоставляет возможность чтения и записи данных (параметров и документов), хранящихся установленными расширениями. | vso.extension.data |
||
| Подключения GitHub | vso.githubconnections |
Подключения GitHub (чтение) | Предоставляет возможность читать данные о подключениях и репозиториях GitHub. | ||
vso.githubconnections_manage |
Подключения GitHub (чтение и управление) | Да | Предоставляет возможность считывания подключений GitHub и данных репозиториев GitHub и управления ими. | vso.githubconnections |
|
| Граф и удостоверение | vso.graph |
Граф (чтение) | Предоставляет возможность читать сведения о пользователях, группах, областях и членстве в группах. | ||
vso.graph_manage |
Граф (управление) | Да | Предоставляет возможность читать сведения о членстве пользователей, групп, областей и групп, добавлять пользователей и группы и управлять членством в группах. | vso.graph |
|
vso.identity |
Идентичность (просмотр) | Предоставляет возможность читать идентичности и группы. | |||
vso.identity_manage |
Идентификация (управление) | Да | Предоставляет возможность чтения, записи и управления идентичностями и группами. | vso.identity |
|
| Группа компьютеров | vso.machinegroup_manage |
Группа развертывания (читать, управлять) | Да | Предоставляет возможность управлять пулами групп развертывания и агентов. | vso.agentpools_manage |
| Рынок | vso.gallery |
Рынок | Предоставляет читательский доступ к общедоступным и частным объектам и издателям. | vso.profile |
|
vso.gallery_acquire |
Marketplace (приобретение) | Предоставляет доступ на чтение и возможность приобретения элементов. | vso.gallery |
||
vso.gallery_publish |
Marketplace (публикация) | Да | Предоставляет доступ для чтения, а также возможность загружать, обновлять и предоставлять общий доступ к элементам. | vso.gallery |
|
vso.gallery_manage |
Marketplace (управление) | Да | Предоставляет доступ для чтения и возможность публиковать и управлять элементами и издательскими ресурсами. | vso.gallery_publish |
|
| Notifications | vso.notification |
Уведомления (прочитанные) | Предоставляет доступ на чтение к подпискам и метаданным событий, включая отфильтрованные значения полей. | vso.profile |
|
vso.notification_write |
Уведомления (запись) | Предоставляет доступ на чтение и запись к подпискам и доступ на чтение к метаданным событий, включая отфильтрованные значения полей. | vso.notification |
||
vso.notification_manage |
Уведомления (управление) | Предоставляет доступ на чтение, запись и управление подписками и доступ на чтение к метаданным событий, включая значения поля, допускающие фильтрацию. | vso.notification_write |
||
vso.notification_diagnostics |
Уведомления (диагностика) | Предоставляет доступ к журналам диагностики, связанным с уведомлениями, и предоставляет возможность включить диагностику для отдельных подписок. | vso.notification |
||
| Упаковка | vso.packaging |
Упаковка (прочтение) | Предоставляет доступ к чтению каналов и пакетов. | vso.profile |
|
vso.packaging_write |
Упаковка (чтение и запись) | Да | Предоставляет возможность создавать и читать RSS-каналы и пакеты. | vso.packaging |
|
vso.packaging_manage |
Упаковка (чтение, запись и управление) | Да | Предоставляет возможность создавать, читать, обновлять и удалять ленты и пакеты. | vso.packaging_write |
|
| Ресурсы потока | vso.pipelineresources_use |
Ресурсы конвейера (использование) | Да | Предоставляет возможность утвердить запрос конвейера на использование защищенного ресурса: пул агентов, среда, очередь, репозиторий, безопасные файлы, подключение к службе и группа переменных. | |
vso.pipelineresources_manage |
Ресурсы конвейера (использование и управление ими) | Да | Предоставляет возможность управлять защищенным ресурсом или запросом конвейера для использования защищенного ресурса: пул агентов, среда, очередь, репозиторий, безопасные файлы, подключение к службе и группа переменных. | vso.pipelineresources_use |
|
| Проект и команда | vso.project |
Проект и команда (ознакомление) | Предоставляет возможность читать проекты и команды. | ||
vso.project_write |
Проект и команда (доступ на чтение и запись) | Предоставляет возможность читать и обновлять проекты и команды. | vso.project |
||
vso.project_manage |
Проект и команда (чтение, запись и управление ими) | Да | Предоставляет возможность создавать, читать, обновлять и удалять проекты и команды. | vso.project_write |
|
| Выпуск | vso.release |
Релиз (чтение данных) | Предоставляет возможность считывать артефакты выпуска, включая выпуски, определения выпусков и среду выпуска. | vso.profile |
|
vso.release_execute |
Выпуск (чтение, запись и выполнение) | Да | Предоставляет возможность считывания и обновления артефактов выпуска, включая выпуски, определения выпуска и среду выпуска. Кроме того, предоставляет возможность очереди нового выпуска. | vso.release |
|
vso.release_manage |
Выпуск (чтение, запись, выполнение и управление ими) | Да | Предоставляет возможность читать, обновлять и удалять артефакты выпуска, включая выпуски, определения выпусков и среду выпуска. Кроме того, предоставляет возможность очереди и утверждения нового выпуска. | vso.release_execute |
|
| Безопасные файлы | vso.securefiles_read |
Безопасные файлы (чтение) | Да | Предоставляет возможность чтения защищенных файлов. | |
vso.securefiles_write |
Безопасные файлы (чтение и создание) | Да | Предоставляет возможность чтения и создания защищенных файлов. | vso.securefiles_read |
|
vso.securefiles_manage |
Безопасные файлы (чтение, создание и управление ими) | Да | Предоставляет возможность читать, создавать и управлять защищенными файлами. | vso.securefiles_write |
|
| Безопасность | vso.security_manage |
Безопасность (управление) | Да | Предоставляет возможность чтения, записи и управления разрешениями безопасности. | |
| Служебные подключения | vso.serviceendpoint |
Конечные точки службы (чтение) | Предоставляет возможность чтения конечных точек службы. | vso.profile |
|
vso.serviceendpoint_query |
Конечные точки службы (чтение и запрос) | Предоставляет возможность чтения и запроса конечных точек службы. | vso.serviceendpoint |
||
vso.serviceendpoint_manage |
Конечные точки службы (чтение, запрос и управление) | Да | Предоставляет возможность чтения, запроса и управления конечными точками службы. | vso.serviceendpoint_query |
|
| Механизмы сервисных подключений | vso.hooks |
Перехватчики служб (чтение) | Предоставляет возможность чтения подписок и метаданных службы, включая поддерживаемые события, потребителя и действия. (Больше не общедоступна.) | vso.profile |
|
vso.hooks_write |
Служебные хуки (чтение и запись) | Предоставляет возможность создавать и обновлять подписки на вебхуки службы и читать метаданные, включая поддерживаемые события, пользователи и действия. (Больше не общедоступна.) | vso.hooks |
||
vso.hooks_interact |
Веб-хуки сервисов (взаимодействие) | Предоставляет возможность взаимодействовать и выполнять действия на события, полученные через служебные хуки. (Больше не общедоступна.) | vso.profile |
||
| Settings | vso.settings |
Параметры (чтение) | Предоставляет возможность чтения параметров. | ||
vso.settings_write |
Параметры (чтение и запись) | Предоставляет возможность чтения и записи параметров. | vso.settings |
||
| Символы | vso.symbols |
Чтение символов | Предоставляет возможность считывать символы. | vso.profile |
|
vso.symbols_write |
Символы (чтение и запись) | Предоставляет возможность чтения и записи символов. | vso.symbols |
||
vso.symbols_manage |
Символы (чтение, запись и управление ими) | Предоставляет возможность чтения, записи и управления символами. | vso.symbols_write |
||
| Группы задач | vso.taskgroups_read |
Группы задач (чтение) | Предоставляет доступ к чтению групп задач. | ||
vso.taskgroups_write |
Группы задач (чтение и создание) | Предоставляет возможность читать и создавать группы задач. | vso.taskgroups_read |
||
vso.taskgroups_manage |
Группы задач (чтение, создание и управление ими) | Да | Предоставляет возможность читать, создавать и управлять группами задач. | vso.taskgroups_write |
|
| Панель мониторинга группы | vso.dashboards |
Панели управления команды (чтение) | Предоставляет возможность считывать сведения о панели мониторинга команды. | ||
vso.dashboards_manage |
Панели мониторинга группы (управление) | Предоставляет возможность управлять сведениями панели мониторинга группы. | vso.dashboards |
||
| Управление тестами | vso.test |
Управление тестами (просмотр) | Предоставляет возможность читать тестовые планы, варианты, результаты и другие артефакты, связанные с управлением тестами. | vso.profile |
|
vso.test_write |
Управление тестами (чтение и запись) | Предоставляет возможность читать, создавать и обновлять тестовые планы, варианты, результаты и другие артефакты, связанные с управлением тестами. | vso.test |
||
| Threads | vso.threads_full |
Потоки PR | Предоставляет возможность читать и писать в ветках комментариев pull request. | ||
| Tokens | vso.tokens |
Делегированные маркеры авторизации | Да | Предоставляет пользователям возможность управлять делегированными маркерами авторизации. | |
vso.tokenadministration |
Администрирование токенов | Да | Предоставляет возможность управления (просмотром и отменой) существующих маркеров администраторам организации. | ||
| Профиль пользователя | vso.profile |
Профиль пользователя (для чтения) | Предоставляет возможность читать профиль, учетные записи, коллекции, проекты, команды и другие артефакты организации верхнего уровня. | ||
vso.profile_write |
Профиль пользователя (написание) | Предоставляет возможность записи в профиль. | vso.profile |
||
| Группы переменных | vso.variablegroups_read |
Группы переменных (чтение) | Предоставляет возможность чтения групп переменных. | ||
vso.variablegroups_write |
Группы переменных (чтение и создание) | Предоставляет возможность считывания и создания групп переменных. | vso.variablegroups_read |
||
vso.variablegroups_manage |
Группы переменных (чтение, создание и управление ими) | Да | Предоставляет возможность чтения, создания и управления группами переменных. | vso.variablegroups_write |
|
| Вики | vso.wiki |
Вики (чтение) | Предоставляет возможность читать вики-страницы, вики-страницы и вики-вики-вложения. Кроме того, предоставляет возможность поиска на вики-страниц. | ||
vso.wiki_write |
Вики (для чтения и записи) | Предоставляет возможность читать, создавать и обновлять вики-страницы, вики-страницы и вики-вложения. | vso.wiki |
||
| Элементы работы | vso.work |
Элементы работы (чтение) | Предоставляет возможность считывать рабочие элементы, запросы, доски, области и пути итерации, а также другие метаданные, связанные с отслеживанием рабочих элементов. Кроме того, предоставляет возможность выполнять запросы, выполнять поиск рабочих элементов и получать уведомления о событиях рабочих элементов с помощью перехватчиков служб. | vso.hooks_write |
|
vso.work_write |
Рабочие элементы (чтение и запись) | Предоставляет возможность читать, создавать и обновлять рабочие элементы и запросы, метаданные доски обновления, области чтения и итерации путей и других метаданных, связанных с отслеживанием рабочих элементов, выполнять запросы и получать уведомления о событиях рабочих элементов с помощью перехватчиков служб. | vso.work |
||
vso.work_full |
Рабочие элементы (полные) | Предоставляет полный доступ к рабочим элементам, запросам, невыполненной работе, планам и метаданным отслеживания рабочих элементов. Кроме того, предоставляет возможность получать уведомления о событиях рабочих элементов с помощью перехватчиков служб. | vso.work_write |
||
| Олицетворение пользователя | user_impersonation |
Олицетворение пользователя | Да | Предоставляет полный доступ к REST API Visual Studio Team Services. Запрос или согласие этой области с осторожностью, так как это очень мощно. |
Изменение области опубликованного расширения
Область опубликованного расширения можно изменить. Если вы ранее установили расширение (и авторизовали предыдущий набор областей), авторизуйте новые области, прежде чем обновить до самой последней версии.
В разделе "Требуется действие" центра параметров расширения показано, требуют ли какие-либо установленные расширения авторизации.
Затем администратор может просмотреть и авторизовать новый набор областей:
Целевые объекты установки
Как подразумевает имя, целевые объекты установки определяют продукты и службы, где можно установить расширение.
Microsoft.VisualStudio.Services является наиболее распространенным целевым объектом установки и указывает, что расширение можно установить в Azure DevOps.
Целевые объекты установки для расширения или интеграции указываются с помощью targets поля в манифесте.
Поддерживаемые идентификаторы расширений:
-
Microsoft.VisualStudio.Services.Cloud: устанавливается в Azure DevOps Services -
Microsoft.TeamFoundation.Server: устанавливается в Azure DevOps Server -
Microsoft.VisualStudio.Services: устанавливается в обе системы. Ярлык дляMicrosoft.VisualStudio.Services.CloudиMicrosoft.TeamFoundation.Serverверсии[14.2,)
Поддерживаемые идентификаторы для интеграций:
-
Microsoft.VisualStudio.Services.Cloud.Integration: интегрируется с Azure DevOps Services -
Microsoft.TeamFoundation.Server.Integration: интегрируется с Azure DevOps Server -
Microsoft.VisualStudio.Services.Integration: интегрируется с обоими. Ярлык дляMicrosoft.VisualStudio.Services.Cloud.IntegrationиMicrosoft.TeamFoundation.Server.Integration
Дополнительные сведения см. в разделе "Точки расширяемости".
Примеры целевых объектов установки
Пример. Расширение, которое работает с Azure DevOps
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
]
}
Пример. Расширение, которое работает только с Azure DevOps Services
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services.Cloud"
}
]
}
Целевые объекты установки также можно использовать в манифесте интеграции. Например, продукты, приложения или инструменты, с которыми работают, но не устанавливайте их в Azure DevOps.
Пример. Интеграция, которая работает с Azure DevOps
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services.Integration"
}
]
}
Пример. Интеграция, которая работает только с Azure DevOps Server
{
"targets": [
{
"id": "Microsoft.TeamFoundation.Server.Integration"
}
]
}
Целевые версии установки
Некоторые идентификаторы целевых объектов установки, например Microsoft.TeamFoundation.Server и Microsoft.TeamFoundation.Server.Integrationподдерживают необязательный диапазон версий. Этот необязательный диапазон версий дополнительно объясняет поддерживаемые выпуски расширения или интеграции.
Версия или диапазон версий указывается через поле version в объекте назначения установки. Это значение может быть следующим:
- Конкретная версия, например:
15.0(только RTM 2017) - Диапазон поддерживаемых версий, например:
[14.0)(2015 RTM и более поздние версии),[14.3,15.1](обновление 3 для 2015 года вплоть до обновления 1 для 2017 года). Значения диапазона уточнены с помощью:-
[: минимальная версия включительно -
]: максимальная версия включительно -
(: минимальная версия эксклюзивная -
): максимальная версия эксклюзивная
-
Номера версий для Azure DevOps Server:
| Выпуск | Выпуски | Версия |
|---|---|---|
| 2010 | Все выпуски | 10.0 |
| 2012 | Все выпуски | 11,0 |
| 2013 | RTM (выпуск к производству) и обновления | 12.0, 12.1, 12.2, 12.3, 12.4 |
| 2015 | RTM (выпуск к производству) и обновления | 14.0, 14.1, 14.2, 14.3 |
| 2017 | RTM (выпуск к производству) и обновления | 15.0, 15.1 |
| 2018 | RTM (выпуск к производству) и обновления | 16,0 |
| 2019 | RTM (выпуск к производству) и обновления | 17,0 |
| 2020 | RTM (выпуск к производству) и обновления | 18,0 |
Примеры, показывающие версии
Пример. Расширение, которое работает с Azure DevOps
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services.Cloud"
},
{
"id": "Microsoft.TeamFoundation.Server",
"version": "[15.0,)"
}
]
}
Ярлыки
Microsoft.VisualStudio.Services — это ярлык для Azure DevOps.
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
]
}
эквивалентно:
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services.Cloud"
},
{
"id": "Microsoft.TeamFoundation.Server",
"version": "[14.2,)"
}
]
}
Использование целей установки и требований
Целевые объекты установки и требования используются вместе для предоставления пользователям правильного представления продуктов и служб, с которыми совместимо расширение или интеграция. Например, указание целевого Microsoft.VisualStudio.Services объекта установки с требованием api-version/3.0 означает, что расширение работает с Azure DevOps.
Совет
Дополнительные сведения о REST API см. в Справочнике по REST API.
Пример. Расширение, использующее API версии 3.0
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
],
"demands": [
"api-version/3.0"
]
}
Определяет следующие целевые объекты установки:
Microsoft.VisualStudio.Services.Cloud-
Microsoft.TeamFoundation.ServerВерсия:[15.0,)
Пример. Интеграция, использующая API версии 2.0
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services.Integration"
}
],
"demands": [
"api-version/2.0"
]
}
Определяет следующие целевые объекты установки:
Microsoft.VisualStudio.Services.Cloud.Integration-
Microsoft.TeamFoundation.Server.IntegrationВерсия:[14.0,)
Требования
Требования позволяют указать возможности и другие функции, необходимые для расширения. Эти требования можно использовать для ограничения того, где можно опубликовать или установить расширение.
Запросы используются Visual Studio Marketplace для перечисления продуктов и сред, с которыми совместимо расширение, что помогает клиентам понять, работает ли расширение с их версией Azure DevOps, например.
См. следующий пример того, как требования указываются в манифесте расширения.
{
"demands": [
"api-version/3.0",
"contribution/ms.vss-dashboards-web.widget-catalog"
]
}
В этом примере расширение требует версии 3.0 API, что означает, что его можно установить только в Azure DevOps. Кроме того, перед установкой вашего расширения необходимо установить (и включить) в коллекции расширение ms.vss-dashboards-web (и его вклад widget-catalog).
Поддерживаемые требования
| Тип | Описание | Проверено при публикации? | Проверено при установке? |
|---|---|---|---|
environment/cloud |
Требуется выполнение в облачной среде | Да | Да |
environment/onprem |
Требуется выполнение в локальной среде | Да | Да |
api-version/{version} |
Требуется определенная версия API (минимальная) | Нет | Да |
extension/{id} |
Требуется установить или включить определенное расширение. | Нет | Да |
contribution/{id} |
Необходимо, чтобы определенный вклад был доступен | Нет | Да |
contributionType/{id} |
Требуется, чтобы определенный тип вклада был доступен | Нет | Да |
Примечание.
- Используйте
environment/cloudиenvironment/onpremтолько в том случае, если ваше расширение имеет топологические требования, которые необходимо выполнять в данной конкретной среде. -
extension,contribution, иcontributionTypeтребования оцениваются во время установки и требуют, чтобы указанное расширение уже было установлено и включено в организации или коллекции.
Файлы
В files этом разделе вы ссылаетесь на все файлы, которые вы хотите включить в расширение. Можно добавить как папки, так и отдельные файлы:
{
"files": [
{
"path": "hello-world.html", "addressable": true
},
{
"path": "scripts", "addressable": true
},
{
"path": "images/logo.png", "addressable": true, "packagePath": "/"
}
]
}
Свойства
Свойства раздела "Файлы":
- путь к ресурсу на диске, который может относиться к корневому каталогу.
- адресуемый — (необязательно) Установите true, если вы хотите, чтобы файл был URL-адресуемым. По умолчанию false.
- packagePath — (необязательно) Путь к ресурсу в пакете. По умолчанию относительный путь на диске из корневого каталога.
- contentType — (необязательно) тип MIME файла. По умолчанию выбирается на основе лучшего предположения, исходя из расширения файлов и настроек ОС.
- assetType — (необязательно) Укажите значение атрибута Type записи ресурса в манифесте VSIX. Также может быть массив строк, в этом случае для этого файла добавляются несколько записей активов. По умолчанию используется packagePath.
- lang — (необязательно) Язык этого ресурса. Локализованные файлы обслуживаются на основе заголовка Accept-Language. Оставьте пустым, чтобы указать, что этот файл на языке по умолчанию (или резервном). Локализованные версии одного и того же файла должны иметь одинаковый тип ресурса.
Участие в проекте
Каждая запись вклада имеет следующие свойства:
- id — идентификатор ссылки (строка) для вклада. Сделайте каждый идентификатор вклада уникальным в пределах расширения. Смотрите ссылки на вклады и типы.
- тип — идентификатор contributionType данного вклада.
- description — (необязательно) Строка, описывающая предоставленный вклад.
- цели — массив идентификаторов вкладов, на которые направлен этот вклад (в который вносятся средства). См. статью "Целевые вклады".
- properties — (необязательно) Объект, содержащий свойства для вклада, как определено в типе вклада.
Дополнительные сведения см. в обзоре модели вклада.
Типы вкладов
Каждая запись вклада имеет следующие свойства:
- id — идентификатор ссылки (строка) для типа вклада. Сделайте каждый идентификатор типа вклада уникальным в расширении. Смотрите ссылки на вклады и типы.
- name — понятное имя типа вклада.
- description — (необязательно) Строка, описывающая более подробное описание типа вклада.
- properties — (необязательно) Словарь, который сопоставляет имена свойств с описаниями свойств. Эти свойства описывают обязательные и необязательные свойства, которые могут использовать вклады этого типа.
Описания свойств имеют следующие свойства:
- description — (необязательно) Строка, описывающая, для чего используется свойство.
- обязательный — логическое значение, которое, если истинно, указывает, что свойство является обязательным для всех вкладов этого типа.
- тип значения, которое может принимать свойство, например, строка, URI, GUID, логическое значение, целое число, double, dateTime, массив или объект.
Дополнительные сведения см. в обзоре модели вклада.
Ссылка на взносы и типы
Используйте уникальные идентификаторы для ссылки на вклады и типы вкладов. Ссылайтесь на типы с помощью свойства type, и на другие вклады с помощью свойства targets.
-
Полная ссылка на вклад включает идентификатор издателя, идентификатор расширения и идентификатор типа, разделенный точкой (.). Например,
ms.vss-web.hub— это полный идентификатор для вклада с идентификаторомhubв расширенииvss-web, опубликованном издателем "ms" (Майкрософт). -
Относительные ссылки на вклад могут использоваться в манифесте расширения для ссылки на другой вклад или тип вклада в рамках этого же расширения. В этом случае идентификаторы издателя и расширения не включаются, а идентификатор является точкой (
.), за которым следует идентификатор вклада. Например,.hubможет быть использован в ранее упомянутом расширенииvss-webв качестве ярлыка дляms.vss-web.hub.
Целевые вклады
Некоторые внесения действуют как контейнеры, на которые ориентированы другие внесения.
- Вклад в концентратор может быть предназначен для групп концентраторов. При отрисовке страницы в веб-интерфейсе отображаются все материалы центров, предназначенные для выбранной группы хабов. Группы концентраторов нацелены на коллекцию групп концентраторов, которая определяет набор групп концентраторов, которые отображаются в заданной области навигации, например страницы администрирования уровня проекта.
- Различные типы вкладов могут быть нацелены на меню: действие, гиперссылка-действие и поставщик действий. Действия и гиперссылки предоставляют отдельные пункты меню. Поставщик действий может предоставлять несколько динамических элементов меню. Для данного меню элементы агрегируются из всех вкладов (любого из этих типов), которые нацелены на данное конкретное меню.
Добавление значка узла
Дополнительные сведения о добавлении значка в хаб см. в руководстве по иконкам хаба.
Поддерживаемые службы значков
Marketplace поддерживает только значки из следующих доверенных служб:
- api.travis-ci.org/
- badge.fury.io/
- badges.frapsoft.com/
- badges.gitter.im/
- badges.greenkeeper.io/
- cdn.travis-ci.org/
- ci.appveyor.com/
- codeclimate.com/
- codecov.io/
- coveralls.io/
- david-dm.org/
- gemnasium.com/
- img.shields.io/
- isitmaintained.com/
- marketplace.visualstudio.com/
- snyk.io/
- travis-ci.com/
- travis-ci.org/
- vsmarketplacebadges.dev/
- bithound.io/
- deepscan.io/
- githost.io/
- gitlab.com/
- opencollective.co/
Примечание.
Замените vsmarketplacebadge.apphb.com на vsmarketplacebadges.dev.
Чтобы отобразить значок из другой службы, обратитесь в службу поддержки клиентов через сообщество разработчиков.
Пример манифеста
Следующее расширение добавляет действие в контекстное меню завершённых сборок и хаб в группу хабов сборки.
{
"manifestVersion": 1,
"id": "tools",
"version": "0.1.0",
"name": "Fabrikam Tools",
"publisher": "fabrikam",
"description": "Awesome tools to help you and your team do great things everyday.",
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
],
"demands": [
"api-version/3.0"
],
"icons": {
"default": "images/fabrikam-logo.png"
},
"scopes": [
"vso.work",
"vso.code_write"
],
"categories": [
"Plan and track"
],
"tags": [
"working",
"people person",
"search"
],
"branding": {
"color": "rgb(34, 34, 34)",
"theme": "dark"
},
"screenshots": [
{
"path": "screenshots/screen1.png"
},
{
"path": "screenshots/screen2.png"
}
],
"content": {
"details": {
"path": "overview.md"
},
"license": {
"path": "eula.md"
}
},
"links": {
"home": {
"uri": "https://www.fabrikam-fiber-inc.com"
},
"getstarted": {
"uri": "https://www.fabrikam-fiber-inc.com/help/getstarted"
},
"learn": {
"uri": "https://www.fabrikam-fiber-inc.com/features"
},
"support": {
"uri": "https://www.fabrikam-fiber-inc.com/support"
},
"repository": {
"uri": "https://github.com/fabrikam-fiber-inc/tools"
},
"issues": {
"uri": "https://github.com/fabrikam-fiber-inc/tools/issues"
}
},
"repository": {
"type": "git",
"uri": "https://github.com/fabrikam-fiber-inc/myextension"
},
"badges": [
{
"href": "https://travis.ci/fabrikam-fiber-inc/myextension",
"uri": "https://travis.ci/fabrikam-fiber-inc/myextension.svg?branch=master",
"description": "TravisCI build for the project"
},
{
"href": "https://ci.appveyor.com/projects/fabrikam-fiber-inc/myextension",
"uri": "https://ci.appveyor.com/api/projects/status/vlg2sgs2y7tsdxpj4c?svg=true",
"description": "AppVeyor build for the project"
}
],
"contributions": [
{
"id": "showCommits",
"type": "ms.vss-web.action",
"description": "Adds a menu action from builds grid to show associated items.",
"targets": [
"ms.vss-build-web.completed-build-menu"
],
"properties": {
"title": "View associated items",
"uri": "launch.html"
}
}
]
}