Справочник по манифесту расширения
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
У каждого расширения есть 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"
}
]
}
Сведения о входных данных см. в разделе ...
Требуемые атрибуты
Свойство | Описание | Основание |
---|---|---|
manifestVersion | Число, соответствующее версии формата манифеста. | должен иметь значение 1 . |
ИД | Идентификатор расширения. | Th ID — это строка, которая должна быть уникальной среди расширений одного издателя. Он должен начинаться с алфавитного или числового символа и содержать "A" до "Z", "a" до "z", "0" до "9" и "-" (дефис). Пример: sample-extension . |
version | Строка, указывающая версию расширения. | Должен быть в формате major.minor.patch , например 0.1.2 или 1.0.0 . Вы также можете добавить четвертый номер для следующего формата: 0.1.2.3 |
name | Короткое, доступное для чтения имя расширения. Ограничено 200 символами. | Пример: "Fabrikam Agile Board Extension" . |
publisher | Идентификатор издателя. | Этот идентификатор должен соответствовать идентификатору, в котором публикуется расширение. См. статью "Создание и управление издателем". |
Категории | Массив строк, представляющих категории, к которой принадлежит расширение. Необходимо указать по крайней мере одну категорию и не ограничивать количество категорий, которые могут быть включены. | Допустимые значения: Azure Repos , , Azure Boards Azure Pipelines , Azure Test Plans и Azure Artifacts .Примечания:
— Если вы используете расширение "Задачи расширения " Azure DevOps для публикации, убедитесь, что его версия — >1.2.8. Возможно, потребуется утвердить обновление расширения из-за недавних изменений области. — Категории, упомянутые ранее, изначально присутствуют в Visual Studio Marketplace и Azure DevOps Server 2019 и выше. Для расширений, предназначенных для более ранних версий TFS:
— Если вы собираетесь предоставить общий доступ к расширению напрямую (то есть не через Visual Studio Marketplace) с клиентом с помощью TFS <=2018, вместо этого используйте следующие категории: код, план и отслеживание, сборка и выпуск, тестирование, совместная работа и интеграция. Если вам нужно предоставить общий доступ как через Visual Studio Marketplace, так и напрямую с клиентом TFS <= 2018, вам потребуется 2 пакета расширений. |
Цели | Продукты и службы, поддерживаемые интеграцией или расширением. Дополнительные сведения см. в разделе целевых объектов установки. | Массив объектов, где каждый объект имеет id поле, указывающее одно из следующих значений:
Microsoft.VisualStudio.Services (расширения, которые работают с Azure DevOps или TFS),Microsoft.TeamFoundation.Server - (расширение, которое работает с TFS),- Microsoft.VisualStudio.Services.Integration (интеграции, которые работают с Azure DevOps или TFS), - Microsoft.TeamFoundation.Server.Integration (интеграции, которые работают с TFS) |
Примеры обязательных атрибутов
{
"manifestVersion": 1,
"id": "tools",
"version": "0.1.0",
"name": "Fabrikam Tools",
"publisher": "fabrikam",
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
]
}
Необязательные атрибуты
Атрибуты среды выполнения
Свойство | Описание | Основание |
---|---|---|
Области | Массив областей авторизации (строк) с разрешениями, необходимыми для расширения. | Например, и vs.code_write указывает, vso.work что расширение должно иметь доступ только для чтения к рабочим элементам и доступ на чтение и запись к исходному коду (и связанному ресурсу). Области отображаются пользователю при установке расширения. Дополнительные сведения см. в полном списке областей. |
Требования | Массив запросов (строк) содержит список возможностей, необходимых вашему расширению. | Например, указывает, api-version/3.0 что расширение использует API версии 3.0 и поэтому не может работать в старых продуктах, которые не поддерживают эту версию. Дополнительные сведения см. в полном списке требований. |
baseUri | (Необязательно) базовый URL-адрес для всех относительных URL-адресов, указанных вкладом расширения. | Например: https://myapp.com/{{account.name}}/ . Это свойство должно оставаться пустым, если содержимое расширения упаковываются с расширением. |
Взносы | Массив вкладов в систему. | |
contributionTypes | Массив типов вкладов, определенных расширением |
{
"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 элемент — это путь к файлу в расширении. |
content | Словарь файлов содержимого, описывающих расширение для пользователей. | Каждое расширение должно содержать твердое содержимое. Вот как вы покажете пользователям, что может сделать расширение. Сделайте его богатым, потребляемым и включите снимки экрана при необходимости. overview.md Включите файл в качестве базового фрагмента содержимого. Предполагается, что каждый файл находится в формате GitHub Flavored Markdown . Каждый path элемент — это путь к файлу Markdown в расширении. Допустимые ключи: details . Другие ключи могут поддерживаться в будущем. |
ссылки | Словарь ссылок, помогающих пользователям узнать больше о расширении, получить поддержку и переместить. | Допустимые ключи: getstarted — первые шаги, как настроить или использовать. learn — более глубокое содержимое, помогающее пользователям лучше понять расширение или службу. license — лицензионное соглашение конечного пользователя. privacypolicy — политика конфиденциальности для расширения. support — получение справки и поддержки расширения. Значение каждого ключа — это объект с uri полем, которое является абсолютным URL-адресом ссылки. |
репозитории | Словарь свойств, описывающих репозиторий исходного кода для расширения | Допустимые ключи: type тип репозитория. Пример: git. uri — абсолютный URL-адрес репозитория. |
Значки | Массив ссылок на значки внешних метаданных, такие как TravisCI, Appveyor и т. д., из утвержденных сайтов индикаторов событий | Допустимые ключи: href — при выборе значка пользователь переходит к ссылке. uri — абсолютный URL-адрес отображаемого изображения значка. description — Описание эмблемы, отображаемой на наведении указателя мыши. |
фирменная символика | Словарь свойств, связанных с брендом. | Допустимые ключи: color — основной цвет расширения или издателя; может быть шестнадцатеричным (#ff00ff), RGB (rgb(100 200 50)) или поддерживаемыми именами цветов HTML (синий). theme — дополняет цвет; используйте темные цвета фирменной символики или свет для более светлых цветов фирменной символики. |
Пометка общедоступного расширения
По умолчанию все расширения в Azure DevOps Marketplace являются частными. Они отображаются только издателю и учетным записям, к которым предоставлен доступ издателю. Если издатель проверен, вы можете сделать расширение общедоступным, задав Public
флаг в манифесте расширения:
{
"galleryFlags": [
"Public"
]
}
Или сделайте так:
{
"public": true
}
Дополнительные сведения см. в разделе "Package/Publish/Install".
Пометка расширения, который должен быть в предварительной версии
Если расширение готово для пользователей в Marketplace, но вы по-прежнему работаете с несколькими ошибками или добавлением функции, вы можете пометить его как 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"
}
}
}
Кроме того, необходимо добавить новый раздел в манифест расширения, чтобы переопределить платное лицензирование. В будущем мы удаляем платную проверку лицензирования и больше не требуем переопределения. Теперь убедитесь, что расширение отображается должным образом. Каждая переопределение состоит из идентификатора и "поведения". Внесите идентификатор в соответствие с идентификатором вкладов, определенных в манифесте.
"licensing": {
"overrides": [
{ "id": "my-hub", "behavior": " AlwaysInclude" }
]
}
Если платное расширение BYOL предлагает пробный период (рекомендуется), можно указать длину пробной версии в днях:
{
"galleryproperties": {
"trialDays": "30"
}
}
Примечание.
Если вы хотите нацелиться на Azure DevOps, но не хотите отображать параметр "Скачать " для расширения, добавьте __DoNotDownload
тег (начинается с двух подчеркивания) в манифест расширения.
Если вы перемещаете расширение из ранее предлагаемого выставления счетов и лицензирования от Корпорации Майкрософт к модели 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 (Q&A), проблемами GitHub или настраиваемым URL-адресом Q&A. Вы можете отключить Q&A в Marketplace с помощью свойства CustomerQnASupport в манифесте.
Интерфейс по умолчанию (изменения манифеста не требуются)
- Для расширений с репозиторием GitHub Marketplace перенаправляет пользователей из раздела Q&A на связанные проблемы GitHub.
- Для расширений без репозитория GitHub включена функция Q&A Marketplace.
Для использования одного из вариантов по умолчанию используйте свойство CustomerQnASupport в манифесте.
{
"CustomerQnASupport": {
"enablemarketplaceqna": true,
"url": "http://uservoice.visualstudio.com"
}
}
Свойства
Свойства раздела "Вопросы и поддержка клиента":
- enablemarketplaceqna — логическое поле, для параметра
true
Marketplace или custom Q&A; false для отключения Q&A - URL-адрес — строка, URL-адрес для настраиваемого Q&A
Примеры использования поддержки 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 |
AdvancedSecurity (чтение) | Предоставляет возможность чтения оповещений, экземпляров результатов, экземпляров результатов анализа. | |
vso.advsec_write |
AdvancedSecurity (чтение и запись) | Предоставляет возможность отправлять анализы в сариф | vso.advsec |
|
vso.advsec_manage |
AdvancedSecurity (чтение, запись и управление ими) | Предоставляет возможность отправлять анализы в сариф | vso.advsec_write |
|
Пулы агентов | vso.agentpools |
Пулы агентов (чтение) | Предоставляет возможность просматривать задачи, пулы, очереди, агенты и в настоящее время выполняющихся или недавно завершенных заданий для агентов. | |
vso.agentpools_manage |
Пулы агентов (чтение, управление) | Предоставляет возможность управлять пулами, очередями и агентами. | vso.agentpools |
|
vso.environment_manage |
Среда (чтение, управление) | Предоставляет возможность управлять пулами, очередями, агентами и средами. | vso.agentpools_manage |
|
Аналитика | vso.analytics |
Аналитика (чтение) | Предоставляет возможность запрашивать данные аналитики. | |
Аудит | vso.auditlog |
Журнал аудита (чтение) | Предоставляет пользователям возможность читать журнал аудита. | |
vso.auditstreams_manage |
Аудит потоков (чтение) | Предоставляет пользователям возможность управлять потоками аудита. | vso.auditlog |
|
Сборка | vso.build |
Сборка (чтение) | Предоставляет возможность доступа к артефактам сборки, включая результаты сборки, определения и запросы, а также возможность получать уведомления о событиях сборки с помощью перехватчиков служб. | vso.hooks_write |
vso.build_execute |
Сборка (чтение и выполнение) | Предоставляет возможность доступа к артефактам сборки, включая результаты сборки, определения и запросы, а также возможность очереди сборки, обновления свойств сборки и возможность получать уведомления о событиях сборки с помощью перехватчиков служб. | vso.build |
|
Код | vso.code |
Код (чтение) | Предоставляет возможность читать исходный код и метаданные о фиксациях, изменениях, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность искать код и получать уведомления о событиях управления версиями с помощью перехватчиков служб. | vso.hooks_write |
vso.code_write |
Код (чтение и запись) | Предоставляет возможность читать, обновлять и удалять исходный код, получать доступ к метаданным о фиксациях, изменениях, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность создавать запросы на вытягивание и проверки кода и получать уведомления о событиях управления версиями с помощью перехватчиков служб. | vso.code |
|
vso.code_manage |
Код (чтение, запись и управление) | Предоставляет возможность читать, обновлять и удалять исходный код, получать доступ к метаданным о фиксациях, изменениях, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность создавать репозитории кода и управлять ими, создавать запросы на вытягивание и проверки кода, а также получать уведомления о событиях управления версиями с помощью перехватчиков служб. | vso.code_write |
|
vso.code_full |
Код (полный) | Предоставляет полный доступ к исходному коду, метаданным о фиксациях, наборах изменений, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность создавать репозитории кода и управлять ими, создавать запросы на вытягивание и проверки кода, а также получать уведомления о событиях управления версиями с помощью перехватчиков служб. Также включает ограниченную поддержку API клиентских OM. | vso.code_manage |
|
vso.code_status |
Код (состояние) | Предоставляет возможность считывания и записи состояния запроса на вытягивание и фиксацию. | ||
Подключенный сервер | vso.connected_server |
Подключенный сервер | Предоставляет возможность доступа к конечным точкам, необходимым с локального подключенного сервера. | |
Объемы обслуживания | vso.entitlements |
Права (чтение) | Предоставляет доступ только для чтения к конечной точке прав лицензирования для получения прав учетной записи. | |
vso.memberentitlementmanagement |
Управление MemberEntitlement (чтение) | Предоставляет возможность читать пользователей, их лицензии, а также проекты и расширения, к которые они могут получить доступ. | ||
vso.memberentitlementmanagement_write |
Управление MemberEntitlement (запись) | Предоставляет возможность управлять пользователями, их лицензиями, а также проектами и расширениями, к которым они могут получить доступ. | vso.memberentitlementmanagement |
|
Расширения | 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 и репозиториев GitHub. | |
vso.githubconnections_manage |
Подключения GitHub (чтение и управление ими) | Предоставляет возможность чтения и управления подключениями GitHub и репозиториями GitHub | vso.githubconnections |
|
Graph и identity | vso.graph |
Graph (чтение) | Предоставляет возможность читать сведения о членстве пользователей, групп, областей и групп. | |
vso.graph_manage |
Graph (управление) | Предоставляет возможность считывать сведения о пользователе, группе, области и членстве в группах, а также добавлять пользователей, группы и управлять членством в группах. | vso.graph |
|
vso.identity |
Удостоверение (чтение) | Предоставляет возможность чтения удостоверений и групп. | ||
vso.identity_manage |
Удостоверение (управление) | Предоставляет возможность чтения, записи и управления удостоверениями и группами. | vso.identity |
|
Группа компьютеров | vso.machinegroup_manage |
Группа развертывания (чтение, управление) | Предоставляет возможность управления пулами групп развертывания и агентов. | vso.agentpools_manage |
Marketplace | vso.gallery |
Marketplace | Предоставляет доступ на чтение к общедоступным и частным элементам и издателям. | vso.profile |
vso.gallery_acquire |
Marketplace (приобретение) | Предоставляет доступ на чтение и возможность получения элементов. | vso.gallery |
|
vso.gallery_publish |
Marketplace (публикация) | Предоставляет доступ на чтение и возможность отправки, обновления и предоставления общего доступа к элементам. | vso.gallery |
|
vso.gallery_manage |
Marketplace (управление) | Предоставляет доступ на чтение и возможность публиковать и управлять элементами и издателями. | vso.gallery_publish |
|
Уведомления | 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 |
Упаковка (чтение и запись) | Предоставляет возможность создавать и читать веб-каналы и пакеты. | vso.packaging |
|
vso.packaging_manage |
Упаковка (чтение, запись и управление) | Предоставляет возможность создавать, читать, обновлять и удалять веб-каналы и пакеты. | vso.packaging_write |
|
Ресурсы конвейера | vso.pipelineresources_use |
Ресурсы конвейера (использование) | Предоставляет возможность утвердить запрос конвейера на использование защищенного ресурса: пул агентов, среда, очередь, репозиторий, безопасные файлы, подключение к службе и группа переменных. | |
vso.pipelineresources_manage |
Ресурсы конвейера (использование и управление ими) | Предоставляет возможность управлять защищенным ресурсом или запросом конвейера для использования защищенного ресурса: пул агентов, среда, очередь, репозиторий, безопасные файлы, подключение к службе и группа переменных. | vso.pipelineresources_manage |
|
Проект и команда | 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_manage |
|
Безопасные файлы | 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 |
|
Параметры | vso.settings |
Параметры (чтение) | Предоставляет возможность чтения параметров. | |
vso.settings_write |
Параметры (чтение и запись) | Предоставляет возможность создавать и читать параметры. | ||
Символы | 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 |
|
Потоки | vso.threads_full |
Потоки PR | Предоставляет возможность чтения и записи для потоков комментариев запроса на вытягивание. | |
Токены | 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 ServicesMicrosoft.TeamFoundation.Server
: устанавливается в Azure DevOps ServerMicrosoft.VisualStudio.Services
: устанавливается в оба. Ярлык дляMicrosoft.VisualStudio.Services.Cloud
иMicrosoft.TeamFoundation.Server
версии[14.2,)
Поддерживаемые идентификаторы для интеграции:
Microsoft.VisualStudio.Services.Cloud.Integration
: интегрируется с Azure DevOps ServicesMicrosoft.TeamFoundation.Server.Integration
: интегрируется с Azure DevOps ServerMicrosoft.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 до 2017 с обновлением 1). Значения диапазона уточнены с помощью:[
: минимальная версия включительно]
: максимальная версия включительно(
: минимальная версия эксклюзивная)
: максимальная версия эксклюзивная
Номера версий для 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 (минимальная) | No | Да |
extension/{id} |
Требуется установить или включить определенное расширение. | No | Да |
contribution/{id} |
Требуется, чтобы конкретный вклад был доступен | No | Да |
contributionType/{id} |
Требуется, чтобы определенный тип вклада был доступен | No | Да |
Примечание.
- Используйте и
environment/onprem
толькоenvironment/cloud
если расширение имеет требования, связанные с топологией, которые требуют выполнения в этой конкретной среде. 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. Оставьте пустым для обозначения этого файла язык по умолчанию (или резервный вариант). Локализованные версии одного и того же файла должны иметь тот же ресурсType.
Участие в проекте
Каждая запись вклада имеет следующие свойства:
- id — идентификатор ссылки (строка) для вклада. Сделайте каждый идентификатор вклада уникальным в пределах расширения. См . ссылки на вклады и типы.
- тип — идентификатор объекта contributionType этого вклада.
- description — (необязательно) Строка, описывающая предоставленный вклад.
- целевые показатели — массив идентификаторов вкладов, предназначенных для этого вклада (способствует). См. статью "Целевые вклады".
- properties — (необязательно) Объект, содержащий свойства для вклада, как определено в типе вклада.
Дополнительные сведения см. в обзоре модели вклада.
Типы вкладов
Каждая запись вклада имеет следующие свойства:
- id — идентификатор ссылки (строка) для типа вклада. Сделайте каждый идентификатор типа вклада уникальным в расширении. См . ссылки на вклады и типы.
- name — понятное имя типа вклада.
- description — (необязательно) Строка, описывающая более подробное описание типа вклада.
- properties — (необязательно) Словарь, который сопоставляет имена свойств с описаниями свойств. Эти свойства описывают обязательные и необязательные свойства, которые могут использовать вклады этого типа.
Описания свойств имеют следующие свойства:
- description — (необязательно) Строка, описывающая, для чего используется свойство.
- обязательный — (необязательно) логическое значение, указывающее, что свойство требуется для всех вкладов этого типа.
- тип значения, которое может иметь свойство, которое может быть строкой, uri, guid, логическим числом, целым числом, double, dateTime, массивом или объектом.
Дополнительные сведения см. в обзоре модели вклада.
Ссылка на вклады и типы
Используйте уникальные идентификаторы для ссылки на вклады и типы вкладов. Ссылочные типы со свойством type
и ссылки на другие вклады со свойством targets
.
- Полная ссылка на вклад включает идентификатор издателя, идентификатор расширения и идентификатор типа, разделенный точкой (.). Например, полный идентификатор для вклада с идентификатором "hub" в расширении vss-web,
ms.vss-web.hub
опубликованном издателем 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"
}
}
]
}