Githubプロジェクトのコード内で何かをgrepする方法はありますか?
ソースを取得してローカルでgrepすることはできましたが、Webインターフェースまたはサードパーティの代替手段を使用してそれが可能かどうか疑問に思っていました。
アイデア?
2013年1月更新:a真新しい検索が到着しました!、に基づいて- elasticsearch.org:
Rubyリポジトリ内でのstatの検索は、stat repo:Ruby/ruby
で表され、動作するようになりますTM。
(リポジトリ名は大文字と小文字を区別しません: test repo:wordpress/wordpress
は test repo:Wordpress/Wordpress
と同じを返します)
あげる:
そして、 フォロワー 、または フォーク 、または...に基づいた他の多くの検索例があります.
2012年7月更新(過去のLucene検索と貧弱なコードインデックス作成、壊れたGUIとの組み合わせ、アーカイブ用に保持):
( SolrQuerySyntax に基づく)検索はより寛容になり、default検索セレクター "Everything"を使用すると恐ろしい "Invalid search query. Try quoting it.
"はなくなりました:)
(私たちはTim Peaseよりも多くのことができると思います。これは彼の目的の1つにありました "すべてのGitHubプロパティの検索エクスペリエンス "、および このスタックオーバーフローの質問に言及しました 当時;))
Rubyコード内のgrepの図は次のとおりです。リポジトリとユーザーを検索しますが、最初に検索したいコードはalsoです。
前号の最初の回答とイラスト(2012年9月=> 2012年3月)
高度な検索GitHubフォーム を使用できます。
Code
、Repositories
、またはUsers
を選択し、たとえば、repo:username/repo-name
ディレクティブを使用して、検索をcodeに制限しますリポジトリ。
最初の「Advanced Search
」ページには次のセクションが含まれます。
コード(検索:
コード検索では、GitHubで公開されているすべてのコードを調べます。次の方法でフィルタリングすることもできます。
- 言語
language:
- リポジトリ名(ユーザー名を含む)
repo:
- ファイルパス
path:
したがって、「Code
」検索セレクターを選択すると、リポジトリ内のテキストをgrepするクエリが機能します。
GitHubの信じられないほどunhelpfulとは:
Code
」)を忘れると、エラーメッセージが表示されます。Invalid search query. Try quoting it.
"エラーメッセージはまったく役に立ちません。
「quoting it
」を大量に使用しても、このエラーから抜け出すことはできません。
エラーメッセージが表示されたら、検索selectors( "Repositories
"、 "Users
"または "Language
")と(右)検索との正しい関連付けを思い出させるセクションは表示されません。 フィルター(ここでは「repo:
」)。
それ以上の試行は、それらの関連付け(セレクターフィルター)を表示しません。上記のエラーメッセージのみ...
これらの配列を取得する唯一の方法は、「Advance Search
」アイコンをクリックすることです。
デフォルトの「Everything
」検索セレクターは、実際にはwrongの検索フィルターのallの1つです! 「language:
」を除く...
(「Everything
」は、検索フィルター「repo:
」で実際に動作する検索セレクターを選択するのに役立つと想像/想定できますが、いや、簡単です)
「Advance Search
」フィールドだけで必要な検索セレクターを指定することはできません!
(ただし、「language:
」は、「Search Language
」が「Search for
」「タイプ」のすぐ下にある別のコンボボックスであっても可能です...)
したがって、ユーザーのエクスペリエンスは通常次のとおりです。
Advanced Search
」をクリックし、フィルターのこれらのセクションを一目見ると、使用したいものに気付きます。「repo:
」repo:jruby/jruby stat
」を行いますが、デフォルトの検索セレクター「Everything
」を使用しますFAIL
! (および「セレクター-フィルター」の関連付けを表示する配列はgone)Repositories
"( "Dah!リポジトリ内で検索したい...")FAIL
!Users
」)を選択します。FAIL
!要約すると、OP Ben Humphreys として「Githubプロジェクトのコード内で何かをgrep」したい場合は、「Code
」検索セレクターを選択することを忘れないでください...
最近のプライベートリポジトリには、そのリポジトリを検索するための検索フィールドがあります。
困ったことに、この機能は公開リポジトリでは利用できないようです。
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リポジトリを参照し、ブックマークをクリックして、bam:in-page、ajaxified code search 。
警告Githubは、リポジトリを検索する前にインデックスを作成する必要があります。
アブラカダブラ...
注釈付きのECMAScript 5.1仕様リポジトリからのサンプル検索は次のとおりです。
@VonCの答えは一部のリポジトリで機能しますが、残念ながら、今はできない多くのリポジトリで機能します。 Githubは単にインデックスを作成していません(元々@emddudleyがコメントしたように)。彼らは彼らのウェブサイトのどこにもこれを述べていないが、あなたがサポートを求めるかどうかあなたに言うでしょう:
From:Tim Pease
新しくプッシュされたコードをcodesearchインデックスに追加することを停止しました。コードの量は現在の検索インデックスを超えており、よりスケーラブルな検索アーキテクチャへの移行に取り組んでいます。ご迷惑をおかけして申し訳ありません。この新しい検索インデックスがいつ稼働するのかはわかりませんが、準備ができ次第、ブログ投稿(https://github.com/blog)を公開します。
迷惑なことに、結果の不足(不適切なクエリによる可能性もある)以外に、どのリポジトリがインデックスに登録されていないかを知る方法はありません。
また、この問題をブログに投稿するのを待つ以外に、この問題を追跡する方法はありません(または、SOでこちらをご覧ください)。
From:Tim Pease
問題トラッカーは内部にあるのではないかと考えていますが、新しい検索インデックスが稼働するとすぐに通知できます。
Googleでは、プロジェクト内を検索できますが、コードは検索できません:(
無料の Sourcegraph Chrome Extension ...でGithubリポジトリ内のソースコードを検索します...しかし、私は Downloaded Chrome First 、ただし、Firefoxなど、他のブラウザでもサポートされていることは知っていました。
SourceForgeのChrome Extension Docs をざっと読んだ後、Githubの検索エンジン自体でディレクトリ名を検索するために必要なものだけを見て、 Githubのコードベース検索ドキュメント