😺

fish から GitHub の Pull Request 作成画面を開く

git open の仕様が変わってしまって、うまく動かなくなったので突貫で作る


URL を指定してブラウザを開く

$ open "https://github.com/nojiri1098"

いつもリポジトリを格納している場所

$ ghq root
/Users/nojiri1098/ghq

リポジトリのディレクトリ

$ pwd
/Users/nojiri1098/ghq/github.com/nojiri1098/exapmle_repo

URL に必要な部分だけ切り取る

$ echo (string trim -c "/" (string split (ghq root) (pwd)))
github.com/nojiri1098/exapmle_repo

開いてみる

$ open https://(string trim -c "/" (string split (ghq root) (pwd)))

base branch を取得する

$ git show-branch -a 2>/dev/null \
 | grep '\*' \
 | grep -v (git rev-parse --abbrev-ref HEAD) \
 | head -n1 \
 | perl -ple 's/\[[A-Za-z]+-\d+\][^\]]+$//; s/^.*\[([^~^\]]+).*$/$1/'
master

current branch を取得する

$ git rev-parse --abbrev-ref HEAD
feature

関数にしておく

.config/fish/functions/basebranch.fish
function basebranch
    git show-branch -a 2>/dev/null \
        | grep '\*' \
        | grep -v (git rev-parse --abbrev-ref HEAD) \
        | head -n1 \
        | perl -ple 's/\[[A-Za-z]+-\d+\][^\]]+$//; s/^.*\[([^~^\]]+).*$/$1/'
end
.config/fish/functions/currentbranch.fish
function currentbranch
    git rev-parse --abbrev-ref HEAD
end

完成

$ open https://(string trim -c "/" (string split (ghq root) (pwd)))/compare/(basebranch)...(currentbranch)