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)Marketplace (発行) スコープ |
| 発行者 | publisher アカウント Visual Studio Marketplace で設定されます |
Important
より安全なMicrosoft Entraトークンを、リスクの高い個人アクセス トークンよりも使用することを検討してください。 詳細については、「 PAT 使用量の削減」を参照してください。 認証ガイダンスを確認して、ニーズに適した認証メカニズムを選択します。
Azure DevOps用のクロスプラットフォーム CLI を取得する
お持ちでない場合は、NodeJS
ダウンロードしてインストールします。 セットアップ中には、[PATH に追加] が選択された状態にしておいてください。 コマンド プロンプトを開き、「」と入力します。
既に TFX CLI がインストールされている場合は、を実行して最新のリリースに更新できます。
Azure DevOps用のクロスプラットフォーム CLI をインストールする
npm install -g tfx-cli
Microsoft Entra トークンをサービス プリンシパルとして公開する
拡張機能は 、サービス プリンシパルとして発行できます。
- サービス プリンシパルをメンバーとしてパブリッシャー アカウントに追加します。 rest API を使用してサービス プリンシパルの ID を取得するには、Azure CLI経由でサインインし、サービス プリンシパルのプロファイルに対してクエリを実行します。
- Bash
- PowerShell
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 を使用して、 サービス プリンシパルをメンバーとして パブリッシャーに追加します。
- サービス プリンシパルを使用して、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 を用意したら、拡張機能をパッケージ化して発行します。
- 拡張機能のルート ディレクトリにコマンド プロンプトを開きます。
- 次のコマンドを実行して拡張機能を発行します。 メッセージが表示されたら、認証するトークンを入力します。
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
フラグを追加して、拡張機能のパッチ バージョンを自動的にインクリメントします。 このフラグは、新しいバージョンもマニフェストに保存します。
手記
で使用できるオプションはすべて、 コマンドで使用できます。
例
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