码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Gerrit Supported Hooks


    Gerrit 支持哪些 hooks 呢?调用和传参的方式又是如何呢 ?

    我们可以去参考这篇官方文档: Gerrit Supported Hooks
    我们可以在 Gerrit 的安装目录下的 hooks 目录,创建如下标题的文件,当相应的事件发生时,会自动调用这些脚本,并传入相应的参数。但官方文档中描述传入的参数不够准确,可以自行测试。

    Gerrit Supported Hooks

      • 传入参数测试脚本
      • 自行测试结果
        • Synchronous Hooks
          • ref-update
          • commit-received
          • submit
        • Asynchronous Hooks
          • patchset-created
          • comment-added
          • change-merged
          • change-abandoned
          • change-deleted
          • change-restored
          • ref-updated
          • project-created
          • reviewer-added
          • reviewer-deleted
          • topic-changed
          • hashtags-changed
          • cla-signed

    传入参数测试脚本

    这里采用发送飞书消息的形式,需要创建飞书自定义机器人,输出传入的参数。

    #!/usr/bin/python3
    #coding:utf-8
    
    import sys
    import requests
    import json
    
    # change-merged --change  --change-url  --change-owner  --change-owner-username  --project  --branch  --topic  --submitter  --submitter-username  --commit  --newrev 
    change-merged_argv = sys.argv[1:]
    string = ""
    for x in change-merged_argv:
        string += str(x)
        string += ","
    print(string)
    
    url = 'https://open.feishu.cn/open-apis/bot/v2/hook/1447d4ee-4b4c-4de6-b006-d74aaa769162'
    
    method = 'post'
    headers = {
        'Content-Type': 'application/json'
    }
    json = {
        "msg_type": "interactive",
        "card": {
            "config": {
                "wide_screen_mode": True
            },
            "elements": [{
                "tag": "div",
                "text": {
                    "content": string,
                    "tag": "lark_md"
                }
            }],
            "header": {
                "title": {
                    "content": "Gerrit change-merged",
                    "tag": "plain_text"
                }
            }
        }
    }
    requests.request(method=method, url=url, headers=headers, json=json)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    自行测试结果

    Synchronous Hooks

    ref-update
    commit-received
    submit

    Asynchronous Hooks

    patchset-created

    每当有新的代码提交时调用(这包括新的更改)。
    patchset-created
    –change Ia21d96fc3491f79b9beeb9e0dd0aeb9fad9f3fed
    –is-draft false
    –kind REWORK
    –change-url http://gerrit.com/gerrit/5431
    –change-owner Anonymous Coward (xxxx@qq.com)
    –project rk3568_android11
    –branch master
    –uploader Anonymous Coward (xxxx@qq.com)
    –commit c70a40eeef997ae6dc16abb72bccadc991de6d0e
    –patchset 1

    comment-added
    change-merged

    每当合并代码时调用。

    change-abandoned
    change-deleted
    change-restored
    ref-updated
    project-created
    reviewer-added

    每当增加 reviewer 时调用,传入的参数如下:
    reviewer-added
    –change Ia7d3c63f7e7d073bfd70a625151a4b86859997b5
    –change-url http://gerrit.com/gerrit/5437
    –change-owner Anonymous Coward (xxxx@qq.com)
    –project firmware
    –branch master
    –reviewer Anonymous Coward (xxxx@qq.com)

    reviewer-deleted
    topic-changed
    hashtags-changed
    cla-signed
  • 相关阅读:
    一、PostgreSQL软件安装
    本地知识库对企业的重要性
    Vue 打包成桌面应用 vue 打包桌面应用 vue部署为桌面应用 vue部署桌面应用 vue 桌面应用
    软件质量保证计划书(2024Word完整版)
    分布式 PostgreSQL 集群(Citus)官方示例 - 多租户应用程序实战
    小白学编程(CSS):跳动的文字
    大厂秋招真题【DP】米哈游20230924秋招T2-米小游与魔法少女-奇运
    C/C++教程 从入门到精通《第二十四章》——Qt制作天气预报
    LeetCode 10. 正则表达式匹配
    【SSM框架】Spring笔记 --- 事务详解
  • 原文地址:https://blog.csdn.net/ITerated/article/details/127689168
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号