Jenkins 通知轮询构建失败,提示“URI ssh://path 没有 git 使用者”

Jenkins 通知轮询构建失败,提示“URI ssh://path 没有 git 使用者”

每当我的 Jenkins 收到有关我的存储库有新的 git 提交的通知时,我在触发客户端上收到以下日志/错误响应:

Scheduled polling of foo
No git consumers for URI ssh://git@localhost:9777/path/to/foo.git

此失败通知不会开始构建。使用手动“立即构建”可成功开始构建。

设置

  • 我有一个正在监听的詹金斯实例localhost:8666
  • 我有一个 SSH 守护进程正在监听localhost:9777
  • 在 Jenkins 中,我有一个基于 git 的 Maven 项目:
    • “Maven 项目名称”是
    • “Git 存储库 URL” 是ssh://git@localhost:9777/path/to/foo.git
  • 在那里面裸存储库,我有一个钩子文件,hooks/post-receive内容如下:

# this is file post-receive
curl http://localhost:8666/git/notifyCommit?url=ssh://git@localhost:9777/path/to/foo.git

建立承诺通知以前运行良好。我感觉,一旦我从标准 SSH 端口 22 移至非标准 9777,它就不再运行良好了。

我必须做什么才能使提交通知导致成功构建触发?


可能相关的源代码文件:

答案1

将钩子连接到 Jenkins 时需要记住的事项:

  1. 在“构建触发器”中选择Poll SCM选项,将“计划”文本区域留空

  2. url=xxx参数必须与作业配置中指定的“存储库 URL”匹配。如果它以 ssh:// 为前缀,则应将其保留在通知调用中

  3. 不要忘记push a change to the repo配置!要验证您是否进行了更改: http://jenkins-url:jenkins-port/job/JOB-NAME/scmPollLog/最后一行应包含“发现更改”。

来源:Git 插件文档

答案2

我也遇到了同样的问题。

问题是自上次构建以来,您的 git 没有任何变化。只需进行一些更改,然后使用 jenkins 通知 URL,它就会起作用。

我用了:

http://<jenkins-server_link>/git/notifyCommiturl=http://<gitrepo>.git

答案3

您不需要 ssh:// 部分。

尝试:

curl http://localhost:8666/git/notifyCommit?url=git@localhost:9777/path/to/foo.git

相关内容