我们安装了Gerrit来管理服务器上的存储库。 到目前为止,一切运行良好,我们可以使用ssh进行克隆。
Gerrit是版本2.14.2 apache 2.4.18。
这是我们的配置文件(需要时审查):
/media/data/gerrit/etc/gerrit.config
[gerrit]
basePath = git
serverId = ed5a7ef7-289e-4590-9292-cbdede1b0dc9
canonicalWebUrl = http://repository.something.com/gerrit
[database]
type = h2
database = /media/data/gerrit/db/ReviewDB
[index]
type = LUCENE
[auth]
type = HTTP
logoutUrl = http://logout@repository.something.com/gerrit
[receive]
enableSignedPush = false
[sendemail]
smtpServer = mail.something.com
from = Code Review <review@gerrit.com>
[container]
javaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre
user = administrator
[sshd]
listenAddress = *:29418
[httpd]
listenUrl = proxy-http://127.0.0.1:8081/gerrit
[cache]
directory = cache
[plugins]
allowRemoteAdmin = true
[download]
command = checkout
command = cherry_pick
command = pull
scheme = ssh
scheme = http
[commitmessage]
maxSubjectLength = 80
maxLineLength = 100
longLinesThreshold = 10
rejectTooLong = false
[plugin "emoticons"]
showEmoticons = true
[reviewers]
enableREST = true
enableUI = true
ignoreDrafts = true
autoAddReviewers = false
maxReviewers = 1
enableLoadBalancing = false
plusTwoRequired = true
plusTwoAge = 8
plusTwoLimit = 10
[gitweb]
type = custom
linkname = log
url = http://repository.something.com/cgit
project = /${project}.git
branch = /${project}.git/log
revision = /${project}.git/commit/?id=${commit}
filehistory = /${project}.git/log
[lfs]
plugin = lfs
/etc/apache2/mods-enable/gerrit.conf
ProxyPassMatch /([[:alnum:]-]+)\.git(.*) http://localhost:8081/gerrit/a/$1.git$2
ProxyPass /gerrit http://localhost:8081/gerrit nocanon
ProxyPassReverse /gerrit http://localhost:8081/gerrit nocanon
ProxyRequests Off
<Proxy http://localhost:8081/gerrit>
Order deny,allow
Allow from all
</Proxy>
<Location /gerrit>
AuthType Digest
AuthName "gerrit"
AuthUserFile /etc/apache2/.htdigest
Require valid-user
</Location>
像我说的那样使用ssh克隆效果很好。但是当尝试使用http进行克隆时,我们会收到身份验证错误。 我在启用了mods的单独配置文件中尝试了不同的设置,也在可用的站点中尝试了。
知道可能出现什么问题吗?
如前所述,我们在repository.someting.com上有一个登录页面,并使用repository.something.com/gerrit访问Gerrit。
所有这些apache配置对我来说都是全新的 - 所以我不知道我到底做了什么^^
答案 0 :(得分:0)
我将apache loglevel更改为debug以获取更多信息。
这些是我的尝试:
在全局.gitconfig
中使用TortoiseGit进行克隆而不进行任何修改AH01781:客户端使用了错误的身份验证方案`Basic':/ gerrit / a / PluginTester / info / refs
在全局.gitconfig
中使用GitBash进行克隆而不进行任何修改AH01794:用户hanswurst:密码不匹配:/ gerrit / a / PluginTester / info / refs
我在.gitconfig中添加了http.proxyAuthMethod = digest,并再次尝试使用TortoiseGit
AH01781:客户端使用了错误的身份验证方案`Basic':/ gerrit / a / PluginTester / info / refs
还尝试了Git Bash
AH01794:用户blubb:密码不匹配:/ gerrit / a / PluginTester / info / refs
我在文档中已经读过,只有在使用带有用户名的代理时才能使用它;所以我添加了http.proxy = http://blubb@repository.something.com:80并再次尝试使用Tortoisegit
AH02422:HTTP请求线; URI不得包含用户名/密码
和GitBash
AH02422:HTTP请求线; URI不得包含用户名/密码
即使文档说代理必须包含用户名, 我也试过http.proxy =上的代理 http://repository.something.com:80现在使用TortoiseGit
AH01781:客户端使用了错误的身份验证方案`Basic':/ gerrit / a / PluginTester / info / refs
和GitBash
第7点是我的预期,因为摘要将不再使用。 但是在服务器上的8.它看起来对我很好,但客户端仍然得到“身份验证失败”