tjvb/gitlab-models-for-laravel

将 GitLab 数据保存到您的 Laravel 项目中

v0.5.0 2024-03-13 09:36 UTC

This package is auto-updated.

Last update: 2024-09-13 09:39:01 UTC


README

Latest Stable Version Pipeline status Coverage report Tested on PHP 8.1 to 8.3 Tested on Laravel 9 to 10 Latest Unstable Version

PHP Version Require Laravel Version Require PHPMD PHPStan ECS

License

用途

通过其 webhook 推送不同对象的数据到 GitLab,本包提供将数据存储在数据库中的选项。在底层,它使用 tjvb/gitlab-webhooks-receiver-for-laravel 接收 webhook 数据。存储数据后,它将派发一个事件,可用于更新数据的其他部分或对新输入做出反应。

安装

  1. 您可以通过 composer 安装此包

    composer require tjvb/gitlab-models-for-laravel
    
  2. 您可以通过以下方式发布和运行 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
  1. 设置 GITLAB_WEBHOOK_SECRET 环境变量(最常用的版本是在 .env 文件中设置它)以获得用于您的 webhook 的令牌。有关更多信息,请参阅 https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#secret-token
  2. 在 GitLab 中创建 webhook。您可以在 GitLab 中为项目、组或系统创建 webhook。默认 URL 是 <application.tld>/gitlabwebhook,这可以在配置中从 tjvb/gitlab-webhooks-receiver-for-laravel 进行更改。
  3. 可选配置包。
  4. 监听事件

手动注册服务提供者。

如果您禁用了包发现,您需要将 \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_CONNECTIONnullHookStoredListener 的队列连接,如果未提供,将使用项目默认连接。
GITLAB_MODELS_QUEUE_QUEUEnullHookStoredListener 的队列,如果未提供,将使用项目默认队列。
GITLAB_MODELS_STORE_BUILDStrue我们想要存储构建的数据。
GITLAB_MODELS_STORE_DEPLOYMENTStrue我们想要存储部署的数据。
GITLAB_MODELS_STORE_ISSUEStrue我们想要存储问题的数据。
GITLAB_MODELS_STORE_MERGE_REQUESTStrue我们想要存储合并请求的数据。
GITLAB_MODELS_STORE_NOTEStrue我们想要存储笔记(评论)的数据。
GITLAB_MODELS_STORE_PIPELINEStrue我们想要存储管道的数据。
GITLAB_MODELS_STORE_PROJECTStrue我们想要存储项目的数据。
GITLAB_MODELS_STORE_TAGStrue我们想要存储来自标签的数据。

自定义

您可以使用以下方式发布配置文件:

php artisan vendor:publish --provider="TJVB\GitlabModelsForLaravel\Providers\GitlabModelsProvider" --tag="config"

安全

默认配置验证webhook请求头中的X-Gitlab-Token。您可以在配置文件中添加多个值或禁用中间件以停止验证。如果您需要对请求进行更多验证(例如IP过滤),您可以在配置中添加更多中间件。

变更日志

我们(尝试)在CHANGELOG中记录所有更改,请参阅以获取更多信息。

贡献

非常欢迎您贡献,有关信息请参阅贡献指南

安全

如果您发现任何安全相关的问题,请通过info@tjvb.nl发送电子邮件,而不是使用问题跟踪器。

鸣谢

感谢

  • GitLab为我们提供了优秀的产品,没有这个产品,这个包就不必要了。

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件