次の方法で共有


コマンド ラインからAzure DevOps拡張機能を発行する

Azure DevOps サービス |Azure DevOps Server |Azure DevOps Server 2022

Azure DevOps用クロスプラットフォーム CLI (tfx-cli) を使用して、拡張機能を Visual Studio Marketplace に発行します。 詳細については、発行、インストール共有の概要を参照してください。

前提 条件

カテゴリ Requirements
ツール npm 経由でインストールされた Azure DevOps 用クロスプラットフォーム CLI (tfx-cli)
認証 Microsoft Entra トークン (推奨) または パーソナル アクセス トークン (PAT)マーケットプレイス (発行)スコープ
発行者 publisher アカウント Visual Studio Marketplace で設定されます

Important

より安全なMicrosoft Entraトークンを、リスクの高い個人アクセス トークンよりも使用することを検討してください。 詳細については、「 PAT 使用量の削減」を参照してください認証ガイダンスを確認して、ニーズに適した認証メカニズムを選択します。

tfx-cli ツールを取得する

  1. お持ちでない場合は、NodeJSダウンロードしてインストールします。 セットアップ中には、[PATH に追加] が選択された状態にしておいてください。

  2. コマンド プロンプトを開き、「npm i -g tfx-cli」と入力します。

既に TFX CLI がインストールされている場合は、npm up -g tfx-cliを実行して最新のリリースに更新できます。

tfx-cli のインストール

npm install -g tfx-cli

Microsoft Entra トークンを使用して発行する

拡張機能は 、サービス プリンシパルとして発行できます。

  1. サービス プリンシパルをメンバーとしてパブリッシャー アカウントに追加します。 rest API を使用してサービス プリンシパルの ID を取得するには、Azure CLI経由でサインインし、サービス プリンシパルのプロファイルに対してクエリを実行します。
az login --service-principal --username <appId> --password <password> --tenant <tenant-id>
# 499b84ac-1321-427f-aa17-267ca6975798 specifies azure devops as a resource
az rest -u https://app.vssps.visualstudio.com/_apis/profile/profiles/me --resource 499b84ac-1321-427f-aa17-267ca6975798

次に、前の手順の ID を使用して、 サービス プリンシパルをメンバーとして パブリッシャーに追加します。

  1. サービス プリンシパルを使用して、TFX CLI で拡張機能を発行します。 次の TFX CLI コマンドを実行して、そのアクセス トークンを使用します。
tfx extension publish --publisher my-publisher --vsix my-publisher.my-extension-1.0.0.vsix --auth-type pat -t <ENTRA_TOKEN>

個人用アクセス トークンを使用して発行する

Marketplace (発行) スコープを使用して個人用アクセス トークン (PAT) を作成します。

tfx-cli をインストールし、PAT を用意したら、拡張機能をパッケージ化して発行します。

  1. 拡張機能のルート ディレクトリにコマンド プロンプトを開きます。
  2. 次のコマンドを実行して拡張機能を発行します。 メッセージが表示されたら、認証するトークンを入力します。
tfx extension publish --publisher <YOUR_PUBLISHER_ID> --manifest-js <YOUR_EXTENSION_MANIFEST> --share-with <ACCOUNT_NAME>

潜在的なエラー

拡張機能が既に公開されている場合は、次のエラーが表示されることがあります。

Failed Request: Internal Server Error(500) - Version number must increase each time an extension is published. Extension: fabrikam.my-extension  Current version: 0.1.9  Updated version: 0.1.9

--rev-version フラグを追加して、拡張機能のパッチ バージョンを自動的にインクリメントします。 このフラグは、新しいバージョンもマニフェストに保存します。

手記

create で使用できるオプションはすべて、publish コマンドで使用できます。

C:\vso-team-calendar>tfx extension publish --publisher publishFabrikam --manifest-js fabrikam.config.js --share-with fabrikam --rev-version
Copyright Microsoft Corporation
> Personal access token:
Checking if this extension is already published
It is, update the extension
Waiting for server to validate extension package...
Sharing extension with fabrikam.

=== Completed operation: publish extension ===
 - Packaging: C:\vso-team-calendar\fabrikam.team-calendar-0.2.6.vsix
 - Publishing: success
 - Sharing: shared with fabrikam