我的服务器上有 GITOLITE,我想配置对我的存储库的访问。我想限制某些用户对某些分支的访问。我尝试了很多如何配置 gitolite.conf 文件的变体,但没有找到如何限制对某些分支的访问的解决方案。
1)
@developers1 = user1
@developers2 = user2
repo dbatest
RW+ = @developers1
R test = @developers2
- test = @developers2
RW+ = @developers2
当user2执行命令时: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
当user2执行命令时: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
当user2执行命令时: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 配置文件中混合这些行,但它们对我不起作用。
如果有人能帮助我,我会很高兴。我想限制某些开发人员对某些分支的写访问权限。我无法创建额外的存储库,我必须在一个主存储库上使用限制策略。
十分感谢!