Ricerca delle GitHub issue tramite operatori logici

di Matteo Tumiati, in DevOps,

Abbiamo già visto in articoli precedenti la complessità dietro al motore di ricerca degli oggetti, come per esempio le issue o le pull request, all'interno di GitHub. Recentemente la ricerca all'interno proprio delle issue è stata estesa introducendo il supporto per operatori booleani (AND, OR) e query annidate con parentesi. Sebbene sembri una banalità, GitHub ha supportato per anni il solo operatore AND in linea, se ci pensiamo, poiché i filtri andavano sempre in aggiunta alle condizioni precedenti e i risultati venivano quindi recuperati di conseguenza.

E' un tema piuttosto complesso, perché non è un sistema "nativo". Infatti, lato GitHub, la sintassi che andiamo a comporre è solo una questione di pura logica: il motore di ricerca è basato su ElasticSearch, pertanto tutto quello che viene scritto deve essere trasformato in una query valida e poi portata al loro engine che ci espone i dati tramite GraphQL o REST API. Questa nuova sintassi ci permette quindi di definire filtri più flessibili e complessi invece delle semplici ricerche "piatte" di prima, migliorando la capacità di trovare esattamente le issue che ti interessano sfruttando combinazioni logiche di criteri più complessi.

Un esempio pratico di query che ora possiamo fare direttamente nella barra di ricerca è:

is:issue state:open author:matteotumiati (type:Bug OR type:Epic)

Questa ricerca filtra tutte le issue aperte create da "matteotumiati" che sono di tipo Bug oppure Epic (sfruttando i nuovi issue type), combinando più criteri logici in modo chiaro e leggibile. Lo stesso concetto è poi applicabile anche nelle ricerche che possiamo eseguire tramite CLI come abbiamo già visto qui: https://www.dopsitalia.com/script/129/Eseguire-Ricerca-Avanzata-Recuperare-Issue-GitHub.aspx

Commenti

Visualizza/aggiungi commenti

| Condividi su: LinkedIn, Facebook

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi