From e4f6a5b2676761c756410a8af5c4b99eab4e338d Mon Sep 17 00:00:00 2001 From: Sage Date: Tue, 3 Mar 2026 15:42:41 +0000 Subject: [PATCH] Add octo --- hosts/murk/home.nix | 2 +- hosts/musk/home.nix | 2 +- modules/home/terminal/default.nix | 1 + modules/home/terminal/gh.nix | 67 +++++++++++++++++++++++++++++++ 4 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 modules/home/terminal/gh.nix diff --git a/hosts/murk/home.nix b/hosts/murk/home.nix index 3abcd95..fc55663 100644 --- a/hosts/murk/home.nix +++ b/hosts/murk/home.nix @@ -19,6 +19,7 @@ in { mods.terminal.emulator.enable = true; mods.terminal.development.enable = true; mods.terminal.tools.enable = true; + mods.terminal.gh.enable = true; mods.terminal.hr.enable = true; mods.desktop.development.enable = true; mods.desktop.productivity.enable = false; @@ -45,7 +46,6 @@ in { go rainfrog tealdeer - gh (callPackage ./packages/mender-cli.nix {}) ] # Non-free " + exit 1 + fi + + ORIGINAL_BRANCH=$(git branch --show-current) + HAS_CHANGES=$(git status --porcelain) + STASH_NAME="gh-pr-review-auto-stash-$(date +%s)" + + if [ -n "$HAS_CHANGES" ]; then + echo "Stashing local changes..." + git stash push -m "$STASH_NAME" + fi + + echo "Checking out PR #$PR_NUMBER..." + if gh pr checkout "$PR_NUMBER"; then + nvim -c "Octo review" + else + echo "Failed to checkout PR #$PR_NUMBER" + fi + + echo "Restoring original branch: $ORIGINAL_BRANCH" + git checkout "$ORIGINAL_BRANCH" + + if [ -n "$HAS_CHANGES" ]; then + # Find the stash index by message to be safe + STASH_INDEX=$(git stash list | grep "$STASH_NAME" | cut -d: -f1 | head -n1) + if [ -n "$STASH_INDEX" ]; then + echo "Restoring stashed changes..." + git stash pop "$STASH_INDEX" + fi + fi + ''; +in { + options.mods.terminal.gh.enable = lib.mkEnableOption "enables gh and gh-dash"; + + config = lib.mkIf config.mods.terminal.gh.enable { + home.packages = [gh-pr-review]; + + programs.gh = { + enable = true; + extensions = [pkgs.gh-dash]; + }; + + programs.gh-dash = { + enable = true; + settings = { + keybindings = { + prs = [ + { + key = "d"; + command = "gh-pr-review {{.PrNumber}}"; + } + ]; + }; + }; + }; + }; +}