Skip to content

feat(cli): GitHub connection DX — executor/workflow prompts + void github status - #247

Merged
Brooooooklyn merged 2 commits into
mainfrom
feat/gh-connect-executor-workflow-prompts
Jul 3, 2026
Merged

Brooooooklyn merged 2 commits into
mainfrom
feat/gh-connect-executor-workflow-prompts

Conversation

@Brooooooklyn

@Brooooooklyn Brooooooklyn commented Jul 3, 2026 •

Copy link
Copy Markdown
Member

Summary

Improves the void github connection DX in two ways:

  1. Interactive prompts — void github connect now prompts for the build executor and (for GitHub Actions) the deploy workflow file instead of silently defaulting; void github update gains the same workflow-file prompt.
  2. void github status — a new read-only subcommand to display the current connection: repository, branch, build executor, and OIDC deploy-workflow file.

All flags / API / DB columns already existed — this fills the missing interactive prompts, a read-only view, and the agent-readable help output.

1. Prompts (connect + update)

Prompt connect update
Build executor (TTY, --executor omitted) ✅ new ✅ existing
Deploy workflow file (TTY, executor = github_actions, --workflow omitted) ✅ new ✅ new
  • Non-TTY unchanged — executor still defaults to container, never prompts.
  • container executor — the workflow file is never prompted (it does not use workflow_path).
  • Accepting default / current — sends no workflow_path, so the existing fail-closed "old platform dropped the field" echo check is not falsely tripped.
  • Inline validation — the entered path is checked (.github/workflows/…, .yml/.yaml, no ..) before the API round-trip, mirroring the server's isValidWorkflowPath.

2. void github status [project]

$ void github status my-app
  Repository       owner/my-app
  Branch           main
  Build executor   github_actions
  Deploy workflow  .github/workflows/void-deploy.yml
  • Read-only — fronts the existing GET /projects/:id/github; never mutates.
  • Project resolution + the "not connected" 404 message mirror void github update.
  • The workflow file is annotated (unused for container builds) on container connections, since it is only the github_actions OIDC deploy pin.

Files

  • packages/void/src/cli/github-cmd.ts — executor/workflow prompts in runConnect/runGithubUpdate; new runStatus + formatConnection; DEFAULT_WORKFLOW_PATH + isValidWorkflowPath.
  • packages/void/src/cli/github-args.ts — status subcommand entry, GithubArgs variant, parser, usage string.
  • packages/void/src/cli/help.ts — prompt notes + example on connect/update; new status help page and command-list entry.
  • packages/void/src/cli/cli.ts — status added to the no-args interactive GitHub group hint.
  • docs/reference/cli.md — new prompts documented for connect/update; new void github status section.
  • Tests — isValidWorkflowPath, formatConnection, and status parser tests; adjusted the usage-string and help-page assertions.

Verification

  • Tests: github-cmd, github-update-cmd, github-args, cli-help — all green (124 pass, incl. new).
  • vp run --filter ./packages/void typecheck clean · vp lint 0 warnings · vp fmt no changes.

🤖 Generated with Claude Code

@cursor

cursor Bot commented Jul 3, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot 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_ea597a3f-cb6f-404d-8d6c-e95dfd936238)

…hub connect`/`update`

`void github connect` now prompts for the build executor (Cloudflare Container
vs GitHub Actions) instead of silently defaulting to container, and — when
GitHub Actions is chosen — prompts for the deploy workflow file. `void github
update` gains the same workflow-file prompt when the resulting executor is
github_actions.

All flags, API, and DB columns already existed; this only fills the missing
interactive prompts and the agent-readable help output.

- Non-interactive (non-TTY) behavior is unchanged: executor still defaults to
  container and nothing is prompted.
- Accepting the default/current value carries no workflow_path, so the existing
  fail-closed "old platform dropped the field" echo check is not tripped.
- Workflow path is validated inline, mirroring the server rule.
- Updated the connect/update --help descriptions + example and
  docs/reference/cli.md; added isValidWorkflowPath unit tests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Brooooooklyn
Brooooooklyn force-pushed the feat/gh-connect-executor-workflow-prompts branch from 7af5dd3 to 80aab37 Compare July 3, 2026 08:57
…tion

Read-only subcommand that prints the connected repository, deploy branch,
build executor, and OIDC deploy-workflow file. It fronts the existing
GET /projects/:id/github endpoint; project resolution and the "not connected"
404 message mirror `void github update`. The workflow file is annotated as
unused for the container executor, since it is only the github_actions OIDC
deploy pin.

Wires the subcommand into the arg parser, dispatch, --help, the no-args
interactive group hint, and docs/reference/cli.md; adds formatConnection and
status-parser unit tests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cursor

cursor Bot commented Jul 3, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot 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_4f32b73c-6d05-4488-b593-30af3782ae5b)

@Brooooooklyn Brooooooklyn changed the title feat(cli): prompt for build executor and deploy workflow in void github connect/update feat(cli): GitHub connection DX — executor/workflow prompts + void github status Jul 3, 2026
@Brooooooklyn
Brooooooklyn merged commit 45db6b5 into main Jul 3, 2026
7 checks passed
@Brooooooklyn
Brooooooklyn deleted the feat/gh-connect-executor-workflow-prompts branch July 3, 2026 09:47
Brooooooklyn added a commit that referenced this pull request Jul 4, 2026
…b CLI conflicts)

Unions #247 (executor/workflow prompts + void github status) with the
org-shared additions (void github join + non-owner connect-authorize
round-trip) across cli.ts, github-args.ts, github-cmd.ts, help.ts,
cli.md, and github-args.test.ts. Also picks up v0.10.3/v0.10.4 version
bumps and the #249 R2 content-type fix from main.
cpojer pushed a commit that referenced this pull request Sep 11, 2026
…ation fails (#216)

* fix(api): surface the real reason when migration v2 capability negotiation fails

When a manifest declares migration protocolVersion 2 but the worker
capability probe does not confirm a matching v2 capability, the deploy threw
a bare "migration protocol v2 capability negotiation failed" with no reason —
and the value-mismatch (skew) path logged nothing at all.

Make `probeWorkerMigrationCapabilities` return a discriminated
{ ok:true, caps } | { ok:false, reason } result that captures the HTTP status
plus the worker error body (or CF asset stub / non-JSON / request failure).
The caller composes a concrete reason (probe reason, or a field-by-field
capability-vs-manifest diff), logs `capability_negotiation_failed`, and throws
`...failed: <reason>`, which flows to both the deploy error event and the
persisted deployments.error.

Diagnostics only — this does not by itself fix a failing deploy. The SPA
asset-fallback bug it surfaced is fixed in #250.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* chore: bump framework submodule to void#250 (SPA /__void routing fix)

Advances framework de1d581 -> 8fc0db3 (void main), which includes the
merged #250: SPA + API apps — and cron/queue-only SPAs with
D1 migrations — now route /__void/* to the worker before the SPA asset
fallback, so migration protocol v2 capability negotiation reaches the
migration handler instead of receiving index.html.

Also pulls in the already-merged #247, #249, and v0.10.3 / v0.10.4.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
cpojer pushed a commit that referenced this pull request Sep 11, 2026
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.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.

1 participant