Jenkins工作通知失败,"没有针对URI的git使用者..."

Qui*_*rin 26 git curl jenkins

我想设置一个post-receive git钩子,通知jenkins有关更改,但没有触发任务jenkins.

我的post-receive钩子看起来像这样:

curl http://localhost/jenkins/git/notifyCommit?url=<git_repository_url>
Run Code Online (Sandbox Code Playgroud)

如果我在终端发出命令,我收到以下消息:

"No git consumers for URI..."
Run Code Online (Sandbox Code Playgroud)

我有一个连接到Git源代码管理的jenkins工作,给出了存储库URL以及分支: */master

我已经搜索过这个问题了,但是我发现没有什么有用的东西:"没有针对URI的git使用者"

我用:

  • LinuxMint
  • Apache 2.4.6
  • git 1.8.3.2
  • 卷曲7.32.0
  • 詹金斯1.532.2

我在apache中有一个代理设置:

<Proxy *>
    Order deny,allow
    deny from all
   allow from 127.0.0.1
</Proxy>
Run Code Online (Sandbox Code Playgroud)

git存储库是bare.

ido*_*ode 44

为要通知的每个项目启用SCM轮询:

  1. 转到仪表板.
  2. 点击你的项目.
  3. 单击配置.
  4. Build Triggers下,选中Poll SCM的复选框.
  5. 重复任何其他项目.

您发送的通知告诉Jenkins轮询存储库,因此项目只会在启用SCM轮询时响应.

  • 好注意:你可以省略`Schedule`部分,这样除非挂钩被触发,否则它永远不会运行.即使消息显示它永远不会运行,这似乎也能正常工作. (4认同)

mon*_*jbl 16

消息No git consumers for URI总是出现,你应该担心,如果你看到No git jobs using repository.响应将包含计划轮询的作业列表,因此只要您看到它们,就会触发轮询.

那说你可能想检查一下轮询是否真的在做什么.如果你进入配置了Git的工作,你可以看到左边的Git Polling Log的链接.在那里,你将能够看到触发器是否实际上做了什么,更重要的是,如果有错误.

我遇到了类似的问题,我花了一段时间才发现我的Git配置错误.我的工作将在手动触发时构建正常,但轮询触发器将使用与Git二进制文件不同的路径并失败.我最终必须定义Git路径来解决我的问题.


dhj*_*dhj 6

我不得不采取以下步骤:

  1. 启用SCM轮询,由@ angstadt530回答
    • project-> configure - >"Build Triggers" - >"启用SCM轮询"...检查它
  2. 检查@monitorjbl回答 的Git轮询日志
    • 项目 - >"Git Polling Log"......确定#3
  3. 使用工作区强制轮询
    • project-> configure - >"Source Code Management" - >"Additional Behaviors" - > add - >"使用工作区强制轮询"...从下拉菜单中选择它.

在完成#1之后,除了"没有针对URI gitRepoURI的git使用者"之外,我还得到了"ProjectName的预定轮询".

然而,看着Git的投票记录,我发现该错误消息:不能运行程序"C:\ Program Files文件(x86)的\的Git\BIN\git.exe":错误= 2,没有这样的文件或目录

要修复此错误,我必须将源代码管理配置为使用工作空间强制轮询(#3).我不确定为什么,因为手动启动的构建工作正常.也许是一个错误 - 可能是Linux服务器和Windows奴隶的混合.但不管怎样,这最终为我解决了这个问题.希望能帮助到你.