Skip to content

ci(release): authenticate arduino/setup-protoc with GITHUB_TOKEN#31

Merged
Nic-dorman merged 1 commit intomainfrom
ci/setup-protoc-token
Apr 28, 2026
Merged

ci(release): authenticate arduino/setup-protoc with GITHUB_TOKEN#31
Nic-dorman merged 1 commit intomainfrom
ci/setup-protoc-token

Conversation

@Nic-dorman
Copy link
Copy Markdown
Collaborator

Summary

Both v0.3.0 and v0.5.0 release workflow runs failed within ~10 s on the arduino/setup-protoc@v3 step with:

##[error]Error: API rate limit exceeded for <runner-ip>.

The action calls the GitHub releases API to fetch the protoc binary and, without an explicit repo-token, uses the per-IP unauthenticated quota (~60/hr). That quota is shared with every other workflow on the same hosted-runner egress IP and routinely exhausted on the macOS/Linux/Windows pools.

Passing repo-token: ${{ secrets.GITHUB_TOKEN }} makes the action authenticate as the workflow, lifting it onto our 5,000/hr token quota.

Reproductions

  • v0.3.0 release: run 24506528329 — failed
  • v0.5.0 release: run 25060322954 — failed twice (initial + manual rerun), all three matrix jobs

The v0.4.0 release succeeded only because it happened to fall in a window when the runner pool's IP wasn't exhausted; we keep getting unlucky.

Test plan

  • One-line workflow change, no other modifications
  • CI green on this branch
  • After merge: re-tag v0.5.0 to point at the new merge commit so release.yml runs from the fixed workflow file (the workflow YAML is loaded from the tagged commit, not from main)

🤖 Generated with Claude Code

arduino/setup-protoc calls the GitHub releases API to fetch the
protoc binary. Without an explicit repo-token it uses the per-IP
unauthenticated quota (~60/hr), which is shared with every other
runner on the same egress IP and routinely exhausted on the
ubuntu-/macos-/windows-latest pools.

Both the v0.3.0 (run 24506528329) and v0.5.0 (run 25060322954)
release workflows died at this step within seconds with
"API rate limit exceeded for <ip>". Passing repo-token makes the
action authenticate as the workflow, lifting it onto our
5,000/hr token quota.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Nic-dorman Nic-dorman merged commit cdd9894 into main Apr 28, 2026
@Nic-dorman Nic-dorman deleted the ci/setup-protoc-token branch April 28, 2026 17:20
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.

1 participant