2010-04-17 3 views
3

Gitosis는 공개/개인 키 쌍을 기반으로 사용자를 인증 할 수 있습니다. 어떤 사용자가 현재 커밋하고 있는지 알 수 있습니다. 그러나 사용자 이름과 이메일은 클라이언트의 힘내 설정 ('git config user.name'등)에서 취해지며 임의의 값으로 설정할 수 있습니다. 사용자 이름과 전자 메일을 공개 키와 연결 한 다음 Gitosis가이 이름과 전자 메일을 커미터의 이름과 전자 메일로 사용하도록 만드는 방법이 있습니까?Gitosis가 올바른 사용자 이름/전자 메일을 시행 할 수 있습니까?

Gitosis 또는 WebDAV 또는 다른 대안을 사용하여 저장소를 공유할지 여부는 상관하지 않습니다. 사용 가능한 방법 중 어떤 것도 "올바른"사용자 이름과 전자 메일을 사용하는이 시행을 지원하지 않는다고 생각됩니다. 대안이 있다면 거기에 대해 말해주세요.

답변

1

힘내 소스의 예 update-paranoid 후크는 다음을 확인 :

에 대한 모든 새로운 커밋 또는 태그 정확히 user.committer 중 하나와 일치해야합니다 개체 내에서 커미터 (또는 술래) 라인 객체 값은 acl 파일에 나열됩니다.

나는 하나 Gitosis 또는 Gitolite 비슷한 확인을 구성 할 수 있습니다, 또는 당신이 당신의 자신의 upate 또는 pre-receive 훅을 쓸 수 있는지 생각한다. 이 모든 경우에, 밀기 위해서는 Git을 사용할 수있는 "스마트"전송을 사용해야합니다. 이것은 SSH를 통해 또는 "스마트"HTTP (git-http-backend)를 통해 푸시를 의미합니다. WebDAV ("벙어리"HTTP (S))를 통한 푸시를 제외합니다.

커밋의 저자를 확인하는 것은 전자 메일로 보내지는 패치 (커미터이므로 커미터로 신청해야 함) 또는 체리 피킹 또는 리베이스에서 제공 될 수 있으므로 커밋의 저자를 확인하는 것이 좋습니다.

+0

답장을 보내 주셔서 감사합니다. 나는 아마도 git-http-backend를 시도 할 것이다. 그래서, SSH 키를 기반 인증을 사용 않습니다 Gitosis (그리고 Gitolite) : Gitosis와 후크를 사용의 문제는 – k21

+0

koumes21 @ (이 항상 "자식"로 설정)에 로그인 한 사용자의 이름을 설정하지 않은 것이 었습니다 그것은 git 쉘 계정을 사용하더라도 저장소 ("로그인")에 액세스 한 사용자의 개념을 가지고 있습니다. Gitolite는 GL_USER 환경 변수에 "로그인"한 사용자를 제공합니다. 나는 Gitosis에 대해 모른다. –

2

주, 당신은이가 완전히 객체를 저지 구축 수정하는 작업 할 수 있기 때문에 서버가 실제로 (덮어 쓰기) 저자 또는 커미터를 설정하는 (그리고 모두 그 기반으로 커밋) 할 수 없습니다.

그리고 커밋의 해시/아이디가 변경됩니다. 그래서 당신은 그들을 거부 할 수 있습니다. (기술적으로 물론 새로운 커밋을 만들 수 있지만 모든 종류의 문제를 일으킬 수 있습니다.)