注: この記事では、レガシのコード検索の構文について説明します。これは、コードを検索するための REST API エンドポイントにのみ使用する必要があります。
GitHub で使用できるコード検索構文については、「GitHub Code Search の構文について」を参照してください。
GitHub Enterprise Cloud全体にわたってグローバルに検索できます。あるいは、検索を特定のリポジトリや Organization に絞ることもできます。 詳しくは、「GitHub での検索について」をご覧ください。
これらのコード検索の修飾子を使わなければ、コードを検索できません。 リポジトリ、ユーザまたはコミットの特定の修飾子での検索は、コードを検索する場合、うまくいきません。
ヒント:
- 検索結果をさらに改善するために検索修飾子を追加できる検索構文の一覧については、「検索構文を理解する」を参照してください。
- 複数単語の検索用語は引用符で囲みます。 たとえば "In progress" というラベルの問題を検索したい場合は、
label:"in progress"
と検索します。 検索では、大文字と小文字は区別されません。
コード検索での留意点
コードの検索は複雑なため、検索の実行には一定の制限があります。
- すべてのパブリック リポジトリに渡ってコードを検索するには、GitHub Enterprise Cloud 上の個人アカウントにサインインしなければなりません。
- フォークの星が親リポジトリよりも多く、フォークされたリポジトリが作成後に少なくとも 1 つのプッシュ コミットを持っている場合にのみ、フォークのコードを検索できます。 親リポジトリより星の数が少ないか、コミットがないフォークは、コード検索はインデックス作成されません。 検索結果に親よりも星の数が多いフォークと少なくとも 1 つのコミットを含めるには、クエリに
fork:true
またはfork:only
を追加する必要があります。 詳しくは、「フォーク内を検索する」を参照してください。 - コード検索用にインデックスが作成されるのは "既定のブランチ" だけです。
- 384 KB より小さいファイルのみ検索可能です。
- 最大 4,000 個のプライベート リポジトリと内部 リポジトリが検索可能です。 これら 4,000 個のリポジトリは、アクセス権がある最初の 10,000 個のプライベート リポジトリと内部リポジトリのうち、最近更新されたものです。
- ファイル数が 500,000 未満のリポジトリのみ検索可能です。
- 昨年アクティビティがあった、または検索結果に返されたリポジトリのみが検索可能です。
filename
で検索する場合を除き、ソースコードを検索する際には、必ず 1 つ以上の検索用語を含めなければなりません。 たとえば、language:javascript
という検索は無効ですが、amazing language:javascript
は有効です。- 検索結果では、同一ファイルから取り出される部分は 2 つまでです。そのファイルはさらに多くの部分でヒットしている可能性があります。
- 検索クエリの一部として次のワイルドカード文字を用いることはできません:
. , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ] @
。 検索では、これらのシンボルは単に無視されます。
ファイルの内容またはファイルパスで検索
in
修飾子によって、ソースコード ファイル、ファイル パスまたはその両方の内容に検索を限定することができます。 この修飾子を省略した場合、ファイルの内容だけが検索されます。
修飾子 | 例 |
---|---|
in:file | octocat in:file は、ファイルの内容に「octocat」が表示されるコードとマッチします。 |
in:path | octocat in:path は、ファイル パスに「octocat」が表示されるコードとマッチします。 |
in:file,path | octocat in:file,path は、ファイルの内容またはパスに「octocat」が表示されるコードとマッチします。 |
ユーザーまたは Organization のリポジトリ内の検索
特定のユーザーまたは組織が所有するすべてのリポジトリのコードを検索するには、user
修飾子または org
修飾子を使います。 特定のリポジトリのコードを検索するには、repo
修飾子を使います。
修飾子 | 例 |
---|---|
user:USERNAME | user:defunkt extension:rb は、.rb で終わる @defunkt のコードとマッチします。 |
org:ORGNAME | org:github extension:js は、.js で終わる GitHub のコードとマッチします。 |
repo:USERNAME/REPOSITORY | repo:mozilla/shumway extension:as は、.as で終わる @mozilla の shumway プロジェクトのコードとマッチします。 |
ファイルの場所での検索
リポジトリの特定の場所に表示されているソースコードを探すには、path
修飾子を使います。 リポジトリのルート レベルにあるファイルを検索するには、path:/
を使います。 または、ディレクトリやそのサブディレクトリ内に存在しているファイルを検索するには、ディレクトリ名もしくはディレクトリへのパスを明示してください。
修飾子 | 例 |
---|---|
path:/ | octocat filename:readme path:/ は、リポジトリのルート レベルにある「octocat」という単語を含む readme ファイルとマッチします。 |
path:DIRECTORY | form path:cgi-bin language:perl は、cgi-bin ディレクトリまたはそのサブディレクトリ内の「form」という単語を含む Perl ファイルとマッチします。 |
path:PATH/TO/DIRECTORY | console path:app/public language:javascript は、app/public ディレクトリまたはそのサブディレクトリ (app/public/js/form-validators を含む) 内の「console」という単語を含む JavaScript ファイルとマッチします。 |
言語で検索
コードが書かれた言語で検索することができます。 language
修飾子には、言語名またはエイリアスを指定できます。 サポートされている言語とその名前とエイリアスの完全な一覧については、github-linguist/linguist リポジトリを参照してください。
修飾子 | 例 |
---|---|
language:LANGUAGE | element language:xml size:100 は、XML としてマークされ、ぴったり 100 バイトの「element」という単語を含むコードとマッチします。 |
language:LANGUAGE | display language:scss は、SCSS としてマークされ、「display」という単語を含むコードとマッチします。 |
language:LANGUAGE | org:mozilla language:markdown は、Markdown としてマークされているすべての @mozilla のリポジトリのコードとマッチします。 |
ファイルサイズで検索
コードが存在するファイルのサイズによってソースコードを検索するには、size
修飾子を使います。 size
修飾子はより大きい修飾子、より小さい修飾子、および範囲の修飾子を使用して、コードが見つかったファイルのバイト サイズに基づいて結果をフィルタリングします。
修飾子 | 例 |
---|---|
size:n | function size:>10000 language:python は、10 KB を超えるファイル内の Python で記述された「function」という単語を含むコードとマッチします。 |
ファイル名で検索
filename
修飾子は、特定のファイル名を持つコード ファイルとマッチします。 ファイルファインダーを使ってリポジトリにあるファイルを表示できます。 詳しくは、「GitHub でファイルを検索する」を参照してください。
修飾子 | 例 |
---|---|
filename:FILENAME | filename:linguist は、「linguist」という名前のファイルとマッチします。 |
filename:FILENAME | filename:.vimrc commands は、「commands」という単語を含む .vimrc ファイルとマッチします。 |
filename:FILENAME | filename:test_helper path:test language:ruby は、test ディレクトリ内の test_helper という名前の Ruby ファイルとマッチします。 |
ファイルの拡張子で検索
extension
修飾子は、特定のファイル拡張子を持つコード ファイルとマッチします。
修飾子 | 例 |
---|---|
extension:EXTENSION | form path:cgi-bin extension:pm は、cgi-bin の下の「form」という単語を含み .pm というファイル拡張子を持つコードとマッチします。 |
extension:EXTENSION | icon size:>200000 extension:css は、.css で終わり「icon」という単語を含む 200 KB を超えるファイルとマッチします。 |