하나의 통합을 패키징하고 게시하다.

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

Visual Studio Marketplace에서 Azure DevOps와 통합되는 도구, 서비스 또는 제품을 게시합니다. Marketplace는 사용자가 통합 및 확장을 검색할 수 있는 중앙 허브입니다.

비고

이 문서는 통합 (외부 도구 및 서비스)에 대해 설명합니다. 확장(Azure DevOps 내에서 실행되는 추가 기능)은 패키지 및 게시 확장을 참조하세요.

필수 조건

Marketplace에 게시하기 전에 다음 요구 사항 목록을 충족해야 합니다.

카테고리 요구 사항
패키징 도구 TFX(확장 패키징 도구)를 설치합니다. 명령 프롬프트에서 npm install -g tfx-cli를 실행합니다.
이미지 권한 아이콘, 로고, 스크린샷 등과 같은 이미지를 사용할 수 있는 적절한 권한이 있는지 확인합니다.
Marketplace 개요 Marketplace에 목록을 설명하는 철저한 overview.md 파일을 포함하십시오.
확장 아이콘 통합, 회사 또는 조직을 나타내는 확장 아이콘을 128x128픽셀 이상 크기(PNG 또는 JPEG)로 포함합니다.
Microsoft 제품 이름 Microsoft 제품의 전체 이름(예: AzDO 또는 기타 약어 대신 Azure DevOps)을 사용합니다.
브랜드 이름 확장 이름에는 브랜드 이름을 사용하지 마세요.

또한 다음 자산이 필요합니다.

  • 통합 스크린샷 하나 이상
  • 사용자에 대한 작업 호출 또는 시작 URL

게시자 만들기

Microsoft를 포함한 모든 확장 또는 통합에는 게시자가 있어야 합니다. 누구나 게시자를 만들고 그 아래에 확장을 게시할 수 있습니다. 개발 팀과 같은 다른 사용자와 게시자 액세스를 공유할 수도 있습니다.

  1. Visual Studio Marketplace 게시 포털에 로그인합니다.

  2. 기존 게시자의 일부가 아닌 경우 + 게시자 만들기를 선택합니다.
    게시자 이름을 입력하면 ID 필드가 입력한 내용에 따라 자동으로 채워집니다.

    스크린샷: 강조 표시된 '게시자 만들기' 버튼

    비고

    • 멀티바이트 문자의 경우 게시자 이름이 16자 이내인지 확인합니다.
    • 게시자 ID를 저장합니다. 확장의 매니페스트 파일에 필요합니다.

    만약 게시자를 만들라는 메시지가 표시되지 않으면, 관련 사이트 아래의 확장 게시로 스크롤합니다.

    • 와 같은 mycompany-myteam고유한 게시자 식별자를 설정합니다. 이 값을 매니페스트에서 속성 publisher로 사용하십시오.
    • 표시 이름(예: My Team.)을 설정합니다.
  3. Marketplace 게시자 계약을 검토한 다음 만들기를 선택합니다.

    확장용 게시자 만들기

게시자를 만든 후에는 게시할 때까지 항목이 표시되지 않지만 항목을 관리할 수 있습니다.

프로젝트 구조 설정

다음 디렉터리 레이아웃을 만듭니다.

home/
├── images/
│   ├── integration-logo.png    (128×128 px minimum)
│   └── screenshot.png          (1366×768 px)
├── overview.md
└── vss-integration.json
파일 Purpose
overview.md 통합에 대한 GitHub Flavored Markdown 설명입니다.
vss-integration.json 마켓플레이스 선언문 확장 매니페스트 참조를 참조하세요.

매니페스트 만들기

다음 정보를 사용하여 vss-integration.json를 생성한 후 통합에 대한 값을 업데이트하세요.

{
    "manifestVersion": 1,
    "id": "myservice",
    "version": "1.0.0",
    "name": "My Service",
    "publisher": "mycompany",
    "description": "Awesome tools to help you and your team do great things everyday.",
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services.Integration"
        }
    ],    
    "icons": {
        "default": "images/service-logo.png"
    },
    "categories": [
        "Plan and track"
    ],
    "tags": [
        "working",
        "people person",
        "search"
    ],
    "screenshots": [
        {
            "path": "images/screen1.png"
        },
        {
            "path": "images/screen2.png"
        }
    ],
    "content": {
        "details": {
            "path": "overview.md"
        },
        "license": {
            "path": "fabrikam-license-terms.md"
        }
    },
    "links": {
        "getstarted": {
            "uri": "https://www.mycompany.com/help/getstarted"
        },
        "learn": {
            "uri": "https://www.mycompany.com/features"
        },
        "support": {
            "uri": "https://www.mycompany.com/support"
        }
    },
    "branding": {
        "color": "rgb(34, 34, 34)",
        "theme": "dark"
    }
}

다음 참조를 사용하여 필드를 업데이트합니다.

다음 속성이 필요합니다.

재산 설명 비고
매니페스트 버전 매니페스트 형식의 버전에 해당하는 숫자입니다. 1이어야 합니다.
아이디 확장의 식별자입니다. Th ID는 동일한 게시자의 확장 간에 고유해야 하는 문자열입니다. 영문자 또는 숫자 문자로 시작하고 'A'~'Z', 'a'~'z', '0'~'9' 및 '-'(하이픈)를 포함해야 합니다. 예: sample-extension.
버전 확장 버전을 지정하는 문자열입니다. 형식은 major.minor.patch와 같아야 하며, 예를 들어 0.1.2 또는 1.0.0와 같이 사용할 수 있습니다. 다음 형식으로 네 번째 숫자를 추가할 수도 있습니다. 0.1.2.3
이름 확장의 짧고 사람이 쉽게 읽을 수 있는 이름입니다. 200자로 제한됩니다. 예: "Fabrikam Agile Board Extension".
게시자 게시자의 식별자 이 식별자는 확장이 게시되는 식별자와 일치해야 합니다. 게시자 만들기 및 관리를 참조하세요.
범주 확장이 속한 범주를 나타내는 문자열 배열입니다. 하나 이상의 범주를 제공해야 하며 포함할 수 있는 범주 수에는 제한이 없습니다. 유효한 값: Azure Repos, Azure Boards, Azure PipelinesAzure Test PlansAzure Artifacts.

노트:
    - 확장을 프로그래밍 방식으로 게시하는 경우 tfx-cli 버전 =0.6.3을 사용합니다 >.
    - Azure DevOps 확장 작업 확장을 사용하여 게시하는 경우 해당 버전이 = 1.2.8인지 >확인합니다. 최근 범위 변경으로 인해 확장 업데이트 승인이 요구될 수 있습니다. 앞에서 언급한 범주는 기본적으로 Visual Studio Marketplace와 Azure DevOps Server 2019 이상에 포함되어 있습니다.
대상 통합 또는 확장에서 지원하는 제품 및 서비스입니다. 자세한 내용은 설치 대상을 참조 하세요. 각 개체에 다음 중 하나를 나타내는 필드가 있는 개체 id 의 배열입니다.
    - Microsoft.VisualStudio.Services(Azure DevOps에서 작동하는 확장),
    - Microsoft.TeamFoundation.Server (Azure DevOps Server에서 작동하는 확장),
    - Microsoft.VisualStudio.Services.Integration
    - Microsoft.TeamFoundation.Server.Integration (Azure DevOps Server와 작동하는 통합)

다음 선택적 속성은 사용자가 확장을 검색하고 학습하는 데 도움이 됩니다.

재산 설명 비고
묘사 확장을 설명하는 몇 가지 문장. 200자로 제한됩니다. 설명은 당신의 확장을 "엘리베이터 피치" 방식으로 표현하는 것이어야 하며, 마켓플레이스에서 확장을 설명하고 사람들이 설치하고 싶도록 만드는 몇 줄이어야 합니다. 아래 예제를 참조하세요.
아이콘 확장을 나타내는 아이콘의 사전입니다. 유효한 키: default BMP, GIF, EXIF, JPG, PNG 및 TIFF 형식의 (128x128 픽셀) (512x512 픽셀)와 같은 large 다른 키는 나중에 지원될 수 있습니다. 각 키의 값은 확장에 있는 아이콘 파일의 경로입니다.
태그 사용자가 확장을 찾는 데 도움이 되는 문자열 태그의 배열입니다. 예: agile, project management, task timer등.
스크린샷 콘텐츠포함할 수 없는 이미지의 배열입니다. 스크린샷은 콘텐츠 안에 포함될 때 더 가치가 있으며, 이를 사용하여 확장을 위한 고품질 시장 세부 정보 페이지를 만들어야 합니다. 콘텐츠 표시되지 않는 덜 중요한 이미지에 대한 스크린샷을 사용합니다. 각 이미지는 1366x768 픽셀이어야 합니다. path 각 항목의 경로는 확장명에서 파일의 경로입니다.
콘텐츠 사용자에 대한 확장을 설명하는 콘텐츠 파일의 사전입니다. 모든 확장에는 견고한 콘텐츠가 포함되어야 합니다. 확장에서 수행할 수 있는 작업을 사용자에게 표시하는 방법입니다. 풍부하고 소모성 있게 만들고 필요한 경우 스크린샷을 포함합니다. overview.md 파일을 기본 콘텐츠 조각으로 포함합니다. 각 파일은 GitHub Flavored Markdown 형식으로 간주됩니다. path 각 항목의 경로는 확장명에서 Markdown 파일의 경로입니다. 유효한 키: details. 다른 키는 나중에 지원될 수 있습니다.
링크 사용자가 확장에 대해 자세히 알아보고, 지원을 받고, 이동하는 데 도움이 되는 링크 사전입니다. 유효한 키: getstarted - 첫 번째 단계, 설정 또는 사용 방법. learn - 사용자가 확장 또는 서비스를 더 잘 이해하는 데 도움이 되는 심층 콘텐츠입니다. license - 최종 사용자 사용권 계약. privacypolicy - 확장에 대한 개인 정보 취급 방침입니다. support - 확장에 대한 도움말 및 지원을 받습니다. 각 키의 값은 링크의 절대 URL인 uri 필드가 있는 개체입니다.
저장소 확장에 대한 소스 코드 리포지토리를 설명하는 속성 사전 유효한 키: type - 리포지토리 유형입니다. 예: git. uri - 리포지토리의 절대 URL입니다.
배지 승인된 배지 사이트에서 TravisCI, Appveyor 등과 같은 외부 메타데이터 배지에 대한 링크 배열 유효한 키: href - 배지를 선택할 때 사용자가 탐색하는 링크입니다. uri - 표시할 배지 이미지의 절대 URL입니다. description - 마우스를 올릴 때 표시할 배지에 대한 설명입니다.
브랜딩 브랜드 관련 속성의 사전입니다. 유효한 키: color - 확장 또는 게시자의 기본 색, 16진수(#ff00ff), RGB(rgb(100,200,50) 또는 지원되는 HTML 색 이름(파란색)일 수 있습니다. theme- 색을 보완합니다. 어두운 브랜딩 색에 어두운 색을 사용하거나 밝은 브랜딩 색에 밝은 색을 사용합니다.

경고

publicfalse로 설정하거나, 공개 표시 준비가 될 때까지 생략합니다.

통합을 패키징하세요.

  1. 아직 설치하지 않은 경우 패키징 도구를 설치합니다.

    npm install -g tfx-cli
    
  2. .vsix 파일로 통합 패키지를 준비하세요.

    tfx extension create --manifest-globs vss-integration.json
    

    팁 (조언)

    패치 버전 번호를 자동으로 증분하는 데 사용합니다 --rev-version .

Marketplace에 게시

확장이 패키지되면 게시자 이름으로 Marketplace에 업로드할 수 있습니다. publisher 확장의 매니페스트 파일에 지정된 식별자는 확장이 업로드된 게시자의 식별자와 일치해야 합니다.

  1. 관리 포털페이지 맨 위에 있는 드롭다운 메뉴에서 게시자를 선택합니다.

  2. 새 확장

    새 확장 드롭다운 메뉴와 강조 표시된 Azure DevOps 선택을 보여 주는 스크린샷

  3. 파일을 끌어서 놓거나 선택하여 이전 패키징 단계에서 만든 VSIX 파일을 찾은 다음 업로드를 선택합니다.

    Azure DevOps에 대한 새 확장 업로드를 보여 주는 스크린샷

    빠른 유효성 검사 후에 확장이 게시된 확장 목록에 표시됩니다. 확장은 당신에게만 보입니다.

    게시된 확장 목록의 확장을 보여 주는 스크린샷

이 시점에서 확장은 계정에 표시되지 않습니다. 다른 사용자에게 표시하려면 확장을 공유해야 합니다.

비고

Microsoft는 게시된 각각의 신규 및 업데이트된 확장 패키지에 대해 바이러스 검사를 실행합니다. 스캔이 안전하다고 확인될 때까지, 우리는 확장을 공용으로 사용하기 위해 Marketplace에 업로드하지 않습니다. 이러한 방식으로 Marketplace 페이지에서 부적절하거나 불쾌한 콘텐츠가 표시되는 것을 방지합니다.

통합을 공유하세요

Azure DevOps 조직에 통합을 설치하려면 먼저 해당 조직과 통합을 공유해야 합니다.

  1. 표시된 항목 목록에서 통합을 선택합니다.
  2. 공유를 선택합니다.
  3. 조직 이름을 입력합니다(예: fabrikam-fiber-incdev.azure.com/fabrikam-fiber-inc의 예입니다).

통합 업데이트

이미 게시한 확장을 업데이트하려면 다음 단계를 수행합니다.

팁 (조언)

확장을 제거하고 다시 업로드하는 대신 업데이트합니다. 두 개의 publisher.extension확장을 유지 관리하는 것이 좋습니다. 즉, 고객을 위해 Marketplace에서 공개되며 publisher.extension-dev, 프라이빗 확장은 개발 및 테스트를 위해 조직과만 공유됩니다. 소스 코드의 두 복사본이 필요하지 않습니다. 각 확장에 대해 별도의 매니페스트 파일을 유지 관리하기만 하면 됩니다. 패키징할 때 tfx-cli 도구에 적절한 매니페스트 파일을 제공합니다. 자세한 내용은 TFX 확장 명령을 참조하세요.

  1. 표시된 항목 목록에서 확장을 선택합니다.
  2. 마우스 오른쪽 단추를 클릭하고 개발 버전에 대한 업데이트를 선택합니다(예: publisher.extension-dev.).
  3. 확장의 유효성을 검사합니다.
  4. 같은 프로덕션 버전 publisher.extension에 동일한 업데이트를 적용합니다.
  5. 확장 프로그램에 대한 .vsix 파일로 이동하여 업로드합니다.

Azure DevOps는 이미 확장이 있는 모든 계정에 대해 업데이트된 버전을 자동으로 설치합니다. 새 설치는 최신 버전도 받습니다.

통합을 공개로 만들기

모든 Marketplace 사용자에게 통합을 표시하려면 매니페스트에 플래그를 publictrue 설정하고 다시 게시합니다.

공개 목록에 필요한 자격에 대한 자세한 내용은 확장 공개 처리를 참조하세요.