2012-07-01 7 views

risposta

7

Non è così.
Il numero upstream repo non si basa su chi fornisce il commit: può essere tramite e-mail, una patch diff copiata su una chiave USB e altri various transfer protocol.

Alcuni di questi protocolli (ssh, https) forza hanno in loro registri le informazioni che cercate, ma:

  • questo non ha nulla a che fare con Git
  • questo supponiamo che il loro livello di registro è adeguatamente impostato.
  • anche per Gitolite, il numero name of the public ssh key registrato nel repository gitolite-admin può essere qualsiasi cosa si desideri e non correlato a un nome reale.

Come Linus menziona (in "Why do some open source projects do not accept pull requests, but emailing patch files only?"):

poiché le identità GitHub sono casuali, mi aspetto che la richiesta di pull di essere a signed tag, in modo che possa verificare l'identità della persona in domanda.

Quindi, se si vuole, come qualcuno spingendo alcuni commit, a garantire per l'integrità del tutto pronti contro termine, è possibile effettuare e firmare un tag sul HEAD di ciò che viene spinta, in modo che il pronti contro termine a monte ti considero come, non esattamente il "pusher", ma quello che convalida ciò che è stato spinto

+0

+1: buoni punti –

5

Se la spinta avviene su SSH, è possibile utilizzare la variabile di ambiente USER. (Questo funzionerà anche per i push locali, ovviamente.) Ciò dipende, naturalmente, dal fatto che l'utente che viene utilizzato per l'accesso SSH sia distinto per diversi utenti del sistema, ad esempio, non è il caso di gitolite. (Tuttavia, la gitolite definirà la variabile di ambiente GL_USER per identificare lo spintore.) Per HTTP, è possibile provare la variabile di ambiente REMOTE_USER.

Aggiornamento: In generale, questa informazione non è molto interessante rispetto all'autore e committer dei commit - è sempre una sorpresa per me, ad esempio, che GitHub visualizza l'utente che ha fatto particolare spinge a tutti. ..

+0

Grazie per la tua risposta! ma, la spinta è su HTTP non SSH. quindi, non posso usare la variabile di ambiente 'USER'. – Saito

+0

@ Saito: ho aggiunto un suggerimento per HTTP. –

+0

GitHub potrebbe visualizzare l'utente che ha fatto la spinta perché è più visibile che guardare un elenco di commit per vedere chi ha contribuito, e per GitHub, il 99% delle volte, quello che spinge ha anche contribuito con alcuni (o tutti) spinto commette. Poiché una spinta non può essere eseguita in modo anonimo, GitHub ha le informazioni. – VonC