feat: interactive GitHub issues wizard (ralph-starter github)#270
feat: interactive GitHub issues wizard (ralph-starter github)#270rubenmarcus merged 6 commits intomainfrom
Conversation
…or-url) Shared utilities for integration wizards: - ensureCredentials(): check for existing auth, prompt for API key if missing - askBrowseOrUrl(): common "browse or paste URL" prompt - askForUrl(): URL input with domain validation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New `githubCommand()` that guides users through: 1. Authentication check (gh CLI or token prompt) 2. Browse repos/issues or paste a URL 3. Optional label filtering 4. Multi-select issues (checkbox) 5. Delegates to runCommand() for each selected issue Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Register `ralph-starter github` as top-level command in cli.ts (same pattern as `ralph-starter figma`) - Add wizard fallback in run.ts: `--from github` without --project/--issue redirects to the interactive github wizard instead of erroring Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add "Interactive Wizard" section to docs/docs/sources/github.md - Add github/linear/notion wizard commands to README commands table Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Issue Linking ReminderThis PR doesn't appear to have a linked issue. Consider linking to:
Using If this PR doesn't need an issue, you can ignore this message. |
✔️ Bundle Size Analysis
Bundle breakdown |
🔗 Docs PreviewPreview URL: https://feat-github-integration-wiza.ralph-starter-docs.pages.dev This preview was deployed from the latest commit on this PR. |
Greptile SummaryThis PR introduces a Key findings:
The core wizard flow is sound and the fallback in run.ts is well-placed. However, the style violations, circular import, browse-mode auth gap, and unimplemented command documentation should be addressed. Confidence Score: 3/5
Sequence DiagramsequenceDiagram
actor User
participant CLI as cli.ts
participant GH as github.ts (githubCommand)
participant Shared as shared.ts
participant GhCLI as gh CLI
participant Run as run.ts (runCommand)
User->>CLI: ralph-starter github [options]
CLI->>GH: githubCommand(options)
GH->>Shared: ensureCredentials('github', ...)
Shared->>GhCLI: gh auth status
alt gh CLI authenticated
GhCLI-->>Shared: ok → '__cli_auth__'
else no gh CLI / not authed
Shared->>Shared: check env var / sources.json
alt no token found
Shared->>User: prompt for token (masked)
User-->>Shared: token
Shared->>Shared: setSourceCredential → sources.json
end
end
Shared-->>GH: credential
GH->>Shared: askBrowseOrUrl('GitHub')
Shared-->>GH: 'browse' | 'url'
alt URL mode
GH->>Shared: askForUrl('GitHub', /github\.com/)
Shared-->>GH: url string
GH->>GH: parseGitHubUrl(url)
GH->>Run: runCommand(undefined, {from:'github', project, issue, ...})
else Browse mode
GH->>GhCLI: gh repo list --json
GhCLI-->>GH: repos[]
GH->>User: select a repository
GH->>GhCLI: gh label list -R owner/repo
GhCLI-->>GH: labels[]
GH->>User: (optional) filter by label
GH->>GhCLI: gh issue list -R owner/repo [--label x]
GhCLI-->>GH: issues[]
GH->>User: checkbox multi-select issues
loop for each selected issue
GH->>Run: runCommand(undefined, {from:'github', project, issue, ...})
end
end
alt run.ts --from github (no --project/--issue)
Run->>GH: githubCommand(options) [wizard fallback]
end
Last reviewed commit: b3e759b |
- Anchor GitHub URL regex patterns with ^https?:// (CodeQL fix) - Change interface to type for plain data structures (Greptile) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
This PR has been automatically marked as stale because it has not had recent activity. |
…zards) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
| } from '../utils/sanitize.js'; | ||
| import { ensureSharp } from '../utils/sharp.js'; | ||
| import { showWelcome } from '../wizard/ui.js'; | ||
| import { githubCommand } from './github.js'; |
Summary
ralph-starter githubcommand — interactive wizard to browse repos, filter by label, multi-select issues, and start buildingsrc/integrations/wizards/shared.ts— shared utilities (credential prompting, browse-or-URL choice) reused by upcoming Linear and Notion wizardsralph-starter run --from github(without--project/--issue) now redirects to the wizard instead of erroringralph-starter figmaFeatures
ghCLI auth or prompts for token (saves to~/.ralph-starter/sources.json)github.comURL (auto-detects repo + issue number)--commit,--push,--pr,--validate,--agent,--max-iterationsTest plan
ralph-starter githublaunches wizardralph-starter run --from github(no flags) redirects to wizardralph-starter run --from github --project owner/repo --issue 1still works (no regression)pnpm buildcompiles (pre-existing type errors in visual-validation.ts are unrelated)🤖 Generated with Claude Code