NEKO BLOG

初めてのGitHub CLI(gh pr)

私は普段、業務でClaude Codeを使って開発を行っています。

ただ仕事でAIを使い始めたのは、今のプロジェクトが初めて。 年数にしてまだ1年未満の状況です。

AIに依頼をするにあたり、今まで全く恩恵を感じられず使っていなかったghコマンドが、 思いの外使えるものだと知って嬉しくなったので、記事にしてみたいと思います。

きっかけ

AIでの開発を行う際、開発中はこんなプロンプトを使っていたので問題ありませんでした。

plain text

feature/xxx ブランチで、以下の作業を行ってください。

どんなに複雑な画面構成でも、どのブランチかを指定すれば、Claude Codeの場合勝手にブランチを切り替えて作業を進めてくれます。

問題は、自己レビュー時。

私の会社で使っているレビューSkillでは、PRを作ってからPR番号を指定してレビューしてくれます。

そう、PR番号。URLにしてこの部分。

plain text

https://github.com/xxxxxxx/yyyyyyyy/pull/{PR番号}

ターミナルの設定で作業ブランチ名は表示できても、PR番号までは表示できません。

かといって毎回ブラウザでGitHubにアクセス、Pull Requestから目的のPRを探すのは正直手間でした。

そこで登場したのが、ghコマンドです。

ghコマンドとは?

ghコマンドは、正しくはGitHub CLIです。 今回紹介するPRの他にもできることがたくさんありそうなのでぜひ公式情報を見てみてください。

docs.github.comhttps://docs.github.com/ja/github-cli/github-cli/about-github-cli

gh pr view --web

真っ先に使い始めたのはこのコマンド。

でも初めの方は、まだまだブラウザに依存する形で使っていました。

--web をつけることで、対象ブランチに紐づくPRが存在する場合はそのURLを開いてくれます。

bash

gh pr view --web

gh pr view --json

Pull Requestからちまちまと目的のものを探さなくなって良くなった分、 —webでも確かに楽にはなりました。

しかし!もっと便利なコマンドがありました。

私が欲しかったのは、Claude Codeに渡すためのPR番号。ただそれだけ。

PRそのものをブラウザで開かずとも、PR番号さえ取れればいい場合。

これを実行すると、

bash

gh pr view --json number

こんな内容が返ってきます。

これは現在チェックアウトしているブランチに紐づくPR番号を返してくれます。 ブランチ名の指定とか不要。使い勝手が大変よろしいですね。

json

{
  "number": 14
}

これですよ、これ。

ここまで取れたらあとは簡単。Claude Codeにお願いするだけです。

plain text

/review-skill #14のPRレビューを行なってください。

レビュースキルを使うためだけに、ブラウザを経由する必要は、もはやない✨

ちなみにその他、タイトルとかも取りたい場合はこんな使い方もできるみたいです。

bash

gh pr view --json number,title

json

{
  "number": 14,
  "title": "PRタイトル〜〜〜"
}

ghコマンドは、「流石にこんなこと、、できないよね・・・?」ができちゃう優れものでした。

gh pr create

業務ではClaude Codeにテンプレート込みでPRを作ってもらうので利用シーンはなかったのですが、 個人開発でPRを作ってマージしたい時に使いました。

bash

gh pr create

ターミナルから対話形式でタイトルと本文を書くよう促されます。(本文は任意)

あとはこれを実行して、

bash

gh pr view --web

ブラウザで最終確認して、問題なければ、マージ✨ ※私は個人開発でも、マージは万が一が怖いのでブラウザ派です。

は、、、早い・・・! PR作るの、腰が重いとか言ってる暇もなく終わってしまいました。

今回の学び

今回は業務・個人開発両方の面で便利なghコマンドをご紹介しました。

個人的には、爆速でPR操作ができるGitHub CLI、ここに来てどハマりしています。楽しい✨ 何事も食わず嫌いはいけませんね。

ちなみに今回ご紹介した gh pr コマンドの他に、Issueを扱うコマンドもあり、 これも使えそうだなと思っているのでいつか記事にしたいと思います。

Let's 素敵なGitHub CLIライフを!