2015-10-28 21 views
5

Abbiamo un server Atlassian Stash privato che ospita i nostri repository git.Come cercare (grep) su tutti i file, in tutti i rami, in tutti i reposli in Stash?

Come posso cercare attraverso

  • tutti i file sorgente
  • in tutti i rami
  • in tutti i pronti contro termine

Ho molta voglia di evitare il processo di check-out tutti i pronti contro termine a livello locale, facendo git pull e quindi ricorsivo grep.

Alcuni plug-in erano disponibili in Atlassian Stash per "ricerca aziendale" ma non funzionavano per noi.

Se avete ottenuto questo al lavoro, gentilmente condividere i passaggi per configurarlo :) :)

+0

C'è un plug-in a pagamento sul mercato in questo momento che aggiunge funzionalità di ricerca a Stash (Bitbucket). https://marketplace.atlassian.com/plugins/com.mohamicorp.stash.search-for-stash/server/overview –

risposta

3

Abbiamo anche bisogno di implementare una ricerca di tutti i nostri progetti Stash. Esaminando varie opzioni, la migliore implementazione era installare un server dedicato OpenGrok.
crontab Il server esegue uno script ogni 10 minuti per fare il seguente:

  1. lista Get di tutto progetto utilizzando Stash API
  2. Per ogni progetto, ottenere tutti gli archivi (usando di nuovo l'API)
  3. Per ogni repository, clone o tirare, se esiste
    • Se avete bisogno di ogni ramo, trovare tutti i rami e clone per ogni ramo
  4. Una volta che tutte le fonti sono pronti, eseguire l'indicizzazione OpenGrok

Funziona molto bene per noi, ed era semplice da implementare.
Penso che alla fine, questo dovrebbe essere fatto con un add-on incorporato, ma al momento, non c'era nessuno da trovare.

Spero che questo aiuti.

+0

Giusto. Volevo davvero evitare la cosa "pull every repo". Quali altre opzioni hai preso in considerazione? – vikingsteve

+0

Estrarre ogni repo è molto veloce se è già clonato. Lo facciamo anche in parallelo, quindi è super veloce. Altre opzioni dove trovare principalmente un componente aggiuntivo incorporato (nessuno è stato trovato) e implementare la nostra ricerca. –

+0

Che ne dici di questo, ci hai provato? https://marketplace.atlassian.com/plugins/com.mohamicorp.stash.search-for-stash – vikingsteve

2

Disclosure: io sono un Bitbucket (Stash) Product Manager

Come altri hanno suggerito, questo non è qualcosa che è disponibile nel prodotto attualmente. La buona notizia è che stiamo lavorando alla ricerca del codice al momento. La cattiva notizia per la tua domanda è che per motivi di prestazioni (e poiché si tratta di un caso d'uso relativamente raro dalla nostra ricerca) stiamo solo pianificando di indicizzare la punta del ramo predefinito (solitamente master).

Se potessi descrivere più dettagliatamente ciò che stai cercando di ottenere sarei felice di esaminare le alternative.

Un'opzione consisterebbe nello script di una serie di comandi "git grep" tra i repository sul server (presupponendo che si abbia accesso). Lo fai a tuo rischio e pericolo, le operazioni dirette contro repository sul server non sono supportate.

+0

Ciao Rog e grazie per esserti trattato come un insider esperto;) In realtà quello che vogliamo fare è abbastanza semplice, cercare gli usi di una particolare classe o costante o dipendenza o importare attraverso tutti i nostri repository (circa 70+). Se riusciamo a farlo solo sul ramo predefinito ('develop'), allora non è la fine del mondo, anche se tutti i rami (o un pattern, come' develop | master | release/* 'sarebbe bello. Hai un ETA su questa funzione di "ricerca aziendale" e siamo su Stash 3.5, il mio collega ha suggerito l'aggiornamento a bitbucket ieri - sono due molto diversi (o è un cambio di nome di marketing)? – vikingsteve

+0

Non abbiamo una timeline che possiamo condividere a Si consiglia di eseguire l'aggiornamento a Bitbucket. Oltre alle modifiche API fornite con un bump di versione principale, il prodotto sottostante non è cambiato radicalmente, quindi dovrebbe essere familiare, con alcune nuove funzionalità che abbiamo aggiunto lungo la strada. – Rog

+0

Ok grazie per i tuoi commenti Rog. – vikingsteve

2

Secondo uno Atlassian ticket per tracciare questo, la ricerca del codice è funzionalità incorporata in Bitbucket Server 4.6 (noto anche come Stash).Vedi lo release notes.

+0

Eccellente, grazie Jon, cercherò di aggiornare lunedì. – vikingsteve

Problemi correlati