Conversation
Pass workflow_dispatch inputs to shell scripts through env instead of
${{ }} substitution, and validate the npm dist-tag alongside the version
in the first step so a malformed tag fails before install or publish.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
orpc | 4f66cbe | Commit Preview URL Branch Preview URL |
Sep 25 2026, 02:19 AM |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Merging this PR will degrade performance by 12.74%
|
| Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|
| ❌ | octet stream |
640.6 µs | 734.1 µs | -12.74% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing claude/release-workflow-injection (4f66cbe) with main (b050f30)
More templates
@orpc/ai-sdk
@orpc/arktype
@orpc/bun
@orpc/client
@orpc/cloudflare
@orpc/contract
@orpc/experimental-effect
@orpc/evlog
@orpc/hibernation
@orpc/json-schema
@orpc/experimental-lock
@orpc/experimental-msw
@orpc/nest
@orpc/next
@orpc/node
@orpc/openapi
@orpc/opentelemetry
@orpc/pinia-colada
@orpc/pino
@orpc/publisher
@orpc/ratelimit
@orpc/server
@orpc/shared
@orpc/swr
@orpc/tanstack-query
@orpc/trpc
@orpc/valibot
@orpc/zod
commit: |
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
- Inputs no longer reach
run:scripts via${{ }}—versionandtagare passed throughenv(VERSION,TAG_INPUT), closing the template-injection path in the job that holdsid-token: write. - Validation runs first — the new
id: versionstep validates both the version and the dist-tag before checkout, install, bump or publish, so malformed or option-like tags fail fast instead of reachingpnpm publish. - Skip-flag conditions modernized —
github.event.inputs.skip_* != 'true'replaced with typed!inputs.skip_*boolean checks. - Outputs pruned — unused
major/minor/patch/preid/numberstep outputs removed; a validatedtagoutput added.
I verified the validation script end-to-end (valid stable/prerelease/explicit-tag cases pass; x --registry=…, 1.0.0; rm -rf /, -foo and alpha.0 are rejected), confirmed BASH_REMATCH is populated after the negated =~ test, confirmed from GitHub's contexts reference that inputs.<name> preserves the boolean type for workflow_dispatch, and checked that nothing references the removed outputs or this workflow from elsewhere.
DeepSeek Flash (free via Pullfrog for OSS) | 𝕏

The release workflow substituted its
workflow_dispatchinputs (version,tag) directly into shell scripts, so a crafted value could run arbitrary commands in the job that publishes to npm with provenance (id-token: write). The version check didn't help, because it ran after the substituted line had already executed. Inputs now reach the scripts only as environment variables, and both the version and the dist-tag are validated in the first step, before anything is installed, bumped or published.Fixes
versionortaginputs no longer execute: no${{ }}expression remains inside anyrun:scriptx --registry=…) now fail the run immediately instead of reachingpnpm publisha-z,0-9,.,_or-Testing
act, with bump/changelog/publish commands replaced by argument printers. Valid inputs (stable, prerelease, explicit tag, every skip flag on/off) produce identical commands; payloads that executed on the original are rejected in the first step$NO_GIT_CHECKS, so an empty value adds no argument