Buscar Repositorios de Paquetes Fedora Usando Sourcegraph
Nuestra colección de paquetes de código abierto crece, hay una necesidad de maneras de hacer la búsqueda de paquetes dentro de nuestro repositorio dist-git mucho más fácil. En 2022, la gente de Sourcegraph se asoció con nuestra comunidad Fedora para integrar su Code Search (Búsqueda de Código), gratuito y avanzado, en nuestros repositorios de paquetes de distribución masiva, los que ahora incluyen sobre 38.000 paquetes. Con Code Search de Sourcegraph nuestro desarrolladores, colaboradores y mantenedores puede buscar en nuestro repositorio dist-git por archivos RPM de especificaciones específicas, definiciones de módulo y contenedor, parches específicos de Fedora, pruebas y mucho más, todo en un sitio, reduciendo en última instancia el tiempo empleado en buscar archivos.
¿Qué es Sourcegraph?
Sourcegraph es una plataforma de inteligencia de código. Puede pensarla como un motor de búsqueda de código. Su puede usar para buscar código en todos los hosts, repositorios y ramas. Sourcegraph tiene muchas funciones excelentes como inteligencia de código, conocimientos de código, cambios por lotes y Cody – un Asistente de Codificación de Inteligencia Artificial, pero en esencia es una herramienta de Búsqueda de Código. En este artículo, exploraremos como usar Code Search para repositorios src.fedoraproject.org, también conocidos como Fedora dist-git.
Usar Code Search Para Repositorios de Paquetes de Fedora
Code Search es una poderosa capacidad de búsqueda en Sourcegraph para buscar código desde un sencillo interfaz. Admite filtrado de búsqueda por tipo de archivo, repositorio y lenguaje. Esto ayuda a refinar los resultados de la búsqueda.
Sourcegraph proporciona interfaz web app y CLI. Cuando use la web app de Sourcegraph necesitará iniciar cada búsqueda con: repo:^src.fedoraproject.org antes de introducir cualquier consulta de búsqueda.
Filtro de Búsqueda: Usar la Palabra Clave file para encontrar archivos de especificaciones
La palabra clave file devuelve resultados de archivos que coinciden con la ruta de archivo especificada. La siguiente consulta busca todos los repositorios para los archivos que terminen en .spec que contengan el término dnf5. El uso de la palabra clave file simplifica la tarea de localizar archivos de especificaciones.
repo:^src\.fedoraproject\.org/ file:\.spec$ dnf5
Use the lang Filter to Find a Fedora Repository to Contribute to
The lang keyword is used to filter search results by programming language.
The following query searches our dist-git repositories for files written in Markdown with instances of the term contributing. This is great for people seeking to assist with projects in need of contributions.
repo:^src\.fedoraproject\.org/ lang:markdown contributing
Search for Specfiles Disabling Debug Packages
By using the query "%global debug_package %{nil}", you can search for specfiles that contain the line where the debug_package macro is set to nil. This line disables the creation of a debug package in the build process.
Find Repositories Using Popular OSI-approved Licenses
The following query will scan all the repositories for software that is compatible with the “Open Source Definition” (OSD).
repo:^src.fedoraproject.org/ lang:"RPM Spec" License: ^.*apache|bsd|gpl|lgpl|mit|mpl|cddl|epl.*$
Find Files with a Vulnerable Version of Log4j
This query will find any files that are possibly vulnerable to CVE-2021-44228, aka Log4j. Note that false positives can happen, so you should investigate further before making a conclusion on whether a package is actually vulnerable or not. You can also search for other vulnerabilities that can then be reported to project maintainers.
repo:^src.fedoraproject.org/ org.apache.logging.log4j 2.((0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15)(.[0-9]+)) count:all
Conclusion
For more search queries, see Sourcegraph official documentation.
Having Sourcegraph Code Search integrated into our dist-git repository is a great addition to our engineering productivity toolkit. With Code Search’s powerful capabilities, our contributors and users can efficiently search across our entire universe of open source repositories from a single place.
Want to help? Learn how to contribute to Fedora Docs ›