다음을 통해 공유


기여 모델

Azure DevOps 서비스 | Azure DevOps Server | Azure DevOps Server 2022

확장은 확장 매니페스트에 선언된 기여기여 유형을 통해 Azure DevOps에 기능을 추가합니다. 기여 유형은 해당 형식의 기여가 구현해야 하는 속성과 동작인 계약을 정의합니다. 기여는 기여 유형(예: 허브 또는 빌드 작업)의 구체적인 인스턴스입니다.

팁 (조언)

새 Azure DevOps 확장을 시작하는 경우 먼저 유지 관리되는 샘플 컬렉션을 시도합니다. 이러한 컬렉션은 현재 제품 빌드에서 작동하고 최신 시나리오(예: 끌어오기 요청 페이지에 탭 추가)를 다룹니다.

조직에서 샘플이 작동하지 않는 경우 개인 또는 테스트 조직에 설치하고 확장 매니페스트의 대상 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 확장 내에서 사용될 때, .hubms.vss-web.hub의 바로 가기입니다.