【问题标题】:gerrit review 2.11.3 rejects eGIT push to repositorygerrit review 2.11.3 拒绝 eGIT 推送到存储库
【发布时间】:2017-08-02 18:05:52
【问题描述】:

我创建了一个具有以下组件的 gerrit 服务器:

  • gerrit 2.11.3(Eclipse eGerrit支持的最新版本)git
  • git 2.13.3(当前版本)

到目前为止我已经成功了:

  1. 将 gerrit 配置为使用我们的 LDAP 进行 HTTP 身份验证

[格里特]
basePath = /dummysome/data/gerrit2
canonicalWebUrl = http://build.ct.dummyserver.co.za:8081/
[数据库]
类型 = 甲骨文
主机名 = 本地主机
端口 = 1521
实例 = gerritdb
用户名 = gerrit2
[索引]
类型 = Lucene
[认证]
类型 = LDAP
gitBasicAuthPolicy = LDAP
[ldap]
服务器 = ldap://dc1.ct.dummyserver.co.za
用户名 = cn=管理员,cn=用户,dc=ct,dc=dummyserver,dc=co,dc=za
accountBase = ou=Staff,ou=osTelephone,dc=ct,dc=dummyserver,dc=co,dc=za
groupBase = ou=Staff,ou=osTelephone,dc=ct,dc=dummyserver,dc=co,dc=za
[发送邮件]
smtpServer = 本地主机
[集装箱]
用户 = gerrit2
javaHome = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64/jre
[sshd]
listenAddress = :29418
[httpd]
listenUrl = http://
:8081/
[缓存]
目录 = 缓存

  1. 使用我的 LDAP 用户名和密码通过 HTTP 登录到 gerrit Web UI(登录后,gerrit 显示我是“管理员”组的成员)
  2. 通过 gerrit web 创建了一个 gerrit (git) 项目“dummy” 界面
  3. 通过 HTTP 从 gerrit 克隆了“虚拟”git 存储库 使用 eGit 将服务器连接到我的 Eclipse Neon 客户端
  4. 在我的客户端上向“dummy”添加了一个新的测试文件并成功提交

[核心]
符号链接 = 假
存储库格式版本 = 0
文件模式 = 假
logallrefupdates = true

[远程“原点”]
网址 = http://dummyserver.com:8081/dummy
fetch = +refs/heads/:refs/remotes/origin/
fetch = refs/notes/:refs/notes/
pushurl = http://dummyserver.com:8081/dummy
push = HEAD:refs/for/master

[分支“主”]
远程 = 原点
合并 = refs/heads/master

[格里特]
createchangeid = true

当我将更改推送到 gerrit 存储库的上游时,系统会提示我输入我的用户名和密码(可以选择将其保存到 Eclipse 安全存储)

但是,当我输入与登录 gerrit UI 时相同的详细信息时,我会不断地看到相同的登录表单。

最终,当我取消时,我会看到以下错误消息:

无法连接到任何存储库:http://dummyserver.com:8081/dummy (http://dummyserver.com:8081/dummy: 未授权)

查看 gerrit 服务器日志时,我看到以下错误

192.168.1.165 - - [02/Aug/2017:19:53:52 +0200] "GET /dummy/info/refs?service=git-receive-pack HTTP/1.1" 401 12 - "JGit/4.6.1.201703071140-r"

我注意到错误出现在我的客户端上弹出登录窗口的那一刻,而不是在输入我的用户名和密码后按下时。这似乎表明某种服务器配置错误,而不是实际的身份验证。

我真的不知道下一步该去哪里,我非常感谢任何人对可能导致问题的任何见解。

非常感谢!

【问题讨论】:

  • 什么是推送命令?
  • @MarceloÁviladeOliveira - 谢谢。我在 Eclipse 中使用 eGit,所以我只选择了“推送到上游”,但是我已经编辑了原始帖子以包含 eGIT .git\config 文件,该文件在我最初从 gerrit 服务器克隆虚拟存储库时自动创建。希望这些信息对您有所帮助?

标签: git gerrit egit


【解决方案1】:

您似乎没有权限推送到“refs/for/master”。

检查权限:

Gerrit > Projects > List > dummy > Access > Reference: refs/for/refs/* Push

更多信息here.

【讨论】:

  • 谢谢 - 日志中的错误发生在我输入用户名和密码之前,所以我开始怀疑这是否不是问题serverfault.com/questions/409616/…(我完全不确定如何可悲地调试服务器端)。还要注意的是,我已将管理员添加到我可以在“所有项目”项目中找到的所有“推送”权限中,据我所知,这适用于所有项目
  • 你在使用反向代理吗? gerrit-review.googlesource.com/Documentation/…你的gerrit.config是怎么配置的?
  • 不,我不是。我已经设置成功的 LDAP 身份验证登录到 gerrit 网站,但是尽管尝试了许多不同的事情并在网上进行了相当广泛的阅读,但我还没有找到任何解释如何 - 从 Eclipse 客户端 - 执行 git https 推送到能够通过 LDAP 进行身份验证的 gerrit。我什至不确定这是否真的可能,或者我是否正在追逐一条红鲱鱼试图实现它!如果您对此有任何进一步的见解,我将不胜感激,但如果没有,我将放弃这一点并使用 SSH 公钥进行推送。
  • 您是否能够使用 Eclipse 和 HTTP 进行克隆和获取?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-20
  • 2014-12-12
  • 2016-02-21
  • 2020-08-29
  • 1970-01-01
  • 1970-01-01
  • 2019-06-09
相关资源
最近更新 更多