web-dev-qa-db-ja.com

Githubプロジェクト内の検索コード

Githubプロジェクトのコード内で何かをgrepする方法はありますか?

ソースを取得してローカルでgrepすることはできましたが、Webインターフェースまたはサードパーティの代替手段を使用してそれが可能かどうか疑問に思っていました。

アイデア?

241
Ben Humphreys

2013年1月更新:a真新しい検索が到着しました!、に基づいて- elasticsearch.org

Rubyリポジトリ内でのstatの検索は、stat repo:Ruby/rubyで表され、動作するようになりますTM
(リポジトリ名は大文字と小文字を区別しません: test repo:wordpress/wordpresstest repo:Wordpress/Wordpress と同じを返します)

enter image description here

あげる:

enter image description here

そして、 フォロワー 、または フォーク 、または...に基づいた他の多くの検索例があります.


2012年7月更新(過去のLucene検索と貧弱なコードインデックス作成、壊れたGUIとの組み合わせ、アーカイブ用に保持):

SolrQuerySyntax に基づく)検索はより寛容になり、default検索セレクター "Everything"を使用すると恐ろしい "Invalid search query. Try quoting it."はなくなりました:)

(私たちはTim Peaseよりも多くのことができると思います。これは彼の目的の1つにありました "すべてのGitHubプロパティの検索エクスペリエンス "、および このスタックオーバーフローの質問に言及しました 当時;))

Rubyコード内のgrepの図は次のとおりです。リポジトリとユーザーを検索しますが、最初に検索したいコードはalsoです。

GitHub more permissive search results


前号の最初の回答とイラスト(2012年9月=> 2012年3月)

高度な検索GitHubフォーム を使用できます。

  • ドロップダウンからCodeRepositories、またはUsersを選択し、
  • その検索タイプに対してリストされた対応するプレフィックスを使用します

たとえば、repo:username/repo-nameディレクティブを使用して、検索をcodeに制限しますリポジトリ。
最初の「Advanced Search」ページには次のセクションが含まれます。

コード検索:

コード検索では、GitHubで公開されているすべてのコードを調べます。次の方法でフィルタリングすることもできます。

  • 言語language:
  • リポジトリ名(ユーザー名を含む)repo:
  • ファイルパスpath:

したがって、「Code」検索セレクターを選択すると、リポジトリ内のテキストをgrepするクエリが機能します。

Good Search selector


GitHubの信じられないほどunhelpfulとは:

  • 正しい検索セレクター(ここでは「Code」)を忘れると、エラーメッセージが表示されます。
    "Invalid search query. Try quoting it."

Wrong selector for the code filer

  • エラーメッセージはまったく役に立ちません。
    quoting it」を大量に使用しても、このエラーから抜け出すことはできません。

  • エラーメッセージが表示されたら、検索selectors( "Repositories"、 "Users"または "Language")と(右)検索との正しい関連付けを思い出させるセクションは表示されません。 フィルター(ここでは「repo:」)。
    それ以上の試行は、それらの関連付け(セレクターフィルター)を表示しません。上記のエラーメッセージのみ...
    これらの配列を取得する唯一の方法は、「Advance Search」アイコンをクリックすることです。

Advance Search Icon on GitHub

  • デフォルトの「Everything」検索セレクターは、実際にはwrongの検索フィルターのallの1つです! 「language:」を除く...
    (「Everything」は、検索フィルター「repo:」で実際に動作する検索セレクターを選択するのに役立つと想像/想定できますが、いや、簡単です)

  • Advance Search」フィールドだけで必要な検索セレクターを指定することはできません!
    (ただし、「language:」は、「Search Language」が「Search for」「タイプ」のすぐ下にある別のコンボボックスであっても可能です...)

Wrong search selector


したがって、ユーザーのエクスペリエンスは通常次のとおりです。

  • Advanced Search」をクリックし、フィルターのこれらのセクションを一目見ると、使用したいものに気付きます。「repo:
  • 最初の高度な検索「repo:jruby/jruby stat」を行いますが、デフォルトの検索セレクター「Everything」を使用します
    => FAIL! (および「セレクター-フィルター」の関連付けを表示する配列はgone
  • 「Search for」セレクターが気になるので、選択してくださいfirst choice "Repositories"( "Dah!リポジトリ内で検索したい...")
    => FAIL
  • 落ち込んで、あなたはセレクターの次の選択肢(ここでは、「Users」)を選択します。
    => FAIL
  • 「これを壊してください、GitHubの検索はbrokenです!私はここから出ました!」
    ...
    (GitHubの高度な検索は実際には壊れていません。GUIのみが...)

要約すると、OP Ben Humphreys として「Githubプロジェクトのコード内で何かをgrep」したい場合は、「Code」検索セレクターを選択することを忘れないでください...

241
VonC

最近のプライベートリポジトリには、そのリポジトリを検索するための検索フィールドがあります。

enter image description here

困ったことに、この機能は公開リポジトリでは利用できないようです。

22
Patrick Linskey

UPDATE

以下のブックマークレットハックは、XHRの問題とAPIの変更により壊れています。

ありがたいことに、Githubに "A Whole New Code Search" が追加されました。


このブードゥーをチェックアウトしてください: Githubコード検索ユーザースクリプト

そこの指示に従ってください。または、スクリプトや拡張機能でブラウザを肥大化するのが嫌いなら、ブックマークしたユーザースクリプトのバンドルを使用してください。

javascript:(function(){var s='https://github.com/skratchdot/github-code-search.user.js/raw/master/github-code-search.user.js',t='text/javascript',d=document,n=navigator,e;(e=d.createElement('script')).src=s;e.type=t;d.getElementsByTagName('head')[0].appendChild(e)})();doIt('');void('');

上記のソースを新しいブックマークのURLとして保存します。 Githubリポジトリを参照し、ブックマークをクリックして、bamin-page、ajaxified code search

警告Githubは、リポジトリを検索する前にインデックスを作成する必要があります。

Before the Bookmarklet

アブラカダブラ...

After - Look in the second menubar after the leftmost tabs: Files, Commits, Branches...

注釈付きのECMAScript 5.1仕様リポジトリからのサンプル検索は次のとおりです。

Sample search in the annotated ECMAScript 5.1 specification repository

20
fny

@VonCの答えは一部のリポジトリで機能しますが、残念ながら、今はできない多くのリポジトリで機能します。 Githubは単にインデックスを作成していません(元々@emddudleyがコメントしたように)。彼らは彼らのウェブサイトのどこにもこれを述べていないが、あなたがサポートを求めるかどうかあなたに言うでしょう:

From:Tim Pease
新しくプッシュされたコードをcodesearchインデックスに追加することを停止しました。コードの量は現在の検索インデックスを超えており、よりスケーラブルな検索アーキテクチャへの移行に取り組んでいます。ご迷惑をおかけして申し訳ありません。この新しい検索インデックスがいつ稼働するのかはわかりませんが、準備ができ次第、ブログ投稿(https://github.com/blog)を公開します。

迷惑なことに、結果の不足(不適切なクエリによる可能性もある)以外に、どのリポジトリがインデックスに登録されていないかを知る方法はありません。

また、この問題をブログに投稿するのを待つ以外に、この問題を追跡する方法はありません(または、SOでこちらをご覧ください)。

From:Tim Pease
問題トラッカーは内部にあるのではないかと考えていますが、新しい検索インデックスが稼働するとすぐに通知できます。

10
studgeek

Googleでは、プロジェクト内を検索できますが、コードは検索できません:(

site:https://github.com/CreateJS/EaselJS test

2
crizCraig

無料の Sourcegraph Chrome Extension ...でGithubリポジトリ内のソースコードを検索します...しかし、私は Downloaded Chrome First 、ただし、Firefoxなど、他のブラウザでもサポートされていることは知っていました。

SourceForgeのChrome Extension Docs をざっと読んだ後、Githubの検索エンジン自体でディレクトリ名を検索するために必要なものだけを見て、 Githubのコードベース検索ドキュメント

0