wyox / laravel-gitlab-reporter
当抛出异常时创建 Gitlab 问题
Requires
- php: >=8.0
- guzzlehttp/guzzle: ^7.2
- http-interop/http-factory-guzzle: ^1.0
- illuminate/support: ^9|^10|^11
- m4tthumphrey/php-gitlab-api: ^11.4
README
为您的服务器上发生的异常创建问题。
如果发生异常,此包将在您的 Gitlab 项目中创建问题,并将一些调试信息发布到问题中,以帮助您解决问题。
此包将联系您的 Gitlab 服务器,并根据问题描述中生成的标识符散列检查是否之前已发生异常。不要删除描述中的此行,因为它将是此包验证异常是否已发生之前的唯一方式。
需要 Gitlab 版本 9 或更高。
安装
使用 composer 安装
composer require wyox/laravel-gitlab-reporter
要使用 Gitlab 报告器,您需要使用 Laravel 11 执行以下操作:
打开您的 bootstrap/app.php
文件,并在注释到 withExceptions 闭包之间添加以下代码:
->withExceptions(function (Exceptions $exceptions) { // ADD below $exceptions->report(function(\Throwable $e){ if (app()->bound('gitlab.report')) { app('gitlab.report')->report($e); } }); // ADD Above })
对于 Laravel 9,10,您应该在您的 Laravel 项目中的 app/Exceptions/Handler.php
文件中进行以下更改:
public function register() { $this->reportable(function (Throwable $e) { if (app()->bound('gitlab.report') && $this->shouldReport($e)) { app('gitlab.report')->report($e); } }); }
现在设置您的 .env 文件以包含以下变量:
GITLAB_REPORT_URL=https://gitlab.com/
GITLAB_REPORT_TOKEN=
GITLAB_REPORT_PROJECT_ID=
GITLAB_REPORT_LABELS=
GITLAB_USE_CACHE=true
我建议为报告器创建一个单独的用户账户,并只允许它访问问题和允许创建问题。这样,您可以确保如果您的服务器或代码遭到破坏,您不会完全访问服务器。
要获取访问令牌,请转到您的 gitlab 服务器上的 profile/personal_access_tokens
并生成用于 API 的令牌。
对于您的项目 ID,您需要转到项目 -> 设置 -> 通用 -> 通用项目设置。应该有一个带有项目 ID 的框。
为问题添加标签
为新建问题添加标签非常简单,只需将逗号分隔的列表添加到 GITLAB_REPORT_LABELS=
GITLAB_REPORT_LABELS=bug,critical
如果标签在 Gitlab 中不存在,它们将被自动创建。
忽略某些异常
请确保发布配置,因为设置异常无法使用 .env 文件进行。
php artisan vendor:publish --tag=gitlab-report
将在那里创建一个名为 gitlab-report.php 的文件,您可以在那里更改设置。已默认添加了一些异常。
隐藏报告中的字段
在某些情况下,您可能不希望在报告中包含客户的密码。您可以通过在配置文件中扩展或替换值来包括更多不应出现在报告中的字段。所有这些字段都将被替换为 [redacted]。填写为 null 的字段也将被替换为 [redacted]