【发布时间】:2013-07-09 06:09:47
【问题描述】:
我尝试按照本文中的说明进行操作:
http://developer.cloudbees.com/bin/view/DEV/GitHub+Commit+Hooks+HOWTO
但是我有两个问题:
它不起作用。当我推送到 github 时,詹金斯方面没有任何反应。在 Jenkins 上,GitHub Hook 日志显示“轮询尚未运行。”
可能的原因是我无法指定 git 存储库,如下图所述:
没有用于公钥的文本字段,也没有其他字段。相反,我有字段
Repository URL, Name, Refspec
我还可以指定一个 http url(以及除触发之外的所有内容)。但是,如果我在图像中指定 git/ssh url,则会收到以下错误:
无法连接到存储库:命令“git ls-remote -h git@github.com:schauder/degraph.git HEAD”返回状态码 128: 标准输出:标准错误:警告:永久添加 'github.com,207.97.227.239' (RSA) 到已知主机列表。 权限被拒绝(公钥)。致命:无法从远程读取 存储库。
请确保您拥有正确的访问权限和存储库 存在。
我从 github 复制了 url,所以不太可能出现拼写错误。
我确认我已经安装了 github 插件(升级到 1.5 版)
任何提示如何解决或至少调试问题?
更新 cmets 中的回答问题:
是的,我在作业配置中选中了“将更改推送到 GitHub 时生成”复选框。
是的,我在 GitHub 中设置了 webhook。当我单击那里的测试按钮时,没有任何反应。当我将 webhook 中的 url 放入浏览器时,我得到一个 http 500 说
不打算以交互方式浏览(必须指定有效负载参数)
加上一些冗长的堆栈跟踪。
另一个更新
我检查了安装在 Jenkins 端的 GIT 相关插件。文本中显示的所有带有 GIT 的内容均已安装且为最新版本
【问题讨论】:
-
只是为了验证:1) 您是否选中了 Jenkins 作业中 BuildTrigger 下的“将更改推送到 GitHub 时构建”复选框? 2)您是否在“设置”下注册了服务挂钩?服务挂钩 | GitHub 项目中的 WebHook URL?
-
是的,我做到了。查看问题的更新。
-
根据上面的 Git 错误消息,我假设您无法通过身份验证。您是否按照here 的描述在 GitHub 上添加了 CloudBees 公共 SSH 密钥?
-
好的,我想我找到了公钥(在 Jenkins 中)并将它放在 Github 中。现在我可以为 github 存储库指定一个 SSH URL。但仍然没有触发发生。
-
实际上触发确实有效,在设置密钥之后。不知道为什么我的第一次测试似乎失败了。