統合をパッケージ化して Marketplace に発行する

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

Azure DevOps または Team Foundation Server (TFS) と統合するツール、サービス、または製品はありますか? その場合は、Visual Studio Marketplace に発行してユーザーが見つけられるようにしてください。 Marketplace は、エクスペリエンスを拡張および強化するツールを見つけるための個人やチーム向けのワンストップ ショップです。

Marketplace を参照して、他の統合と拡張機能の例を確認します。

Note

拡張機能のパッケージ化と公開に関する情報をお探しの場合は、[パッケージ] と [拡張機能の発行] をチェック

発行要件

Marketplace に発行する前に、次の要件の一覧を満たす必要があります。

  • 拡張機能パッケージ ツール (TFX) をインストールします。 コマンド プロンプトから npm install -g tfx-cli を実行します。
  • アイコン、ロゴ、スクリーンショットなどの画像を使用するための適切なアクセス許可が付与されていることを確認します。
  • Marketplace に登録情報を記述する完全な overview.md ファイルを含めます。
  • 拡張機能のアイコンを含めます。サイズは 128 x 128 ピクセル以上です。
  • Microsoft 製品を参照する場合は、Azure DevOps や AzDO などの省略形の代わりに完全な名前を使用します。その他の省略形も使用します。
  • 拡張機能の名前にブランド名を使用しないようにします。

必要なもの

  1. 統合、自分、または会社/組織を表す 128 x 128 ピクセルのロゴ (PNG または JPEG 形式)
  2. 統合を示す 1 つ以上のスクリーンショット
  3. 行動喚起/開始 URL (統合を開始するためにユーザーが移動する必要がある場所)

手順

Marketplace への発行は、統合と主要な検出特性 (スクリーンショット、ロゴ、概要コンテンツなど) を定義するマニフェスト ファイルの作成から始まる反復的なプロセスです。 この情報は、Marketplace 上のユーザーに統合を提示するために使用されます。次に例を示します。

example

Jenkins for Azure DevOps

注: この用語は、 extension以下に示すドキュメントで使用されます。 拡張機能は別の種類の Marketplace アイテムであり、検出の観点から多くの類似点を統合として共有します。

Marketplace での統合に関するヘルプが必要ですか? お問い合わせください。 そして、はい、この電子メール アドレスは実際の人によって監視されます。

発行元の作成

Microsoft の拡張機能を含むすべての拡張機能と統合には、パブリッシャーがいます。 誰でもパブリッシャーを作成し、その下に拡張機能を発行できます。 また、チームが拡張機能を開発している場合は、他のユーザーにパブリッシャーへのアクセス権を付与することもできます。

ユーザーはパブリッシャー (通常は発行元を作成したユーザー) を所有します。 パブリッシャーを他のユーザーと共有することもできます。

  1. Visual Studio Marketplace 発行ポータルに サインインします

  2. 既存のパブリッシャーのメンバーでない場合は、 + パブリッシャーを作成します。 [発行元名] フィールドに名前を入力します。 ID フィールドは、入力した名前に基づいて自動的に設定されます。

    強調表示されたボタン [Create publisher]\(パブリッシャーの作成\) を示すスクリーンショット。

    Note

    拡張機能のマニフェスト ファイルで設定する必要があるため、ID をメモしておきます。

    発行元の作成を求めるメッセージが表示されない場合は、ページの下部まで下にスクロールし、[関連サイトの下に拡張機能を発行する] を選択します。

    • 発行元の識別子を指定します。次に例を示します mycompany-myteam。 この識別子は、拡張マニフェスト ファイル内の属性の publisher 値として使用されます。
    • 次のように、発行元の表示名を指定します。 My Team
  3. Marketplace パブリッシャー契約を確認し、[作成] を選択します

    拡張機能の発行元を作成する

発行元が作成されると、アイテムを管理するように指示されますが、項目はありません。

アイテム マニフェストとその他の資産を格納するフォルダーを作成する

統合を拡張機能としてパッケージ化する前に、このフォルダー内に必要なアセットを含むフォルダーを作成 home する必要があります。

  1. 次を含むフォルダー images を作成します。
    • 統合のロゴ (128 x 128 ピクセル)
    • スクリーンショット (1366 x 768 ピクセル)
  2. という名前のファイルを作成する overview.md
    • 統合についてここで説明する
    • Markdown の詳細については、GitHub Flavored Markdown を参照してください
  3. という名前のファイルを作成する vss-integration.json
    • このファイルは Marketplace 登録情報のマニフェスト ファイルであり、Marketplace 登録情報で拡張機能を記述するための多くのプロパティが含まれています。 拡張機能マニフェストリファレンスは 、ここで参照できます。

拡張機能マニフェスト

  1. ファイルに次の 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"
        }
    }
    
  2. 次のリファレンスを使用して JSON を更新します。

次のプロパティが必要です。

プロパティ 説明 メモ
manifestVersion マニフェスト形式のバージョンに対応する数値。 1 でなければなりません。
ID 拡張機能の識別子。 ID は、同じ発行元の拡張機能間で一意である必要がある文字列です。 アルファベットまたは数字で始まり、'A' から 'Z'、'a' から 'z'、'0' から '9'、および '-' (ハイフン) を含める必要があります。 例: sample-extension
version 拡張機能のバージョンを指定する文字列。 などの0.1.21.0.0形式major.minor.patchにする必要があります。 次の形式の 4 番目の数値を追加することもできます。 0.1.2.3
name 人間が判読できる拡張機能の短い名前。 200 文字に制限されます。 例: "Fabrikam Agile Board Extension"
publisher 発行元の識別子。 この識別子は、拡張機能が公開されている識別子と一致する必要があります。 パブリッシャーの作成と管理に関するページを参照してください
カテゴリ 拡張機能が属するカテゴリを表す文字列の配列。 少なくとも 1 つのカテゴリを指定する必要があり、含めるカテゴリの数に制限はありません。 有効な値: Azure Repos, Azure Boards, , Azure Pipelines, Azure Test Plans, および Azure Artifacts.

注:
    - 拡張機能をプログラムで発行する場合は、tfx-cli のバージョン >=0.6.3 を使用します。
    - Azure DevOps 拡張機能タスク拡張機能を使用して発行する場合は、そのバージョンが >1.2.8 であることを確認します。 最近のスコープの変更により、拡張機能の更新を承認しなければならない場合があります。
    - 以前にメンションされたカテゴリは、上記の Visual Studio Marketplace と Azure DevOps Server 2019 にネイティブに存在します。 以前のバージョンの TFS を対象とする拡張機能の場合:
      - TFS のお客様が接続されたコンテキストで (ローカル ギャラリーではなく) Visual Studio Marketplace を介して拡張機能を取得した場合は、前に説明したカテゴリを使用します。
      - 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 と連携する統合)

これらの省略可能なプロパティは、ユーザーが拡張機能を検出して学習するのに役立ちます。

プロパティ 説明 メモ
説明 拡張機能を説明するいくつかの文。 200 文字に制限されます。 説明は、拡張機能の "エレベーター ピッチ" である必要があります。これは、Marketplace で拡張機能を説明し、ユーザーがそれをインストールすることを望むいくつかの行です。 以下の の例を参照する
アイコン 拡張機能を表すアイコンのディクショナリ。 有効なキー: default BMP、GIF、EXIF、JPG、PNG、TIFF 型の (128 x 128 ピクセル)。 (512 x 512 ピクセル) などの large 他のキーは、今後サポートされる可能性があります。 各キーの値は、拡張機能内のアイコン ファイルへのパスです
tags ユーザーが拡張機能を見つけるのに役立つ文字列タグの配列。 例: agileproject management、、 task timer、など。
スクリーン ショット コンテンツに含められなかった画像の配列。 スクリーンショットはコンテンツで取り上げられるほど価値が高く、拡張機能の質の高い市場の詳細ページを作成するために使用する必要があります。 コンテンツに含まれていない重要度の低い画像には、スクリーンショットを使用します。 各イメージは 1366 x 768 ピクセルである必要があります。 各項目の path パスは、拡張子内のファイルへのパスです。
content ユーザーに対する拡張機能を記述するコンテンツ ファイルのディクショナリ。 すべての 拡張機能には、ソリッド コンテンツが含まれている必要があります。 これは、拡張機能で実行できることをユーザーに表示する方法です。 必要に応じて、豊富で消耗品なスクリーンショットを含めます。 overview.md基本コンテンツの部分としてファイルを含めます。 各ファイルは、GitHub Flavored Markdown 形式であると見なされます。 各項目の path パスは、拡張機能の Markdown ファイルへのパスです。 有効なキー: details. その他のキーは、今後サポートされる可能性があります。
リンク ユーザーが拡張機能の詳細を知り、サポートを受け、移動するのに役立つリンクの辞書。 有効なキー: getstarted - 最初の手順、セットアップまたは使用方法。 learn - ユーザーが拡張機能やサービスをより深く理解するのに役立つより深いコンテンツ。 license - エンドユーザーライセンス契約。 privacypolicy - 拡張機能のプライバシー ポリシー。 support - 拡張機能のヘルプとサポートを受ける。 各キーの値は、リンクの絶対 URL であるフィールドを持つ uri オブジェクトです
リポジトリ 拡張機能のソース コード リポジトリを記述するプロパティのディクショナリ 有効なキー: type - リポジトリの種類。 例: gituri - リポジトリの絶対 URL。
バッジ 承認されたバッジ サイトから、TravisCI、Appveyor などの外部メタデータ バッジへのリンクの 配列 有効なキー: href - バッジを選択するときにユーザーが移動するリンク。 uri - 表示するバッジ画像の絶対 URL。 description - ホバー時に表示されるバッジの説明。
ブランド ブランド関連のプロパティの辞書。 有効なキー: color - 拡張機能または発行元の主色。16 進数 (#ff00ff)、RGB (rgb(100,200,50))、またはサポートされている HTML カラー名 (青) を指定できます。 theme- 色を補完します。暗いブランドの色には濃色を使用し、明るいブランド色には明るい色を使用します。

詳細ページ

  • 1 - 説明
  • 2 - アイコン
  • 3 - カテゴリ
  • 4 - スクリーンショット
  • 5 - コンテンツ (詳細)
  • 6 - リンク
  • 7 - ブランド化

card

拡張機能または統合が Marketplace のすべてのユーザーに途中で表示されないように、"public" 属性が "false" (またはまったく設定されていない) に設定されていることを確認します。

マニフェストと資産をパッケージ化する

パッケージ ツールを取得する (tfx-cli)

コマンド ラインから、Node.jsのコンポーネントである を使用してnpm、Azure DevOps 用クロスプラットフォーム CLI (tfx-cli) をインストールまたは更新できます。

npm i -g tfx-cli

.vsix ファイルに統合をパッケージ化する

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

Note

拡張機能/統合のバージョンは、更新するたびにインクリメントする必要があります。
マニフェストで拡張機能/統合をインクリメントしていない場合は、コマンド ライン スイッチを --rev-version 渡す必要があります。 これにより、拡張機能の パッチ バージョン番号がインクリメントされ、新しいバージョンがマニフェストに保存されます。

統合を Marketplace に発行する

拡張機能がパッケージ化されたら、パブリッシャーの下の Marketplace にアップロードできます。 拡張機能のマニフェスト ファイル指定された識別子はpublisher、拡張機能がアップロードされる発行元の識別子と一致している必要があります。

  1. 管理ポータルから、ページの上部にあるドロップダウン メニューから発行元を選択します。

  2. [新しい拡張機能>の Azure DevOps] を選択します。

    [新しい拡張機能] ドロップダウン メニューと [Azure DevOps] の選択が強調表示されているスクリーンショット。

  3. ファイルをドラッグ アンド ドロップするか選択して、前のパッケージ化手順で作成した VSIX ファイルを見つけて、[アップロード] を選択します

    Azure DevOps の新しい拡張機能のアップロードを示すスクリーンショット。

    クイック検証の後、公開されている拡張機能の一覧に拡張機能が表示されます。 心配しないでください。拡張機能はユーザーにのみ表示されます。

    公開された拡張機能の一覧に拡張機能を示すスクリーンショット。

この時点で、拡張機能はどのアカウントにも表示されず、共有するまでインストールできません。

Note

Microsoft は、公開された新規および更新された拡張機能パッケージごとにウイルス スキャンを実行します。 スキャンがすべてクリアされるまで、一般向けの拡張機能は Marketplace に公開されません。 これにより、Marketplace ページに不適切なコンテンツや不快なコンテンツが表示されるのを防ぐことができます。

統合を共有する

Azure DevOps または TFS の組織に統合をインストールする前に、その組織と統合を共有する必要があります。 統合を実行する唯一の方法であるため、共有は統合の開発とテスト中の要件です。

統合を共有するには、次のタスクを実行します。

  1. 表示される項目の一覧から統合を選択する
  2. [共有] ボタンを選択する
  3. この統合を表示する組織の名前を指定します。
    • たとえば、dev.azure.com/fabrikam-fiber-inc 組織に統合を表示するには、次のように指定しますfabrikam-fiber-inc

アイテムを更新する

既に公開されている拡張機能を変更するには、拡張機能を更新します。

ヒント

削除と再アップロードよりも拡張機能を更新することをお勧めします。 また、 publisher.extensionpublisher.extension-devたとえば、2 つの拡張機能を使用することをお勧めします。 Publisher.extension は Marketplace で公開されており、お客様は Azure DevOps 組織にインストールできます。 Publisher.extension-dev は Marketplace で非公開に保持され、自分が所有および管理する組織と共有できます。 拡張機能のソース コードの 2 つのコピーをメインする必要はありません。 2 つのマニフェスト ファイルメイン含めることができます。拡張機能ごとに 1 つ、拡張機能のパッケージ化中に、それぞれのマニフェスト ファイルを tfx-cli ツールに提供できます。 ツールに必要な引数の詳細については、TFX 拡張コマンドを参照してください

  1. 表示される項目の一覧から拡張機能を選択します。
  2. たとえば、右クリックして [更新] publisher.extension-devを選択します。
  3. 拡張機能を検証します。
  4. たとえば、 publisher.extension運用環境のバージョンに対して同じ更新を行います。
  5. 拡張機能の .vsix を参照してアップロードします。

拡張機能の更新されたバージョンは、既にインストールされているアカウントに自動的にインストールされます。 拡張機能が今後インストールされる新しいアカウントも、最新バージョンを受け取ります。

統合をパブリックにする (すべてのユーザーに表示)

統合を公開する方法については、「リストを公開する」を参照してください。