码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • gitlab配置webhook限制提交注释


    一、打开gitlab相关配置项

    vim /etc/gitlab/gitlab.rb

    gitlab_shell['custom_hooks_dir'] = "/etc/gitlab/custom_hooks"

    二、创建相关文件夹

    mkdir -p /etc/gitlab/custom_hooks

    mkdir -p /etc/gitlab/custom_hooks/post-receive.d

    mkdir -p /etc/gitlab/custom_hooks/pre-receive.d

    mkdir -p /etc/gitlab/custom_hooks/update.d

    #将相关脚本放入对应目录

    1. #!/usr/bin/env python3
    2. import sys
    3. import re
    4. import subprocess
    5. #import redis
    6. refname = sys.argv[1]
    7. oldrev = sys.argv[2]
    8. newrev = sys.argv[3]
    9. regex='([a-zA-Z0-9]+-\\d+)\\,\\s+.{10,}'
    10. def check_message_format():
    11. cmd='git rev-list '+oldrev+'..'+newrev
    12. print(cmd)
    13. p = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)
    14. l= p.stdout.readlines()
    15. for rev in l:
    16. cmdsub="git cat-file commit "+rev.decode().strip('''\n''')+" | sed '1,/^$/d'"
    17. p1 = subprocess.Popen(cmdsub,shell=True,stdout=subprocess.PIPE)
    18. l1 = p1.stdout.readline()
    19. print(l1)
    20. result = re.match('([a-zA-Z0-9]+-\\d+)\\,\\s+.{10,}',l1.decode())
    21. if result == None:
    22. print("your commit msg should like : TEST-123, fix the wrong caution")
    23. sys.exit(1)
    24. sys.exit(0)
    25. check_message_format()

    三、使配置生效

    gitlab-ctl reconfigure

    效果:

    一、提交代码格式为“jira项目问题编号, 注释信息”,例如

    git commit -m "SMGJ-120, 测试提交代码"

    #注释信息可以中文也可以英文,但是标红处的字符不得少于10个字符。

     

    由于注释信息为6个字,所以被拦截,并且在报错中也给出样例“remote: your commit msg should like : TEST-123,  fix the wrong caution”。

    二、修改注释,重新提交代码

    使用git commit --amend

    修改注释信息为"SMGJ-120, 测试提交代码测试提交代码"

     

    三、重新推送代码

    直接推送代码,完成。

     

     golang实现gitlab commit注释校验hook - 简书

  • 相关阅读:
    好心情:吸烟会影响精神科药物的疗效
    Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day5】 —— 基础篇2
    Swfit获取系统开机时间BootTime
    【Vagrant】使用 Vagrant 快速创建多台 centos7 虚拟机
    Java实现微信支付功能
    Oracle/PLSQL: To_Clob Function
    Creo 9.0 中几何对象的选取方法
    DP28 跳跃游戏(三)
    Spring 的依赖注入(DI)
    jsp当前页面刷新重载并带参数
  • 原文地址:https://blog.csdn.net/waysoflife/article/details/133359831
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号