Marketplace에 통합 패키지 및 게시
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure DevOps 또는 TFS(Team Foundation Server)와 통합되는 도구, 서비스 또는 제품이 있나요? 그렇다면 사용자가 Visual Studio Marketplace에 게시하여 찾을 수 있도록 도와주세요. Marketplace는 개인과 팀이 환경을 확장하고 향상시키는 도구를 찾을 수 있는 원스톱 상점입니다.
Marketplace 를 탐색하여 다른 통합 및 확장의 예를 확인합니다.
참고 항목
확장에 대한 패키징 및 게시 정보를 찾고 있는 경우 패키지 및 게시 확장을 검사.
게시 요구 사항
Marketplace에 게시하기 전에 다음 요구 사항 목록을 충족해야 합니다.
- TFX(확장 패키징 도구)를 설치합니다. 명령 프롬프트에서
npm install -g tfx-cli
를 실행합니다. - 아이콘, 로고, 스크린샷 등과 같은 이미지를 사용할 수 있는 적절한 권한이 부여되었는지 확인합니다.
- Marketplace에서 목록을 설명하는 철저한
overview.md
파일을 포함합니다. - 128x128픽셀 이상의 확장 아이콘을 포함합니다.
- Microsoft 제품을 참조하는 경우 약어 대신 전체 이름(예: Azure DevOps 및 AzDO 또는 기타 약어)을 사용합니다.
- 확장 이름에 브랜드 이름을 사용하지 않도록 합니다.
필요한 항목
- 통합, 자신 또는 회사/조직을 나타내는 128x128 픽셀 로고(PNG 또는 JPEG 형식)
- 통합을 보여 주는 최소 하나의 스크린샷
- 작업 호출/시작 URL(사용자가 통합을 시작하기 위해 이동해야 하는 위치)
단계
Marketplace에 게시하는 것은 통합 및 주요 검색 특성(예: 스크린샷, 로고 및 개요 콘텐츠)을 정의하는 매니페스트 파일을 만드는 것으로 시작하는 반복적인 프로세스입니다. 이 정보는 Marketplace의 사용자에 대한 통합을 표시하는 데 사용됩니다. 예를 들면 다음과 같습니다.
참고: 용어 extension
는 아래 참조된 설명서에 사용됩니다. 확장은 다른 유형의 Marketplace 항목이며 검색 관점에서 여러 유사점을 통합으로 공유합니다.
게시자 만들기
Microsoft의 확장을 비롯한 모든 확장 및 통합에는 게시자가 있습니다. 누구나 게시자를 만들고 그 아래에 확장을 게시할 수 있습니다. 팀이 확장을 개발하는 경우 다른 사용자에게 게시자에 대한 액세스 권한을 부여할 수도 있습니다.
사용자는 게시자(일반적으로 게시자를 만든 사용자)를 소유합니다. 게시자를 다른 사용자와 공유할 수도 있습니다.
Visual Studio Marketplace 게시 포털에 로그인합니다.
기존 게시자의 구성원이 아닌 경우 + 게시 자를 만듭니다. 게시자 이름 필드에 이름을 입력합니다. 입력한 이름에 따라 ID 필드가 자동으로 설정됩니다.
참고 항목
확장의 매니페스트 파일에서 ID를 설정해야 하므로 ID를 기록해 둡니다.
게시자를 만들라는 메시지가 표시되지 않으면 페이지 아래쪽으로 스크롤하여 관련 사이트 아래에 있는 확장 게시를 선택합니다.
- 게시자에 대한 식별자를 지정합니다. 예를 들면 다음과
mycompany-myteam
같습니다. 이 식별자는 확장 매니페스트 파일의publisher
특성 값으로 사용됩니다. - 게시자의 표시 이름을 지정합니다. 예를 들면 다음과 같습니다.
My Team
- 게시자에 대한 식별자를 지정합니다. 예를 들면 다음과
Marketplace 게시자 계약을 검토한 다음 만들기를 선택합니다.
게시자가 만들어지면 항목을 관리하라는 지시가 있지만 항목은 없습니다.
항목 매니페스트 및 기타 자산을 포함할 폴더 만들기
통합을 확장으로 패키지하기 전에 이 폴더 내에 필요한 몇 가지 자산을 포함하는 폴더를 만들어야 home
합니다.
- 다음을 포함하도록 호출
images
된 폴더를 만듭니다.- 통합 로고(128x128픽셀)
- 스크린샷(1366x768픽셀)
- 호출된 파일 만들기
overview.md
- 여기에서 통합 설명
- Markdown에 대한 자세한 내용은 GitHub Flavored Markdown을 참조 하세요.
- 호출된 파일 만들기
vss-integration.json
- 이 파일은 Marketplace 목록의 매니페스트 파일이며 Marketplace 목록에서 확장을 설명하는 많은 속성을 포함합니다. 여기에서 확장 매니페스트 참조를 찾아볼 수 있습니다.
확장 매니페스트
vss-integration.json
다음 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" } }
다음 참조를 사용하여 JSON을 업데이트합니다.
속성 | 설명 | 참고 |
---|---|---|
manifestVersion | 매니페스트 형식의 버전에 해당하는 숫자입니다. | 1 이어야 합니다. |
ID | 확장의 식별자입니다. | Th ID는 동일한 게시자의 확장 간에 고유해야 하는 문자열입니다. 영문자 또는 숫자 문자로 시작하고 'A'~'Z', 'a'~'z', '0'~'9' 및 '-'(하이픈)를 포함해야 합니다. 예: sample-extension |
version | 확장 버전을 지정하는 문자열입니다. | 형식이어야 합니다(예: major.minor.patch <0.1.2 A). 다음 형식으로 네 번째 숫자를 추가할 수도 있습니다. 0.1.2.3 |
이름 | 확장의 짧고 사람이 읽을 수 있는 이름입니다. 200자로 제한됩니다. | 예: "Fabrikam Agile Board Extension" |
publisher | 게시자의 식별자입니다. | 이 식별자는 확장이 게시되는 식별자와 일치해야 합니다. 게시자 만들기 및 관리를 참조하세요. |
범주 | 확장이 속한 범주를 나타내는 문자열 배열입니다. 하나 이상의 범주를 제공해야 하며 포함할 수 있는 범주 수에는 제한이 없습니다. | 유효한 값: Azure Repos , Azure Boards , Azure Pipelines Azure Test Plans 및 Azure Artifacts .참고:
- Azure DevOps 확장 작업 확장을 사용하여 게시하는 경우 해당 버전이 = 1.2.8인지 >확인합니다. 최근 범위 변경으로 인해 확장 업데이트를 승인해야 할 수 있습니다. - 이전에 멘션 범주는 기본적으로 Visual Studio Marketplace 및 Azure DevOps Server 2019 이상에 있습니다. 이전 버전의 TFS를 대상으로 하는 확장의 경우:
- TFS <=2018을 사용하여 고객과 확장을 직접 공유하려는 경우(즉, Visual Studio Marketplace를 통해서가 아님) 코드, 계획 및 추적, 빌드 및 릴리스, 테스트, 공동 작업 및 통합 범주를 대신 사용합니다. Visual Studio Marketplace를 통해 TFS <= 2018 고객과 직접 공유해야 하는 경우 2개의 확장 패키지가 있어야 합니다. |
대상 | 통합 또는 확장에서 지원하는 제품 및 서비스입니다. 자세한 내용은 설치 대상을 참조 하세요. | 각 개체에 다음 중 하나를 나타내는 필드가 있는 개체 id 의 배열입니다.
Microsoft.VisualStudio.Services (Azure DevOps 또는 TFS에서 작동하는 확장),- Microsoft.TeamFoundation.Server (TFS에서 작동하는 확장),- Microsoft.VisualStudio.Services.Integration (Azure DevOps 또는 TFS와 작동하는 통합), - Microsoft.TeamFoundation.Server.Integration (TFS와 작동하는 통합) |
이러한 선택적 속성은 사용자가 확장을 검색하고 학습하는 데 도움이 됩니다.
속성 | 설명 | 참고 |
---|---|---|
description | 확장을 설명하는 몇 가지 문장. 200자로 제한됩니다. | 설명은 확장의 "엘리베이터 피치"여야 합니다 . 아래 예제를 참조하세요. |
아이콘 | 확장을 나타내는 아이콘의 사전입니다. | 유효한 키: default BMP, GIF, EXIF, JPG, PNG 및 TIFF 형식의 (128x128 픽셀) (512x512 픽셀)와 같은 large 다른 키는 나중에 지원될 수 있습니다. 각 키의 값은 확장에 있는 아이콘 파일의 경로입니다. |
tags | 사용자가 확장을 찾는 데 도움이 되는 문자열 태그의 배열입니다. | 예: agile , project management , task timer 등. |
스크린샷 | 콘텐츠에 포함할 수 없는 이미지의 배열입니다. | 스크린샷은 콘텐츠에 추천될 때 더 유용하며 확장에 대한 품질 시장 세부 정보 페이지를 만드는 데 도움이 되는 스크린샷을 사용해야 합니다. 콘텐츠에 표시되지 않는 덜 중요한 이미지에 대한 스크린샷을 사용합니다. 각 이미지는 1366x768 픽셀이어야 합니다. path 각 항목의 경로는 확장명에서 파일의 경로입니다. |
content | 사용자에 대한 확장을 설명하는 콘텐츠 파일의 사전입니다. | 모든 확장에는 견고한 콘텐츠가 포함되어야 합니다. 확장에서 수행할 수 있는 작업을 사용자에게 표시하는 방법입니다. 풍부하고 소모성 있게 만들고 필요한 경우 스크린샷을 포함합니다. 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 - 색을 보완합니다. 어두운 브랜딩 색에 어두운 색을 사용하거나 밝은 브랜딩 색에 밝은 색을 사용합니다. |
세부 정보 페이지
- 1 - 설명
- 2 - 아이콘
- 3 - 범주
- 4 - 스크린샷
- 5 - 콘텐츠(세부 정보)
- 6 - 링크
- 7 - 브랜딩
매니페스트 및 자산 패키지
패키지 도구 가져오기(tfx-cli)
명령줄에서 Node.js 구성 요소인 Azure DevOps(tfx-cli)npm
용 플랫폼 간 CLI를 설치하거나 업데이트할 수 있습니다.
npm i -g tfx-cli
.vsix 파일에 통합 패키지
tfx extension create --manifest-globs vss-extension.json
참고 항목
확장/통합의 버전은 모든 업데이트에서 증가해야 합니다.
매니페스트에서 확장/통합을 증가하지 않은 경우 명령줄 스위치를 --rev-version
전달해야 합니다. 이렇게 하면 확장의 패치 버전 번호가 증가하고 새 버전이 매니페스트에 저장됩니다.
Marketplace에 통합 게시
확장이 패키지되면 게시자에서 Marketplace에 업로드할 수 있습니다. publisher
확장의 매니페스트 파일에 지정된 식별자는 확장이 업로드된 게시자의 식별자와 일치해야 합니다.
관리 포털의 페이지 맨 위에 있는 드롭다운 메뉴에서 게시자를 선택합니다.
새 확장>Azure DevOps를 선택합니다.
파일을 끌어서 놓거나 선택하여 이전 패키징 단계에서 만든 VSIX 파일을 찾은 다음 업로드를 선택합니다.
빠른 유효성 검사 후에 확장이 게시된 확장 목록에 표시됩니다. 확장은 사용자에게만 표시됩니다.
이 시점에서 확장은 계정에 표시되지 않으며 공유할 때까지 설치할 수 없습니다.
참고 항목
Microsoft는 게시된 각각의 신규 및 업데이트된 확장 패키지에 대해 바이러스 검사를 실행합니다. 검색이 모두 명확할 때까지는 공용 사용을 위해 Marketplace에 확장을 게시하지 않습니다. 이러한 방식으로 Marketplace 페이지에서 부적절하거나 불쾌한 콘텐츠가 표시되는 것을 방지합니다.
통합 공유
Azure DevOps 또는 TFS에서 조직에 통합을 설치하려면 먼저 해당 조직과 공유해야 합니다. 통합을 실행하는 유일한 방법이므로 공유는 통합을 개발 및 테스트하는 동안 요구 사항입니다.
통합을 공유하려면 다음 작업을 수행합니다.
- 표시된 항목 목록에서 통합 선택
- 공유 단추 선택
- 이 통합을 표시할 조직의 이름을 지정합니다.
- 예를 들어 통합을 dev.azure.com/fabrikam-fiber-inc 조직에 표시하려면 다음을 지정합니다
fabrikam-fiber-inc
.
- 예를 들어 통합을 dev.azure.com/fabrikam-fiber-inc 조직에 표시하려면 다음을 지정합니다
항목 업데이트
이미 게시된 확장을 변경하려면 업데이트합니다.
팁
제거 및 다시 업로드를 통해 확장을 업데이트하는 것이 좋습니다. 예를 들어 publisher.extension
publisher.extension-dev
두 개의 확장도 사용하는 것이 좋습니다.
Publisher.extension
는 고객이 Azure DevOps 조직에 설치할 수 있는 Marketplace에서 공개됩니다. Publisher.extension-dev
는 Marketplace에서 비공개로 유지되며 사용자가 소유하고 제어하는 조직과 공유할 수 있습니다.
확장의 소스 코드 복사본 2개를 기본 필요가 없습니다. 각 확장에 대해 하나씩, 확장을 패키징하는 동안 tfx-cli 도구에 해당 매니페스트 파일을 제공할 수 있는 두 개의 매니페스트 파일을 기본 수 있습니다. 도구에 필요한 인수에 대한 자세한 내용은 TFX 확장 명령을 참조 하세요.
- 표시된 항목 목록에서 확장을 선택합니다.
- 예를 들어 마우스 오른쪽 단추를 클릭하고 업데이트를
publisher.extension-dev
선택합니다. - 확장의 유효성을 검사합니다.
- 예를 들어 프로덕션 버전을
publisher.extension
동일하게 업데이트합니다. - 확장에 대한 .vsix로 이동하여 업로드합니다.
확장의 업데이트된 버전은 이미 설치된 계정에 자동으로 설치됩니다. 나중에 확장이 설치된 새 계정도 최신 버전을 받습니다.
통합 공개(모든 사용자가 볼 수 있음)
통합을 공개하는 방법에 대한 자세한 내용은 목록 공개를 참조하세요.