使用Gitlab (10.6.2)和Jenkins在本地计算机上安装,并尝试通过gitlab的webhook自动构建,根据https://github.com/jenkinsci/gitlab-plugin/wiki/Setup-Example
但是,当测试推送时,gitlab会收到错误:
500内部服务器错误 - URI :: InvalidURIError
production.log
中的详细日志是:
开始GET“/ laiwan / laiwan-parent / hooks / 2 / test?trigger = push_events” 对于127.0.0.1在2018-04-03 17:11:07 +0800处理方式 Projects :: HooksController #test as HTML参数: {“trigger”=>“push_events”,“namespace_id”=>“laiwan”, “project_id”=>“laiwan-parent”,“id”=>“2”}已完成500内部 服务器错误27ms(ActiveRecord:2.3ms)
URI :: InvalidURIError(URI :: InvalidURIError):
lib / gitlab / proxy_http_connection_adapter.rb:14:inconnection'
make_request'
app/services/web_hook_service.rb:73:in
app / services / web_hook_service.rb:26:inexecute'
执行'
app/models/hooks/web_hook.rb:10:in
app / services / test_hooks / base_service.rb:22:inblock in execute'
catch'
app/services/test_hooks/base_service.rb:19:in
app / services / test_hooks / base_service.rb:19:inexecute'
test'
app/controllers/projects/hooks_controller.rb:41:in
lib / gitlab / i18n.rb:50:inwith_locale' lib/gitlab/i18n.rb:56:in
with_user_locale'app / controllers / application_controller.rb:330:inset_locale' lib/gitlab/middleware/multipart.rb:95:in
称之为'
lib / gitlab / request_profiler / middleware.rb:14:incall'
call'
lib/gitlab/middleware/go.rb:17:in
lib / gitlab / etag_caching / middleware.rb:11:incall'
call'
lib/gitlab/middleware/read_only/controller.rb:28:in
lib / gitlab / middleware / read_only.rb:16:incall'
call'
lib/gitlab/request_context.rb:18:in
lib / gitlab / metrics / requests_rack_middleware.rb:27:incall'
call'
lib/gitlab/middleware/release_env.rb:10:in
Gitlab webhook的网址是http://localhost:8282/project/laiwan-parent
,它是有效的。
似乎有人在gitlab的问题页面上问了类似的问题,但还没有得到任何回复: https://gitlab.com/gitlab-org/gitlab-ee/issues/5375
任何帮助?
答案 0 :(得分:6)
我在这里找到了解决方案:
https://gitlab.com/gitlab-org/omnibus-gitlab/issues/3307
原因是:
在新版本的gitlab中,默认情况下它不允许通过webhook向本地网络发出请求。
<强>解决方案:强>
Admin area
图标 - &gt;设置。Outbound requests
部分中,选中Allow requests to the local network from hooks and services
,然后保存。然后webhook请求可以成功发送到同一主机上的jenkins。
(顺便说一句,虽然gitlab是一个很好的工具,但是我认为默认情况下应该检查这个选项,或者至少提出一些关于发生了什么的明确提示,而不是500错误,以保存开发的是时候解决这些问题了。)
答案 1 :(得分:0)
当我以管理员帐户登录GitLab CE时,我看不到设置[出站请求]。它是否位于版本10.7.3中的其他位置
答案 2 :(得分:0)
在gitlab 11.x中,该选项已移至 / admin / application_settings / network 。该文档不是最新的