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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
GitHub Copilot CLI in ambienti offline
Come automatizzare il download dei report di billing da GitHub Enterprise
Escludere alcuni file da GitHub Copilot
Utilizzare zizmor per rendere più sicuri i workflow di GitHub
Integrare il Docker Model Runner in un workflow di GitHub
Usare la parola chiave field per semplificare la scrittura di proprietà in C#
Cambiamenti in OpenAPI per la documentazione di ASP.NET
Mischiare codice server side e client side in una query LINQ con Entity Framework
Gestione delle issue type con GitHub
Utilizzare le direttive più importanti in una file based app .NET


