Cercare nei repository dei pacchetti Fedora usando Sourcegraph
Con l’aumento della nostra raccolta di pacchetti open source, è necessario trovare modi per rendere molto più semplice la ricerca dei pacchetti nel nostro repository dist-git. Nel 2022, il team di Sourcegraph ha collaborato con la comunità Fedora per integrare il suo avanzato motore gratuito di ricerca del codice nei nostri vasti repository dei pacchetti della distribuzione, che ora includono oltre 38.000 pacchetti. Con la ricerca del codice di Sourcegraph, sviluppatori, collaboratori e manutentori possono cercare nel nostro repository dist-git file spec RPM specifici, definizioni di moduli e container, patch specifiche per Fedora, test e molto altro, tutto in un unico luogo, riducendo così il tempo dedicato alla ricerca dei file.
Che cos’è Sourcegraph?
Sourcegraph è una piattaforma di analisi del codice. Si può considerare un motore di ricerca per il codice. Può essere usato per cercare codice tra tutti gli host, repository e branch. Sourcegraph offre molte funzionalità interessanti, come l’analisi del codice, gli approfondimenti sul codice, le modifiche in batch e Cody, un assistente di programmazione basato sull’intelligenza artificiale; tuttavia, il suo strumento fondamentale è la ricerca del codice. In questo articolo vedremo come usare la ricerca del codice per i repository di src.fedoraproject.org, noti anche come dist-git Fedora.
Usare la ricerca del codice per i repository dei pacchetti Fedora
La ricerca del codice è una potente funzionalità di Sourcegraph che permette di cercare codice da un’unica interfaccia. Supporta il filtraggio delle ricerche per tipo di file, repository e linguaggio. Questo aiuta a perfezionare i risultati della ricerca.
Sourcegraph offre sia un’interfaccia web sia un’interfaccia CLI. Quando si usa l’app web di Sourcegraph, ogni ricerca deve iniziare con repo:^src.fedoraproject.org prima di inserire le query di ricerca.
Filtrare la ricerca: usare la parola chiave file per trovare i file spec
La parola chiave file restituisce i risultati dei file che corrispondono al percorso specificato. La query seguente cerca in tutti i repository i file che terminano con .spec e contengono il termine dnf5. L’uso della parola chiave file semplifica il compito di individuare i file spec.
repo:^src\.fedoraproject\.org/ file:\.spec$ dnf5
Usare il filtro lang per trovare un repository Fedora a cui contribuire
La parola chiave lang serve a filtrare i risultati della ricerca in base al linguaggio di programmazione.
La query seguente cerca nei nostri repository dist-git i file scritti in Markdown che contengono occorrenze del termine contributing. È utile per chi desidera aiutare progetti che hanno bisogno di contributi.
repo:^src\.fedoraproject\.org/ lang:markdown contributing
Cercare file spec che disabilitano i pacchetti di debug
Usando la query "%global debug_package %{nil}", è possibile cercare i file spec che contengono la riga in cui la macro debug_package viene impostata su nil. Questa riga disabilita la creazione di un pacchetto di debug durante il processo di compilazione.
Trovare repository che usano licenze popolari approvate dall’OSI
La query seguente analizzerà tutti i repository alla ricerca di software compatibile con la “Open Source Definition” (OSD).
repo:^src.fedoraproject.org/ lang:"RPM Spec" License: ^.*apache|bsd|gpl|lgpl|mit|mpl|cddl|epl.*$
Trovare file con una versione vulnerabile di Log4j
Questa query troverà tutti i file potenzialmente vulnerabili a CVE-2021-44228, noto anche come Log4j. È possibile che si verifichino falsi positivi, quindi è necessario svolgere ulteriori verifiche prima di concludere che un pacchetto sia effettivamente vulnerabile. È inoltre possibile cercare altre vulnerabilità e segnalarle ai manutentori del progetto.
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
Conclusione
Per ulteriori query di ricerca, consultare la documentazione ufficiale di Sourcegraph.
L’integrazione della ricerca del codice di Sourcegraph nel nostro repository dist-git è un’ottima aggiunta al nostro strumentario per aumentare la produttività nello sviluppo. Grazie alle potenti funzionalità della ricerca del codice, collaboratori e utenti possono cercare in modo efficiente nell’intero universo dei nostri repository open source da un unico luogo.
Want to help? Learn how to contribute to Fedora Docs ›