Skip to content

trunk command#108

Merged
skarim merged 3 commits into
skarim/insert-branchfrom
skarim/trunk-cmd
May 26, 2026
Merged

trunk command#108
skarim merged 3 commits into
skarim/insert-branchfrom
skarim/trunk-cmd

Conversation

@skarim

@skarim skarim commented May 24, 2026

Copy link
Copy Markdown
Collaborator

Add gh stack trunk navigation command

Add a new navigation command that checks out the trunk branch of the
current stack.

The command is stack-aware: it requires the user to be on a branch that
is part of a stack, loads the stack metadata, and checks out s.Trunk.Branch.
If the user is already on the trunk branch, it prints a message and exits
without calling git checkout.

New files:

  • cmd/trunk.go: TrunkCmd (cobra command) + runTrunk implementation
  • cmd/trunk_test.go: 7 test cases covering happy path, already on
    trunk, from top of stack, not in a stack, checkout failure, custom
    trunk branch name, and positional argument rejection

Modified files:

  • cmd/root.go: register TrunkCmd in the "nav" command group
  • README.md: add gh stack trunk to the Navigation section
  • docs/src/content/docs/reference/cli.md: add gh stack trunk
    reference section

Stack created with GitHub Stacks CLIGive Feedback 💬

@skarim skarim marked this pull request as ready for review May 26, 2026 13:55
Copilot AI review requested due to automatic review settings May 26, 2026 13:55

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new stack-aware navigation command, gh stack trunk, to quickly switch from any branch in a stack to that stack’s configured trunk branch.

Changes:

  • Introduces gh stack trunk Cobra command implementation and stack-aware checkout logic.
  • Adds test coverage for trunk navigation behavior and argument validation.
  • Documents the new command in README navigation examples and the CLI reference docs, and registers it under the Navigation command group.
Show a summary per file
File Description
README.md Lists gh stack trunk in the Navigation command examples.
docs/src/content/docs/reference/cli.md Adds a new reference section documenting gh stack trunk.
cmd/trunk.go Implements the new trunk navigation command and its checkout behavior.
cmd/trunk_test.go Adds command-level tests for trunk navigation scenarios.
cmd/root.go Registers trunk under the existing nav command group.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 5/5 changed files
  • Comments generated: 3
Comment thread cmd/trunk.go
Comment thread cmd/trunk_test.go Outdated
Comment thread cmd/trunk_test.go
skarim added 2 commits May 26, 2026 17:28
Add a new navigation command that checks out the trunk branch of the
current stack.

The command is stack-aware: it requires the user to be on a branch that
is part of a stack, loads the stack metadata, and checks out `s.Trunk.Branch`.
If the user is already on the trunk branch, it prints a message and exits
without calling git checkout.

New files:
  - cmd/trunk.go: TrunkCmd (cobra command) + runTrunk implementation
  - cmd/trunk_test.go: 7 test cases covering happy path, already on
    trunk, from top of stack, not in a stack, checkout failure, custom
    trunk branch name, and positional argument rejection

Modified files:
  - cmd/root.go: register TrunkCmd in the "nav" command group
  - README.md: add `gh stack trunk` to the Navigation section
  - docs/src/content/docs/reference/cli.md: add `gh stack trunk`
    reference section
@skarim skarim force-pushed the skarim/insert-branch branch from 64f0b96 to 184c923 Compare May 26, 2026 21:28
@skarim skarim force-pushed the skarim/trunk-cmd branch from 52a52a2 to eeebfb9 Compare May 26, 2026 21:28
@skarim skarim merged commit bf2358b into main May 26, 2026
6 checks passed
@skarim skarim deleted the skarim/trunk-cmd branch May 26, 2026 21:39
ryanclark added a commit to ryanclark/gh-stack that referenced this pull request Jun 19, 2026
Ports the still-applicable upstream changes since the fork point, adapted
to this fork's standard-GitHub-API architecture (no private stack backend;
stack deps tracked via "Requires #N"). Each change was test-driven.

Bug fixes:
- github#56  guard GraphQL PR-number conversion against int32 overflow
- github#41  skip merged+deleted branches when rebasing (rev-parse error)
- github#42  same fix on the sync path
- github#43  --onto rebase for merged branches: backfill refs, pre-seed onto
       state, stale-base fallback via merge-base
- github#39  always anchor branch diffs on the merge-base (inflated diff counts)
- github#95  sync now cascades when the stack is stale even if trunk is current;
       rebase skips queued branches (IsSkipped)
- github#80  view --json resolves directly with typed exit codes (no prompt)
- github#49  (Part A) ignore stale merged/closed PRs for reused branch names
       (the backend ListStacks path is intentionally omitted)

Features (standard API only):
- github#108 trunk command       - github#51  switch command
- github#74  unstack -> active    - github#101 add adopts existing branch
- github#40  fast-forward branches behind their remote
- github#76  draft PRs by default + --open (adds MarkPRReadyForReview)
- github#77  seed PR body from repo template (keeps "Requires #N")
- github#94  sync --prune merged branches

Infra / cleanup:
- github#103/github#110 bump github.com/cli/cli/v2 to v2.93.0 (go get + tidy)
- github#89  remove placeholder `merge` command + docs
- fix stale `unstack [branch]` docs

Note: this commit is layered on in-progress local work (go-git ops,
PR/commit caching, discover command) that shares the same files, so the
two are committed together. Full suite green: build, vet, go test ./...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants