在将代码签入 gitlab 时显示在 Jenkins 服务器上触发构建的用户详细信息

Showing user details that has triggered the build on Jenkins Server while code is checked in into gitlab

我想显示在 jenkns 上触发构建的用户的详细信息。我已经集成了 gitlab 和 jenkins,gitlab 通过 web hook 触发在 jenkins 上的构建。我们通过LDAP登录gitlab。有什么方法可以显示从 Jenkins 上的 gitlab 获得的用户详细信息????提前致谢

目前,我认为这是不可能的。但是可以实现。


在大多数情况下,Jenkins 作业是通过 Git webhook 触发的,作业本身不会直接触发,而是通知 Jenkins 对于给定的 Git URI,可能已经发生了变化.

Jenkins 然后轮询 Git 更改,如果发现新内容,则触发构建使用该存储库的作业。所以此时,各种工作只是开始,没有收到任何关于发生的 webhook 推送的特殊信息。

此外,一个新的构建可能是由多个不同的人的多次提交触发的,因此将一个人的名字显示为触发构建的人可能没有意义。

但是,有一些特殊的实现可以理解不同托管服务(例如 GitHub、Bitbucket 等)的 webhook 负载格式。

确实,GitLab Hook plugin 看起来是这样做的:如果您通过 /gitlab/build_now webhook 端点开始构建,那么在构建页面上,您会看到构建开始的原因,例如"triggered by merge request feature -> develop" 或 "triggered by push on branch develop with 2 commits".

虽然插件的一部分似乎确实从有效负载中读取了作者的姓名(大概是为了合并请求),但目前构建页面上并未显示。

所以你可以尝试实现这个或在 Jenkins 插件上提交 feature request


作为短期解决方法,您还可以查看每个构建的 "Changes" 页面。在那里你可以看到那个版本中有哪些提交,作者的名字应该显示在每个提交的旁边。

您可能必须在作业配置的 Git 部分下配置 "repository browser" 才能使其正常工作。