Existe-t-il un moyen de rechercher quelque chose dans le code d'un projet Github?
Je pourrais extraire la source et la localiser localement, mais je me demandais si c'était possible via l'interface Web ou une alternative tierce.
Des idées?
Mise à jour de janvier 2013: a ne nouvelle recherche est arrivée!, sur la base de - elasticsearch.org:
Une recherche de stat dans le Ruby _ repo sera exprimée sous la forme stat repo:Ruby/ruby
, et va maintenant juste travaillerTM.
(le nom du repo n'est pas sensible à la casse: test repo:wordpress/wordpress
retourne la même chose que test repo:Wordpress/Wordpress
)
Va donner:
Et vous avez beaucoup d'autres exemples de recherche, basés sur les suiveurs , ou sur les fourchettes , ou ...
Mise à jour de juillet 2012 (recherche ancienne de Lucene et index de code médiocre, associé à une interface graphique défectueuse, conservés ici pour les archives):
La recherche (basée sur SolrQuerySyntax ) est maintenant plus permissive et le redoutable "_Invalid search query. Try quoting it.
_" a disparu lorsque vous utilisez le sélecteur de recherche par défaut "Tout ":)
(Je suppose que nous pouvons tous que Tim Pease, qui avait dans l'un de ses objectifs "piratage amélioré expériences de recherche pour toutes les propriétés GitHub ", et j'ai mentionné cette question de Stack Overflow à l'époque;))
Voici une illustration d'un grep dans le code Ruby: il recherchera les dépôts et les utilisateurs, mais également ce que je voulais rechercher en premier lieu. : le code!
Réponse initiale et illustration de l'ancien numéro (septembre 2012 => mars 2012)
Vous pouvez utiliser le formulaire de recherche avancée GitHub :
Code
, Repositories
ou Users
dans le menu déroulant etPar exemple, utilisez la directive repo:username/repo-name
pour limiter la recherche à un code référentiel.
La page initiale "_Advanced Search
_" comprend la section:
Code Recherche:
La recherche de code examinera tout le code hébergé publiquement sur GitHub. Vous pouvez également filtrer par:
- la langue
language:
- le nom du référentiel (y compris le nom d'utilisateur)
repo:
- le chemin du fichier
path:
Donc, si vous sélectionnez le sélecteur de recherche "Code
", votre requête de recherche de texte dans un référentiel fonctionnera:
Ce qui est incroyablement inutile dans GitHub est-ce que:
Code
"), vous obtiendrez un message d'erreur:Invalid search query. Try quoting it.
"le message d'erreur ne vous aide pas du tout.
Aucune quantité de "_quoting it
_" ne vous sortira de cette erreur.
une fois que vous obtenez ce message d'erreur, vous ne recevez pas les sections vous rappelant la bonne association entre les sélecteurs de recherche ("Repositories
", "Users
"ou" Language
") et la (droite) recherche filtre (ici," _repo:
_ ").
Toute autre tentative que vous ferez n’affiche plus ces associations (filtres de sélection). Seul le message d'erreur que vous voyez ci-dessus ...
Le seul moyen de récupérer ces tableaux consiste à cliquer sur l'icône "_Advance Search
_":
le sélecteur de recherche "Everything
", qui est la valeur par défaut, est en fait le incorrect pour tout de la recherche filtres! Sauf "_language:
_" ...
(Vous pouvez imaginer/supposer que "Everything
" vous aiderait à choisir le sélecteur de recherche qui fonctionne réellement avec le filtre de recherche "_repo:
_", mais non, ce serait trop facile)
vous ne pouvez pas spécifier le sélecteur de recherche souhaité uniquement à l'aide du champ "_Advance Search
_"!
(mais vous pouvez pour "_language:
_", même si "_Search Language
_" est une autre liste déroulante juste en dessous du "_Search for
_" type 'one ...)
Ainsi, l'expérience de l'utilisateur est généralement la suivante:
Advanced Search
_", parcourez ces sections de filtres et notez celle que vous souhaitez utiliser: "_repo:
_"repo:jruby/jruby stat
_", mais avec le sélecteur de recherche par défaut "Everything
"FAIL
! (et les tableaux affichant l'association "Selectors-Filters" sont partis )Repositories
" ("Dah! Je veux effectuer une recherche dans les référentiels ...")FAIL
!Users
"), sans même regarder ledit sélecteur, histoire de lui donner une dernière chance ...FAIL
!Donc, pour récapituler, si vous voulez "rechercher quelque chose dans le code d'un projet Github", comme l'OP Ben Humphreys , n'oubliez pas de sélectionner le sélecteur de recherche "Code
". ..
Les référentiels privés récents ont un champ de recherche permettant d'effectuer une recherche dans ce référentiel.
Chose déconcertante, il semble cependant que cette fonctionnalité ne soit pas disponible dans les référentiels publics.
UPDATE
Le hack de bookmarklet ci-dessous est cassé en raison de problèmes XHR et de modifications de l'API.
Heureusement, Github a maintenant "Une toute nouvelle recherche de code" qui fait le travail superbement.
Commander ce voodoo: sercript de recherche de code Github .
Suivez les instructions à cet endroit, ou si vous détestez gonfler votre navigateur avec des scripts et des extensions, utilisez mon ensemble bookmarkified du script d’utilisateur:
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('');
Enregistrez la source ci-dessus en tant qu'URL d'un nouveau signet. Accédez à n’importe quel dépôt Github, cliquez sur le signet et bam : sur la page, recherche de code ajaxifié .
MISE EN GARDE Github doit indexer un dépôt pour que vous puissiez le rechercher.
Abracadabra...
Voici un exemple de recherche dans le référentiel de spécifications annoté ECMAScript 5.1:
Bien que la réponse de @ VonC fonctionne pour certains référentiels, vous ne pouvez malheureusement pas en avoir pour le moment. Github ne les indexe tout simplement pas (comme l'avait à l'origine commenté @emddudley). Ils ne l'ont indiqué nulle part sur leur site Web, mais ils vous le diront si vous demandez de l'aide:
De: Tim Pease
Nous avons cessé d’ajouter du code nouvellement ajouté à notre index de recherche de code. Le volume de code a dépassé notre index de recherche actuel et nous travaillons à une architecture de recherche plus évolutive. Je suis désolé pour la contrariété. Nous ne disposons pas d'une estimation du moment où ce nouvel index de recherche sera opérationnel, mais lorsqu'il sera prêt, un article de blog sera publié (https://github.com/blog).
Malheureusement, il n’ya aucun moyen de savoir quels référentiels ne sont pas indexés, à part l’absence de résultats (qui peut également provenir d’une mauvaise requête).
Il n’existe pas non plus de moyen de suivre ce problème autrement que d’attendre qu’ils le bloguent (ou le regardent ici sur SO).
De: Tim Pease
Je crains que notre outil de suivi des problèmes ne soit interne, mais nous pouvons vous en avertir dès que le nouvel index de recherche sera opérationnel.
Google vous permet de rechercher dans le projet, mais pas le code :(
Je recherche le code source à l'intérieur des référentiels Github avec l'extension gratuite Sourcegraph Chrome ... Mais je Téléchargé Chrome D'abord , je savais que d'autres navigateurs le supportaient, tel que - et peut-être seulement - Firefox.
J'ai parcouru les documents d'extension Chrome de SourceForge , puis j'ai aussi examiné ce dont j'avais besoin pour rechercher des noms de répertoires à l'aide du moteur de recherche de Github, en lisant certains des documents de recherche de code source de Github