Voglio configurare la configurazione descritta di seguito:
L'utente registrato non può inviare direttamente le modifiche al master. Deve spingere questi cambiamenti per la revisione:
git push origin master
- dovrebbe essere respinto da Gerrit (origine = Gerrit)git push origin HEAD:refs/for/master
- dovrebbe essere permesso da GerritL'utente registrato può creare un nuovo ramo. Questo ramo sarà trattato come un backup e un modo di cooperazione tra due o più sviluppatori, quindi non dovrebbe essere rivisto.
git push origin xyz_abc
- dovrebbe essere permesso da Gerrit
Come dovrei configurare Gerrit
per raggiungere tale funzionalità?
risposte:
6 per risposta № 1Non ci sono istruzioni valide da nessuna parte, quindi ho pensato di documentare i passaggi qui.
1. Vai alla pagina di accesso del tuo progetto
Progetti> Elenco> tuo_progetto> Accesso
2. Modifica accesso
Fai clic sul pulsante Modifica
3. Aggiungi riferimento a refs / heads / *
Questo è il riferimento per tutte le spinte dirette. Configureremo chi può fare cosa per questo percorso.
Fai clic su "Aggiungi riferimento" e digita "refs / heads / *" (senza virgolette)
4. Nega il permesso "Push"
Il permesso Push è quello che controlla chi può effettuare push diretti. Unisci push e push a Gerrit saranno comunque consentiti (vedi note sotto).
- Fai clic su "Aggiungi autorizzazione" e seleziona "Push".
- Seleziona il gruppo di utenti da cui vuoi negare il push (puoi inserire "Utenti registrati" se vuoi bloccare tutti)
- Scegli "DENY" dal menu a discesa visualizzato dopo aver aggiunto il tuo gruppo di utenti
5. Salva modifiche
E hai finito, la configurazione finale dovrebbe essere simile a questa:
Nota
Se questo non funziona, assicurati di avere il permesso Push impostato su ALLOW su refs / for / refs / * - questo è il permesso che consente di inviare push a Gerrit.
0 per risposta № 2
AFAIK è possibile impostare le autorizzazioni per ogni repo / progetto in gerrit. Ad esempio chi può spingere / chi può forzare la spinta / chi può approvare le tue modifiche e tutto il resto. Controlla sotto il link se è utile:
https://git.eclipse.org/r/Documentation/access-control.html
0 per risposta № 3
Se ci sono molti rami, è possibile utilizzare gli spazi dei nomi (ad es. Dev / *) per i rami e impostare il controllo di accesso per questi spazi dei nomi.