Azure DevOps Services | 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는 다음을 참조하세요.
자세한 내용은 다음을 참조하세요.
기여 형식
기여 유형은 해당 형식의 기여가 따라야 하는 속성과 규칙을 정의합니다. 기여 유형은 속성을 상속하여 다른 기여 유형을 확장할 수 있습니다.
일반적인 기여 유형은 다음과 같습니다.
hubactionbuild-task
각 속성 정의에는 다음이 포함됩니다.
- 속성 형식(예: 문자열 또는 부울)
- 속성이 필요한지 여부
- 선택적 기본값
예시
매니페스트의 기여 형식 선언은 다음과 같습니다.
{
"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"
]
}
허브 그룹이 렌더링되면 시스템은 허브 그룹을 대상으로 하는 모든 허브 기여를 쿼리하여 렌더링할 허브를 알 수 있습니다.
기여도 및 유형 식별
모든 기여 및 기여 유형에는 선언된 확장 내에서 고유한 ID가 있어야 합니다.
전체 기여 식별자에는 점 . 으로 구분하는 다음 항목이 포함됩니다.
- 게시자 ID
- 확장 프로그램 ID
- 기여/유형 ID
예를 들어 다음 ms.vss-web.hub 기여에 대한 전체 식별자는 다음과 같습니다.
- 게시자 ID:
ms - 확장 ID:
vss-web - 기여/형식 ID:
hub
동일한 확장 내에서 다른 기여 또는 기여 유형에 대한 기여 참조에 대해 확장 매니페스트 내에서 상대 기여 참조를 사용할 수 있습니다. 이 경우 게시자 및 확장 ID는 포함되지 않으며 ID는 점 . 뒤에 기여 ID가 잇습니다. 예를 들어 .hub는 앞서 언급한 vss-web 확장 내에서 ms.vss-web.hub의 단축키로 사용될 수 있습니다.