我正在测试Gitea,并希望它触发一个Jenkins构建,相当基本的用例。我知道有现有的GOGs网络钩子插件可以使用,但最近也发现有一个Gitea插件为Jenkins以及。
在GOGS的情况下,您可以打电话给Jenkins:名字
在上面的示例中,显然需要更新Jenkins位置和作业名称。
问题是Gitea插件没有文档,但是根据源代码,URL应该是:
http://jenkins-url/gitea-webhook/post
我认为应该发生的顺序如下:
问题是,gitea插件如何知道执行什么任务?您如何指定这一点?现在我可以看到gitea在上面的URL上向Jenkins发送帖子,但是什么都没有发生,Jenkins日志也没有任何信息来理解其失败的原因。
编辑:
我在这里遇到一个问题,在将生成的公共SSH密钥复制到Gitea用户帐户后,Jenkins仍然无法访问回购以使用管道编辑器。不知道我在这里缺少的是什么,因为我能够完美地从本地主机(码头环境之外)推拉,并且检查容器是否也能完美地看到对方.
谢谢
发布于 2018-05-08 10:16:12
我已经成功地使用了相对新的版本配置了Jenkins/Gitea组合(对于这两个版本,我都使用了官方的基于高山的码头容器)。我用这个Gitea问题做向导。我没有在Jenkins使用Gogs插件,只有Gitea插件。我也不使用管道,只有经典的手动配置的作业。
在Jenkins:在作业设置页面上,将“源代码管理”选项设置为"Git",为您的回购(http://gitea-url.your.org/username/repo.git)提供URL,并在"Poll触发器“部分检查"Poll”选项,而没有定义时间表。这个设置基本上告诉Jenkins只在通过web钩子请求时才轮询您的Gitea repo。
在Gitea中:在repo ->设置-> Webhooks下,添加新的web钩子,将URL设置为Url.your.org/gitea-web钩子/post,并清除秘密(保留为空)。
此时,单击“测试交付”按钮将产生成功的交付尝试(绿色复选标记)。
如果您的测试交付失败,请尝试查看是否可以将其发布到Jenkins (Url.your.org/gitea-web钩子/post)。例如使用邮递员或卷曲:
curl -vvv -H "Content-Type: application/json" -H "X-Gitea-Event: push" -X POST http://jenkins.server.example.sk:8080/gitea-webhook/post -d "{}"正确的响应应该是简单的“处理”字符串。如果你有别的东西,就把它贴在这里。
至于关于的问题,詹金斯知道构建的任务是什么,我的理解是,POST请求体包含是到回购/分支的链接,Jenkins在内部查找这个链接,以找到引用该回购(在上面的作业设置页面中定义的内容)的作业。这个Jenkins wiki页面提供了更多关于泛型钩子的信息,还有一些带有更多链接的这个答案,这些链接可能会解释一下引擎盖下面发生了什么。
来调试,您可以使用“最近的交付”(可以单击整个post请求和响应!)从gitea存储库(或组织)设置为如本答案所示。请记住,gitea有其/etc/ gitea /app.ini文件,其中指定了ssh域、gitea服务器域和http url,并且在jenkins中指定了gitea srvers。这些urls必须匹配的东西才能工作!
发布于 2018-02-07 03:38:46
当我最初在詹金斯安装Gitea插件时,尝试在Gitea中配置一个web钩子来触发Jenkins管道项目(都是在本地完成的),然后就像上面提到的@PhilW (假设您在http://localhost:8080运行Jenkins )一样,触发Gitea的http://localhost:8080/gitea-webhook/?job=job_name也不适合我。
话虽如此,我随后在詹金斯安装了Gogs插件,在Gitea http://localhost:8080/gogs-webhook/?job=job_name中重新配置了webhook (注意到了差异),然后Jenkins构建了我的管道项目,没有任何问题。
另外值得一提的是,作为一个简单的肮脏技巧,我发现如果您指定Jenkins服务器的基本URL (在您的web浏览器中),使用适当的web钩子附件。
http://localhost:8080/gogs-webhook/ (在Jenkins中安装了Gogs插件并启用),或http://localhost:8080/bitbucket-hook/ (安装并启用了Bitbucket插件),你得到的只是一个空白页面,这似乎表明Jenkins中的相关web钩子最有可能按预期运行。
指定http://localhost:8080/gitea-webhook/ (安装并启用了Gitea插件)会返回一个HTTP 404,因此我怀疑这个插件可能有一两个bug。
发布于 2018-02-27 18:09:40
我在Jenkins上使用Gitea插件1.0.4,我对webhooks没有问题。我没有安装Gog插件。
从Gitea (存储库->设置-> webhooks),我可以手动定义我的web钩子,指示URL:https://my-jenkins/gitea-webhook/post
这可以手动测试,运行“测试交付”,如下图所示:

詹金斯方面,我已经配置了吉蒂亚的证书。当Jenkins找到一个带有Jenkinsfile (我使用管道)的项目时,它会自动配置存储库(Gitea侧)的web钩子(如果不存在)。
Gitea将通过一篇包含大量JSON格式信息的帖子通知Jenkins。
Jenkins必须能够访问GIT存储库,因此您需要为他创建Git的凭据。
https://stackoverflow.com/questions/48316346
复制相似问题