Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Сервисы Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Расширения добавляют возможности в 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 см. в статье:
Дополнительные сведения можно найти здесь
Типы вкладов
Тип вклада определяет свойства и правила, которые должны соответствовать вкладу этого типа. Типы вкладов могут расширить другие типы вкладов, наследуя их свойства.
К общим встроенным типам вкладов относятся:
-
ms.vss-web.hub— страница в веб-интерфейсе -
ms.vss-web.action— действие меню -
ms.vss-distributed-task.task— задача сборки и выпуска
Каждое определение свойства в типе вклада указывает:
-
type — тип данных (например,
string, ,booleaninteger) - обязательный — необходимо ли указать свойство.
- по умолчанию — необязательное значение по умолчанию
Пример типа вклада
Объявление типа вклада в манифесте выглядит следующим образом:
{
"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 концентратор в группе "Рабочий центр" является вкладом типа ms.vss-web.hub, а Publish Test Results задача сборки — это вклад типа ms.vss-distributed-task.task.
Каждый вклад должен указывать тип и предоставлять значения для любых свойств, необходимых для этого типа.
Пример вклада
Следующее объявление о вкладе концентратора в манифесте расширения добавляет концентратор с именем Explorer в группу концентратора сборки:
{
"contributions": [
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
],
"properties": {
"name": "Explorer",
"uri": "/_build",
"order": 22
}
}
]
}
Целевые вклады
Вклад может быть направлен на один или несколько других вкладов, создавая отношение родитель-потомок. Система обнаруживает эти связи во время выполнения, чтобы определить, что нужно отрисовать. Например, вклад hub направлен на вклад hub-group так, чтобы система знала, какие центры принадлежат каким группам.
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
При визуализации группы концентраторов система выполняет запросы на все относящиеся к ней вкладки концентраторов, чтобы определить, какие концентраторы отображать.
Идентификаторы вкладов
Каждый вклад и его тип должны иметь уникальный идентификатор в рамках его расширения.
Полный идентификатор состоит из трех частей, разделенных точками (.):
| Часть | Пример |
|---|---|
| Идентификатор издателя | ms |
| Идентификатор расширения | vss-web |
| Идентификатор типа вклада | hub |
Полный идентификатор: ms.vss-web.hub
В том же манифесте расширения можно использовать относительные ссылки — точка, за которой следует идентификатор вклада. Например, .hub служит сочетанием клавиш для ms.vss-web.hub, когда используется внутри расширения vss-web.