我有一个GITOLITE服务器,并希望配置对我的存储库的访问。我想要限制某些用户对某些分支的访问。我尝试了很多种方式来配置gitolite.conf文件,但是我没有找到如何限制对某些分支访问的解决方案。
当用户2执行命令:
在gitolite日志中,我看到了以下内容:
1)
@developers1 = user1
@developers2 = user2
repo dbatest
RW+ = @developers1
R test = @developers2
- test = @developers2
RW+ = @developers2
当用户2执行命令:git push origin test
时,推送成功。在gitolite日志中我看到了这些行:
http ARGV=user2 SOC=git-receive-pack 'dbatest' FROM=10.65.184.239
6453 pre_git dbatest user2 W any refs/.*
6453 system,git,http-backend
6453 END
2)
@developers1 = user1
@developers2 = user2
repo dbatest
RW+ = @developers1
- test = @developers2
RW+ = @developers2
当用户2执行命令:git push origin test
时:推送成功。
在gitolite日志中,我看到了以下内容:
http ARGV=user2 SOC=git-receive-pack 'dbatest' FROM=10.65.184.239
6457 pre_git dbatest user2 W any refs/.*
6457 system,git,http-backend
6457 END
3)
@developers1 = user1
@developers2 = user2
repo dbatest
RW+ = @developers1
R test = @developers2
- test = @developers2
RW+ = @developers2
option deny-rules = 1
当用户2执行命令:
git push origin test
时,推送被拒绝并且他看到了以下信息:fatal: remote error: FATAL: W any dbatest user2 DENIED by refs/heads/test
(or you mis-spelled the reponame)
在gitolite日志中,我看到了以下内容:
8161 http ARGV=user2 SOC=git-receive-pack 'dbatest' FROM=10.65.184.239
8161 die W any dbatest user2 DENIED by refs/heads/test<<newline>>(or you mis-spelled the reponame)
看起来不错,但当他试图将某些内容推送到主分支时,也遇到了这个消息。
我尝试在我的gitolite配置文件中混合这些行,但它们对我没有用。
如果有人能帮我解决这个问题,我会很高兴。我想限制某些开发人员对某些分支的写入访问权限。我不能创建额外的存储库,必须在一个主存储库上使用限制策略。
非常感谢!