savvy-web/Silk Release

Automated release management with changesets, build validation, and GitHub releases

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
app-client-idGitHub App client ID for authenticationyes
app-private-keyGitHub App private key (PEM format)yes
github-tokenGitHub token for GitHub Packages publishing (optional). Use this when the GitHub App doesn't have packages:write permission. Typically pass secrets.GITHUB_TOKEN with workflow permissions: packages: write. no""
skip-token-revokeSkip token revocation in post-action (tokens expire after 1 hour anyway)nofalse
release-branchRelease branch namenochangeset-release/main
target-branchTarget branch for PR (usually main)nomain
pr-title-prefixPrefix for release PR titlenochore: release
dry-runRun in dry-run mode (preview only, no actual changes)nofalse
phaseExplicitly set the workflow phase to run, skipping automatic detection. Useful when phase was already determined by silk-router-action. Valid values: branch-management, validation, publishing, close-issues, none no""
npm-tokenNPM access token for publishing to npmjs.org (optional). When to use: - First-time publish: OIDC requires the package to exist on npmjs.com first - Packages not configured for OIDC: If trusted publishing isn't set up - Fallback authentication: When OIDC fails or isn't available When NOT needed: - Packages configured with npm OIDC trusted publishing - The package already exists and trusts your GitHub repository Token types supported: - Granular access tokens (recommended, 90-day max expiry) - Automation tokens (for CI/CD, bypasses 2FA) Create at: https://www.npmjs.com/settings/tokens no""
strict-warningsWhen 'true', warning-severity validation findings escalate the per-step and unified check-run conclusions from 'neutral' to 'failure', blocking branch-protection-gated auto-merge. Errors always fail regardless. Default 'false' preserves the existing semantics: warnings are advisory (check-run conclusion 'neutral'), errors block. Useful for automated release pipelines (e.g., daily runtime-resolver runs) where an LLM or auto-merge bot gates on check status — a strict warning means human intervention is required before merge. nofalse
sbom-configSBOM metadata configuration (JSON). Provides supplier, copyright, and other metadata for NTIA-compliant SBOM generation. Format: JSON with an "sbom" key containing the metadata: { "sbom": { "supplier": { "name": "Your Company", "url": "https://company.com", "contact": { "email": "security@company.com" } }, "copyright": { "holder": "Your Company LLC" } } } Can also be passed via SILK_RELEASE_SBOM_TEMPLATE environment variable. Input takes precedence over environment variable. no""
custom-registriesCustom registries with authentication (one per line). Format (one registry per line): https://registry.example.com/_authToken=<token> https://registry.example.com/_auth=<base64-credentials> https://registry.example.com/ # Falls back to GitHub App token For reusable workflows, store the entire config in a secret: 1. Create a repository secret (e.g., CUSTOM_REGISTRIES) containing: https://registry.example.com/_authToken=npm_abc123 https://other-registry.com/_authToken=npm_xyz789 2. Pass it to the action: custom-registries: $\{{ secrets.CUSTOM_REGISTRIES }} Note: For npm, use the npm-token input instead of custom-registries Note: JSR uses OIDC trusted publishing (no configuration needed) Note: GitHub Packages authenticates automatically with the GitHub App token no""
namedescription
tokenGenerated GitHub App installation token (for use in subsequent steps)
installation-idGitHub App installation ID
app-slugGitHub App slug (URL-friendly name)
resultStructured JSON describing what the run did. A phase-discriminated object validated by https://json.schemastore.org/silk-release-action.schema.json. Parse it for the full contract; the scalars below mirror the common facts.
phasePhase that ran: branch-management, validation, or publishing
statusHuman-readable run status: no-op, success, partial, or failed
succeededWhether all intended work completed (or correctly did nothing)
package-countNumber of packages the phase touched
release-pr-numberRelease PR number, when one is involved (empty otherwise)