Visual Studio Marketplace が Trusted Publishing に対応。GitHub Actions または Azure Pipelines が連携 ID を提示し、検証後に拡張を公開する。CI/CD に長寿命の Azure DevOps PAT を置かない。従来の PAT 公開は引き続き利用可能。
GitHub Actions 向けの流れ:
- CI/CD が Visual Studio Marketplace に連携 ID を提示する。
- Marketplace が GitHub Trusted Publishing ポリシー、または Azure Pipelines の workload identity を検証する。
- 公開ツールが検証済み ID で拡張を公開する(PAT 不要)。
GitHub Actions では Marketplace が一時資格情報を発行し、有効期限は 15 分。Azure Pipelines では Microsoft Entra 連携の WIF サービス接続を使い、Marketplace の Trusted Publishing ページにポリシーを作らない。
GitHub Actions: Trusted Publishing ポリシー
- Visual Studio Marketplace にサインインする。
- 拡張を所有する publisher を開く。
- Trusted Publishing を選ぶ。
- Create を展開し、次の項目を入力する。
| 項目 | 内容 |
|---|---|
| Policy name | 例: Release workflow |
| Repository owner | リポジトリを所有する GitHub org またはユーザーのログイン名(例: contoso) |
| Repository | owner を除いたリポジトリ名(例: sample-extension) |
| Workflow | .github/workflows 配下のワークフローファイル名(例: publish.yml) |
| Environment(任意) | ワークフローが GitHub environment を使う場合、その名前(例: production) |
- Create を選ぶ。
プライベートリポジトリでは、ポリシー作成から 48 時間以内に設定どおりのワークフローを実行する。初回のトークン交換が成功するとポリシーは恒久的に有効化される。48 時間内に使われなければ失効し、再度 48 時間の猶予を開ける操作が可能。Trusted Publishing ページで各ポリシーの状態と最終利用を確認できる。
GitHub Actions: VS Code 拡張の公開
公開ジョブに id-token: write を付け、npx @vscode/vsce publish --oidc で OIDC 公開する。GitHub OIDC トークンは 1 回だけ交換可能。
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- run: npm ci
- run: npx @vscode/vsce publish --oidcVisual Studio 拡張は Visual Studio ドキュメントのコマンドライン公開手順に従う。
Azure Pipelines
Azure Pipelines では GitHub 用の Marketplace ポリシーを作らない(Trusted Publishing ページの Create は使わない)。
- Workload Identity Federation(WIF)を使う Azure Pipelines サービス接続を構成する。Microsoft Entra のアプリ登録とサービスプリンシパル、またはマネージド ID を裏付けにできる。
- その ID を Visual Studio Marketplace の publisher メンバーに追加し、Contributor ロールを付与する。
- 公開ステップで WIF サービス接続を参照する。
構成後、Visual Studio Code / Visual Studio 拡張を Marketplace PAT なしで公開できる。
PAT からの移行(GitHub Actions)
既存の vsce + PAT 公開がある場合:
- 対象リポジトリとワークフロー用の Trusted Publishing ポリシーを作成する。
- 公開ジョブに
id-token: writeを追加する。 - 公開コマンドを OIDC 用に更新する。
- ワークフローを実行し、OIDC 公開が成功することを確認する。
- 成功後、ワークフローとリポジトリシークレットから Marketplace PAT を削除する。
初回の Trusted Publishing 実行が成功するまで PAT を残す運用が推奨される。Azure Pipelines も WIF 接続と publisher 側 ID を先に揃え、連携公開が成功してから PAT を外す。
Marketplace Trusted Publishing は GitHub OIDC と Azure Pipelines WIF 以外の OIDC プロバイダーには未対応。