tjvb / gitlab-models-for-laravel
将 GitLab 数据保存到您的 Laravel 项目中
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0
- doctrine/dbal: ^3.6
- laravel/framework: ^9.0 || ^10.0 || ^11.0
- nesbot/carbon: ^2.57
- thecodingmachine/safe: ^2.5
- tjvb/gitlab-webhooks-receiver-for-laravel: ^2.0.0
Requires (Dev)
- infection/infection: ^0.26.10 || ^0.27.0
- orchestra/testbench: ^7.0 || ^8.0 || ^9.0
- phpmd/phpmd: ^2.13
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^9.5 || ^10.0
- slevomat/coding-standard: ^8.14
- squizlabs/php_codesniffer: ^3.7
- symplify/easy-coding-standard: ^12.1
- thecodingmachine/phpstan-safe-rule: ^1.2
README
用途
通过其 webhook 推送不同对象的数据到 GitLab,本包提供将数据存储在数据库中的选项。在底层,它使用 tjvb/gitlab-webhooks-receiver-for-laravel 接收 webhook 数据。存储数据后,它将派发一个事件,可用于更新数据的其他部分或对新输入做出反应。
安装
您可以通过 composer 安装此包
composer require tjvb/gitlab-models-for-laravel
您可以通过以下方式发布和运行 GitLab Models for Laravel 和 GitLab Webhooks 的迁移
php artisan vendor:publish --provider="TJVB\GitLabWebhooks\GitLabWebhooksServiceProvider" --tag="migrations"
php artisan vendor:publish --provider="TJVB\GitlabModelsForLaravel\Providers\GitlabModelsProvider" --tag="migrations"
php artisan migrate
- 设置
GITLAB_WEBHOOK_SECRET
环境变量(最常用的版本是在 .env 文件中设置它)以获得用于您的 webhook 的令牌。有关更多信息,请参阅 https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#secret-token。 - 在 GitLab 中创建 webhook。您可以在 GitLab 中为项目、组或系统创建 webhook。默认 URL 是
<application.tld>/gitlabwebhook
,这可以在配置中从 tjvb/gitlab-webhooks-receiver-for-laravel 进行更改。 - 可选配置包。
- 监听事件
手动注册服务提供者。
如果您禁用了包发现,您需要将 \TJVB\GitlabModelsForLaravel\Providers\GitlabModelsProvider::class,
和 \TJVB\GitLabWebhooks\GitLabWebhooksServiceProvider::class,
添加到 config/app.php
中的 providers 数组。
事件
在保存接收到的数据(创建或更新)后,包派发了多个事件。事件包含新数据。
TJVB\GitlabModelsForLaravel\Events\BuildDataReceived
TJVB\GitlabModelsForLaravel\Events\DeploymentDataReceived
TJVB\GitlabModelsForLaravel\Events\IssueDataReceived
TJVB\GitlabModelsForLaravel\Events\MergeRequestDataReceived
TJVB\GitlabModelsForLaravel\Events\NoteDataReceived
TJVB\GitlabModelsForLaravel\Events\PipelineDataReceived
TJVB\GitlabModelsForLaravel\Events\ProjectDataReceived
TJVB\GitlabModelsForLaravel\Events\TagDataReceived
配置
环境变量
有一些环境变量可以用来更改应存储的数据。
键 | 默认值 | 描述 |
---|---|---|
GITLAB_MODELS_QUEUE_CONNECTION | null | HookStoredListener 的队列连接,如果未提供,将使用项目默认连接。 |
GITLAB_MODELS_QUEUE_QUEUE | null | HookStoredListener 的队列,如果未提供,将使用项目默认队列。 |
GITLAB_MODELS_STORE_BUILDS | true | 我们想要存储构建的数据。 |
GITLAB_MODELS_STORE_DEPLOYMENTS | true | 我们想要存储部署的数据。 |
GITLAB_MODELS_STORE_ISSUES | true | 我们想要存储问题的数据。 |
GITLAB_MODELS_STORE_MERGE_REQUESTS | true | 我们想要存储合并请求的数据。 |
GITLAB_MODELS_STORE_NOTES | true | 我们想要存储笔记(评论)的数据。 |
GITLAB_MODELS_STORE_PIPELINES | true | 我们想要存储管道的数据。 |
GITLAB_MODELS_STORE_PROJECTS | true | 我们想要存储项目的数据。 |
GITLAB_MODELS_STORE_TAGS | true | 我们想要存储来自标签的数据。 |
自定义
您可以使用以下方式发布配置文件:
php artisan vendor:publish --provider="TJVB\GitlabModelsForLaravel\Providers\GitlabModelsProvider" --tag="config"
安全
默认配置验证webhook请求头中的X-Gitlab-Token
。您可以在配置文件中添加多个值或禁用中间件以停止验证。如果您需要对请求进行更多验证(例如IP过滤),您可以在配置中添加更多中间件。
变更日志
我们(尝试)在CHANGELOG中记录所有更改,请参阅以获取更多信息。
贡献
非常欢迎您贡献,有关信息请参阅贡献指南
安全
如果您发现任何安全相关的问题,请通过info@tjvb.nl发送电子邮件,而不是使用问题跟踪器。
鸣谢
感谢
- GitLab为我们提供了优秀的产品,没有这个产品,这个包就不必要了。
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。