我创建了一个简单的项目,提交并推送主分支,然后保护它。之后,我将一个用户作为开发人员添加到项目中,并且允许该用户推送到 master。
所以 admin=master,user1=developer。
当我修改并以 user1 身份推送时,我被允许推送到 master。这很奇怪,因为我有一个不允许这样做的生产实例。
我使用 vagrant 安装来设置开发环境。在 vagrant ssh:
cd /vagrant/gitlabhq && git pull --ff origin master
put me at commit a8b544ed770cf172b09feb6ffee14b1814b66ad4 之后,gitlab-shell v1.5.0
cd /vagrant/gitlabhq && bundle exec foreman start -p 3000
gitlab 现已启动并运行。
我以 admin@local.host 身份登录
添加了我的“admin”密钥在 shell 中创建了
“master-protected”项目
,我创建了 repo,添加了一个文件并提交并推送。
作为“user1”,我添加了我的密钥,并在 shell 中克隆了 user1 具有开发人员角色的“主保护”。
当我修改并推送 master 时,gitlab 接受了推送,并且提交就显示在 gitlab 中。它应该否认它。事实上,当你转到分支部分,看到主分支受到保护时,它的最后一次提交是只有开发人员权限的“user1”的提交。
关于我可以在哪里进一步尝试找出为什么在开发环境中发生这种情况的任何想法?标签 v5.3.0 也是如此,我确信它不会在生产 v5.3.0 中发生。
这很有趣,因为我试图复制另一个我认为我发现的受保护分支不受合并请求和开发人员角色保护的错误,但我遇到了这个问题。