Skip to content

ci: replace Marketplace PAT with Microsoft Entra OIDC - #490

Merged
Paulo Lacerda (placerda) merged 5 commits into
developfrom
placerda-marketplace-identity
Sep 7, 2026
Merged

ci: replace Marketplace PAT with Microsoft Entra OIDC#490
Paulo Lacerda (placerda) merged 5 commits into
developfrom
placerda-marketplace-identity

Conversation

@placerda

@placerda Paulo Lacerda (placerda) commented Sep 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

Refs #489. Targets develop. User authorized the stable-only release rollout.

  • Replace Marketplace PAT authentication with Microsoft Entra OIDC and a dedicated identity; preserve GitHub RELEASE_PAT and Python Trusted Publishing.
  • Staging now packages a downloadable VSIX candidate only: no Marketplace upload, identity, token permission or approval. Stable tag releases alone publish the extension, preventing candidate/stable version collisions.
  • Apply the same artifact-only rule to local staging scripts; remove npm pre-release publication while retaining pre-release packaging.
  • Verify exact profile and Contributor/Owner/Creator role before publishing, with no PAT fallback. Native duplicate handling and old-tag source/tooling separation are retained.
  • Provide protected, no-upload discovery/check workflows and updated release documentation.

Evidence

Runtime configuration

Dedicated identity, Contributor publisher membership, exact environment federation and client/tenant/profile variables are configured. Marketplace environments retain required human review, restricted refs and no admin bypass; no Azure RBAC roles were granted to the identity. Existing Python/E2E environments and PATs were not changed.

Rollout

Next authorized release: 0.15.1, confirmed unreserved on PyPI and Marketplace before release. Follow develop -> release/v0.15.1 -> main -> tag; staging only uploads Python to TestPyPI and packages the VSIX. The stable Marketplace deployment requires human approval after Python publication.

No actual extension upload has occurred yet. Remove VSCE_PAT only after confirmed stable OIDC publication and reviewing remaining consumers. Preserve RELEASE_PAT. Isolated validation is not an attestation of corporate production policy.

Refs #489. Keep GitHub RELEASE_PAT and Python Trusted Publishing unchanged. Permanent identity setup and authorized production rollout remain pending.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@placerda
Paulo Lacerda (placerda) changed the base branch from main to develop September 6, 2026 21:06
Refs #489. Bootstrap the profile before publisher authorization and keep protected discover/check runs separate from publishing.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Use standard Entra authentication for profile discovery and identity.id from the SecurityRoles API. Keep Basic OAuth for the publisher-role check. Refs #489.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Stage VSIX artifacts without authentication or upload; remove local and npm prerelease publishing paths to avoid reserving stable versions. Refs #489.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Refs #489. Keep staging artifact-only and retire the Marketplace PAT after verified stable publishing.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@placerda
Paulo Lacerda (placerda) marked this pull request as ready for review September 7, 2026 14:43
@placerda
Paulo Lacerda (placerda) merged commit f44d7a5 into develop Sep 7, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant