我在GitHub上有一个私人存储库组织。我也让Jenkins设置在服务器上的端口8080上运行,并安装了GitHub插件。我在GitHub上为我的jenkins用户创建了一个帐户,该帐户位于所有者组中。
当我将更改推送到我的开发分支(或主分支,似乎都没有工作)时,我正试图触发jenkins的工作。
当我查看Jenkins中的GitHub Hook日志时,它说Polling还没有运行。当我去“管理Jenkins”时,GitHub插件在我测试时说我的帐户已经过验证。
有关如何配置此内容的任何见解?我有多个我想使用的存储库,因此部署密钥对我来说似乎不是解决方案。
答案 0 :(得分:8)
更新
在Craig Ringer中提及his answer,您可以在GitHub插件设置下的“配置Jenkins”中选择Grant READ permissions for /github-webhook
,允许在不进行身份验证的情况下调用webhook。
另一次更新:Webhooks are now (Dec. 2014) available for organization:请参阅WebHooks API for orgs。
注意:issue 4的hudson-github-plugin是关于:
Last GitHub Push
Polling has not run yet.
结论是:
没关系,唯一缺少的是github用户的权限复选框,互联网上没有任何记录。
这是关于Jenkins用户的权限问题吗?
文章“Set up Jenkins-CI on Ubuntu for painless Rails3 app CI testing”包括以下过程:
要限制CI系统并授予您的团队成员访问权限以使用或查看构建日志,首先您要创建一个帐户。
- 转到
Manage Jenkins > Configure System
,- 选中
Enable Security
复选框- 在
Security Realm
下,选择Jenkins自己的用户数据库- 选中
Allow users to sign up
复选框- 在
Authorization
下,选择Project-based Matrix Authorization Strategy
- 添加名为admin的第一个用户和使用GitHub的另一个用户(注意:Admin访问的用户名必须是admin)对于名为user的GitHub,只需选择Overall Read only权限。稍后我们将使用此用户使用GitHub挂钩。
注意:我们在上面的步骤中添加的admin和GitHub用户不会创建用户。然后你要创建一个具有相同名称的真实用户。雅,我知道,Jenkins UI有点奇怪。
转到管理
Jenkins > Manage Users > Create User
。创建admin和GitHub用户。使用Github web-hooks挂钩
现在,当新的提交或分支被推送到Github时,自动运行构建,我们必须设置存储库。
进入存储库的hooks页面。例如
github.com/<username>/<project_name>/admin/hooks
在
AVAILABLE SERVICE HOOKS > Post-Receive URLs
下,添加github:github@your-ci-server.com/github-webhook/
。
github:github
是我们之前创建的用户。然后我们必须用Github验证Jenkins。转到Manage Jenkins&gt;配置系统并在GitHub Web Hook下,添加您的Github用户名和密码,然后单击Test Credential按钮以使用Github授权一次。
答案 1 :(得分:2)
看起来当前版本的GitHub插件不再需要接受的答案。您可以在&#34;配置Jenkins&#34;中检查Grant READ permissions for /github-webhook
。在GitHub插件设置下,允许无需身份验证即可调用webhook。
正如在这个选项的帮助中所解释的那样,这是非常安全的,坦率地说,并不比让用户名为&#34; github&#34;用密码&#34; github&#34;反正。
答案 2 :(得分:0)
有两种方法可以在Jenkins上实现自动构建。您选择的内容取决于GitHub是否可以调用您提供的Jenkins服务器URL。如果你在防火墙后面运行Jenkins,情况可能并非如此。
您可以设置两者,但只需一个解决方案即可使其正常运行。如果可行的话,我总是会选择第一个,因为它可以节省资源CPU和流量。
希望有所帮助。