2012-07-01 22 views

Trả lời

7

Bạn không.
upstream repo không đưa ra bất kỳ giả định nào về việc ai cung cấp cam kết: nó có thể thông qua email, bản vá khác được sao chép trên khóa USB và various transfer protocol khác.

Một số trong những giao thức (ssh, https) sức có trong nhật ký của họ những thông tin bạn tìm kiếm, nhưng:

  • này không có gì để làm với Git
  • này cho rằng mức độ đăng nhập của họ là một cách thích hợp bộ.
  • ngay cả đối với Gitolite, số name of the public ssh key được đăng ký trong repo gitolite-admin có thể là bất kỳ thứ gì bạn muốn và không liên quan đến tên thật.

Như Linus đề cập (trong "Why do some open source projects do not accept pull requests, but emailing patch files only?"):

kể từ khi bản sắc github là ngẫu nhiên, tôi hy vọng các yêu cầu kéo được a signed tag, vì vậy mà tôi có thể xác minh danh tính của người đó trong câu hỏi.

Vì vậy, nếu bạn muốn, như ai đó đẩy một số cam kết, để xác minh cho sự toàn vẹn của tất cả các repo, bạn có thể thực hiện và ký một thẻ trên HEAD của những gì đang được đẩy, để các repo ngược dòng để xem xét bạn như là, không chính xác là "pusher", nhưng một trong những xác nhận những gì đã được đẩy

+0

+1: điểm tốt –

5

Nếu quá trình push diễn ra trên SSH, bạn có thể sử dụng biến môi trường USER. Tất nhiên, điều này phụ thuộc vào việc người dùng được sử dụng cho đăng nhập SSH có khác biệt với những người dùng khác nhau trong hệ thống của bạn hay không - ví dụ, đây không phải là trường hợp với gitolite. (Tuy nhiên, gitolite sẽ xác định biến môi trường GL_USER để xác định pusher.) Đối với HTTP, bạn có thể thử biến môi trường REMOTE_USER.

Cập nhật: Nói chung, thông tin này không quá thú vị so với tác giả và người cam kết - điều này luôn gây bất ngờ cho tôi, ví dụ GitHub hiển thị người dùng đã thực hiện một cách cụ thể. ..

+0

Cảm ơn bạn đã trả lời ur! nhưng, push là trên HTTP không SSH. vì vậy, tôi không thể sử dụng biến môi trường 'USER'. – Saito

+0

@Saito: Tôi đã thêm một đề xuất cho HTTP. –

+0

GitHub có thể hiển thị người dùng đã thực hiện push vì nó hiển thị rõ hơn là xem danh sách cam kết để xem ai đã đóng góp và cho GitHub, 99% thời gian, người đẩy cũng đã đóng góp một số (hoặc tất cả) đã đẩy các cam kết. Vì một cú đẩy không thể được thực hiện nặc danh, GitHub có thông tin. – VonC

Các vấn đề liên quan