다음을 통해 공유


기여 모델

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

확장은 기여를 제공하고 다른 확장에서 연결할 수 있는 방법을 정의하여 시스템에 새로운 기능을 추가합니다. 기여 유형은 시스템에 추가할 수 있는 항목을 정의합니다. 기여는 기여 유형의 특정 인스턴스입니다. 예를 들어 hub 핵심 Microsoft 제공 확장에서 정의한 기여 유형입니다. 빌드 허브 그룹 내의 Explorer 허브는 특정 유형의 hub으로서의 기여입니다.

자세한 내용은 다음 참조 문서를 참조하세요.

기여 형식

기여 유형은 해당 형식의 시스템에 대한 모든 기여가 준수해야 하는 계약을 정의합니다. 기여 유형은 다른 기여 유형에서 확장할 수도 있습니다. 기여 형식의 다음 예제는 해당 형식의 인스턴스에 의해 설정된 속성을 정의합니다.

  • hub
  • action
  • build-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": "An optional ordering value which can indicate in which position to place the hub 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가 잇습니다. 예를 들어, 앞서 언급한 확장 내에서 .hubms.vss-web.hub의 바로 가기로 사용할 수 있습니다.