ci(vscode): publish the extension to the Marketplace on difit releases#424
Open
yoshiko-pg wants to merge 3 commits into
Open
ci(vscode): publish the extension to the Marketplace on difit releases#424yoshiko-pg wants to merge 3 commits into
yoshiko-pg wants to merge 3 commits into
Conversation
Add a publish-vscode workflow that runs when a GitHub release is published (same trigger as the npm publish workflow): - Rewrites the extension version to the released difit version, so the bundled extension always tracks the CLI release - Builds and packages the VSIX via the existing package:vscode script - Publishes to the VS Code Marketplace with the VSCE_PAT secret, and to Open VSX when an OVSX_PAT secret is configured - Attaches the .vsix to the GitHub release for manual installs Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Switch the Marketplace publish step to the officially recommended secure automated publishing flow: the workflow's release environment exchanges a GitHub OIDC token for a Microsoft Entra ID credential via azure/login (workload identity federation), and vsce publishes with --azure-credential. Azure DevOps global PATs retire on 2026-12-01, so no long-lived publishing secret is stored. Also remove the manual vscode-release Codex skill, which is superseded by the automated workflow. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The Marketplace already has the extension published as yoshiko-pg.difit; keeping the package name difit-vscode would create a separate listing instead of updating it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds
.github/workflows/publish-vscode.yml, triggered when a GitHub release is published (the same trigger as the npm publish workflow) plusworkflow_dispatchfor manual runs:packages/vscode/package.jsonversion to the released difit version, so the extension version always matches the CLI it bundles. The in-repo0.1.0stays as a placeholder.pnpm run package:vscodescript (root build → esbuild bundles → watcher prebuilds →vsce package).releaseenvironment exchanges a GitHub OIDC token for a Microsoft Entra ID credential viaazure/login(workload identity federation), then runsvsce publish --azure-credential. No long-lived Marketplace PAT is stored — relevant because Azure DevOps global PATs retire on 2026-12-01. Also publishes to Open VSX when anOVSX_PATsecret exists (Open VSX has no OIDC flow; step is skipped otherwise)..vsixto the GitHub release for manual installs.Also removes the manual
vscode-releaseCodex skill, superseded by this workflow.One-time setup required before this works
repo:yoshiko-pg/difit:environment:release(issuerhttps://token.actions.githubusercontent.com).yoshiko-pgpublisher.AZURE_CLIENT_ID,AZURE_TENANT_ID,AZURE_SUBSCRIPTION_ID(identifiers of the identity above).The
releaseenvironment is created automatically on the first run; optionally add protection rules to it.Notes
🤖 Generated with Claude Code