Repository navigation
feat: auto-join org installations during void github connect - #264
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…itory list Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Assert directly on the validate callback passed to @clack/prompts' text() in promptRepoFullName: rejects malformed/empty input with 'Enter the repository as owner/repo.' and accepts owner/repo (including padded input). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_5f2db519-15a5-46b0-bb97-15700ec8b903) |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f7fafdb4d3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_5fc0d9af-7d31-4461-a21e-9494ae632e2f) |
Problem
An org teammate runs
void github connectafter someone else in their org already installed the Void GitHub App. Their installation list is empty (no membership row yet), so the CLI exits with "No active GitHub App installation. Runvoid github installfirst." — telling them to install an app that's already installed.Change (CLI-only, no server changes)
runGithubJoin's browser round-trip extracted into reusableperformGithubJoin(); the join command's behavior is unchanged.--installation <id>names an installation the account isn't linked to yet.owner/repo(validated, shared with theall-repositories prompt); non-TTY asks for--repo.github connect/github joinsections indocs/reference/cli.md.Trust model unchanged: membership is still proven by the user's own GitHub OAuth (design doc 0074); the per-repo connect-authorize step for members stays.
Testing
--installationrecovery, member repo prompt + validation, non-TTY--repoerror)vp test run packages/void: 2693 passed, 0 failedvp run --filter ./packages/void typecheck: clean🤖 Generated with Claude Code
Note
Low Risk
CLI-only UX and documentation; OAuth join reuse matches existing trust model with no server changes.
Overview
void github connectnow tries to join shared org GitHub App installations automatically in interactive mode when the user has no linked installations (or a missing--installationid), instead of telling them to install an app that may already exist on the org. The join browser OAuth is extracted intoperformGithubJoin()and reused byvoid github joinunchanged; non-TTY connect still never opens a browser and errors mentionvoid github join.When an installation returns an empty repo list (redacted for org members), connect no longer dead-ends: TTY prompts for
owner/repovia sharedpromptRepoFullName()with validation; CI must pass--repo. CLI reference docs forgithub connect/github joinare updated accordingly..gitignoreaddsdocs/superpowers/.Reviewed by Cursor Bugbot for commit eada320. Bugbot is set up for automated code reviews on this repo. Configure here.