Existe uma maneira de grep para algo dentro do código de um projeto Github?
Eu poderia extrair a fonte e grep localmente, mas queria saber se é possível através da interface da Web ou de uma alternativa de terceiros.
Ideias?
Existe uma maneira de grep para algo dentro do código de um projeto Github?
Eu poderia extrair a fonte e grep localmente, mas queria saber se é possível através da interface da Web ou de uma alternativa de terceiros.
Ideias?
Respostas:
Atualização em janeiro de 2013: chegou uma nova pesquisa! , com base no elasticsearch.org :
Uma pesquisa por stat no repositório ruby será expressa como stat repo:ruby/ruby
e agora funcionará apenas como TM .
(o nome do repo não diferencia maiúsculas de minúsculas: test repo:wordpress/wordpress
retorna o mesmo que test repo:Wordpress/Wordpress
)
Darei:
E você tem muitos outros exemplos de pesquisa, com base em seguidores , garfos ou ...
Atualização em julho de 2012 (os velhos tempos de pesquisa do Lucene e indexação de código ruim, combinados com GUI quebrada, mantidos aqui para arquivamento):
A pesquisa (com base no SolrQuerySyntax ) agora é mais permissiva e o temido " Invalid search query. Try quoting it.
" desapareceu ao usar o seletor de pesquisa padrão "Tudo" :)
(Suponho que todos nós possamos, além de Tim Pease , que tinha um de seus objetivos "invadir experiências de pesquisa aprimoradas para todas as propriedades do GitHub " e mencionei essa pergunta sobre estouro de pilha na época;)
Aqui está uma ilustração de um grep no código ruby: ele procura repositórios e usuários, mas também o que eu queria pesquisar em primeiro lugar: o código!
Resposta inicial e ilustração da edição anterior (setembro de 2012 => março de 2012)
Você pode usar o formulário GitHub de pesquisa avançada :
Code
, Repositories
ou Users
a partir do drop-down ePor exemplo, use a repo:username/repo-name
diretiva para limitar a pesquisa a um repositório de códigos .
A Advanced Search
página inicial " " inclui a seção:
Pesquisa de código :
A pesquisa de código examinará todo o código hospedado publicamente no GitHub. Você também pode filtrar por:
- o idioma
language:
- o nome do repositório (incluindo o nome de usuário)
repo:
- o caminho do arquivo
path:
Portanto, se você selecionar o " Code
" seletor de pesquisa, sua consulta para um texto em um repositório funcionará:
O que é incrivelmente inútil no GitHub é o seguinte:
Code
"), receberá uma mensagem de erro: Invalid search query. Try quoting it.
" a mensagem de erro não ajuda em nada.
Nenhuma quantidade de " quoting it
" fará com que você saia deste erro.
depois de receber a mensagem de erro, você não obtém as seções que lembram a associação correta entre os seletores de pesquisa (" Repositories
", " Users
" ou " Language
") e os filtros de pesquisa (certos) (aqui " repo:
").
Qualquer outra tentativa que você fizer não exibirá essas associações (seletores-filtros) de volta. Somente a mensagem de erro exibida acima ...
A única maneira de recuperar essas matrizes é clicando no Advance Search
ícone " ":
o " Everything
" seletor de pesquisa, que é o padrão, é realmente o incorreto para todos os filtros de pesquisa! Exceto " language:
" ...
(Você pode imaginar / supor que " Everything
" o ajudaria a escolher o seletor de pesquisa que realmente funciona com o filtro de pesquisa " repo:
", mas não. Isso seria muito fácil)
você não pode especificar o seletor de pesquisa que deseja através do Advance Search
campo " " sozinho!
(mas você pode " language:
", mesmo que " Search Language
" seja outra caixa de combinação logo abaixo da " Search for
" 'digite' uma ...)
Portanto, a experiência do usuário geralmente é a seguinte:
Advanced Search
", olha as seções de filtros e percebe uma que deseja usar: " repo:
"repo:jruby/jruby stat
", mas com o seletor de pesquisa padrão " Everything
" FAIL
! (e as matrizes que exibem a associação "Seletores-Filtros" desapareceram )Repositories
" ("Dah! Eu quero pesquisar nos repositórios ...") FAIL
!Users
"), sem sequer olhar para o seletor, apenas para tentar mais uma vez ... FAIL
!Então, para recapitular, se você deseja "procurar algo dentro do código de um projeto do Github", como o OP Ben Humphreys , não se esqueça de selecionar o Code
seletor de pesquisa " " ...
repo:"jruby/jruby" stat
repo:"jruby" stat
jruby: stat
nenhum dos quais funciona #
Repositórios particulares recentes têm um campo de pesquisa para pesquisar nesse repositório.
Surpreendentemente, parece que essa funcionalidade não está disponível para repositórios públicos.
ATUALIZAR
O corte de bookmarklet abaixo está quebrado devido a problemas de XHR e alterações de API.
Felizmente, o Github agora tem "Uma pesquisa de código totalmente nova", que faz o trabalho de maneira excelente.
Confira este vodu: pesquisa de código do Github userscript .
Siga as instruções lá ou, se você odeia inchar seu navegador com scripts e extensões, use meu pacote marcado como favorito do script de usuário:
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('');
Salve a fonte acima como o URL de um novo marcador. Navegue até qualquer repositório do Github, clique no marcador e bam : pesquisa de código ajaxificado in-page .
O CAVEAT Github deve indexar um repositório antes que você possa pesquisá-lo.
Abracadabra...
Aqui está uma amostra de pesquisa do repositório de especificação anotado do ECMAScript 5.1:
Embora a resposta do @ VonC funcione para alguns repositórios, infelizmente para muitos repositórios você não pode no momento. O Github simplesmente não os indexa (como comentado originalmente por @emddudley). Eles não declararam isso em nenhum lugar do site, mas informarão se você solicitar suporte:
De: Tim Pease
Paramos de adicionar código recém-enviado ao nosso índice de pesquisa de código. O volume de código superou o nosso índice de pesquisa atual e estamos trabalhando para mudar para uma arquitetura de pesquisa mais escalável. Sinto muito pelo aborrecimento. Não temos uma estimativa de quando esse novo índice de pesquisa estará em funcionamento, mas quando estiver pronto, uma postagem no blog será publicada (https://github.com/blog).
Irritantemente, não há como saber quais repositórios não estão indexados, a não ser a falta de resultados (que também podem ser de uma consulta incorreta).
Também não há como rastrear esse problema além de esperar pelo blog (ou assistir aqui no SO).
De: Tim Pease
Acho que nosso rastreador de problemas é interno, mas podemos notificá-lo assim que o novo índice de pesquisa estiver em funcionamento.
O Google permite que você pesquise no projeto, mas não o código :(
Pesquisei o código-fonte dentro dos repositórios do Github com a extensão gratuita do Sourcegraph Chrome ... Mas baixei o Chrome Primeiro , eu sabia que outros navegadores o suportam, como - e talvez apenas - o Firefox.
Passei os olhos pelos documentos de extensão do Chrome do SourceForge e também procurei o que precisava para procurar nomes de diretório com o próprio mecanismo de pesquisa do Github, lendo alguns dos documentos de pesquisa em codebase do Github