2013-04-26 11 views
14

voglio impostare la configurazione di seguito descritte:Gerrit - come non consentire Direct Push per il "maestro", ma permette di altri rami

  • utente registrato non può spingere i suoi cambiamenti direttamente da padroneggiare. Egli deve spingere questi cambiamenti per la revisione:

    "git maestro origine push" - dovrebbe essere respinto da Gerrit (origine = Gerrit)

    "git push origine TESTA: refs/per/Master" - dovrebbe essere autorizzato da Gerrit

  • L'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 consentito di Gerrit

Come devo configurare Gerrit per raggiungere tale funzionalità?

risposta

0

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 qui sotto link se è utile:

https://git.eclipse.org/r/Documentation/access-control.html

+2

solo il collegamento alla documentazione non è molto utile per rispondere a tale domanda specifica – CK1

0

Se ci sono molti rami è possibile utilizzare gli spazi dei nomi (ad esempio dev/*) per le filiali e impostare il controllo di accesso per questi spazi dei nomi.

4

Non ci sono istruzioni valide da nessuna parte, quindi ho pensato di documentare i passaggi qui.

1. Accedere alla pagina di accesso del progetto

Progetti> List> your_project> Accesso

2. Modifica accesso

Fare 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.

Fare clic su "Add Reference" e digitare 'refs/teste/*' (senza virgolette)

4. Nega l'autorizzazione "Push"

Il permesso Push è colui che controlla che può fare spinte dirette. Unisci push e push a Gerrit saranno comunque consentiti (vedi note sotto).

  1. Fare clic su "Aggiungi permesso" e selezionare "Push".
  2. Selezionare il gruppo di utenti che si desidera negare spinta da (è possibile digitare in "Utenti registrati", se si desidera bloccare tutti)
  3. scegliere "Nega" dal menu a discesa che appare una volta che hai aggiunto il tuo gruppo di utenti

5. Salva modifiche

E il gioco è fatto. Il config finito dovrebbe essere simile a questa:

Finished config


Nota

Se questo non funziona, assicurarsi di avere il permesso di premere SET per consentire il refs/per/refs/* - questo è il permesso che consente di spingere a Gerrit.

+0

Mi chiedo come questo risolva il "ma consentire ad altri rami". Ciò impedirà le spinte a TUTTI i rami. – SureshS

+1

@SureshS se si desidera applicare il permesso per il master, quindi inserire l'autorizzazione nell'immagine sopra. quindi crea una nuova autorizzazione specifica per refs/heads/master (e metti deny invece di consentire under push) – Bowen

+1

@Conan "Nega" non funzionerà qui. Si dovrebbe usare "Block" per "refs/heads/master" invece di sovrascrivere le impostazioni "refs/heads/*" per questo particolare ramo. – VirtualVDX

Problemi correlati