Skip to content

ci: stop using Release App token in release workflows#1866

Merged
TooTallNate merged 1 commit intomainfrom
ci/remove-release-bot
Apr 29, 2026
Merged

ci: stop using Release App token in release workflows#1866
TooTallNate merged 1 commit intomainfrom
ci/remove-release-bot

Conversation

@TooTallNate
Copy link
Copy Markdown
Member

Summary

The Release App has been temporarily removed, which currently blocks publishing new releases of the Workflow packages. This PR removes our reliance on the App token in the CI workflows so that releases can resume.

Changes

  • release.yml: Removed the Generate GitHub App Token step. Checkout, changesets, and gh release calls now use the default GITHUB_TOKEN. Git identity is hardcoded to github-actions[bot]. Added a workflow_dispatch trigger so the Version Packages PR can be created/updated manually.
  • backport.yml: Removed the App token step. Bumped job permissions from contents: read to contents: write / pull-requests: write / issues: write (needed for pushing to stable, opening backport PRs, and commenting). All github-token references switched to ${{ secrets.GITHUB_TOKEN }}.
  • dispatch-front-workflow-release-pr.yml: Disabled both jobs (if: false && ...) since cross-repo dispatch to vercel/front requires an App token. Re-enable when the App is restored.

Caveats (pre-existing GitHub Actions behavior with GITHUB_TOKEN)

Pushes/PRs created by GITHUB_TOKEN do not trigger downstream workflow runs. Implications:

  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 (or after a clean cherry-pick from backport.yml lands on stable), the Release workflow won't auto-run. Use the new workflow_dispatch trigger from the Actions tab to publish.
  3. If stable has branch protection that disallows pushes from GITHUB_TOKEN, the backport's clean-cherry-pick git push origin stable step will fail. The AI-resolved-conflict path opens a PR instead, so that path should still work.

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).
Copilot AI review requested due to automatic review settings April 29, 2026 16:55
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Apr 29, 2026

⚠️ No Changeset found

Latest commit: 56a46ba

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

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

Click here to learn what changesets are, and how to add one.

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

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Apr 29, 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 Apr 29, 2026 4:58pm
example-nextjs-workflow-webpack Ready Ready Preview, Comment Apr 29, 2026 4:58pm
example-workflow Ready Ready Preview, Comment Apr 29, 2026 4:58pm
workbench-astro-workflow Ready Ready Preview, Comment Apr 29, 2026 4:58pm
workbench-express-workflow Ready Ready Preview, Comment Apr 29, 2026 4:58pm
workbench-fastify-workflow Ready Ready Preview, Comment Apr 29, 2026 4:58pm
workbench-hono-workflow Ready Ready Preview, Comment Apr 29, 2026 4:58pm
workbench-nitro-workflow Ready Ready Preview, Comment Apr 29, 2026 4:58pm
workbench-nuxt-workflow Ready Ready Preview, Comment Apr 29, 2026 4:58pm
workbench-sveltekit-workflow Ready Ready Preview, Comment Apr 29, 2026 4:58pm
workbench-vite-workflow Ready Ready Preview, Comment Apr 29, 2026 4:58pm
workflow-docs Ready Ready Preview, Comment, Open in v0 Apr 29, 2026 4:58pm
workflow-swc-playground Ready Ready Preview, Comment Apr 29, 2026 4:58pm
workflow-web Ready Ready Preview, Comment Apr 29, 2026 4:58pm

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 29, 2026

📊 Benchmark Results

📈 Comparing against baseline from main branch. Green 🟢 = faster, Red 🔺 = slower.

workflow with no steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 0.038s (-10.9% 🟢) 1.005s (~) 0.967s 10 1.00x
💻 Local Express 0.043s (-2.9%) 1.005s (~) 0.962s 10 1.12x
💻 Local Next.js (Turbopack) 0.048s 1.005s 0.957s 10 1.25x
🐘 Postgres Next.js (Turbopack) 0.058s 1.010s 0.951s 10 1.52x
🐘 Postgres Nitro 0.059s (-38.4% 🟢) 1.010s (-3.1%) 0.952s 10 1.53x
🐘 Postgres Express 0.061s (+5.0%) 1.011s (~) 0.950s 10 1.59x
workflow with 1 step

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 1.094s (-3.3%) 2.006s (~) 0.913s 10 1.00x
💻 Local Next.js (Turbopack) 1.117s 2.006s 0.889s 10 1.02x
💻 Local Express 1.131s (+0.5%) 2.006s (~) 0.875s 10 1.03x
🐘 Postgres Next.js (Turbopack) 1.140s 2.010s 0.870s 10 1.04x
🐘 Postgres Express 1.148s (~) 2.010s (~) 0.862s 10 1.05x
🐘 Postgres Nitro 1.151s (+0.9%) 2.009s (~) 0.858s 10 1.05x
workflow with 10 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 10.667s (-2.5%) 11.023s (~) 0.356s 3 1.00x
💻 Local Next.js (Turbopack) 10.851s 11.026s 0.175s 3 1.02x
🐘 Postgres Nitro 10.875s (~) 11.020s (~) 0.145s 3 1.02x
🐘 Postgres Next.js (Turbopack) 10.887s 11.024s 0.137s 3 1.02x
💻 Local Express 10.942s (~) 11.023s (~) 0.081s 3 1.03x
🐘 Postgres Express 10.984s (~) 11.355s (+3.0%) 0.371s 3 1.03x
workflow with 25 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 14.221s (-5.6% 🟢) 15.028s (-6.2% 🟢) 0.807s 4 1.00x
🐘 Postgres Next.js (Turbopack) 14.478s 15.028s 0.550s 4 1.02x
🐘 Postgres Nitro 14.555s (~) 15.024s (~) 0.469s 4 1.02x
🐘 Postgres Express 14.604s (~) 15.022s (~) 0.418s 4 1.03x
💻 Local Next.js (Turbopack) 14.784s 15.029s 0.245s 4 1.04x
💻 Local Express 14.974s (~) 15.279s (+1.7%) 0.305s 4 1.05x
workflow with 50 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 13.946s 14.453s 0.507s 7 1.00x
🐘 Postgres Nitro 14.017s (~) 14.594s (+2.0%) 0.577s 7 1.01x
🐘 Postgres Express 14.164s (+1.1%) 15.023s (+2.9%) 0.859s 6 1.02x
💻 Local Nitro 14.958s (-10.9% 🟢) 15.197s (-10.8% 🟢) 0.239s 6 1.07x
💻 Local Next.js (Turbopack) 16.325s 17.032s 0.708s 6 1.17x
💻 Local Express 16.398s (-1.2%) 17.030s (~) 0.633s 6 1.18x
Promise.all with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 1.230s 2.009s 0.779s 15 1.00x
🐘 Postgres Nitro 1.274s (~) 2.009s (~) 0.735s 15 1.04x
🐘 Postgres Express 1.279s (+1.5%) 2.010s (~) 0.731s 15 1.04x
💻 Local Nitro 1.477s (-9.5% 🟢) 2.005s (-3.3%) 0.529s 15 1.20x
💻 Local Next.js (Turbopack) 1.515s 2.006s 0.491s 15 1.23x
💻 Local Express 1.532s (+2.9%) 2.006s (~) 0.474s 15 1.25x
Promise.all with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 2.348s (~) 3.008s (~) 0.660s 10 1.00x
🐘 Postgres Express 2.364s (~) 3.011s (~) 0.648s 10 1.01x
🐘 Postgres Next.js (Turbopack) 2.391s 3.010s 0.619s 10 1.02x
💻 Local Nitro 2.630s (-16.4% 🟢) 3.007s (-22.6% 🟢) 0.378s 10 1.12x
💻 Local Express 2.820s (-4.5%) 3.007s (-12.9% 🟢) 0.188s 10 1.20x
💻 Local Next.js (Turbopack) 3.068s 3.676s 0.607s 9 1.31x
Promise.all with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 3.480s (~) 4.010s (~) 0.530s 8 1.00x
🐘 Postgres Nitro 3.491s (~) 4.013s (~) 0.521s 8 1.00x
🐘 Postgres Next.js (Turbopack) 3.640s 4.012s 0.373s 8 1.05x
💻 Local Nitro 7.213s (-13.6% 🟢) 8.023s (-11.1% 🟢) 0.811s 4 2.07x
💻 Local Express 7.476s (-10.3% 🟢) 8.019s (-11.2% 🟢) 0.542s 4 2.15x
💻 Local Next.js (Turbopack) 7.492s 8.268s 0.776s 4 2.15x
Promise.race with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 1.226s 2.010s 0.784s 15 1.00x
🐘 Postgres Nitro 1.262s (~) 2.009s (~) 0.747s 15 1.03x
🐘 Postgres Express 1.265s (+0.6%) 2.008s (~) 0.743s 15 1.03x
💻 Local Nitro 1.482s (-20.6% 🟢) 2.007s (-14.3% 🟢) 0.524s 15 1.21x
💻 Local Next.js (Turbopack) 1.510s 2.005s 0.495s 15 1.23x
💻 Local Express 1.560s (-17.6% 🟢) 2.006s (-15.1% 🟢) 0.446s 15 1.27x
Promise.race with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 2.322s (-0.8%) 3.009s (~) 0.686s 10 1.00x
🐘 Postgres Nitro 2.336s (~) 3.009s (~) 0.674s 10 1.01x
🐘 Postgres Next.js (Turbopack) 2.382s 3.011s 0.629s 10 1.03x
💻 Local Nitro 2.741s (-10.6% 🟢) 3.109s (-20.0% 🟢) 0.368s 10 1.18x
💻 Local Express 3.005s (-4.1%) 3.566s (-5.2% 🟢) 0.561s 9 1.29x
💻 Local Next.js (Turbopack) 3.073s 3.761s 0.688s 8 1.32x
Promise.race with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 3.477s (-0.6%) 4.013s (~) 0.536s 8 1.00x
🐘 Postgres Nitro 3.483s (~) 4.012s (~) 0.529s 8 1.00x
🐘 Postgres Next.js (Turbopack) 3.680s 4.011s 0.331s 8 1.06x
💻 Local Nitro 7.595s (-16.9% 🟢) 8.016s (-20.0% 🟢) 0.420s 4 2.18x
💻 Local Next.js (Turbopack) 8.132s 8.518s 0.386s 4 2.34x
💻 Local Express 8.453s (-3.9%) 9.022s (-2.7%) 0.568s 4 2.43x
workflow with 10 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 0.698s (-28.8% 🟢) 1.004s (-8.2% 🟢) 0.306s 60 1.00x
🐘 Postgres Next.js (Turbopack) 0.797s 1.023s 0.226s 59 1.14x
🐘 Postgres Express 0.826s (-1.6%) 1.023s (~) 0.197s 59 1.18x
🐘 Postgres Nitro 0.834s (+1.6%) 1.023s (+1.7%) 0.190s 59 1.19x
💻 Local Next.js (Turbopack) 0.854s 1.057s 0.203s 57 1.22x
💻 Local Express 1.053s (+7.0% 🔺) 2.006s (+86.4% 🔺) 0.953s 30 1.51x
workflow with 25 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 1.970s (+2.2%) 2.376s (+13.1% 🔺) 0.406s 38 1.00x
🐘 Postgres Express 1.990s (+0.7%) 2.402s (+6.4% 🔺) 0.413s 38 1.01x
🐘 Postgres Next.js (Turbopack) 2.045s 2.402s 0.358s 38 1.04x
💻 Local Nitro 2.217s (-26.9% 🟢) 3.007s (-20.0% 🟢) 0.790s 30 1.13x
💻 Local Next.js (Turbopack) 2.683s 3.008s 0.325s 30 1.36x
💻 Local Express 3.092s (+2.5%) 4.009s (+11.8% 🔺) 0.918s 23 1.57x
workflow with 50 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 3.945s 4.216s 0.271s 29 1.00x
🐘 Postgres Express 4.054s (+1.6%) 4.704s (+7.7% 🔺) 0.650s 26 1.03x
🐘 Postgres Nitro 4.104s (~) 4.742s (+3.0%) 0.638s 26 1.04x
💻 Local Nitro 7.348s (-21.0% 🟢) 7.953s (-20.6% 🟢) 0.606s 16 1.86x
💻 Local Next.js (Turbopack) 8.729s 9.161s 0.432s 14 2.21x
💻 Local Express 9.209s (~) 9.788s (-2.3%) 0.579s 13 2.33x
workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 0.249s 1.007s 0.758s 60 1.00x
🐘 Postgres Express 0.280s (-0.8%) 1.007s (~) 0.727s 60 1.12x
🐘 Postgres Nitro 0.282s (-0.6%) 1.007s (~) 0.725s 60 1.13x
💻 Local Next.js (Turbopack) 0.572s 1.005s 0.432s 60 2.30x
💻 Local Nitro 0.578s (-4.4%) 1.004s (-1.7%) 0.426s 60 2.32x
💻 Local Express 0.597s (+6.5% 🔺) 1.004s (~) 0.408s 60 2.40x
workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 0.474s 1.006s 0.533s 90 1.00x
🐘 Postgres Express 0.491s (-3.7%) 1.007s (~) 0.515s 90 1.04x
🐘 Postgres Nitro 0.512s (+3.1%) 1.018s (+1.1%) 0.506s 89 1.08x
💻 Local Nitro 2.482s (-2.2%) 3.008s (~) 0.526s 30 5.24x
💻 Local Express 2.532s (+0.7%) 3.011s (~) 0.479s 30 5.34x
💻 Local Next.js (Turbopack) 2.672s 3.009s 0.337s 30 5.64x
workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 0.766s 1.006s 0.240s 120 1.00x
🐘 Postgres Express 0.822s (~) 1.009s (-0.8%) 0.188s 119 1.07x
🐘 Postgres Nitro 0.826s (+4.6%) 1.027s (+1.9%) 0.200s 117 1.08x
💻 Local Nitro 10.409s (-7.0% 🟢) 10.934s (-6.3% 🟢) 0.525s 11 13.59x
💻 Local Express 10.777s (-3.7%) 11.305s (-5.3% 🟢) 0.528s 11 14.07x
💻 Local Next.js (Turbopack) 10.874s 11.483s 0.609s 11 14.19x
Stream Benchmarks (includes TTFB metrics)
workflow with stream

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 0.152s (-29.0% 🟢) 1.004s (~) 0.010s (-20.0% 🟢) 1.016s (~) 0.864s 10 1.00x
💻 Local Next.js (Turbopack) 0.173s 1.003s 0.011s 1.018s 0.844s 10 1.14x
🐘 Postgres Next.js (Turbopack) 0.194s 1.001s 0.002s 1.011s 0.817s 10 1.28x
🐘 Postgres Express 0.201s (-2.2%) 0.999s (~) 0.001s (-37.5% 🟢) 1.010s (~) 0.809s 10 1.32x
🐘 Postgres Nitro 0.209s (+1.8%) 1.001s (~) 0.001s (-6.7% 🟢) 1.010s (~) 0.801s 10 1.37x
💻 Local Express 0.209s (+4.9%) 1.004s (~) 0.010s (-16.5% 🟢) 1.016s (~) 0.807s 10 1.38x
stream pipeline with 5 transform steps (1MB)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 0.582s (-30.7% 🟢) 1.012s (~) 0.008s (-9.7% 🟢) 1.022s (-8.4% 🟢) 0.440s 59 1.00x
🐘 Postgres Express 0.625s (-0.7%) 1.003s (~) 0.002s (-54.4% 🟢) 1.019s (~) 0.393s 59 1.08x
🐘 Postgres Nitro 0.637s (+2.1%) 1.023s (+1.6%) 0.005s (+10.5% 🔺) 1.041s (+1.8%) 0.403s 58 1.10x
🐘 Postgres Next.js (Turbopack) 0.640s 1.027s 0.008s 1.045s 0.405s 58 1.10x
💻 Local Next.js (Turbopack) 0.760s 1.011s 0.009s 1.114s 0.354s 55 1.31x
💻 Local Express 0.867s (+14.5% 🔺) 1.012s (-1.6%) 0.009s (-5.6% 🟢) 1.116s (+7.3% 🔺) 0.249s 54 1.49x
10 parallel streams (1MB each)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 0.937s (-2.5%) 1.172s (-8.3% 🟢) 0.000s (-100.0% 🟢) 1.184s (-9.3% 🟢) 0.247s 51 1.00x
🐘 Postgres Next.js (Turbopack) 0.949s 1.151s 0.000s 1.158s 0.209s 53 1.01x
🐘 Postgres Nitro 0.989s (+2.0%) 1.329s (+6.5% 🔺) 0.000s (-100.0% 🟢) 1.342s (+6.7% 🔺) 0.354s 45 1.05x
💻 Local Nitro 1.196s (-2.2%) 2.019s (~) 0.000s (+333.3% 🔺) 2.021s (~) 0.824s 30 1.28x
💻 Local Express 1.226s (~) 2.021s (~) 0.000s (+30.0% 🔺) 2.023s (~) 0.797s 30 1.31x
💻 Local Next.js (Turbopack) 1.282s 2.019s 0.000s 2.022s 0.740s 30 1.37x
fan-out fan-in 10 streams (1MB each)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.762s (-0.6%) 2.078s (-4.6%) 0.000s (+Infinity% 🔺) 2.097s (-4.6%) 0.335s 29 1.00x
🐘 Postgres Nitro 1.804s (+0.7%) 2.223s (+3.8%) 0.000s (-100.0% 🟢) 2.233s (+2.7%) 0.429s 27 1.02x
🐘 Postgres Next.js (Turbopack) 1.811s 2.072s 0.000s 2.115s 0.304s 29 1.03x
💻 Local Express 3.428s (-1.1%) 4.036s (~) 0.001s (-25.0% 🟢) 4.039s (~) 0.610s 15 1.95x
💻 Local Next.js (Turbopack) 3.550s 4.164s 0.000s 4.168s 0.618s 15 2.02x
💻 Local Nitro 3.953s (+16.7% 🔺) 4.106s (+1.8%) 0.000s (-19.6% 🟢) 4.466s (+10.7% 🔺) 0.513s 14 2.24x

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World 🥇 Fastest Framework Wins
💻 Local Nitro 19/21
🐘 Postgres Next.js (Turbopack) 12/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework 🥇 Fastest World Wins
Express 🐘 Postgres 18/21
Next.js (Turbopack) 🐘 Postgres 17/21
Nitro 🐘 Postgres 14/21
Column Definitions
  • Workflow Time: Runtime reported by workflow (completedAt - createdAt) - primary metric
  • TTFB: Time to First Byte - time from workflow start until first stream byte received (stream benchmarks only)
  • Slurp: Time from first byte to complete stream consumption (stream benchmarks only)
  • Wall Time: Total testbench time (trigger workflow + poll for result)
  • Overhead: Testbench overhead (Wall Time - Workflow Time)
  • Samples: Number of benchmark iterations run
  • vs Fastest: How much slower compared to the fastest configuration for this benchmark

Worlds:

  • 💻 Local: In-memory filesystem world (local development)
  • 🐘 Postgres: PostgreSQL database world (local development)
  • ▲ Vercel: Vercel production/preview deployment
  • 🌐 Turso: Community world (local development)
  • 🌐 MongoDB: Community world (local development)
  • 🌐 Redis: Community world (local development)
  • 🌐 Jazz: Community world (local development)

📋 View full workflow run

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 29, 2026

🧪 E2E Test Results

All tests passed

Summary

Passed Failed Skipped Total
✅ ▲ Vercel Production 989 0 67 1056
✅ 💻 Local Development 1066 0 86 1152
✅ 📦 Local Production 1066 0 86 1152
✅ 🐘 Local Postgres 1066 0 86 1152
✅ 🪟 Windows 96 0 0 96
✅ 📋 Other 270 0 18 288
Total 4553 0 343 4896

Details by Category

✅ ▲ Vercel Production
App Passed Failed Skipped
✅ astro 89 0 7
✅ example 89 0 7
✅ express 89 0 7
✅ fastify 89 0 7
✅ hono 89 0 7
✅ nextjs-turbopack 94 0 2
✅ nextjs-webpack 94 0 2
✅ nitro 89 0 7
✅ nuxt 89 0 7
✅ sveltekit 89 0 7
✅ vite 89 0 7
✅ 💻 Local Development
App Passed Failed Skipped
✅ astro-stable 90 0 6
✅ express-stable 90 0 6
✅ fastify-stable 90 0 6
✅ hono-stable 90 0 6
✅ nextjs-turbopack-canary 77 0 19
✅ nextjs-turbopack-stable 96 0 0
✅ nextjs-webpack-canary 77 0 19
✅ nextjs-webpack-stable 96 0 0
✅ nitro-stable 90 0 6
✅ nuxt-stable 90 0 6
✅ sveltekit-stable 90 0 6
✅ vite-stable 90 0 6
✅ 📦 Local Production
App Passed Failed Skipped
✅ astro-stable 90 0 6
✅ express-stable 90 0 6
✅ fastify-stable 90 0 6
✅ hono-stable 90 0 6
✅ nextjs-turbopack-canary 77 0 19
✅ nextjs-turbopack-stable 96 0 0
✅ nextjs-webpack-canary 77 0 19
✅ nextjs-webpack-stable 96 0 0
✅ nitro-stable 90 0 6
✅ nuxt-stable 90 0 6
✅ sveltekit-stable 90 0 6
✅ vite-stable 90 0 6
✅ 🐘 Local Postgres
App Passed Failed Skipped
✅ astro-stable 90 0 6
✅ express-stable 90 0 6
✅ fastify-stable 90 0 6
✅ hono-stable 90 0 6
✅ nextjs-turbopack-canary 77 0 19
✅ nextjs-turbopack-stable 96 0 0
✅ nextjs-webpack-canary 77 0 19
✅ nextjs-webpack-stable 96 0 0
✅ nitro-stable 90 0 6
✅ nuxt-stable 90 0 6
✅ sveltekit-stable 90 0 6
✅ vite-stable 90 0 6
✅ 🪟 Windows
App Passed Failed Skipped
✅ nextjs-turbopack 96 0 0
✅ 📋 Other
App Passed Failed Skipped
✅ e2e-local-dev-nest-stable 90 0 6
✅ e2e-local-postgres-nest-stable 90 0 6
✅ e2e-local-prod-nest-stable 90 0 6

📋 View full workflow run

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

Resumes release/backport automation by removing reliance on the (temporarily removed) Release GitHub App token and switching workflows to use the default GITHUB_TOKEN.

Changes:

  • Update release.yml to use GITHUB_TOKEN for checkout/changesets/gh release, hardcode git identity, and add workflow_dispatch for manual releases.
  • Update backport.yml to remove App-token generation, use GITHUB_TOKEN, and raise job permissions to enable pushing/PR/commenting.
  • Disable the cross-repo dispatch workflow to vercel/front by gating jobs behind an always-false condition.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
.github/workflows/release.yml Removes App-token dependency, uses GITHUB_TOKEN, adds manual dispatch trigger for releases.
.github/workflows/backport.yml Removes App-token dependency, switches token usage to GITHUB_TOKEN, updates permissions for backport operations.
.github/workflows/dispatch-front-workflow-release-pr.yml Temporarily disables cross-repo dispatch jobs (App-token still required) while documenting the reason.

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

Comment on lines 23 to 27
if: >
false &&
startsWith(github.event.pull_request.head.ref, 'changeset-release/') &&
github.event.action != 'closed'
runs-on: ubuntu-latest
Copy link

Copilot AI Apr 29, 2026

Choose a reason for hiding this comment

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

With the current if: false && ... gating, this workflow will still trigger on every matching pull_request event and create a run that immediately skips both jobs. If the intent is to fully disable it while the App is removed, consider disabling the triggers (e.g., temporarily switch on: to workflow_dispatch only, or comment out the pull_request trigger) to avoid noisy skipped runs and unnecessary Actions usage.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor

@karthikscale3 karthikscale3 left a comment

Choose a reason for hiding this comment

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

Concern: clean cherry-pick git push origin stable will likely fail under branch protection

Referring to:

# .github/workflows/backport.yml
- name: Push clean backport
  if: steps.cherry-pick.outputs.status == 'clean'
  run: git push origin stable

This is the most likely thing to break under this change, and it's the common (clean cherry-pick) path — not a rare one. With the App token gone, the push runs as the default GITHUB_TOKEN (GitHub Actions bot), and stable almost certainly has branch protection. If the protection has any of:

  • "Restrict who can push to matching branches" (without explicitly allowlisting GitHub Actions),
  • "Require status checks to pass before merging" (no checks will have run on the cherry-pick SHA — it's a direct push),
  • "Require a pull request before merging",

…this push will be rejected and the workflow will fail. None of the existing Comment on … steps fire in that case (they're gated on cherry-pick.outputs.status == 'conflict', or on 'clean' with the push having succeeded), so backports would silently stop landing until someone notices the red runs.

The PR description's caveat #3 acknowledges the possibility, but the wording ("the AI-resolved-conflict path opens a PR instead, so that path should still work") understates the impact: the conflict path is the rare one. A clean cherry-pick is the typical case, and that path has no PR fallback.

Two options worth considering before merging:

  1. Verify that stable's protection rules actually allow the default GITHUB_TOKEN to push directly (e.g. GitHub Actions is in the bypass/allow list, or protection is disabled for bots). If yes, this is fine as-is — worth a confirmation note in the PR description.
  2. If not, mirror the AI-resolved-conflict path for the clean case too: on push failure (or unconditionally), push the cherry-pick commit to a backport/pr-<n>-to-stable branch and open a PR via gh pr create --base stable. That path already works under branch protection (it's how the conflict path operates today), and it preserves the audit trail. The downside is one extra click per backport, which is a much smaller cost than silent backport drift.

@TooTallNate TooTallNate enabled auto-merge (squash) April 29, 2026 17:14
@TooTallNate TooTallNate merged commit 89738e5 into main Apr 29, 2026
160 of 167 checks passed
@TooTallNate TooTallNate deleted the ci/remove-release-bot branch April 29, 2026 17:25
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.

3 participants