Model współtworzenia
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Rozszerzenia dodają nowe możliwości do systemu, udostępniając współtworzenie i definiując sposoby podłączania do nich innych rozszerzeń. Typ współtworzenia definiuje coś, co można dodać do systemu. Współtworzenie jest konkretnym wystąpieniem typu współtworzenia. Na przykład hub
jest typem współtworzenia zdefiniowanym przez podstawowe rozszerzenie dostarczone przez firmę Microsoft. Centrum Explorer
w grupie Centrum kompilacji to określony wkład typu hub
.
Więcej informacji można znaleźć w następującej dokumentacji:
Typy kontrybuców
Typ współtworzenia definiuje umowę, z którą muszą być zgodne wszystkie współtworzenie systemu tego typu. Typ współtworzenia może również rozciągać się od innego typu współtworzenia. Następujące przykłady typów współtworzenia definiują właściwości ustawione przez wystąpienia tego typu:
hub
action
build-task
Każda definicja właściwości określa następujące aspekty:
- Typ właściwości, na przykład ciąg, wartość logiczna itd.
- Czy właściwość jest wymagana
- Wartość domyślna, jeśli nie jest określona przez współtworzenie (opcjonalnie).
Przykład
Oto przykład deklaracji typu współtworzenia w manifeście rozszerzenia:
{
...
"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": "An optional ordering value which can indicate in which position to place the hub within the hub group",
"type": "integer"
}
...
}
}
]
}
Udziały
Współtworzenie jest wystąpieniem typu współtworzenia. Na przykład Queries
centrum w grupie Centrum pracy jest współtworzem typu hub
, a Publish Test Results
zadanie kompilacji jest współtworzenie typu build-task
.
Wszystkie współtworzenie musi określać typ i określać wartości dla wszystkich właściwości wymaganych przez ten typ udziału.
Przykład
Oto przykład deklaracji współtworzenia centrum w manifeście rozszerzenia:
{
"contributions": [
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
],
"properties": {
"name": "Explorer",
"uri": "/_build",
"order": 22
}
}
]
}
Udział docelowy
Udział może być ukierunkowany na co najmniej jeden inny wkład, który tworzy relację między wkładem a każdym z jego celów. System może odnajdywać współtworzenie elementu docelowego w czasie wykonywania. Na przykład współtworzenie hub
(Explorer
) może dotyczyć określonego hub-group
udziału (Build
).
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
Gdy grupa piasty jest renderowana, system może wysyłać zapytania o wszystkie współtworzenie koncentratora, które są przeznaczone dla grupy koncentratora, aby wiedzieć, które koncentratory mają być renderowane.
Identyfikowanie kontrybutów i typów
Każdy typ współtworzenia i współtworzenia musi mieć unikatowy identyfikator w rozszerzeniu, w nim zadeklarowanym.
Pełny identyfikator współtworzenia zawiera następujące elementy, które należy oddzielić kropką .
:
- Identyfikator wydawcy
- Identyfikator rozszerzenia
- Identyfikator udziału/typu
Na przykład: ms.vss-web.hub
jest pełnym identyfikatorem następującego udziału:
- Identyfikator wydawcy:
ms
- Identyfikator rozszerzenia:
vss-web
- Identyfikator udziału/typu:
hub
Odwołania do współtworzenia względnego można używać w manifeście rozszerzenia dla odwołania współtworzenia do innego typu współtworzenia lub współtworzenia w ramach tego samego rozszerzenia. W takim przypadku identyfikatory wydawcy i rozszerzenia nie są uwzględniane, a identyfikator jest kropką .
, po której następuje identyfikator udziału. Na przykład .hub
można użyć w vss-web
rozszerzeniu wymienionym wcześniej jako skrót dla elementu ms.vss-web.hub
.