Azure DevOps 서비스 | Azure DevOps Server | Azure DevOps Server 2022
확장은 확장 매니페스트에 선언된 기여 및 기여 유형을 통해 Azure DevOps에 기능을 추가합니다. 기여 유형은 해당 형식의 기여가 구현해야 하는 속성과 동작인 계약을 정의합니다. 기여는 기여 유형(예: 허브 또는 빌드 작업)의 구체적인 인스턴스입니다.
팁 (조언)
새 Azure DevOps 확장을 시작하는 경우 먼저 유지 관리되는 샘플 컬렉션을 시도합니다. 이러한 컬렉션은 현재 제품 빌드에서 작동하고 최신 시나리오(예: 끌어오기 요청 페이지에 탭 추가)를 다룹니다.
- Azure DevOps 확장 샘플(GitHub)- 일반적인 확장 패턴을 보여 주는 컴팩트 스타터 샘플: https://github.com/microsoft/azure-devops-extension-sample
- Azure DevOps 확장 샘플(레거시 수집 및 기여 가이드)을 설치하여 UI 대상을 검토하거나 원본을 보려면 https://marketplace.visualstudio.com/items/ms-samples.samples-contributions-guide 및 https://github.com/Microsoft/vso-extension-samples/tree/master/contributions-guide을 확인하세요.
- Microsoft Learn 샘플(선별된 최신의 Azure DevOps 샘플 찾아보기): /samples/browse/?terms=azure%20devops%20extension
조직에서 샘플이 작동하지 않는 경우 개인 또는 테스트 조직에 설치하고 확장 매니페스트의 대상 ID 및 API 버전을 현재 문서와 비교합니다. 참조 및 API는 다음을 참조하세요.
자세한 내용은 다음을 참조하세요.
기여 형식
기여 유형은 해당 형식의 기여가 따라야 하는 속성과 규칙을 정의합니다. 기여 유형은 속성을 상속하여 다른 기여 유형을 확장할 수 있습니다.
일반적인 기본 제공 기여 유형은 다음과 같습니다.
-
ms.vss-web.hub— 웹 UI의 페이지 -
ms.vss-web.action— 메뉴 동작 -
ms.vss-distributed-task.task— 빌드/릴리스 작업
기여 형식의 각 속성 정의는 다음을 지정합니다.
-
type - 데이터 형식(예:
string, ,booleaninteger) - 필수 - 속성을 제공해야 하는지 여부
- default - 선택적 기본값
기여 유형 예제
매니페스트의 기여 형식 선언은 다음과 같습니다.
{
"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"
]
}
허브 그룹이 렌더링되면 시스템은 허브 그룹을 대상으로 하는 모든 허브 기여를 쿼리하여 표시할 허브를 결정합니다.
기여 식별자
모든 기여 및 기여 유형에는 확장 내에서 고유한 ID가 있어야 합니다.
정규화된 식별자에는 점(.)으로 구분된 세 부분이 있습니다.
| 부품 | 예시 |
|---|---|
| 게시자 ID | ms |
| 확장 프로그램 ID | vss-web |
| 기여/유형 ID | hub |
전체 식별자: ms.vss-web.hub
동일한 확장 매니페스트 내에서 상대 참조 (점과 기여 ID)를 사용할 수 있습니다. 예를 들어, vss-web 확장 내에서 사용될 때, .hub는 ms.vss-web.hub의 바로 가기입니다.
관련 콘텐츠
- 확장 매니페스트 참조
- 확장성 지점
- 웹 확장 개발