github-webhook 未触发作业,因为管道没有匹配的存储库

github-webhook 未触发作业,因为管道没有匹配的存储库

我已经设置了 github webhook,并在 jenkins 中的 github 插件上设置了日志。Jenkins 似乎在 webhook 上收到了正确的负载。但是日志显示 github webhook 考虑戳我的作业,然后它跳过了,因为它没有找到匹配的存储库

我使用的是 Jenkins 2.1,最近迁移到了 2.5

Received POST for https://github.com/<org_name>/<repo_name>
May 20, 2016 3:17:49 PM FINE  org.jenkinsci.plugins.github.webhook.subscriber.DefaultPushGHEventSubscriber$1 run
Considering to poke echo_pipeline
May 20, 2016 3:17:49 PM FINE org.jenkinsci.plugins.github.webhook.subscriber.DefaultPushGHEventSubscriber$1 run
Skipped echo_pipeline because it doesn't have a matching repository.

我已将此存储库添加到管道作业的配置中,并且我也在管道中克隆此存储库。我还需要在何处配置存储库,以便 webhook 考虑到这一点并且不会跳过它

答案1

我知道这是一个老话题,但为了让那些最终到达这里的人受益:

1)你的任务必须至少手动运行一次,钩子才会起作用

2) 推送到 Jenkins 的 repo、项目配置中的 GitHub 项目 url 以及管道作业中的 repo 必须对齐。

3)你需要在 Jenkins 中使用日志记录器来查看 GitHub 发送的内容:https://support.cloudbees.com/hc/en-us/articles/204880580-How-do-I-create-a-logger-in-Jenkins-for-troubleshooting-and-diagnostic-information-

我深入研究了 Jenkins 代码(https://github.com/jenkinsci/github-plugin/blob/master/src/main/java/org/jenkinsci/plugins/github/webhook/subscriber/DefaultPushGHEventSubscriber.java#L88-L107) 来找出不匹配的地方。您可以转到 Jenkins 实例脚本控制台 (/script) 并执行以下命令来查看管道中的预期内容:

import com.cloudbees.jenkins.GitHubRepositoryNameContributor;

for (Item job : Jenkins.getInstance().getAllItems(Item.class)) {
  print(GitHubRepositoryNameContributor.parseAssociatedNames(job))
}

它将循环遍历您的所有作业并输出正在检查的存储库的值。

相关内容