From a2a0c78f606eb7908caf2b0331d699bced794606 Mon Sep 17 00:00:00 2001 From: Ethan Turkeltaub Date: Mon, 13 Apr 2026 22:40:54 -0400 Subject: [PATCH] Add `gh-stack` --- modules/packages/default.nix | 3 ++- modules/packages/gh-stack.nix | 22 ++++++++++++++++++++++ modules/profiles/home/gh.nix | 7 +++++-- modules/suites/home.nix | 1 - 4 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 modules/packages/gh-stack.nix diff --git a/modules/packages/default.nix b/modules/packages/default.nix index 312390e4..be1b5e63 100644 --- a/modules/packages/default.nix +++ b/modules/packages/default.nix @@ -3,13 +3,14 @@ perSystem = { config, pkgs, ... }: { overlayAttrs = { - inherit (config.packages) nix-docker oh-my-tmux sf-pro update-tilde; + inherit (config.packages) nix-docker oh-my-tmux sf-pro gh-stack; }; packages = { nix-docker = pkgs.callPackage ./nix-docker.nix { }; oh-my-tmux = pkgs.callPackage ./oh-my-tmux.nix { }; sf-pro = pkgs.callPackage ./fonts/sf-pro.nix { }; + gh-stack = pkgs.callPackage ./gh-stack.nix { }; }; }; } diff --git a/modules/packages/gh-stack.nix b/modules/packages/gh-stack.nix new file mode 100644 index 00000000..b926c211 --- /dev/null +++ b/modules/packages/gh-stack.nix @@ -0,0 +1,22 @@ +{ lib, fetchFromGitHub, buildGoModule, }: +let version = "0.0.1"; +in buildGoModule { + pname = "gh-stack"; + inherit version; + + src = fetchFromGitHub { + owner = "github"; + repo = "gh-stack"; + tag = "v${version}"; + hash = "sha256-om7ekHez08X1YjP0W+3p0PxmjU/za6+/gHX5GPakKAw="; + }; + + vendorHash = "sha256-s85Lz6yfY1TiIFPolU1qESDyw8XoBORyuOMdiHj6Grc="; + + meta = { + homepage = "https://github.com/github/gh-stack"; + description = "GitHub Stacked PRs"; + license = lib.licenses.mit; + mainProgram = "gh-stack"; + }; +} diff --git a/modules/profiles/home/gh.nix b/modules/profiles/home/gh.nix index 0afddb53..380fa285 100644 --- a/modules/profiles/home/gh.nix +++ b/modules/profiles/home/gh.nix @@ -1,12 +1,15 @@ -{ config, lib, ... }: { +{ config, lib, pkgs, ... }: { programs.gh = { enable = true; + extensions = [ pkgs.gh-stack ]; settings = { aliases = { co = "pr checkout"; pv = "pr view"; }; - editor = "${lib.getExe config.programs.vscode.package} --wait"; + editor = "${lib.getExe config.programs.zed-editor.package} --wait"; }; }; + + programs.gh-dash.enable = true; } diff --git a/modules/suites/home.nix b/modules/suites/home.nix index 46d56fa8..aa8f23af 100644 --- a/modules/suites/home.nix +++ b/modules/suites/home.nix @@ -36,7 +36,6 @@ with profiles; git.mergiraf git.worktrunk gh - gh-dash mcp.default mcp.github.default mcp.nixos