oinume journal

Scratchpad of what I learned

ghコマンドでよく使ってるヤツ

このポストがなぜかやたらバズっていたので、調子に乗って自分がよく使っているghコマンドのサブコマンドを書いてみる。

gh pr view -w

Usage

gh pr view [<number> | <url> | <branch>] [flags]

該当のpull requestをブラウザで開くために使っている。自分は何かとブラウザ上で作業することが多いのでかなり多用してる。

  • -w を省略するとターミナル上でPRの内容が表示される。
  • 引数の<number>などを省略するとカレントブランチのpull requestになる

gh pr checks --watch

Usage

 gh pr checks [<number> | <url> | <branch>] [flags]

カレントブランチのpull requestのchecks(CI)の状況を確認するのに使ってる。

  • gh pr checks --watch -i 3 のように-iでリフレッシュする間隔を秒数で指定できる。デフォルトは10秒
  • gh pr checks --json=name,state のように指定すると以下のようにJSON形式で出力できる
[
  {
    "name": "triage",
    "state": "SUCCESS"
  },
  {
    "name": "lint",
    "state": "SUCCESS"
  },
  {
    "name": "test",
    "state": "SUCCESS"
  }
]

gh pr checkout

Usage

gh pr checkout [<number> | <url> | <branch>] [flags]

主に他の人のpull requestのコードを自分のPC上でcheckoutしたい時に使う。

gh pr create

Usage

gh pr create [flags]

カレントブランチにコミットがある場合、gh pr create -w を実行するとコミットをpushしてpull request をopenする画面をブラウザで開いてくれる。(コメントで教えてもらってから重宝してます)

fzf との組み合わせ

fzfと組み合わせて以下のようなfunctionを定義している。

# fghpr - list pull requests with search query, then open selected pull-request with browser
# Use like `fghpr -A '@me' -s closed`
fghpr() {
    gh pr list "$@" --json number,title -q '.[] | "\(.number) \(.title)"' \
    | fzf --delimiter=' ' --with-nth=2.. \
    | awk '{print $1}' \
    | xargs -I {} gh pr view -w {}
}

例えば fghpr -A '@me' -s closed で自分が過去にマージ or クローズしたPRをターミナル上に一覧表示して、Fuzzy検索しつつ選択したものをブラウザで開くことができる。

Claude Code

あとはClaude Codeと共に使うと色々便利らしいです。