【问题标题】:How to Configure Gerrit Webhooks for gerrit events如何为 gerrit 事件配置 Gerrit Webhook
【发布时间】:2021-09-27 17:16:08
【问题描述】:

我正在尝试对 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

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

还有什么需要我做的,帮大忙!

【问题讨论】:

    标签: git continuous-integration continuous-deployment gerrit


    【解决方案1】:

    找到了解决办法,会准确记下:

    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
    

    gerrit-events

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

    2. 然后签到git push origin meta/config:meta/config

    这样我们就完成了!

    (如果觉得有帮助,请点赞)

    【讨论】:

    • 感谢分享!只是,如果您想将第 3 点和第 4 点压缩在一起,您可以这样做:git fetch origin refs/meta/config &amp;&amp; git checkout FETCH_HEAD
    【解决方案2】:

    您可以发送 PUT HTTP 请求来更新 webhooks.config 文件:

    curl --location --request PUT '[Gerrit-Site]/a/config/server/webhooks~projects/All-Projects/remotes/[Remote-Name]' \
    --header 'Content-Type: application/json; charset=UTF-8' \
    --header 'Authorization: Basic aWR...' \
    --data-raw '{
        "url" : "https://adbf...43.ngrok.io/api/v1/webhook/e527d4d7-49e5-4699-b780-5b5c8420dc0f",
        "max_tries" : 3,
        "ssl_verify": false,
        "connection_timeout": 10000
    
    • 确保更新 gerrit.config 中的 webhooks 插件全局配置。
    • 确保在经过身份验证的请求的 URL 中包含“/a/”。

    参考资料:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-08
      • 2018-11-07
      • 2015-07-31
      • 1970-01-01
      相关资源
      最近更新 更多