はじめに
開発をするとき、GitHubのホームからPRやissueを毎回ボタンポチポチやスクロールをして頑張って開いてませんか?
また、開発をするときなどに、『この技術はどう使うん?』と思って毎回ググってはいませんか?(GPT先生がいますが。。。🥺)
そんなことはもうやめて、GitHubの検索機能を使うべき!!!
ということで、
この記事では、GitHubの検索機能でPRやissue、ソースコードを検索することもいいよ!
ということを伝えます!
以下に記載する内容は以下の記事を参考にしています。
GitHubの自己満tipsもあるよーーーーーーーーーーー😏
GitHubのソースコード検索の仕方
コード検索できること
GitHubコード検索を使用すると、自分のコード、他人のオープンソースコード、チームのコード、コミュニティのコードを検索することができる。
特定のキーワードを持つリポジトリ や Organizationの特定のファイルやissuesに素早くジャンプできるのが、生産性が上がり、嬉しさポイント!!!!😁
検索場所
1. GitHub コマンドパレット : GitHub で ⌘ + k (Mac) / ⌃ + k (Windows)
⌘ + k (Mac) / ⌃ + k (Windows)
でコマンドパレットを開くことができる
2. 通常検索(GitHub Code Search) : https://github.com/search
コード内の関数やクラスの定義を、symbol: qualifier
形式で検索できる。
2パターンの検索方法がある。
公式ドキュメント GitHub Code Searchの使用
3. アドバンス検索 : https://github.com/search/advanced
検索対象
以下が検索できるよ〜
- ユーザー
- リポジトリ
- トピック
- issues と PR
- ディスカッション
- コード
- コミット
- パッケージ
- Wiki
コード検索時の制約
ソースコードの検索には制約があります。
普通に検索する上ではあまり関係なさそうです🤔
The current limitations on indexed code are:
- Vendored and generated code is excluded
- Empty files and files over 350 KiB are excluded
- Lines over 1,024 characters long are truncated
- Only UTF-8 encoded files are included
- Very large repositories may not be indexed
- We currently only support searching for code on the default branch of a repository.
現在の制限は次のとおりです。
- ベンダー化されたコードと生成されたコードは除外されます
- 空のファイルと 350 KiB を超えるファイルは除外されます
- 1,024 文字を超える行は切り捨てられます
- UTF-8 でエンコードされたファイルのみが含まれます
- 非常に大きなリポジトリにインデックスを作成できない場合があります
検索での構文
GitHub コマンドパレットでの構文
-
「#」
issue、プルリクエスト、ディスカッション、プロジェクトを検索する -
「!」
プロジェクトを検索する -
「@」
ユーザー、組織、およびリポジトリを検索する -
「/」
リポジトリスコープ内のファイルを検索する -
「>」
コマンドモードに入る- New repositoryなどを簡単に作成できる
Command palette beta | GitHub Changelog
通常検索での構文(コード検索)
ソースコード(ファイルの内容)またはファイルのパスがヒットする
http-push
上記のクエリは、
用語 http-push
がコード含まれているファイルをすべて検索します。
加えて、用語 http-push
がコードに含まれていなくても、 ファイル docs/http-push.txt
と一致して、ヒットすることもある。
Q : 例えば、DockerでGoを動かしたいんだけど、どう書くんだっけ??
FROM golang:1.20-alpine
で検索した結果がこちら(例)
検索でヒットしたコードを読んで、勉強🤔
GitHub上には、いろんなコードがあるんだから、脳死で、Docker Go
でググるのはやめにしませんか??(スターの多いリポジトリが信頼度高めかも)
通常検索での構文(リポジトリ検索)
1. >
、>=
ある値より大きい、以上、より小さい、および以下の値を検索できる
スターが20個より多い新卒研修の”キーワード”が入ったリポジトリ検索
新卒研修 stars:>20
2. YYYY-MM-DD
日付のクエリ
2022 年 1 月 1 日以前に作成された "hackathon" が入ったリポジトリ検索
3. is:issue
、is:pr
自分がアサインしたpull requestsを検索
自分がアサインしたissuesを検索
-
実際の調べ方
自分がアサインしたpull requestsでhoge
のキーワードが入っているPRを検索
is:pr assignee:@me hoge
4. saved:
毎回、こんな長いクエリを毎回検索時に打ってられないと思いましたが、、、しかし
saved:
で検索クエリ(検索条件)を保存できる
〜試しに、自分がアサインしたpull requests検索する検索クエリをやってみる〜
step1 is:pr assignee:@me
で検索
step2 右上のSaveボタンをクリック
step3 Nameを決めて、Create saved search
へ
そうすれば、検索のSaved queriesにsaved:
クエリが登場!!
5. 他には... こんなクエリがあるよー
path:パス
- 検索結果のソート
- 空白のあるクエリに引用符を使う
- 特定のキーワードを含む結果を除外する
- 修飾子に一致する結果を除外する
検索結果のソートと絞り込み
ソートについて
クエリでもソートできるが
右上に検索結果のソートのドロップダウンリストからソートしたほうがいい
絞り込みについて
ここから言語の絞り込みできます〜
UIが新しくなって、RepositoriesやPaths、Advanced(Owner, Symbol, Exclude archived)の絞り込みがGUIでできるように!
UIが変わったので、調べやすくなったかも
UIが変わったので、違和感しかないですが、、、
PRやissueが調べやすくなっとるじゃん!!!
左から、issue, PR, notificationsらしいです!
個人的な効率の良い調べ方
長々と説明したが、、、
コマンドパレットで、issueやPRを検索し、日々の開発の生産性を上げ
- issue、PRを素早く検索できる(ボタンをポチポチするのは卒業)
- リポジトリ検索はかなり早く検索できる
通常検索で、オープンソースコードやチームのリポジトリの検索に使う
- 意外と自分が得たい情報かつ、+アルファで情報を得ることができる
TIPS
Gitに関して
- サル先生のGit入門
- GitHub CLIのコマンドおすすめ(gh pr createらへんよく使います!)
- git-tips
- issue と Pull Request (commit) の紐づけとか、、、その他
- GitHub 通知
- lazygit(コミットログを楽に整形できるのが最強!!!!)
- GitHubのプルリクエストのdiffやpatchをして差分を見る
- GitHubプロフィール(出来るエンジニア感だそう💪)
- GitHubのページで「
.
」を打てば起動する。ブラウザで、github.dev
で検索しても開けるよ〜〜
- Codespaces(GitHub が Visual Studio Code の環境をホストしてくれるサービス)
- GitHub Copilot(ゴイスーです👀)
- Trending GitHub Repositories の bot(最もスターの多い GitHub リポジトリが知れる)
まとめ
どれが正しいとかは全くないですが、開発者にとっては、日々のGitHubの操作は、直接仕事の成果とはあまり結び付かず効率化できるものが多いと思います。
自分のリポジトリ内やチームのリポジトリ内で、「先日のissueや新しく作成したPRどこかなー💦」と探す時間を取られるぐらいだったら、検索をバシッと決め、効率化し、たくさんコードを書くべきだと駆け出しエンジニアながら、学んできました。
そんな時に、GitHubの検索機能は素晴らしく、生産性を上げてくれると思います!!!
また、検索機能を使って他の開発者さんなどのオープンソースのコードを検索してみると、多くの気づきがありそうです🤔
実際にGitHubの検索機能は、
- コマンドパレットで、自分のリポジトリ内やチームのリポジトリ内issueやPRを検索
- 通常検索で、オープンソースコードの検索
すると便利かもですね!!
その他、GitやGitHubには面白い機能などがあるので、この記事をきっかけに色々調べてみると面白いかもですね〜