PHPackages                             zyan/gitlab-hooks - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. zyan/gitlab-hooks

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

zyan/gitlab-hooks
=================

gitlab消息推送到企业微信群,钉钉群

1.2.6(4y ago)114.5k1MITPHPPHP &gt;=7.2

Since Oct 21Pushed 4y ago1 watchersCompare

[ Source](https://github.com/aa24615/gitlab-hooks)[ Packagist](https://packagist.org/packages/zyan/gitlab-hooks)[ RSS](/packages/zyan-gitlab-hooks/feed)WikiDiscussions master Synced 5d ago

READMEChangelogDependencies (4)Versions (12)Used By (0)

zyan/gitlab-hooks
=================

[](#zyangitlab-hooks)

gitlab消息推送 转发给 企业微信与钉钉群机器人等

已支持平台

- 企业微信群机器人
- 钉钉群机器人
- 飞书群机器人

注:钉钉群请添加一个自定义机器人 关健词为: git

企业微信效果图

[![企业微信效果图](wework.png)](wework.png)

钉钉效果图

[![钉钉效果图](dingtalk.png)](dingtalk.png)

要求
--

[](#要求)

1. php &gt;= 7.2
2. Composer

安装
--

[](#安装)

```
composer require zyan/gitlab-hooks -vvv
```

入门
--

[](#入门)

以laravel为例,创建一个新的控制器 路由为 /test/gitlab
将url填到gitlab系统钩子

```
namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Zyan\GitLabHooks;

class Test extends Controller
{
    public function gitlab()
    {
        $gitlab = new GitlabHooks();

        //快速发送给企业微信群机器人
        $res = $gitlab->sendToWeWork('您的企业微信群机器人key');

        //快速发送给钉钉群机器人
        //$res = $gitlab->sendToDingTalk('您的钉钉群机器人access_token');

        //快速发送给飞书群机器人
        //$res = $gitlab->sendToFeiShu('您的飞书群机器人key');

        return response()->json($res->getBody()->getContents());
    }
}
```

进阶
--

[](#进阶)

```
namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Zyan\GitLabHooks;

class Test extends Controller
{
    public function gitlab()
    {
        //定制多个仓库发送不同的群
        $config =[
            //把仓库1跟仓库2发送到群1
            [
                'project' => ['仓库1','仓库2'],
                'key' => '群1_key',
                'is_at_all' => false, //是否@全体成员 可选
                'at_mobiles' => [], //需要@成员的手机号 可选
                'at_userids' => [], //需要@成员的userid 可选
            ],
            //把仓库2跟仓库3发送到群2
            [
                'project' => ['仓库3','仓库4'],
                'key' => '群2_key',
                'is_at_all' => false, //是否@全体成员 可选
                'at_mobiles' => [], //需要@成员的手机号 可选
                'at_userids' => [], //需要@成员的userid 可选
            ],
            //注意: 飞书群机器人不支持@成员
            //...
        ];

        $gitlab = new GitlabHooks($config);

        //发送到企业微信群机器人
        $res = $gitlab->app('wework')->send();

        //发送到钉钉群机器人
        //$res = $gitlab->app('dingtalk')->send();

        //发送到飞书群机器人
        //$res = $gitlab->app('feishu')->send();

        //如果同时发送给多个群,则返顺多个送发结果
        return response()->json($res);
    }
}
```

### 过滤某些事件(白名单)

[](#过滤某些事件白名单)

```
$gitlab = new GitlabHooks($config);

$pushObjectKinds = [
    'push',
    'merge_request',
    'tag_push'
];
$gitlab->setPushObjectKinds($pushObjectKinds);
```

默认为

```
[
    'push',
    'merge_request',
    'tag_push'
];
```

> 注意: 仅对 `send` 方法有效

高级
--

[](#高级)

### 自定义提供者

[](#自定义提供者)

1. 编写更多的群机器人接口,自己写一个类

```
