🔍

GitHub CLI を使ったコード検索の紹介

2023/08/03に公開

はじめに

こんにちはスペースマーケットでWebエンジニアをしているderaです。

弊社ではマイクロサービスを採用して開発をしているので、リポジトリを横断してgrep検索をかけたいことがまあまあの頻度であります。
そのような場合、ブラウザでGitHubを開いて、GitHubでコード検索を利用しています。
今回はターミナルからGitHubのコード検索を動かして、手軽にコード検索をする方法を紹介します。

準備

インストールは公式ドキュメントを参考にしてください。
インストール後、gh auth loginを叩いてGitHubに接続できるように設定をしてください。設定方法の詳細は割愛します。

コード検索

検索は gh search code query [flags] で検索ができます。flagsに関しては公式ドキュメント、queryに関しては コードの検索 (レガシ) で確認できます。

検索コマンドの例

個人的に使いそうな例をあげてみました。

ownerを指定して検索

gh search code 料金 --owner spacemarket

リポジトリを指定して検索

gh search code 料金 --repo spacemarket/api
gh search code 料金 --repo spacemarket/api,spacemarket/frontend

ファイル名を指定して検索

gh search code sentry --owner spacemarket --filename package.json

検索結果を増やす

gh search code 料金 --owner spacemarket --limit 1000

検索結果をブラウザで表示

gh search code 料金  --owner spacemarket --web

エイリアスを設定する

このコマンドよく使うな〜と思ったら、エイリアスを設定して手軽に呼び出せるようにしましょう。ghコマンド内でエイリアスを設定する方法もありますが、completionが効かないので、利用しているshellの設定ファイル内でaliasコマンドを使って設定するのがオススメです。

設定例

alias spm:grep="gh search code --owner spacemarket "
alias spm:grep:api1="gh search code --repo spacemarket/api1 "
alias spm:grep:api="gh search code --repo spacemarket/api1,spacemarket/api2"

設定後の使い方はこのような感じになります。
queryとflagsの順番は逆でも動くようななので、適当に入力しても動いてくれるので便利です。

spm:grep 料金
spm:grep 料金 --web

まとめ

GitHub CLIを使うと、いつも開いているターミナルから手軽にコード検索ができるようになりました。
gh search は他にもcommitやprの検索も可能です。また、ghコマンド全体では、prの作成など数多くの機能があります。ぜひ使ってみてください。

スペースマーケット Engineer Blog

Discussion