Context
.github/workflows/release.yml currently supplies the long-lived NPM_DEPLOY_TOKEN to both npm publish and the separate npm dist-tag add promotion path. npm trusted publishing can remove the publish credential by using GitHub Actions OIDC, while dist-tag promotion still needs a narrowly scoped token. This supply-chain hardening should be completed before Leia 2.0 releases.
Outcome
Stable and prerelease packages publish from the authorized Leia release workflow through npm trusted publishing, with explicit least-privilege GitHub permissions and no long-lived token exposed to the publish step. Edge-to-latest promotion retains only the minimum separate credential it still requires.
Scope
- Configure npm trusted publishing for the exact
lando/leia repository and release workflow
- Grant
id-token: write and the minimum required contents permission to the publishing job
- Ensure the publishing environment uses npm CLI 11.5.1 or newer
- Remove
NPM_DEPLOY_TOKEN from stable and prerelease npm publish steps
- Retain or replace the dist-tag promotion credential with a granular token limited to the package and operation it needs
- Preserve dry-run package validation and existing stable, edge, and promotion semantics
- Document the required external npm trusted-publisher and token configuration
Out of scope
- Redesigning the release channel or removing edge-to-latest promotion
- Migrating unrelated repository secrets
Acceptance criteria
Delivery and verification
Open a linked draft completion pull request containing the least-privilege workflow change and documentation for external npm configuration. Validate workflow syntax and package dry-run behavior without publishing from an agent host. Before marking it ready, provide either an actual authorized release run or a safe equivalent demonstrating the OIDC publish path, granular dist-tag promotion path, and preserved stable/prerelease semantics.
Constraints and approvals
Changing npm trusted-publisher settings, package tokens, or performing a release requires separate maintainer authorization and must not be inferred from this task.
Task metadata
schema: tanaab/task-metadata/v2
mode: fallback
fallback:
work-size: 5
complexity: medium
impact: high
Context
.github/workflows/release.ymlcurrently supplies the long-livedNPM_DEPLOY_TOKENto bothnpm publishand the separatenpm dist-tag addpromotion path. npm trusted publishing can remove the publish credential by using GitHub Actions OIDC, while dist-tag promotion still needs a narrowly scoped token. This supply-chain hardening should be completed before Leia 2.0 releases.Outcome
Stable and prerelease packages publish from the authorized Leia release workflow through npm trusted publishing, with explicit least-privilege GitHub permissions and no long-lived token exposed to the publish step. Edge-to-latest promotion retains only the minimum separate credential it still requires.
Scope
lando/leiarepository and release workflowid-token: writeand the minimum requiredcontentspermission to the publishing jobNPM_DEPLOY_TOKENfrom stable and prereleasenpm publishstepsOut of scope
Acceptance criteria
lando/leiaGitHub repository and release workflow as its publisherid-token: writeand only the GitHub contents permission it requiresnpm publishcommands succeed through OIDC withoutNPM_DEPLOY_TOKENnpm dist-tag addDelivery and verification
Open a linked draft completion pull request containing the least-privilege workflow change and documentation for external npm configuration. Validate workflow syntax and package dry-run behavior without publishing from an agent host. Before marking it ready, provide either an actual authorized release run or a safe equivalent demonstrating the OIDC publish path, granular dist-tag promotion path, and preserved stable/prerelease semantics.
Constraints and approvals
Changing npm trusted-publisher settings, package tokens, or performing a release requires separate maintainer authorization and must not be inferred from this task.
Task metadata