tipos tag repositorio origin example etiquetas eliminar crear git search github

tag - Código de búsqueda dentro de un proyecto Github



git push tag (5)

¿Hay una manera de grep para algo dentro del código de un proyecto Github?

Podría extraer la fuente y grepla localmente, pero me preguntaba si es posible a través de la interfaz web o una alternativa de terceros.

Ideas?


Actualización de enero de 2013: ¡una nueva búsqueda ha llegado! , basado en elasticsearch.org :

Una búsqueda de stat en el repositorio de ruby ​​se expresará como stat repo:ruby/ruby , y ahora solo funcionará TM .
(El nombre del repositorio no distingue entre mayúsculas y minúsculas: test repo:wordpress/wordpress devuelve lo mismo que test repo:Wordpress/Wordpress )

Daré:

Y tienes muchos otros ejemplos de búsqueda, basados en seguidores , o en forks , o ...

Actualización de julio de 2012 (días anteriores de búsqueda de Lucene e indexación de código deficiente, combinada con GUI dañada, guardada aquí para archivo):

La búsqueda (basada en SolrQuerySyntax ) ahora es más permisiva y la temida " Invalid search query. Try quoting it. " Desaparece cuando se usa el selector de búsqueda predeterminado "Todo" :)

(Supongo que podemos todos más que Tim Pease , que tenía en uno de sus objetivos "piratear experiencias de búsqueda mejoradas para todas las propiedades de GitHub ", y mencioné esta pregunta sobre el desbordamiento de pila en ese momento;))

Aquí hay una ilustración de un grep dentro del código ruby: buscará repositorios y usuarios, pero también lo que quería buscar en primer lugar: ¡el código!

Respuesta inicial e ilustración de la edición anterior (septiembre de 2012 => marzo de 2012)

Puede utilizar el formulario de búsqueda avanzada GitHub :

  • Seleccione Code , Repositories o Users de la lista desplegable y
  • use los prefijos correspondientes listados para ese tipo de búsqueda .

Por ejemplo, use la directiva repo:username/repo-name para limitar la búsqueda a un repositorio de código .
La página inicial de " Advanced Search " incluye la sección:

Búsqueda de código :

La búsqueda de código buscará en todo el código que se aloja públicamente en GitHub. También puedes filtrar por:

  • el idioma language:
  • el nombre del repositorio (incluido el nombre de usuario) repo:
  • la ruta del archivo path:

Por lo tanto, si selecciona el selector de búsqueda " Code ", entonces su búsqueda para un texto dentro de un repositorio funcionará:

Lo que es increíblemente inútil de GitHub es que:

  • Si olvida colocar el selector de búsqueda correcto (aquí " Code "), recibirá un mensaje de error:
    " Invalid search query. Try quoting it. " Invalid search query. Try quoting it.
  • El mensaje de error no te ayuda en absoluto.
    Ninguna cantidad de " quoting it " lo sacará de este error.

  • una vez que recibe ese mensaje de error, no obtiene las secciones que le recuerdan la asociación correcta entre los selectores de búsqueda (" Repositories ", " Users " o " Language ") y los filtros de búsqueda (derecha) (aquí " repo: " ).
    Cualquier otro intento que haga no mostrará esas asociaciones (selectores-filtros) nuevamente. Solo el mensaje de error que ves arriba ...
    La única forma de recuperar esos arreglos es haciendo clic en el icono " Advance Search ":

  • ¡El selector de búsqueda " Everything ", que es el valor predeterminado, es en realidad el incorrecto para todos los filtros de búsqueda! Excepto " language: " ...
    (Podría imaginar / asumir que " Everything " le ayudaría a elegir cualquier selector de búsqueda que realmente funcione con el filtro de búsqueda " repo: ", pero no. Eso sería demasiado fácil)

  • no puede especificar el selector de búsqueda que desea solo a través del campo " Advance Search ".
    (pero puede usar " language: ", aunque " Search Language " es otro cuadro combinado justo debajo de " Search for " ''type'' one ...)

Por lo tanto, la experiencia del usuario suele ser la siguiente:

  • hace clic en " Advanced Search ", echa un vistazo a las secciones de los filtros y observa una que desea usar: " repo: "
  • realiza una primera búsqueda avanzada " repo:jruby/jruby stat ", pero con el selector de búsqueda predeterminado " Everything "
    => FAIL ! (y las matrices que muestran la asociación "Selectores-Filtros" se han ido )
  • nota que "Buscar" selector de selección, seleccione la primera opción " Repositories " ("¡Dah! Quiero buscar dentro de los repositorios ...")
    => FAIL !
  • abatido, selecciona la siguiente opción de selectores (aquí, " Users "), sin siquiera mirar dicho selector, solo para darle un intento más ...
    => FAIL !
  • "¡Maldición, la búsqueda de GitHub está rota ! ¡Me voy de aquí!"
    ...
    (La búsqueda avanzada de GitHub en realidad no está rota. Solo su GUI es ...)

Entonces, para resumir, si desea "grep para algo dentro del código de un proyecto Github", como el OP , no olvide seleccionar el selector de búsqueda " Code " ...



Los repositorios privados recientes tienen un campo de búsqueda para buscar a través de ese repositorio.

Aunque parezca desconcertante, parece que esta funcionalidad no está disponible para los repositorios públicos.


Si bien la respuesta de @VonC funciona para algunos repositorios, desafortunadamente para muchos repositorios no puedes ahora. Github simplemente no los está indexando (como comentó originalmente @emddudley). No lo han indicado en ninguna parte de su sitio web, pero le dirán si solicita asistencia:

De: tim pease
Hemos dejado de agregar código recién introducido en nuestro índice de búsqueda de códigos. El volumen de código ha superado nuestro índice de búsqueda actual, y estamos trabajando para pasar a una arquitectura de búsqueda más escalable. Lo siento por la molestia. No tenemos una estimación de cuándo estará funcionando este nuevo índice de búsqueda, pero cuando esté listo, se publicará una publicación de blog (https://github.com/blog).

Molestamente, no hay forma de saber qué repositorios no están indexados más que la falta de resultados (lo que también podría deberse a una consulta incorrecta).

Tampoco hay forma de rastrear este problema más que esperar a que lo publiquen en el blog (o verlo aquí en SO).

De: tim pease
Me temo que nuestro rastreador de problemas es interno, pero podemos notificarle tan pronto como el nuevo índice de búsqueda esté en funcionamiento.


ACTUALIZAR

El hackeo del bookmarklet a continuación está roto debido a problemas de XHR y cambios en la API.

Afortunadamente, Github ahora tiene "Una búsqueda de código completamente nueva" que hace el trabajo de manera excelente.

Echa un vistazo a este vudú: código de usuario Github búsqueda script .

Sigue las instrucciones allí, o si odias inflar tu navegador con scripts y extensiones, usa mi paquete favorito de los usuarios:

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('''');

Guarde la fuente de arriba como la URL de un nuevo marcador. Busque cualquier repositorio de Github, haga clic en el marcador y bam : in-page, búsqueda de código ajaxified .

CAVEAT Github debe indexar un repositorio antes de poder buscarlo.

Abracadabra...

Aquí hay una búsqueda de muestra del repositorio de especificación ECMAScript 5.1 anotado: