Skip to content

[backport] [ci] Stop using Release App token + bump pnpm/action-setup#1918

Merged
TooTallNate merged 6 commits into
stablefrom
nate/backport-release-app-token-removal-stable
May 4, 2026
Merged

[backport] [ci] Stop using Release App token + bump pnpm/action-setup#1918
TooTallNate merged 6 commits into
stablefrom
nate/backport-release-app-token-removal-stable

Conversation

@TooTallNate
Copy link
Copy Markdown
Member

The Release job on stable is failing at the Generate GitHub App Token step because the Release App was temporarily removed:

Failed to create token for "workflow" (attempt 4): Integration not found
GET https://api.github.com/repos/vercel/workflow/installation -> 404

Already fixed on main in #1866 + #1867 (and #1785 for the related pnpm/action-setup upgrade). This PR cherry-picks all three to stable.

Note: this is a re-creation of the previously-merged-by-mistake #1913. Same diff, rebased onto current stable. The earlier PR was inadvertently auto-merged when I changed its base to a co-evolving backport branch instead of opening a new PR.

Cherry-picked commits

In order:

  1. ci: upgrade pnpm/action-setup to v5 and read version from package.json #1785ci: upgrade pnpm/action-setup to v5 and read version from package.json

    • Replaces pnpm/action-setup@v3 + explicit version: 10.14.0 with @v5 (reads packageManager field from package.json, currently pinned at 10.20.0).
    • Conflicts resolved:
      • .github/workflows/backport.yml: doesn't exist on stable (main-only file) → git rm.
      • .github/workflows/docs-checks.yml and .github/workflows/lint.yml: stable's versions are intentionally stripped to no-op stubs (if: false + - run: true). Kept stable's stub bodies; nothing to upgrade since neither uses pnpm/action-setup in those stubs.
  2. ci: stop using Release App token in release workflows #1866ci: stop using Release App token in release workflows

    • .github/workflows/release.yml: removes the Generate GitHub App Token step, switches GITHUB_TOKEN to secrets.GITHUB_TOKEN everywhere, hardcodes git identity to github-actions[bot], adds workflow_dispatch trigger for manual re-runs.
    • .github/workflows/dispatch-front-workflow-release-pr.yml: gates both jobs on if: false && since the cross-repo dispatch to vercel/front requires the App token. (Backport-only file backport.yml skipped — doesn't exist on stable.)
  3. ci: use GitHub API commit mode for changesets action #1867ci: use GitHub API commit mode for changesets action

    • Adds commitMode: github-api to the changesets/action@v1 invocation so commits are GPG-signed via the API (required by org-level branch rulesets that mandate verified signatures on all branches).

Plus a small Copilot Autofix on the comment in dispatch-front-workflow-release-pr.yml that drops the reference to backport.yml (which doesn't exist on stable).

Verification

After cherry-pick, release.yml is byte-identical to main:

diff <(git show HEAD:.github/workflows/release.yml) <(gh api 'repos/vercel/workflow/contents/.github/workflows/release.yml?ref=main' -H 'Accept: application/vnd.github.raw+json')
# (no output)

Caveats (carried over from #1866's PR description)

GitHub Actions' default GITHUB_TOKEN does not trigger downstream workflow runs:

  1. The "Version Packages" PR created by changesets won't auto-trigger required CI checks. Push an empty commit, or close/reopen the PR, to kick off CI before merging.
  2. After merging a "Version Packages" PR, the Release workflow won't auto-run. Use the workflow_dispatch trigger from the Actions tab to publish.

Note on the Vercel – workbench-tanstack-start-workflow CI failure

This PR's CI will show that deploy as failing — same as #1913 did before — because the workbench app doesn't exist on stable yet. That's being addressed separately by #1914. The two PRs land independently.

TooTallNate and others added 5 commits May 4, 2026 11:03
#1785)

* ci: upgrade pnpm/action-setup to v6 and read version from package.json

Removes hardcoded pnpm version (10.14.0) from all workflows and instead
reads the version from the packageManager field in package.json, so CI
stays in sync with the version used locally.

* ci: update setup-workflow-dev composite action to use pnpm/action-setup@v6

Also removes the pnpm-version input since the action now reads the
version from package.json#packageManager.

* ci: downgrade pnpm/action-setup to v5

v6 installs pnpm 11 RC/beta, which has a regression
(pnpm/pnpm#11264, pnpm/action-setup#225/#227/#228) that causes
'ERR_PNPM_BROKEN_LOCKFILE: expected a single document in the stream'
when the project's packageManager pins a 10.x pnpm version. v5 is the
latest stable release before v6 and supports reading the version from
package.json#packageManager.
The Release App has been temporarily removed. Switch the Release and
Backport workflows to use the default GITHUB_TOKEN, and disable the
cross-repo Front dispatch workflow until the App is restored.

Also add a workflow_dispatch trigger to release.yml so the Version
Packages PR can be created/updated manually (since pushes made by
GITHUB_TOKEN do not trigger downstream workflow runs).
The repo enforces "Commits must have verified signatures" via an
org/enterprise-level ruleset, which blocks unsigned commits pushed via
the Git CLI by GITHUB_TOKEN. Switching the changesets action to
commitMode: github-api makes commits GPG-signed by GitHub.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Nathan Rajlich <n@n8.io>
Copilot AI review requested due to automatic review settings May 4, 2026 18:05
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented May 4, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
example-nextjs-workflow-turbopack Ready Ready Preview, Comment May 4, 2026 7:43pm
example-nextjs-workflow-webpack Ready Ready Preview, Comment May 4, 2026 7:43pm
example-workflow Ready Ready Preview, Comment May 4, 2026 7:43pm
workbench-astro-workflow Ready Ready Preview, Comment May 4, 2026 7:43pm
workbench-express-workflow Ready Ready Preview, Comment May 4, 2026 7:43pm
workbench-fastify-workflow Ready Ready Preview, Comment May 4, 2026 7:43pm
workbench-hono-workflow Ready Ready Preview, Comment May 4, 2026 7:43pm
workbench-nitro-workflow Ready Ready Preview, Comment May 4, 2026 7:43pm
workbench-nuxt-workflow Ready Ready Preview, Comment May 4, 2026 7:43pm
workbench-sveltekit-workflow Ready Ready Preview, Comment May 4, 2026 7:43pm
workbench-tanstack-start-workflow Ready Ready Preview, Comment May 4, 2026 7:43pm
workbench-vite-workflow Ready Ready Preview, Comment May 4, 2026 7:43pm
workflow-docs Ready Ready Preview, Comment, Open in v0 May 4, 2026 7:43pm
workflow-swc-playground Ready Ready Preview, Comment May 4, 2026 7:43pm
workflow-tarballs Ready Ready Preview, Comment May 4, 2026 7:43pm
workflow-web Ready Ready Preview, Comment May 4, 2026 7:43pm

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 4, 2026

🦋 Changeset detected

Latest commit: 4f56f12

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 0 packages

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 4, 2026

🧪 E2E Test Results

Some tests failed

Summary

Passed Failed Skipped Total
✅ ▲ Vercel Production 901 0 67 968
✅ 💻 Local Development 970 0 86 1056
✅ 📦 Local Production 970 0 86 1056
✅ 🐘 Local Postgres 970 0 86 1056
✅ 🪟 Windows 88 0 0 88
❌ 🌍 Community Worlds 140 82 0 222
✅ 📋 Other 492 0 36 528
Total 4531 82 361 4974

❌ Failed Tests

🌍 Community Worlds (82 failed)

mongodb (10 failed):

  • readableStreamWorkflow | wrun_01KQT8491X8NPWQ1SSERKCQFT8
  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KQT84ZEYTN3KDVSB0Q5RRND9
  • outputStreamWorkflow no startIndex (reads all chunks)
  • outputStreamWorkflow negative startIndex (reads from end)
  • outputStreamWorkflow - getTailIndex and getStreamChunks getTailIndex returns correct index after stream completes
  • outputStreamWorkflow - getTailIndex and getStreamChunks getTailIndex returns -1 before any chunks are written
  • outputStreamWorkflow - getTailIndex and getStreamChunks getStreamChunks returns same content as reading the stream
  • outputStreamInsideStepWorkflow - getWritable() called inside step functions | wrun_01KQT88M5VG9VH49JWHCYQQ5TK
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KQT8DB3GS4Y19Q8ZX5JANTDV
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KQT8M36HTJSN25M0GRXFSA0P

redis (7 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KQT84ZEYTN3KDVSB0Q5RRND9
  • outputStreamWorkflow negative startIndex (reads from end)
  • outputStreamWorkflow - getTailIndex and getStreamChunks getTailIndex returns correct index after stream completes
  • outputStreamWorkflow - getTailIndex and getStreamChunks getTailIndex returns -1 before any chunks are written
  • outputStreamWorkflow - getTailIndex and getStreamChunks getStreamChunks returns same content as reading the stream
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KQT8DB3GS4Y19Q8ZX5JANTDV
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KQT8M36HTJSN25M0GRXFSA0P

turso (65 failed):

  • addTenWorkflow | wrun_01KQT83PE88Y436J7J4RCX8BT7
  • addTenWorkflow | wrun_01KQT83PE88Y436J7J4RCX8BT7
  • wellKnownAgentWorkflow (.well-known/agent) | wrun_01KQT85VYV4MX8A61VYCXFREC8
  • should work with react rendering in step
  • promiseAllWorkflow | wrun_01KQT83ZSV7WB2T2YPPSR5HVVH
  • promiseRaceWorkflow | wrun_01KQT844MPDPZ8XZH2NA6DRSQB
  • promiseAnyWorkflow | wrun_01KQT846TSAYMN101E738WJ5MB
  • importedStepOnlyWorkflow | wrun_01KQT866R64JXHS7N7ZEWP955Z
  • readableStreamWorkflow | wrun_01KQT8491X8NPWQ1SSERKCQFT8
  • hookWorkflow | wrun_01KQT84K0MNPPJ4FFSYFV28089
  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KQT84ZEYTN3KDVSB0Q5RRND9
  • webhookWorkflow | wrun_01KQT857KQCYGJJAHEMJ9PC9YT
  • sleepingWorkflow | wrun_01KQT85FHX3Y3CBA9WX0TXW00M
  • parallelSleepWorkflow | wrun_01KQT85V98H01KWPAHZVF2HNWC
  • nullByteWorkflow | wrun_01KQT85ZTRGMHR1Y39MCP89HQ0
  • workflowAndStepMetadataWorkflow | wrun_01KQT8621GTQXPYF84DCP4SJHN
  • outputStreamWorkflow no startIndex (reads all chunks)
  • outputStreamWorkflow positive startIndex (skips first chunk)
  • outputStreamWorkflow negative startIndex (reads from end)
  • outputStreamWorkflow - getTailIndex and getStreamChunks getTailIndex returns correct index after stream completes
  • outputStreamWorkflow - getTailIndex and getStreamChunks getTailIndex returns -1 before any chunks are written
  • outputStreamWorkflow - getTailIndex and getStreamChunks getStreamChunks returns same content as reading the stream
  • outputStreamInsideStepWorkflow - getWritable() called inside step functions | wrun_01KQT88M5VG9VH49JWHCYQQ5TK
  • fetchWorkflow | wrun_01KQT891J0R2TP4NSGT0PBMKXM
  • promiseRaceStressTestWorkflow | wrun_01KQT8951J2X7MFEPR1VC9KE1V
  • error handling error propagation workflow errors nested function calls preserve message and stack trace
  • error handling error propagation workflow errors cross-file imports preserve message and stack trace
  • error handling error propagation step errors basic step error preserves message and stack trace
  • error handling error propagation step errors cross-file step error preserves message and function names in stack
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior FatalError fails immediately without retries
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • error handling retry behavior maxRetries=0 disables retries
  • error handling catchability FatalError can be caught and detected with FatalError.is()
  • error handling not registered WorkflowNotRegisteredError fails the run when workflow does not exist
  • error handling not registered StepNotRegisteredError fails the step but workflow can catch it
  • error handling not registered StepNotRegisteredError fails the run when not caught in workflow
  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_01KQT8CP9NP5S7DAG04D3GZZ1H
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KQT8DB3GS4Y19Q8ZX5JANTDV
  • hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KQT8E0ZDKK2D8GHQNP68VGNC
  • stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KQT8ENC0MJZBM8NXQ7NTD6HF
  • stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KQT8EYTM70Y44KRDTRDPDJ4R
  • closureVariableWorkflow - nested step functions with closure variables | wrun_01KQT8F4ME35RQGQSB36J5VYTA
  • spawnWorkflowFromStepWorkflow - spawning a child workflow using start() inside a step | wrun_01KQT8F71H61RWSD3GBASRRWFN
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • pathsAliasWorkflow - TypeScript path aliases resolve correctly | wrun_01KQT8FQBR6FWYKXS9PFF92MYQ
  • Calculator.calculate - static workflow method using static step methods from another class | wrun_01KQT8FX3GYP9EPS4BPEMDJ7KZ
  • AllInOneService.processNumber - static workflow method using sibling static step methods | wrun_01KQT8G453WWBRVVP5GN0B0JQK
  • ChainableService.processWithThis - static step methods using this to reference the class | wrun_01KQT8GFQR1KKK6G2CR0SNC914
  • thisSerializationWorkflow - step function invoked with .call() and .apply() | wrun_01KQT8GPHSMXRKWZ589GC4JAQ6
  • customSerializationWorkflow - custom class serialization with WORKFLOW_SERIALIZE/WORKFLOW_DESERIALIZE | wrun_01KQT8GXM66HTSDMG9R7S59AMK
  • instanceMethodStepWorkflow - instance methods with "use step" directive | wrun_01KQT8H4GWB2019T5CHQGW15GV
  • crossContextSerdeWorkflow - classes defined in step code are deserializable in workflow context | wrun_01KQT8HG842EHQZD6YZ5YF2S4R
  • stepFunctionAsStartArgWorkflow - step function reference passed as start() argument | wrun_01KQT8HSKQYWVTEYSSM5NJKCB5
  • cancelRun - cancelling a running workflow | wrun_01KQT8J0WAX4GHV65ZJA2893ST
  • cancelRun via CLI - cancelling a running workflow | wrun_01KQT8JAC2B1P47V53GDXGD62V
  • pages router addTenWorkflow via pages router
  • pages router promiseAllWorkflow via pages router
  • pages router sleepingWorkflow via pages router
  • hookWithSleepWorkflow - hook payloads delivered correctly with concurrent sleep | wrun_01KQT8JPJREQSE8FD66T3KQX0E
  • sleepInLoopWorkflow - sleep inside loop with steps actually delays each iteration | wrun_01KQT8KCMRWCEQY6CEPP0PMV62
  • sleepWithSequentialStepsWorkflow - sequential steps work with concurrent sleep (control) | wrun_01KQT8KQ5WKHX5DJQHJ8336ZMG
  • importMetaUrlWorkflow - import.meta.url is available in step bundles | wrun_01KQT8KYTBMMGNZBFTY12CDNCY
  • metadataFromHelperWorkflow - getWorkflowMetadata/getStepMetadata work from module-level helper (#1577) | wrun_01KQT8M10B9Z4SCYDCFHF5F62A
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KQT8M36HTJSN25M0GRXFSA0P

Details by Category

✅ ▲ Vercel Production
App Passed Failed Skipped
✅ astro 81 0 7
✅ example 81 0 7
✅ express 81 0 7
✅ fastify 81 0 7
✅ hono 81 0 7
✅ nextjs-turbopack 86 0 2
✅ nextjs-webpack 86 0 2
✅ nitro 81 0 7
✅ nuxt 81 0 7
✅ sveltekit 81 0 7
✅ vite 81 0 7
✅ 💻 Local Development
App Passed Failed Skipped
✅ astro-stable 82 0 6
✅ express-stable 82 0 6
✅ fastify-stable 82 0 6
✅ hono-stable 82 0 6
✅ nextjs-turbopack-canary 69 0 19
✅ nextjs-turbopack-stable 88 0 0
✅ nextjs-webpack-canary 69 0 19
✅ nextjs-webpack-stable 88 0 0
✅ nitro-stable 82 0 6
✅ nuxt-stable 82 0 6
✅ sveltekit-stable 82 0 6
✅ vite-stable 82 0 6
✅ 📦 Local Production
App Passed Failed Skipped
✅ astro-stable 82 0 6
✅ express-stable 82 0 6
✅ fastify-stable 82 0 6
✅ hono-stable 82 0 6
✅ nextjs-turbopack-canary 69 0 19
✅ nextjs-turbopack-stable 88 0 0
✅ nextjs-webpack-canary 69 0 19
✅ nextjs-webpack-stable 88 0 0
✅ nitro-stable 82 0 6
✅ nuxt-stable 82 0 6
✅ sveltekit-stable 82 0 6
✅ vite-stable 82 0 6
✅ 🐘 Local Postgres
App Passed Failed Skipped
✅ astro-stable 82 0 6
✅ express-stable 82 0 6
✅ fastify-stable 82 0 6
✅ hono-stable 82 0 6
✅ nextjs-turbopack-canary 69 0 19
✅ nextjs-turbopack-stable 88 0 0
✅ nextjs-webpack-canary 69 0 19
✅ nextjs-webpack-stable 88 0 0
✅ nitro-stable 82 0 6
✅ nuxt-stable 82 0 6
✅ sveltekit-stable 82 0 6
✅ vite-stable 82 0 6
✅ 🪟 Windows
App Passed Failed Skipped
✅ nextjs-turbopack 88 0 0
❌ 🌍 Community Worlds
App Passed Failed Skipped
✅ mongodb-dev 5 0 0
❌ mongodb 59 10 0
✅ redis-dev 5 0 0
❌ redis 62 7 0
✅ turso-dev 5 0 0
❌ turso 4 65 0
✅ 📋 Other
App Passed Failed Skipped
✅ e2e-local-dev-nest-stable 82 0 6
✅ e2e-local-dev-tanstack-start-stable 82 0 6
✅ e2e-local-postgres-nest-stable 82 0 6
✅ e2e-local-postgres-tanstack-start-stable 82 0 6
✅ e2e-local-prod-nest-stable 82 0 6
✅ e2e-local-prod-tanstack-start-stable 82 0 6

📋 View full workflow run

@socket-security
Copy link
Copy Markdown

socket-security Bot commented May 4, 2026

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedgithub/​pnpm/​action-setup@​a3252b78c470c02df07e9d59298aecedc3ccdd6d ⏵ a8198c4bff370c8506180b035930dea56dbd528898 +9100100100100

View full report

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Backports CI workflow changes to the stable branch to unblock releases after the Release GitHub App was removed, and aligns pnpm setup with the repo’s pinned pnpm version in package.json.

Changes:

  • Remove the “Generate GitHub App Token” dependency from the Release workflow and use secrets.GITHUB_TOKEN instead; add workflow_dispatch for manual release reruns.
  • Configure changesets/action@v1 to use commitMode: github-api to satisfy verified-signature branch rules.
  • Upgrade pnpm setup from pnpm/action-setup@v3 (hardcoded version) to @v5 (reads from package.json#packageManager) across relevant workflows and the setup-workflow-dev composite action.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
.github/workflows/tests.yml Bumps pnpm/action-setup to @v5 in test jobs that set up pnpm directly.
.github/workflows/release.yml Removes App-token generation, switches to secrets.GITHUB_TOKEN, adds workflow_dispatch, and sets commitMode: github-api for Changesets.
.github/workflows/dispatch-front-workflow-release-pr.yml Disables cross-repo dispatch jobs (requires App token) via if: false && ... gating and updates header comment.
.github/workflows/debug-windows.yml Bumps pnpm/action-setup to @v5 for the Windows debug workflow.
.github/actions/setup-workflow-dev/action.yml Removes pnpm-version input and upgrades pnpm setup to pnpm/action-setup@v5.
.changeset/backport-release-app-token-removal.md Adds an (empty-frontmatter) Changeset note documenting the backport/unblock rationale.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@TooTallNate TooTallNate enabled auto-merge (squash) May 4, 2026 19:47
@TooTallNate TooTallNate disabled auto-merge May 4, 2026 21:26
@TooTallNate TooTallNate merged commit 3621f8d into stable May 4, 2026
287 of 296 checks passed
@TooTallNate TooTallNate deleted the nate/backport-release-app-token-removal-stable branch May 4, 2026 21:26
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.

2 participants