C'è un modo per cercare qualcosa nel codice di un progetto Github?
Potrei estrarre la fonte e grep localmente, ma mi chiedevo se fosse possibile attraverso l'interfaccia web o un'alternativa di terze parti.
Idee?
C'è un modo per cercare qualcosa nel codice di un progetto Github?
Potrei estrarre la fonte e grep localmente, ma mi chiedevo se fosse possibile attraverso l'interfaccia web o un'alternativa di terze parti.
Idee?
Risposte:
Aggiornamento gennaio 2013: è arrivata una nuova ricerca! , basato su elasticsearch.org :
Una ricerca di stat all'interno del repository ruby verrà espressa come stat repo:ruby/ruby
, e ora funzionerà semplicemente con TM .
(il nome del repository non distingue tra maiuscole e minuscole: test repo:wordpress/wordpress
restituisce lo stesso di test repo:Wordpress/Wordpress
)
Darà:
E hai molti altri esempi di ricerca, basati su follower , o su fork , o ...
Aggiornamento luglio 2012 (i vecchi tempi della ricerca di Lucene e l'indicizzazione del codice scadente, combinati con la GUI non funzionante, mantenuti qui per l'archivio):
La ricerca (basata su SolrQuerySyntax ) è ora più permissiva e il temuto " Invalid search query. Try quoting it.
" scompare quando si utilizza il selettore di ricerca predefinito "Tutto" :)
(Suppongo che possiamo tutti oltre Tim Pease , che aveva in uno dei suoi obiettivi "l'hacking su esperienze di ricerca migliorate per tutte le proprietà di GitHub ", e al momento ho citato questa domanda di StackTranslate.it ;)
Ecco un'illustrazione di un grep all'interno del codice ruby: cercherà repository e utenti, ma anche ciò che volevo cercare in primo luogo: il codice!
Risposta iniziale e illustrazione del precedente numero (settembre 2012 => marzo 2012)
È possibile utilizzare il modulo di ricerca avanzata GitHub :
Code
, Repositories
o Users
dalla discesa eAd esempio, utilizzare la repo:username/repo-name
direttiva per limitare la ricerca a un repository di codice .
La Advanced Search
pagina " " iniziale include la sezione:
Ricerca codice :
La ricerca del codice esaminerà tutto il codice ospitato pubblicamente su GitHub. Puoi anche filtrare per:
- la lingua
language:
- il nome del repository (incluso il nome utente)
repo:
- il percorso del file
path:
Pertanto, se si seleziona il " Code
" selettore di ricerca, la query che esegue l'interruzione per un testo all'interno di un repository funzionerà:
Ciò che è incredibilmente inutile da GitHub è che:
Code
"), verrà visualizzato un messaggio di errore: Invalid search query. Try quoting it.
" il messaggio di errore non ti aiuta affatto.
Nessun importo di " quoting it
" ti farà uscire da questo errore.
una volta visualizzato questo messaggio di errore, non vengono visualizzate le sezioni che ricordano l'associazione corretta tra i selettori di ricerca (" Repositories
", " Users
" o " Language
") e i filtri di ricerca (a destra) (qui " repo:
").
Ogni ulteriore tentativo che fai non visualizzerà quelle associazioni (selettori-filtri). Solo il messaggio di errore che vedi sopra ...
L'unico modo per recuperare questi array è facendo clic Advance Search
sull'icona " ":
il " Everything
" selettore di ricerca, che è quello predefinito, è in realtà quello sbagliato per tutti i filtri di ricerca! Tranne " language:
" ...
(Potresti immaginare / supporre che " Everything
" ti aiuterebbe a scegliere qualsiasi selettore di ricerca effettivamente funzionante con il filtro di ricerca " repo:
", ma no. Sarebbe troppo facile)
non è possibile specificare il selettore di ricerca desiderato solo attraverso il Advance Search
campo " "!
(ma puoi per " language:
", anche se " Search Language
" è un'altra casella combinata appena sotto " Search for
" "digita" ...
Pertanto, l'esperienza dell'utente di solito è la seguente:
Advanced Search
", dai un'occhiata a quelle sezioni di filtri e noti quello che vuoi usare: " repo:
"repo:jruby/jruby stat
", ma con il selettore di ricerca predefinito " Everything
" FAIL
! (e gli array che visualizzano l'associazione "Selettori-Filtri" sono spariti )Repositories
" ("Dah! Voglio cercare nei repository ...") FAIL
!Users
"), senza nemmeno guardare detto selettore, solo per provarlo ancora ... FAIL
!Quindi, per ricapitolare, se si desidera "cercare qualcosa all'interno del codice di un progetto Github", come l'OP Ben Humphreys , non dimenticare di selezionare il " Code
" selettore di ricerca ...
repo:"jruby/jruby" stat
repo:"jruby" stat
jruby: stat
nessuno dei quali funziona
I repository privati recenti hanno un campo di ricerca per la ricerca in quel repository.
Sorprendentemente, sembra che questa funzionalità non sia disponibile per i repository pubblici.
AGGIORNARE
L'hack del bookmarklet di seguito è interrotto a causa di problemi XHR e modifiche API.
Per fortuna, Github ora ha "Una ricerca di tutto il nuovo codice" che svolge egregiamente il lavoro.
Dai un'occhiata a questo voodoo: un'occhiata a codice utente di ricerca codice Github .
Segui le indicazioni lì, o se odi il gonfiore del tuo browser con script ed estensioni, usa il mio bundle con segnalibro dello script utente:
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('');
Salva la fonte sopra come URL di un nuovo segnalibro. Passare a qualsiasi repository Github, fare clic sul segnalibro e bam : ricerca del codice a-page, ajaxified .
CAVEAT Github deve indicizzare un repository prima di poterlo cercare.
Abracadabra...
Ecco una ricerca di esempio dal repository delle specifiche ECMAScript 5.1 annotato:
Mentre la risposta di @ VonC funziona per alcuni repository, sfortunatamente per molti repository non puoi farlo adesso. Github semplicemente non li sta indicizzando (come commentato originariamente da @emddudley). Non lo hanno indicato da nessuna parte sul loro sito Web, ma ti diranno se chiedi supporto:
Da: Tim Pease
Abbiamo smesso di aggiungere il nuovo codice inserito nel nostro indice di ricerca codici. Il volume del codice ha superato il nostro attuale indice di ricerca e stiamo lavorando per passare a un'architettura di ricerca più scalabile. Mi dispiace per il fastidio. Non abbiamo una stima per quando questo nuovo indice di ricerca sarà attivo e funzionante, ma quando sarà pronto verrà pubblicato un post sul blog (https://github.com/blog).
Non c'è modo fastidioso di dire quali archivi non sono indicizzati se non la mancanza di risultati (che potrebbe anche derivare da una cattiva query).
Inoltre non c'è modo di rintracciare questo problema se non quello di aspettare che lo blog (o guardare qui su SO).
Da: Tim Pease
Temo che il tracker dei problemi sia interno, ma possiamo avvisarti non appena il nuovo indice di ricerca è attivo e funzionante.
Google ti consente di cercare nel progetto, ma non nel codice :(
Cerco il codice sorgente all'interno dei repository di Github con l' estensione gratuita per Chrome di Sourcegraph ... Ma prima ho scaricato Chrome , sapevo che altri browser lo supportano, come - e forse solo - Firefox.
Ho sfogliato i documenti di estensione Chrome di SourceForge e poi ho anche guardato quello che mi serviva per cercare i nomi delle directory con il motore di ricerca di Github stesso, leggendo alcuni dei documenti di ricerca di Codebase di Github