技術とかの雑なToday I Learnedメモ

GitHubのDraft Pull Requestをghコマンドから作る

GitHub の Draft Pull Request を gh コマンドから作る

12/16に gh コマンドのことを調べて使い始めるようになったが、正直それ以降まだまだブラウザ上で操作したりしてしまうケースが多く、ちゃんと使っていきたい。

で、普段 Draft のプルリクエストを作成するとき、手元で push してからブラウザ上で GitHub にアクセスして色々やっているけど、gh コマンドでできるとのことなのでここを CLI にしたい。

gh pr create | GitHub CLI

かなり色々オプションがある。

Draft プルリクエスト作成をターミナルだけで行う(GitHub CLI 1.0)

Github の Draft Pull Request を CLI で作りたい - Qiita

PULL_REQUEST_TEMPLATE.md を入れたい場合は--body-file .github/PULL_REQUEST_TEMPLATE.mdとすればいいだけらしい。

--fillを使うと title と body は入力せずコミットの情報を使うとのこと。すご。

コミットの情報を使うということはコミットメッセージが title に入ると思うんだけど、普通にブラウザ上でプルリクエストを作るときってだいたい最初のコミットのメッセージが入ってるから、それになるのかな。

例えば title だけ都度入力したい場合は、

gh alias set dp 'pr create --draft --body-file .github/PULL_REQUEST_TEMPLATE.md --title'

とかしておけば、毎回コマンドを叩く毎にgh dp 'pr title is here'とかできるのかな。

と思って調べてたら ↑ のは間違いで、普通にシェルの入力を取得できるらしい。

gh alias set | GitHub CLI

つまり「プルリクエストを、body は PULL_REQUEST_TEMPLATE.md で、title はシェルへの入力で、Draft で作りたい」という要望は、

gh alias set --shell dp 'pr create --draft --tilte $1 --body-file .github/PULL_REQUEST_TEMPLATE.md'

とすれば、

gh dp 'pr title is here'でいけるのかな?

例には--label="$1"みたいなオプションの指定方法で書いてあるけど、grep "$2"とかもあるし大丈夫だと思う。

こんな感じで良い感じのやつを alias に登録しておけばよさそう。CLI からプルリクエスト作るぞ。