mirror of
https://codeberg.org/muon/home.git
synced 2026-03-08 03:25:16 +00:00
Add octo
This commit is contained in:
parent
31514a0b0c
commit
e4f6a5b267
4 changed files with 70 additions and 2 deletions
|
|
@ -19,6 +19,7 @@ in {
|
||||||
mods.terminal.emulator.enable = true;
|
mods.terminal.emulator.enable = true;
|
||||||
mods.terminal.development.enable = true;
|
mods.terminal.development.enable = true;
|
||||||
mods.terminal.tools.enable = true;
|
mods.terminal.tools.enable = true;
|
||||||
|
mods.terminal.gh.enable = true;
|
||||||
mods.terminal.hr.enable = true;
|
mods.terminal.hr.enable = true;
|
||||||
mods.desktop.development.enable = true;
|
mods.desktop.development.enable = true;
|
||||||
mods.desktop.productivity.enable = false;
|
mods.desktop.productivity.enable = false;
|
||||||
|
|
@ -45,7 +46,6 @@ in {
|
||||||
go
|
go
|
||||||
rainfrog
|
rainfrog
|
||||||
tealdeer
|
tealdeer
|
||||||
gh
|
|
||||||
(callPackage ./packages/mender-cli.nix {})
|
(callPackage ./packages/mender-cli.nix {})
|
||||||
]
|
]
|
||||||
# Non-free </3
|
# Non-free </3
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ in {
|
||||||
mods.terminal.emulator.enable = true;
|
mods.terminal.emulator.enable = true;
|
||||||
mods.terminal.development.enable = true;
|
mods.terminal.development.enable = true;
|
||||||
mods.terminal.tools.enable = true;
|
mods.terminal.tools.enable = true;
|
||||||
|
mods.terminal.gh.enable = true;
|
||||||
mods.terminal.hr.enable = true;
|
mods.terminal.hr.enable = true;
|
||||||
mods.desktop.development.enable = true;
|
mods.desktop.development.enable = true;
|
||||||
mods.desktop.productivity.enable = false;
|
mods.desktop.productivity.enable = false;
|
||||||
|
|
@ -41,7 +42,6 @@ in {
|
||||||
go
|
go
|
||||||
rainfrog
|
rainfrog
|
||||||
tealdeer
|
tealdeer
|
||||||
gh
|
|
||||||
(callPackage ./packages/mender-cli.nix {})
|
(callPackage ./packages/mender-cli.nix {})
|
||||||
]
|
]
|
||||||
# Non-free </3
|
# Non-free </3
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
./nvim
|
./nvim
|
||||||
./zellij
|
./zellij
|
||||||
./opencode
|
./opencode
|
||||||
|
./gh.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
config = lib.mkIf osConfig.mods.desktop.enable {
|
config = lib.mkIf osConfig.mods.desktop.enable {
|
||||||
|
|
|
||||||
67
modules/home/terminal/gh.nix
Normal file
67
modules/home/terminal/gh.nix
Normal file
|
|
@ -0,0 +1,67 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
gh-pr-review = pkgs.writeShellScriptBin "gh-pr-review" ''
|
||||||
|
PR_NUMBER=$1
|
||||||
|
if [ -z "$PR_NUMBER" ]; then
|
||||||
|
echo "Usage: gh-pr-review <pr-number>"
|
||||||
|
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}}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue