feat: support personal account - #326
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
🚧 Files skipped from review as they are similar to previous changes (4)
📝 WalkthroughWalkthroughChangesFireactions now supports repository-scoped GitHub Actions runners alongside organization-scoped runners. Configuration validation, installation, runner lifecycle operations, metrics, API output, CLI pool output, tests, and documentation were updated accordingly. Repository runner scope
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant Pool
participant GitHubAPI
participant FirecrackerVM
Pool->>GitHubAPI: Resolve installation ID by runner scope
Pool->>GitHubAPI: Generate scope-specific JIT runner configuration
Pool->>FirecrackerVM: Start VM with JIT runner configuration
FirecrackerVM->>GitHubAPI: Register runner
FirecrackerVM->>Pool: Exit
Pool->>GitHubAPI: Remove repository or organization runner
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
|
Hi @konradasb, please help to review this PR to address self-hosted in personal accounts |
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/help/troubleshooting.md`:
- Around line 118-124: Update the repository-scoped runner cleanup instructions
near the GH CLI commands to require authentication with administrator access to
the target repository, rather than organization-administrator access. Explicitly
distinguish repository cleanup for organization-owned repositories from
personal-account repositories, where organization-admin authentication does not
apply.
- Around line 129-132: Quote the <OWNER>/<REPOSITORY> placeholder in the REPO
assignment within the fish-shell example so fish treats it as a literal value
rather than redirection syntax; leave the surrounding GH_PAGER setup and API
commands unchanged.
In `@docs/user-guide/github-app.md`:
- Around line 110-114: Update the App-JWT lookup example near the API
authentication instructions to explicitly send the App JWT, either by adding an
Authorization Bearer header to the gh api command or replacing it with an
equivalent curl request. Preserve the repository and installation endpoint and
ensure the example uses the APP_JWT placeholder.
In `@docs/user-guide/installation.md`:
- Around line 416-419: The installation example should make the organization and
repository scopes explicitly mutually exclusive. Update the configuration
snippet around organization and repository so users must select exactly one
option, clearly disabling or separating the alternative rather than leaving
organization active alongside a merely commented repository setting.
In `@server/pool.go`:
- Around line 410-437: Add an installationIDMu sync.Mutex field to Pool and
update getInstallationID to lock around the uncached lookup path, then re-check
p.installationID after acquiring the lock before calling the GitHub installation
APIs. Preserve the existing configured-ID handling, caching, and error behavior
while ensuring concurrent callers perform at most one external lookup.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: bf60fa68-7bcc-4197-a7de-42768309658c
⛔ Files ignored due to path filters (1)
proto/server/v1/server.pb.gois excluded by!**/*.pb.go
📒 Files selected for processing (18)
cmd/fireactions/printables.godocs/help/troubleshooting.mddocs/reference/configuration.mddocs/user-guide/concepts.mddocs/user-guide/first-build.mddocs/user-guide/github-app.mddocs/user-guide/installation.mddocs/user-guide/metrics.mddocs/user-guide/overview.mdinstall.shmkdocs.ymlproto/server/v1/server.protoserver/config.goserver/config_test.goserver/convert.goserver/pool.goserver/rpc.goserver/testdata/config2.yaml
- Serialise the GitHub App installation lookup with a mutex and a double-check, so concurrent createMachine goroutines on a cold pool issue one API call instead of one each. - Document repository-admin (not organization-admin) authentication for cleaning up orphaned repository-scoped runners. - Quote the placeholders in the fish examples; fish parses the unquoted angle brackets as an input redirection instead of a value. - Replace the installation-ID lookup example with one that actually authenticates as the App, since that endpoint only accepts an App JWT and `gh api` sends the user token by default. - Make the mutually exclusive organization/repository choice explicit in the sample configuration. Claude-Session: https://claude.ai/code/session_01HP2nunxp5Ko9LbfAdkRYkx
Description
Support Personal Accounts for the fireactions

Related Issue(s)
#299
Checklist