GitHub CLI を使ったコード検索の紹介
はじめに
こんにちはスペースマーケットで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の作成など数多くの機能があります。ぜひ使ってみてください。
スペースを簡単に貸し借りできるサービス「スペースマーケット」のエンジニアによる公式ブログです。 弊社採用技術スタックはこちら -> whatweuse.dev/company/spacemarket
Discussion