Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
de5a937
basic terminal setup
skarim Feb 13, 2026
8ade8bc
stack init and add
skarim Feb 14, 2026
2536e9a
view stack
skarim Feb 18, 2026
775d0b3
navigation commands
skarim Feb 18, 2026
cc21c25
cascading rebase
skarim Feb 18, 2026
58d1549
placeholders for checkout and merge
skarim Feb 18, 2026
ad9d170
push branches and create prs
skarim Feb 18, 2026
86d342e
delete stack locally
skarim Mar 9, 2026
157d87c
rename update to rebase
skarim Mar 9, 2026
f3db397
block init inside an existing stack
skarim Mar 10, 2026
b39609a
disambiguate for multiple stacks
skarim Mar 10, 2026
3bf143c
collect feedback via discussions
skarim Mar 10, 2026
fdaa11f
updated storage format
skarim Mar 10, 2026
25ff8a1
schema for storage format
skarim Mar 10, 2026
cf62538
sync state of prs in stack
skarim Mar 10, 2026
2661ee7
sync command to fetch, rebase, and push
skarim Mar 10, 2026
f1421ad
rebase onto for handling squashed prs
skarim Mar 11, 2026
03c4b92
enable git rerere
skarim Mar 11, 2026
5937a75
addressing review comments
skarim Mar 11, 2026
d77d2fe
update readme
skarim Mar 11, 2026
c2a1106
show pr status in view
skarim Mar 11, 2026
910b69c
force push with lease by default
skarim Mar 11, 2026
9dc7980
output msgs nits
skarim Mar 12, 2026
423f492
check if empty stack
skarim Mar 12, 2026
e4b0b6e
use cached pr info
skarim Mar 12, 2026
b9bfd86
init as empty slice
skarim Mar 12, 2026
7767bb4
handle rebase restore failures
skarim Mar 12, 2026
071748c
handle edges cases from review
skarim Mar 12, 2026
b7c15c1
interactive terminal ui for view
skarim Mar 11, 2026
d5305eb
improved handling of merged branches
skarim Mar 12, 2026
9c8d2fb
block add to stack if all branches merged
skarim Mar 12, 2026
07ea259
checkout for local stacks
skarim Mar 12, 2026
c1aa1f2
abbreviated workflow to quickly add to stacks
skarim Mar 12, 2026
c2ddf60
Add testable interfaces for git and github packages
skarim Mar 12, 2026
50c8999
add basic tests
skarim Mar 12, 2026
487f148
Fix workflow permissions warning
skarim Mar 13, 2026
7d3ceb4
typo cleanup
skarim Mar 13, 2026
deed1ed
rm old if
skarim Mar 13, 2026
10c3e1b
update description to reflect base as parent head sha
skarim Mar 13, 2026
3a7700e
consistent merged check
skarim Mar 13, 2026
1520353
skip interactive prompt if prefix and numbering is set
skarim Mar 13, 2026
34eeac4
clean up duplicate msgs
skarim Mar 13, 2026
49e05a0
interactive prompt or autogenerate for pr title
skarim Mar 13, 2026
d5903fe
hyperlinked PRs in output
skarim Mar 13, 2026
f3a797b
rebase lowest unmerged branch with tip of trunk
skarim Mar 13, 2026
2879cfe
add links to downstack prs in body
skarim Mar 13, 2026
f66e95c
add sticky header to view tui
skarim Mar 13, 2026
a27a4f5
rename flag to --skip-prs
skarim Mar 18, 2026
9d2a7cf
use multiline commit msgs for pr body
skarim Mar 19, 2026
627832d
rm placeholders
skarim Mar 19, 2026
e874e26
push all branches atomically and resolve remotes
skarim Mar 22, 2026
22fa202
shared loadStack helper for all cmds
skarim Mar 22, 2026
d22f0c3
clearer wording in navigate
skarim Mar 22, 2026
7bb5ca2
move active branch indices to stack
skarim Mar 22, 2026
7144d88
politely enable rerere and cache decline
skarim Mar 22, 2026
47d1a3f
use full commit sha
skarim Mar 22, 2026
5ea2ec8
clean up chained branches display
skarim Mar 22, 2026
0a55e35
block adopting branches with existing PRs
skarim Mar 22, 2026
24e18bd
Handle SIGINT gracefully during interactive prompts
skarim Mar 23, 2026
426ad11
wrap example commands in quotes for non TTY
skarim Mar 23, 2026
14364a2
waterfall pr lookup by url, number, branch name
skarim Mar 23, 2026
50fdc33
support commit msg editor, update stage all flag to match git commit,…
skarim Mar 23, 2026
1a1f49f
exit with nonzero status on error
skarim Mar 23, 2026
6e9927d
rm update pr base logic, should all happen on server
skarim Mar 23, 2026
2604976
exit codes by error type
skarim Mar 24, 2026
d6e6db7
json output mode for view
skarim Mar 24, 2026
1304670
flag to specify remote and bypass interactive prompt
skarim Mar 24, 2026
309e12a
skills file for agents
skarim Mar 24, 2026
3058421
default to named branches, numbering is a flag set on init
skarim Mar 24, 2026
f03f9f3
fix: return early from sync on rebase conflict
skarim Mar 24, 2026
0c27492
more test coverage and clean up
skarim Mar 24, 2026
0869244
fix for help output properly showing "gh stack"
skarim Mar 24, 2026
b99f725
set release version via ldflags
skarim Mar 24, 2026
b53bc7a
mock gh api client for tests
skarim Mar 24, 2026
0c08844
clean up go.mod
skarim Mar 24, 2026
d5fcf12
update gh-stack file schema
skarim Mar 25, 2026
b2ba2c2
throw error for non-numeric args
skarim Mar 25, 2026
c26f8b0
use correct var in error msg
skarim Mar 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
name: release

on:
push:
tags:
- "v*"

permissions:
contents: write
id-token: write
Expand All @@ -13,7 +15,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- id: version
run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT"
- uses: cli/gh-extension-precompile@v2
with:
generate_attestations: true
go_version_file: go.mod
go_build_options: >-
-ldflags '-X github.com/github/gh-stack/cmd.Version=${{ steps.version.outputs.version }}'
29 changes: 29 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Tests

on:
push:
branches: [main]
pull_request:
branches: [main]

permissions:
contents: read

jobs:
test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version-file: go.mod
- name: Download dependencies
run: go mod download
- name: Vet
run: go vet ./...
- name: Test
run: go test -race -count=1 ./...
Comment thread
github-advanced-security[bot] marked this conversation as resolved.
Fixed
Loading
Loading