diff --git a/zsh/.zsh_alias b/zsh/.zsh_alias index cadbf95..8102a35 100644 --- a/zsh/.zsh_alias +++ b/zsh/.zsh_alias @@ -14,3 +14,10 @@ alias dk=docker_kill_fzf alias zs='nvim ~/.zshrc' alias sz='source ~/.zshrc' alias ls="eza --color=always --long --git --no-filesize --icons=always --no-time --no-user --no-permissions" +alias ghb='gh browse' +alias ghs='gh status' +alias ghl='gh pr list' +alias ghw='gh pr view --web' +alias prs='select_and_open_pr' +alias pr='select_and_open_pr_web_only' +alias e='exit diff --git a/zsh/.zsh_functions b/zsh/.zsh_functions index f673878..33e128b 100644 --- a/zsh/.zsh_functions +++ b/zsh/.zsh_functions @@ -30,4 +30,27 @@ fzf-cd-widget() { local dir dir=$(find ${1:-.} -path '*/\.*' -prune -o -type d -print 2> /dev/null | fzf +m) && cd "$dir" zle reset-prompt -} \ No newline at end of file +} + +select_and_open_pr() { + local pr_info=$(gh pr list --state open --json number,title | jq -r '.[] | "\(.number) \(.title)"' | fzf -1) + + if [[ -n "$pr_info" ]]; then + local pr_number=$(echo "$pr_info" | awk '{print $1}') + gh pr checkout "$pr_number" + gh pr view --web + else + echo "No PR selected." + fi +} + +select_and_open_pr_web_only() { + local pr_info=$(gh pr list --state open --json number,title | jq -r '.[] | "\(.number) \(.title)"' | fzf -1) + + if [[ -n "$pr_info" ]]; then + local pr_number=$(echo "$pr_info" | awk '{print $1}') + gh pr view --web + else + echo "No PR selected." + fi +}