Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020
Расширения добавляют возможности в Azure DevOps, определяя типы и экземпляры компонентов. Тип вклада определяет контракт (его свойства и поведение), которые должен реализовывать вклад этого типа. Вклад — это конкретный экземпляр типа вклада (например, концентратор или задача сборки).
Подсказка
Если вы создаёте новое расширение Azure DevOps, попробуйте сначала использовать эти поддерживаемые образцы коллекций — они работают с текущими сборками продуктов и охватывают современные сценарии (например, добавление вкладок на страницы pull request).
- Пример расширения Azure DevOps (GitHub) — компактный начальный пример, демонстрирующий распространенные шаблоны расширений: https://github.com/microsoft/azure-devops-extension-sample
- Примеры расширений Azure DevOps (коллекция устаревших версий и руководство по вкладам) — установите, чтобы проверить цели пользовательского интерфейса, или просмотрите исходный код: https://marketplace.visualstudio.com/items/ms-samples.samples-contributions-guidehttps://github.com/Microsoft/vso-extension-samples/tree/master/contributions-guide
- Примеры Microsoft Learn (просмотр примеров Azure DevOps) — подобранные, актуальные примеры в документации Microsoft: /samples/browse/?terms=azure%20devops%20extension
Если пример не работает в вашей организации, установите его в личную или тестовую организацию и сравните целевые идентификаторы манифеста расширения и версии API с текущими документами. Справочные материалы и API см. в статье:
Дополнительные сведения можно найти здесь
Типы вкладов
Тип вклада определяет свойства и правила, которые должны соответствовать вкладу этого типа. Тип вклада может расширить другой тип вклада, наследуя его свойства.
К общим типам вкладов относятся:
hubactionbuild-task
Каждое определение свойства включает:
- тип свойства (например, string или boolean)
- Является ли свойство обязательным
- необязательное значение по умолчанию
Пример
Объявление типа вклада в манифесте выглядит следующим образом:
{
"contributionTypes": [
{
"id": "hub",
"name": "Web Access Hub",
"description": "A hub that appears in the hubs menu at the top of web pages.",
"properties": {
"name": {
"description": "The text to display for the hub",
"type": "string",
"required": true
},
"uri": {
"description": "URI of the contents of the hub page",
"type": "string",
"required": true
},
"order": {
"description": "Optional ordering value indicating the hub's position within the hub group",
"type": "integer"
}
}
}
]
}
Взносы
Вклад — это экземпляр типа вклада. Например, Queries узел в группе "Рабочие центры" является компонентом типа hub, а Publish Test Results задача сборки — это элемент типа build-task.
Все вклады должны указывать тип и указывать значения для любых свойств, необходимых для этого типа вклада.
Пример
Пример того, как можно объявить вклад хаба в манифесте расширения:
{
"contributions": [
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
],
"properties": {
"name": "Explorer",
"uri": "/_build",
"order": 22
}
}
]
}
Целевые вклады
Вклад может нацелен на один или несколько других вкладов, что создает связь между вкладом и каждым из его целевых объектов. Система может обнаруживать вклады для целевого объекта во время выполнения. Например, hub вклад (Explorer) может быть нацелен на конкретный hub-group вклад (Build).
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
Когда группа концентраторов визуализируется, система может запрашивать все вклады концентраторов, предназначенные для группы концентраторов, чтобы определить, какие концентраторы необходимо визуализировать.
Определение вкладов и типов
Каждый тип вклада и сам вклад должен иметь уникальный идентификатор в расширении, в котором он объявлен.
Полный идентификатор вклада включает следующие элементы, которые разделяются точкой . :
- Идентификатор издателя
- Идентификатор расширения
- Идентификатор типа вклада
Например, полный идентификатор для следующего вклада: ms.vss-web.hub
- Идентификатор издателя:
ms - Идентификатор расширения:
vss-web - Идентификатор вклада и типа:
hub
Ссылки на относительные вклады можно использовать в манифесте расширения для ссылки на другой вклад или тип вклада в рамках этого же расширения. В этом случае идентификаторы издателя и расширения не включаются, а идентификатор — точка . , за которой следует идентификатор вклада. Например, .hub может быть использован в ранее упомянутом расширении vss-web в качестве ярлыка для ms.vss-web.hub.