Skip to content

feat(init): scaffold onboarding command#1293

Open
Fab10-CircleCi wants to merge 2 commits into
CircleCI-Public:nextfrom
Fab10-CircleCi:fabio/init-command-combined
Open

feat(init): scaffold onboarding command#1293
Fab10-CircleCi wants to merge 2 commits into
CircleCI-Public:nextfrom
Fab10-CircleCi:fabio/init-command-combined

Conversation

@Fab10-CircleCi
Copy link
Copy Markdown

Summary

This PR combines Keaton's initial circleci init scaffold with a small follow-up polish pass for the first onboarding steps.

  • Registers a top-level circleci init command on next.
  • Keeps scan, Docker test, config generation, and signup as scaffolded/stubbed steps.
  • Adds git worktree-root detection so nested directories display the selected repo correctly.
  • Adds signup CTA benefit bullets from the prototype without wiring signup/login/OAuth behavior.
  • Adds acceptance coverage for nested git directories, stderr-only progress output, CTA copy, and extra args failing.

Out of scope

  • Real repository scanning
  • Real Docker test execution
  • Real config generation
  • Signup/login/OAuth wiring, including Enter-to-signup behavior
  • Telemetry
  • JSON output

Testing

  • go test ./internal/gitremote ./internal/cmd/cmdinit
  • go test ./acceptance -run TestInit

Notes

This branch is based on current origin/next and includes Keaton's scaffold commit plus the follow-up polish commit.

Klaney and others added 2 commits May 12, 2026 09:56
Lands the shell for the CLI onboarding flow (WEBXP-987). Registers a
new top-level `init` subcommand that, from inside a git working tree,
prints the four-phase preamble (scan → docker test → generate config →
sign up) and stub `[1/3]/[2/3]/[3/3]` step lines that mirror the Figma
prototype copy. Outside a git repo it returns a structured
ExitBadArguments error with a `cd <path>` suggestion.

Adds a permissive `gitremote.InsideWorkTree()` helper (vs. the stricter
`Detect()`, which requires a parseable CircleCI remote that fresh `init`
targets may not have).

Real scan/test/generate/signup logic is owned by follow-up tickets and
intentionally not inlined here.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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.

2 participants