如何为 gerrit 事件配置 Gerrit Webhooks

Sal*_*mim 2 git continuous-integration continuous-deployment gerrit

我正在尝试对 gerrit 事件执行一些操作

  1. 添加/创建新存储库时。
  2. 当创建新的补丁集时。
  3. 当更改合并到特定分支时。

这个想法是当任何存储库中发生上述任何情况时,在 API 端点上获取事件。

我在 Amazon Linux ec2 实例上运行 gerrit 3.1.3 安装,并在另一台类似的 EC2 机器上运行节点服务器(具有开放 API 端点)。在 gerrit 配置中,我添加了以下几行:

[plugin "webhooks"]
    connectionTimeout = 3000
    socketTimeout = 2500
    maxTries = 300
    retryInterval = 2000
    threadPoolSize = 3
[remote "wh_projectCreated"]
        url = http://17.233.138.23:8080/gereve
        maxTries = 1
        sslVerify = false
        event = patchset-created
Run Code Online (Sandbox Code Playgroud)

我已经检查过webhookshooks插件都安装在gerrit安装中。现在,我找不到合适的博客文章来说明如何配置和获取在 webhooks 上接收 gerrit 事件。

我还需要做什么,非常有帮助!

Sal*_*mim 8

找到了解决方案,将准确记录下来:

  1. 在文件夹中克隆All-Projects存储库(带有管理 URL)。git clone "http://admin@<gerrit-address>-:<gerrit-port>/a/All-Projects"
  2. cd All-Projects/
  3. git fetch origin refs/meta/config:refs/remotes/origin/meta/config
  4. git checkout meta/config
  5. 在目录的根目录中All-Projects,创建一个名为webhooks.config.
  6. 修改以下内容:
[remote "changemerged"]
  url = http://<webhook-api>:8081/change-merged
  event = change-merged
  
[remote "project_created"]
  url = http://<webhook-api>:8081/create-jenkins-project
  event = project-created
Run Code Online (Sandbox Code Playgroud)

请参阅gerrit-events

  1. 添加并提交更改:git commit -am "Add webhooks config file"

  2. 并办理入住手续git push origin meta/config:meta/config

就这样我们就完成了!

(觉得有帮助就点个赞吧)