Sviluppo/gerrit/impostazione
TDF LibreOffice Document Liberation Project Blog comunitari Weblate Nextcloud Redmine Ask LibreOffice Donazione
Preparatevi per l'utilizzo di Gerrit
Prima di iniziare: aiuto per la risoluzione di problemi
Le istruzioni che seguono dovrebbero essere facili da seguire e rapide. Comunque, se doveste bloccarvi su qualcosa, potete trovare aiuto:
- via IRC #libreoffice-dev IRC://
- via email sulla mailing list
- per problemi di autenticazione quando effettuate l'accesso a gerrit, contattate il Team dell'Infrastruttura
Registrarsi su Gerrit per la prima volta
Gerrit usa il servizio di autenticazione di tipo Single Sign-On della The Document Foundation. Create un account se non ne avete già uno (lo usano anche diversi altri siti, come questo wiki). Poi visitate semplicemente gerrit e fate clic sul collegamento “Sign in” che si trova in alto a destra della pafina. Verrete reindirizzati al portale centralizzato di autenticazione, quindi, una volta eseguita l'autenticazione, verrete rinviati di nuovo su gerrit.
Preparatevi per l'utilizzo di gerrit - il metodo semplice
Se avete già effettuato il checkout di libreoffice/core, potete semplicemente eseguire ./logerrit setup
all'interno della cartella del codice sorgente. Lo script logerrit che proverà ad impostare automaticamente le chiavi ed a configurare ssh e, nel caso non ci riesca, vi guiderà nell'eseguire i vari passaggi: se necessario, seguiteli.
Il programma vi dirà di andare su https://gerrit.libreoffice.org e si autenticherà automaticamente con il vostro nome utente del nostro Sistema di Single Single-On. Il programma genererà anche una coppia di chiavi SSH e visualizzerà la parte pubblica (cioè il contenuto di /home/[username]/.ssh/id_rsa.pub
). Questa è formata da una lunga stringa casuale che inizia con 'ssh-rsa'. Affinché gerrit funzioni dalla linea di comando, dovrete aggiungerla nella vostra pagina delle impostazioni. Incollatela nel campo che dice New SSH key e fate clic sul pulsante ADD NEW SSH KEY.
Se ./logerrit test
fallisce e ssh -vvv logerrit
evidenzia problemi di permessi di ~/.ssh/config
, eseguite chmod 600 ~/.ssh/config
. Se il ./logerrit test
ha successo, non succede nulla e dopo aver premuto Ctrl + C vedrete il messaggio "La configurazione di gerrit è riuscita!".
Dettagli ed elementi particolari delle impostazioni
Preparatevi per l'utilizzo di gerrit - il metodo manuale
- Visitate https://gerrit.libreoffice.org e fate clic sul collegamento "Sign in" in alto a destra della pagina. Una volta tornati indietro dal nostro portale Single Single-On l'account dovrebbe aver automaticamente provveduto ad usare il vostro nome, l'indirizzo email principale e il nome utente che ha trovato nel vostro profilo SSO. Se l'autenticazione viene rifiutata, contattate il Team che gestisce l'Infrastruttura; ciò potrebbe essere dovuto a un conflitto (se il vostro nome utente o indirizzo mail è usato da un altro account) che va risolto manualmente.
- Annotatevi il vostro nome utente che trovate nelle impostazioni del profilo. Qui di seguito si fa riferimento a questo nome utente viene con
VOSTRO_NOME_UTENTE
. - Generate una copia di chiavi SSH per gerrit e caricate la chiave pubblica nella pagina delle impostazioni (ovviamente potete anche riutilizzare una chiave esistente)
- Aggiungete quanto segue nel vostro file
${HOME}/.ssh/config
(entrambe le sezioni sono identiche ad eccezione della riga "Host"): - Impostate il vostro repository git in modo che effettui il push su gerrit usando la chiave SSH:
- Installate gli agganci (hook):
- ora siete pronti per partire!
Host logerrit gerrit.libreoffice.org
IdentityFile /percorso/per/la/vostra/chiave-privata
User VOSTRO_NOME_UTENTE
Port 29418
HostName gerrit.libreoffice.org
Fate attenzione che il /percorso/per/la/vostra/chiave-privata
deve comprendere anche il nome del file. Per esempio: ~/.ssh/id_rsa
git config remote.origin.pushurl ssh://logerrit/core
cd .git/hooks && ln -s ../../.git-hooks/* ./
Ed ora "push"!
Vedete: Come inviare le patch
Altri repository
Repository diversi da quello principale (core) potrebbero non avere un file ./logerrit
. Se avete già impostato gerrit per il repository core, dovete solo assicurarvi che gli altri repository effettuino il push verso il repository corretto, con il giusto target.
Per esempio, se avete clonato il repository infra/devcentral
, prima aggiungete il remote corretto alla vostra copia in locale:
git config remote.origin.pushurl ssh://logerrit/infra/devcentral
Poi, eseguite il push verso il target corretto per la revisione del codice:
git push origin HEAD:refs/for/refs/heads/master