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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants