GitHub har lenge jobbet med en ny løsning som skal gjøre det enklere og raskere å gjøre enkle eller avanserte søk på tvers av kodebaser (repoer).
Sånn blir nye GitHub - nå kan du skrive deg på ventelista
Nå er den nye søkeløsningen endelig tilgjengelig for alle GitHub-brukere, skriver GitHub i en bloggpost.
– Målet med det nye kodesøket og kodevisningen er å gjøre utviklere i stand til å raskt søke, navigere i og forstå koden sin, sette kritisk informasjon i kontekst, og til syvende og sist gjøre utviklerne mer produktive, skriver GitHubs Colin Merkel i bloggposten.
Ny måte å vise kode på
Det er ikke bare selve søket som har blitt nytt, GitHub har også redesignet brukergrensesnittet for søk, og du har fått blant annet autofullføring og forslag i søkefeltet.
I tillegg har måten kode vises på blitt redesignet, slik at søk og navigering i kode har blitt integrert på en bedre måte i ett skjermbilde.
Du har ellers fått en Google-lignende søkestartskjerm på github.com/search.
Det nye kodesøket gir deg mulighet til å søke globalt på tvers av alt som ligger på GitHub, eller snevre inn søket til å gjelde for eksempel et bestemt repo, organisasjon eller bruker.
Du kan også søke etter for eksempel repoer som har mer enn et bestemt antall stjerner, filtrere og sortere resultatene etter for eksempel programmeringsspråk, antall interaksjoner eller kommentarer, og mye annet.
I skjermbildet for søkeresultater kan klikke på kodesnuttene søket har funnet for deg for å gå direkte til den aktuelle filen, der du igjen har nye filtrerings- og søkemuligheter.
Vi har prøvd Copilot CLI: – Perfekt for meg som aldri husker kommandoer!
Indekserer all GitHub-kode
The Register skriver at GitHub i starten brukte Apache Solr til å håndtere kodesøk, men at de i 2013 bygde en ny søketjeneste basert på Elasticsearch. Den var imidlertid ikke bra nok.
To år etter at Microsoft overtok GitHub, i 2020, begynte arbeidet med det som skulle bli en enda bedre og raskere søkemotor – kodenavn "Blackbird".
«Søkemotoren er spesiallaget for å håndtere kode, i motsetning til mer generelle søkemotorer for tekst.»
Oppgaven har vært formidabel, ifølge GitHub. Da Elasticsearch-søkemotoren ble rullet ut tok det flere måneder å indeksere all kildekoden. Den gangen hadde GitHub rundt 8 millioner repoer, i dag er det mer enn 200 millioner. De måtte derfor finne en mer effektiv måte å indeksere og holde indeksene oppdatert på.
Til slutt klarte GitHub faktisk å indeksere 45 millioner repoer som var i den første betaen av søketjenesten på bare 18 timer.
Skrevet i Rust
Hele søkemotoren er skrevet fra bunnen av i Rust, og er spesiallaget for å håndtere kode, i motsetning til mer generelle søkemotorer for tekst.
Resultatet er en søkemotor som er rundt dobbelt så rask som den gamle, i tillegg til at den har mange flere muligheter.
GitHub har laget en detaljert gjennomgang av teknologien bak den nye søkemotoren her.