提醒:本文最后更新于 2022-07-01 11:02,文中所关联的信息可能已发生改变,请知悉!
由于 Git 远程仓库部署工具 2.1 中未兼容 gogs 导致 webhook 钩子未能正常运行
解决方案:
在插件包中 WebHooks\init.py 文件中 150 行下方增加以下代码
elif 'X-Gogs-Event' in request.headers:
import hashlib
import hmac
sha256_sign = hmac.new(projectData['webhooks_password'].encode("utf-8"), request.data, hashlib.sha256).hexdigest()
if request.headers.get('X-Gogs-Signature') != sha256_sign:
return_data["msg"] = "秘钥校验失败"
return json.dumps(return_data)
print("秘钥校验成功")
if request.headers.get('X-Gogs-Event') != 'push':
return_data["msg"] = "事件类型校验失败"
return json.dumps(return_data)
print("事件类型校验成功")
if not request.json.get('ref').endswith('/'+projectData['branch']):
return_data["msg"] = "分支校验失败"
return json.dumps(return_data)
print("分支校验成功")
正文完