Skip to main content

コード (レガシー) の検索

コード検索 API を使用している場合にのみ、レガシ コード検索構文を使用する必要があります。

メモ

この記事では、レガシのコード検索の構文について説明します。これは、コードを検索するための REST API エンドポイントにのみ使用する必要があります。

GitHubで使用できるコード検索構文については、GitHubのコード検索構文を理解する を参照してください。

検索は GitHub 全体を対象としてグローバルに実行するか、特定のリポジトリや organization を対象とすることができます。 詳細については、 AUTOTITLE を参照してください。

これらのコード検索の修飾子を使わなければ、コードを検索できません。 リポジトリ、ユーザまたはコミットの特定の修飾子での検索は、コードを検索する場合、うまくいきません。

ヒント

  • この記事には、GitHub.com の Web サイトでの検索例へのリンクが含まれていますが、同じ検索フィルターはあらゆる GitHub プラットフォームで使えます。 リンクされている検索例で、github.com を GitHub プラットフォームのホスト名に置き換えてください。
  • 検索結果をさらに改善するために検索修飾子を追加できる検索構文の一覧については、「検索構文を理解する」を参照してください。
  • 複数単語の検索用語は引用符で囲みます。 たとえば "In progress" というラベルの問題を検索したい場合は、label:"in progress" と検索します。 検索では、大文字と小文字は区別されません。

コードの検索は複雑なため、検索の実行には一定の制限があります。

  • すべてのパブリック リポジトリに渡ってコードを検索するには、GitHub 上の個人用アカウントにサインインしなければなりません。
  • フォークの星が親リポジトリよりも多く、フォークされたリポジトリが作成後に少なくとも 1 つのプッシュ コミットを持っている場合にのみ、フォークのコードを検索できます。 親リポジトリよりも星の数が少ない、またはコミットがないフォークは、コード検索のためのインデックスが作成されません。 親リポジトリより多くのスターがあり、かつ少なくとも 1 回コミットがプッシュされているフォークを検索結果に含めるには、クエリに fork:true または fork:only を追加する必要があります。 詳しくは、「フォーク内を検索する」をご覧ください。
  • コード検索用にインデックスが作成されるのは 、既定のブランチ のみです。
  • 384 KB 未満のファイルのみが検索可能です。
  • 最大 4,000 個のプライベート リポジトリを検索できます。 これらの 4,000 個のリポジトリは、アクセス権を持つ最初の 10,000 個のプライベート リポジトリ リポジトリの中で最も最近更新されたものです。
  • 検索できるのは、ファイル数が 500,000 未満のリポジトリのみです。
  • 過去 1 年間にアクティビティが発生したリポジトリ、または検索結果に返されたリポジトリのみが検索可能です。
  • アーカイブされたリポジトリは検索できません。
  • filename で検索する場合を除き、ソースコードを検索する際には、必ず 1 つ以上の検索用語を含めなければなりません。 たとえば、language:javascript という検索は無効ですが、amazing language:javascript は有効です。
  • 検索結果では、同じファイルからは最大で2つの断片が表示されます。ただし、ファイル内にはさらに多くの結果が含まれていることがあります。
  • 検索クエリの一部として次のワイルドカード文字を用いることはできません: . , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ] @。 検索では、これらのシンボルは単に無視されます。

ファイルの内容またはファイルパスで検索

in 修飾子によって、ソースコード ファイル、ファイル パスまたはその両方の内容に検索を限定することができます。 この修飾子を省略した場合、ファイルの内容だけが検索されます。

修飾子
in:file
[
octocat in:file](https://github.com/search?q=octocat+in%3Afile&type=Code) は、ファイルの内容に「octocat」が表示されるコードとマッチします。
in:path
[
octocat in:path](https://github.com/search?q=octocat+in%3Apath&type=Code) は、ファイル パスに「octocat」が表示されるコードとマッチします。
in:file,path
[
octocat in:file,path](https://github.com/search?q=octocat+in%3Afile%2Cpath&type=Code) は、ファイルの内容またはパスに「octocat」が表示されるコードとマッチします。

ユーザーまたは Organization のリポジトリ内の検索

特定のユーザーまたは organization が所有するすべてのリポジトリのコードを検索するには、user 修飾子または org 修飾子を使います。 特定のリポジトリのコードを検索するには、repo 修飾子を使います。

修飾子
user:USERNAME
[
user:defunkt extension:rb](https://github.com/search?q=user%3Agithub+extension%3Arb&type=Code) は、@defunkt で終わる のコードとマッチします。
org:ORGNAME
[
org:github extension:js](https://github.com/search?utf8=%E2%9C%93&q=org%3Agithub+extension%3Ajs&type=Code) は、.js で終わるGitHubのコードと一致します。
repo:USERNAME/REPOSITORY
[
repo:mozilla/shumway extension:as](https://github.com/search?q=repo%3Amozilla%2Fshumway+extension%3Aas&type=Code) は、@mozilla で終わる の shumway プロジェクトのコードとマッチします。

ファイルの場所での検索

リポジトリの特定の場所に表示されているソースコードを探すには、path 修飾子を使います。 リポジトリのルート レベルにあるファイルを検索するには、path:/ を使います。 または、ディレクトリやそのサブディレクトリ内に存在しているファイルを検索するには、ディレクトリ名もしくはディレクトリへのパスを明示してください。

修飾子
path:/
[
octocat filename:readme path:/](https://github.com/search?utf8=%E2%9C%93&q=octocat+filename%3Areadme+path%3A%2F&type=Code) は、リポジトリのルート レベルにある「octocat」という単語を含む readme ファイルとマッチします。
path:DIRECTORY
[
form path:cgi-bin language:perl](https://github.com/search?q=form+path%3Acgi-bin+language%3Aperl&type=Code) は、cgi-bin ディレクトリまたはそのサブディレクトリ内の「form」という単語を含む Perl ファイルとマッチします。
path:PATH/TO/DIRECTORY
[
**
console path:app/public language:javascript
**
](https://github.com/search?q=console+path%3A%22app%2Fpublic%22+language%3Ajavascript&type=Code) は、app/public ディレクトリまたはそのサブディレクトリ (app/public/js/form-validators を含む) 内の「console」という単語を含む JavaScript ファイルとマッチします。

言語で検索

コードが書かれた言語で検索することができます。 language 修飾子には、言語名またはエイリアスを指定できます。 サポートされている言語とその名前とエイリアスの完全な一覧については、github-linguist/linguist リポジトリを参照してください。

修飾子
language:LANGUAGE
[
element language:xml size:100](https://github.com/search?q=element+language%3Axml+size%3A100&type=Code) は、XML としてマークされ、ぴったり 100 バイトの「element」という単語を含むコードとマッチします。
language:LANGUAGE
[
display language:scss](https://github.com/search?q=display+language%3Ascss&type=Code) は、SCSS としてマークされ、「display」という単語を含むコードとマッチします。
language:LANGUAGE
[
org:mozilla language:markdown](https://github.com/search?utf8=%E2%9C%93&q=org%3Amozilla+language%3Amarkdown&type=Code) は、Markdown としてマークされているすべての @mozilla のリポジトリのコードとマッチします。

ファイルサイズで検索

コードが存在するファイルのサイズによってソースコードを検索するには、size 修飾子を使います。 size 修飾子はより大きい修飾子、より小さい修飾子、および範囲の修飾子を使用して、コードが見つかったファイルのバイト サイズに基づいて結果をフィルタリングします。

修飾子
size:n
[
function size:>10000 language:python](https://github.com/search?q=function+size%3A%3E10000+language%3Apython&type=Code) は、10 KB を超えるファイル内のPythonで記述された "function" という単語を持つコードと一致します。

ファイル名で検索

filename 修飾子は、特定のファイル名を持つコード ファイルとマッチします。 ファイルファインダーを使ってリポジトリにあるファイルを表示できます。 詳しくは、「GitHubでのファイルの検索」をご覧ください。

修飾子
filename:FILENAME
[
filename:linguist](https://github.com/search?utf8=%E2%9C%93&q=filename%3Alinguist&type=Code) は、「linguist」という名前のファイルとマッチします。
filename:FILENAME
[
filename:.vimrc commands](https://github.com/search?q=filename%3A.vimrc+commands&type=Code) は、「commands」という単語を含む .vimrc ファイルとマッチします。
filename:FILENAME
[
filename:test_helper path:test language:ruby](https://github.com/search?q=minitest+filename%3Atest_helper+path%3Atest+language%3Aruby&type=Code) は、test ディレクトリ内の test_helper という名前の Ruby ファイルとマッチします。

ファイルの拡張子で検索

extension 修飾子は、特定のファイル拡張子を持つコード ファイルとマッチします。

修飾子
extension:EXTENSION
[
form path:cgi-bin extension:pm](https://github.com/search?q=form+path%3Acgi-bin+extension%3Apm&type=Code) は、cgi-bin の下の「form」という単語を含み .pm というファイル拡張子を持つコードとマッチします。
extension:EXTENSION
[
icon size:>200000 extension:css](https://github.com/search?utf8=%E2%9C%93&q=icon+size%3A%3E200000+extension%3Acss&type=Code) は、.css で終わり「icon」という単語を含む 200 KB を超えるファイルとマッチします。

参考資料