Original article: GitHub Search Tips – How to Search Issues, Repos, and More Effectively on GitHub

Cuando era principiante en contribuciones de código abierto, uno de mis mayores desafíos era encontrar los proyectos o problemas correctos en los que trabajar.

Durante mucho tiempo, confié en recursos seleccionados por diferentes autores en Internet -muy buenos-, por cierto.

No obstante, siempre quise encontrar una forma de evitar mi denominado problema personal: una forma de buscar, acceder y seguir proyectos que fueran adecuados para mis habilidades (a fin de poder maximizar mi contribución en línea).

Acordemos una cosa: a diferencia de Google, buscar en GitHub no es fácil. Pero como desarrollador, es probable que interactúes con GitHub o Gitlab a diario.

Ahora la pregunta no es para qué usas estos sistemas de control de versiones, sino cómo los estás usando.

Así como dominar las habilidades de búsqueda en Google es esencial para cualquier usuario regular de Internet; creo que también es esencial para los desarrolladores aprender a buscar eficazmente en GitHub.

En este artículo vamos a echar un vistazo a diferentes técnicas que puedes emplear para efectuar búsquedas más exactas en GitHub. Aprenderás cómo buscar a través de:

  • Problemas y solicitudes de extracción
  • Repositorios
  • Usuarios
  • Temas

Y más... Vamos a empezar.

Consultas de búsqueda de GitHub

Es bien sabido que para encontrar información detallada sobre algo en Internet, necesitas tener las habilidades de búsqueda correctas.

No es diferente con GitHub: para encontrar información detallada, puedes utilizar técnicas comunes de filtrado, ordenación y búsqueda para encontrar fácilmente problemas y solicitudes de extracción específicos de un proyecto dado.

Aunque tienes múltiples recursos enumerados en Internet para diferentes proyectos, el principal problema surge cuando quieres hacer una búsqueda por ti mismo.

¿Cómo empiezas? ¿Qué palabras clave deberías usar para encontrar los resultados correctos?

La mayoría de los mantenedores tienden a etiquetar sus proyectos con problemas, lo que facilita que los colaboradores encuentren proyectos adecuados. A continuación se muestran algunos de los trucos que pueden ayudarte cuando estás usando GitHub.

Cómo buscar problemas y solicitudes de extracción en GitHub

Una de las formas más comunes de encontrar proyectos para contribuir es buscando a través de problemas y solicitudes de extracción relacionadas. Aquí hay algunos trucos que puedes usar para encontrar fácilmente respuestas confiables:

  1. is:issue is:open label:beginner - Esta consulta particular mostrará todos los proyectos con problemas abiertos etiquetados como principiante. beginner.
  2. is:issue is:open label:easy - Aquí mostrará todos los problemas abiertos etiquetados como fáciles.easy.
  3. is:issue is:open label:first-timers-only - De esta forma se listan todos los problemas abiertos que dan la bienvenida a contribuciones de recién llegados.
  4. is:issue is:open label:good-first-bug - Esto enumera los proyectos con problemas abiertos (open issues) etiquetados como "buenos primeros errores" good-first-bug, para atraer a los colaboradores a trabajar en ellos.
  5. is:issue is:open label:"good first issue" - Con esta consulta se te mostrarán todos los problemas abiertos con la etiqueta buen primer problema, good first issue, lo que significa que es un buen lugar para que los principiantes comiencen.
  6. is:issue is:open label:starter - Lista todos los problemas abiertos de GitHub etiquetados como iniciadores starters
  7. is:issue is:open label:up-for-grabs - Enumera problemas abiertos que están listos para ser trabajados si tienes las habilidades necesarias.
  8. no:project type:issue is:open - Mostrará todos los problemas abiertos que no están asignados a un proyecto específico.
  9. no:milestone type:issue is:open - Muchas veces, los proyectos están organizados con hitos. Pero si quieres encontrar problemas que no estén rastreados, esta consulta de búsqueda los listará para ti.
  10. no:label type:issue is:open - Señala todos los problemas abiertos que no tienen etiquetas.
  11. is:issue is:open no:assignee - Enseña todos los problemas abiertos que aún no han sido asignados a una persona.

Cómo buscar repositorios

Por defecto, para realizar una búsqueda, escribirás el nombre del repositorio en la barra de búsqueda ¡y voilà! Obtendrás algunos resultados de búsqueda.

Pero las probabilidades de que llegues al repositorio exacto que tenías en mente son muy bajas.

Veamos algunas formas de estrechar tu búsqueda:

Cómo encontrar por nombre, descripción/README

Al buscar por nombre y descripción del archivo README, hay que tener en cuenta que la frase de búsqueda debe comenzar con el calificador in. Esto hace posible buscar "dentro" de lo que estamos buscando.

Veamos un ejemplo de cómo sería una búsqueda individual:

  • Usando in:name. Digamos que estás buscando recursos para aprender más sobre Ciencia de Datos. En este caso, puedes usar el comando Ciencia de Datos in:name, que listará los repositorios con Ciencia de Datos en el nombre del repositorio.
  • Usando in:description. Si deseas encontrar repositorios con una descripción específica, por ejemplo, repositorios donde se incluya el término "freeCodeCamp" en la descripción, nuestra búsqueda será: freecodecamp in:description.
  • Usando in:readme Utilizas esto para buscar a través de un README de un archivo para una cierta frase. Si queremos encontrar repositorios donde se incluya el término freecodecamp en el README, nuestra búsqueda será: freecodecamp in:readme.
  • Usando in:topic. Utilizas esto para encontrar si una cierta frase o palabra está etiquetada en los temas. Por ejemplo, para encontrar todos los repositorios donde freecodecamp esté listado en el tema, nuestra búsqueda será: freecodecamp in:topic.

También se pueden combinar múltiples consultas de búsqueda para estrechar aún más la búsqueda.

Cómo encontrar por Estrellas, Forks

Podemos además buscar un repositorio basado en cuántas estrellas y forks tiene el proyecto. Esto nos facilita saber qué tan popular es el proyecto.

Ejemplos

Usando stars:n. Si buscamos un repositorio con 1000 estrellas entonces la consulta será stars:1000. Esta acción listará exactamente 1000 repositorios.

Empleando forks:n. Aquí especificamos el número de forks (es decir las bifurcaciones o ramificaciones) que deseamos de un repositorio. Si queremos que los forks sean menos de 100 entonces nuestra consulta será la siguiente: forks:<100.

¿La buena noticia? ¡Siempre podemos usar operadores relacionales!  <, >, <=, >= & .. Esto nos ayudará a hacer más fácil y rápida la búsqueda.

Realizando búsquedas mediante el lenguaje

Otra forma genial de buscar en GitHub es mediante el lenguaje. Ello nos ayuda a filtrar nuestro repositorio en base al lenguaje de programación que buscamos.

Por ejemplo:

  • Tenemos la forma language:LANGUAGE. Si quisieramos buscar un proyecto con código en PHP, nuestra búsqueda sería: language:PHP

Búsquedas mediante el nombre de la organización

También podemos buscar repositorios/proyectos que son mantenidos o creados por una organización en específico. Para ello necesitamos empezar nuestra búsqueda con la palabra clave org: seguida del nombre de la organización.

Si usamos org:freecodecamp nos mostrará los repositorios que sean de freeCodeCamp.

Encontrando mediante fechas

Si deseamos que los resultados se ajusten a una fecha específica, podemos buscar usando una las siguientes palabras clave: created, updated, merged and closed. Estas palabras clave deberán estar acompañadas por la fecha en el formato YYYY-MM-DD.

Ejemplo:

  • Usando keyword:YYYY-MM-DD. Supongamos que deseamos buscar todos los repositorios con la palabra freeCodeCamp que fueron creados después de 2022-10-01. Entonces nuestra búsqueda será: freecodecamp created:>2022-10-01

También podemos usar los operadores relaciones <, >, >= y<= para buscar repositorios después de, antes de o en una fecha exacta . Si queremos buscar en un rango, entonces usamos....

Encontrando repositorios mediante el tipo de licencia

Las licencias son muy importantes cuando estamos buscando un proyecto al cual contribuir. Diferentes licencias otorgan diferentes derechos en cuanto a lo que un contribuidor puede o no puede hacer.

Para facilitarnos la búsqueda de proyectos con las licencias adecuadas, necesitamos tener un buen entendimiento de las licencias. Podemos leer más sobre ellas aquí.

Ejemplo:

  • Usamos license:LICENSE_KEYWORD. Esta es una buena forma de buscar proyectos con licencias específicas. Para buscar proyectos con la licencia MIT, por ejemplo, haríamos lo siguiente: license:MIT.

Encontrar por visibilidad

También podemos llevar a cabo nuestra búsqueda en términos de la visibilidad del repositorio. En este caso, podemos usar tanto público como privado.

Esto coincidirá con los problemas (issues) y las solicitudes de extracción (PRs) que estén en un repositorio público o privado, respectivamente.

Ejemplos:

  • Usamos is:public. Esto mostrará una lista de repositorios públicos. Tomemos un ejemplo donde queramos buscar todos los repositorios públicos propiedad de freeCodeCamp. Entonces nuestra búsqueda será: is:public org:freecodecamp.
  • Usando is:private. Dicha consulta significa que listará todos los repositorios privados dentro de los parámetros.

Conclusión

Aunque hemos cubierto muchas consultas de búsqueda aquí, siempre podemos agregar nuestra creatividad para estrechar aún más nuestra búsqueda combinando varios parámetros juntos.

Para obtener recursos adicionales y más parámetros de búsqueda, siempre podemos consultar la documentación de GitHub o hacer uso de la Búsqueda Avanzada de GitHub.

Estos métodos siempre nos serán útiles ya que ofrecen más opciones de filtrado. Hay una miríada de parámetros de búsqueda y variaciones que podríamos utilizar para hacer más fácil nuestra actividad diaria en GitHub.

Espero que esto les ayude a utilizar la plataforma de manera más fácil y efectiva.