Skip to content

ci(security): add-to-project uses pull_request, tolerates missing App#132

Merged
zackees merged 2 commits intomainfrom
chore/add-to-project-tolerant
Apr 19, 2026
Merged

ci(security): add-to-project uses pull_request, tolerates missing App#132
zackees merged 2 commits intomainfrom
chore/add-to-project-tolerant

Conversation

@zackees
Copy link
Copy Markdown
Member

@zackees zackees commented Apr 19, 2026

Summary

Two related fixes to the add-to-project workflow:

1. Security: pull_request_targetpull_request

pull_request_target runs in the base repo's context with access to secrets (PROJECT_APP_PRIVATE_KEY) but uses the PR's metadata. That's an exfiltration vector even when no code is checked out — malicious fork PRs could coerce actions/add-to-project or actions/create-github-app-token inputs in ways that leak the token. Switching to pull_request means fork PRs run without secrets (and therefore won't be auto-added) — an intentional trade-off for safety.

2. Tolerate missing GitHub App installation

After the repo transfer from zackees/fbuild to FastLED/fbuild, the FastLED Project Sync App is not installed on the new org. Every event was failing at the token step:

Failed to create token for "FastLED": Not Found
  url: https://api.github.com/users/FastLED/installation, status: 404

continue-on-error on the token step + gate the "Add to project" step on its outcome, plus a ::warning:: annotation pointing at the org Installations page. (Re-installing the App is still a separate admin step to restore functionality.)

Test plan

  • CI green
  • After merge, future PRs don't show add-to-project as failing
  • Reinstall the FastLED Project Sync App on the FastLED org to restore auto-add

🤖 Generated with Claude Code

After the repo transfer from zackees/fbuild to FastLED/fbuild, the
"FastLED Project Sync" GitHub App isn't installed on the new org, so
every PR and issue event was failing at the App token step:

  Failed to create token for "FastLED": Not Found
  url: https://api.github.com/users/FastLED/installation, status: 404

Mark the token step as continue-on-error and gate the downstream
add-to-project step on its outcome. Emits a warning annotation pointing
at the org Installations page so the App can be reinstalled later.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 19, 2026

Warning

Rate limit exceeded

@zackees has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 51 minutes and 10 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 51 minutes and 10 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: e315867a-845a-4b37-b0b4-c1f5d011d04f

📥 Commits

Reviewing files that changed from the base of the PR and between e3b4510 and 64976e8.

📒 Files selected for processing (1)
  • .github/workflows/add-to-project.yml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/add-to-project-tolerant

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

…request

pull_request_target runs with base-repo secrets (PROJECT_APP_PRIVATE_KEY)
against fork-authored metadata — a known exfiltration vector even for
workflows that don't check out code. Fork PRs will no longer be
auto-added to the project (they run without secrets under pull_request),
but that is the intended safety trade-off.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@zackees zackees changed the title ci: tolerate missing GitHub App in add-to-project ci(security): add-to-project uses pull_request, tolerates missing App Apr 19, 2026
@zackees zackees merged commit aed0649 into main Apr 19, 2026
7 of 76 checks passed
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