Gitlab protected 分支不保护 ssh 推送上的分支

标签 gitlab

我创建了一个简单的项目,提交并推送主分支,然后保护它。之后,我将一个用户作为开发人员添加到项目中,并且允许该用户推送到 master。
所以 admin=master,user1=developer。

当我修改并以 user1 身份推送时,我被允许推送到 master。这很奇怪,因为我有一个不允许这样做的生产实例。

我使用 vagrant 安装来设置开发环境。
流浪 ssh 之后:cd /vagrant/gitlabhq && git pull --ff origin master 让我提交 a8b544ed770cf172b09feb6ffee14b1814b66ad4,gitlab-shell v1.5.0cd /vagrant/gitlabhq && bundle exec foreman start -p 3000 gitlab 现在已经启动并运行了。

我以 admin@local.host 身份登录
添加了我的“管理员” key
创建项目“主保护”
在 shell 中,我创建了 repo,添加了一个文件并提交并推送。

作为“user1”,我添加了我的 key ,并在 shell 中克隆了 user1 具有开发人员角色的“主保护”。

当我修改并推送 master 时,gitlab 接受了推送,并且提交就显示在 gitlab 中。它应该否认它。事实上,当你转到分支部分,看到主分支受到保护时,它的最后一次提交是只有开发人员权限的“user1”的提交。

关于我可以在哪里进一步尝试找出为什么在开发环境中发生这种情况的任何想法?标签 v5.3.0 也是如此,我确信它不会在生产 v5.3.0 中发生。

这很有趣,因为我试图复制另一个我认为我发现的 protected 分支不受合并请求和开发人员角色保护的错误,但我遇到了这个问题。

最佳答案

很抱歉在这几个飞蛾之后遇到了这个问题,但我也遇到了同样的问题,我通过检查 gitlab-shell 更新钩子(Hook)设法解决了这个问题。

我有 Gitlab 版本 5.1.0-4,就我而言, gitlab-shell/钩子(Hook)/更新文件应如下所示:

#!/usr/bin/env /opt/gitlab-5.1.0-4/ruby/bin/ruby

# This file was placed here by GitLab. It makes sure that your pushed commits
# will be processed properly.

refname = ARGV[0]
key_id  = ENV['GL_ID']
repo_path = `pwd`

require_relative '../lib/gitlab_update'

GitlabUpdate.new(repo_path, key_id, refname).exec

我希望能帮助别人。

最好的祝福。

佩德罗弗洛雷斯

关于Gitlab protected 分支不保护 ssh 推送上的分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17561871/

相关文章:

docker - Git 预提交钩子(Hook)

gitlab - 如何使用json输入在多行脚本中传递GitLab变量?

jenkins - Gitlab 和 HTML 文档

Git LFS 和 HTTP 客户端身份验证

api - Gitlab:通过 API 创建新用户 - 404

git - 如何配置SonarQube、Sonar Runner、GitLab和Jenkins获得持续集成

amazon-web-services - 我如何使用 ecr 与来自其他注册表的正常 docker 登录

linux - gitlab clone/push/pull 的 ssh key 故障排除

python - 从python通过SSH连接Gitlab部署公钥

GitLab 自托管 SSL 问题 - 域验证失败