前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >给你的项目增加 Git WebHooks

给你的项目增加 Git WebHooks

作者头像
沈唁
发布2021-12-08 08:52:02
4660
发布2021-12-08 08:52:02
举报
文章被收录于专栏:沈唁志沈唁志

之前写过 《使用 Github 的 WebHooks 实现生产环境代码自动更新》1 ,是将 WebHooks 用于自动部署。

文章中说到了:GitHub、GitLab、Gitee 虽然都是 Git 仓库平台,但是发送的 WebHooks 请求的数据格式有些差别。

那么如何解决这个问题呢?

使用 sy-records/webhooks2 的 composer 扩展包,可以让你的项目支持 WebHooks,并且可以自定义 WebHooks 的规则。

例如,你可以指定分支、Tag、提交人、提交内容等条件,来执行一些事件。

同时也可以验证是否为有效的 WebHooks 请求。

安装

需要 PHP >= 7.2,低版本的建议升级。。。

代码语言:javascript
复制
composer require sy-records/webhooks

使用

实例化 Payload 对象,获取到对应的 handler

代码语言:javascript
复制
use Luffy\WebHook\Payload;
use Luffy\WebHook\Interfaces\HandlerInterface;

$payload = new Payload();
/** @var HandlerInterface $handler */
$handler = $payload->getHandler();

如果存在实现 MessageInterfacerequest 对象,可以在实例化 Payload 时传入,否则的话是从全局变量中获取。

然后就可以操作一些方法了,例如:

代码语言:javascript
复制
// 是否为 ping 请求
$handler->isPing();

// 获取 hook 事件名称
$handler->getHookName();

// 验证是否为有效的 WebHooks 请求
$handler->check($secret);

完整的方法可以查看 HandlerInterface3 接口。

参考资料

1《使用 Github 的 WebHooks 实现生产环境代码自动更新》: https://cloud.tencent.com/developer/article/1358657

2sy-records/webhooks: https://github.com/sy-records/webhooks

3HandlerInterface: https://github.com/sy-records/webhooks/blob/master/src/Interfaces/HandlerInterface.php

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 沈唁志 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 使用
    • 参考资料
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档