承接 engaging-io/issue-reporter 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

engaging-io/issue-reporter

Composer 安装命令:

composer require engaging-io/issue-reporter

包简介

A Laravel package for reporting GitHub issues using AI.

README 文档

README

Latest Version on Packagist Total Downloads License: MIT

A Laravel package for reporting exceptions to a designated endpoint with additional context, which can be used for automatic issue creation with AI assistance.

Features

  • Report any exception with comprehensive context data
  • Special handling for HTTP request exceptions (with additional request data)
  • Integration with Slack notifications
  • Connection to your GitHub repository for automated issue tracking
  • Easy to configure and use in any Laravel application

Requirements

  • PHP 7.3+
  • Laravel 8.0+ / 9.0+ / 10.0+ / 11.0+ / 12.0+

Installation

You can install the package via Composer:

composer require engaging-io/issue-reporter

The package will automatically register its service provider if you're using Laravel 5.5+.

Configuration

Publish the configuration file:

php artisan vendor:publish --provider="EngagingIo\IssueReporter\IssueReporterServiceProvider"

This will create a config/issue-reporter.php file where you can modify the package settings.

Environment Variables

Add these variables to your .env file:

ISSUE_REPORTER_ENABLED=false  # Set to true in production environments only
ISSUE_REPORTER_GITHUB_REFERENCE=main
ISSUE_REPORTER_GITHUB_REPOSITORY=your-repository
ISSUE_REPORTER_SLACK_WEBHOOK=https://hooks.slack.com/services/your/slack/webhook

Note: Always keep ISSUE_REPORTER_ENABLED set to false for local development environments to prevent unnecessary reporting of development exceptions.

Usage

Basic Exception Reporting

use EngagingIo\IssueReporter\Facades\IssueReporter;

try {
    // Your code that might throw an exception
} catch (\Throwable $e) {
    IssueReporter::report($e);

    // Then handle the exception as you normally would
}

In Exception Handlers

You can easily use the package in your Laravel exception handler:

// app/Exceptions/Handler.php

namespace App\Exceptions;

use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use EngagingIo\IssueReporter\Facades\IssueReporter;
use Throwable;

class Handler extends ExceptionHandler
{
    // ...

    public function report(Throwable $exception)
    {
        // You can add conditions to determine which exceptions to report
        if ($this->shouldReportToIssueReporter($exception)) {
            IssueReporter::report($exception);
        }

        parent::report($exception);
    }

    private function shouldReportToIssueReporter(Throwable $exception)
    {
        // Implement your logic to determine which exceptions to report
        return !$this->inExcludeList($exception) && app()->environment('production');
    }

    // ...
}

Using bootstrap/app.php (Laravel 10+)

For Laravel 10 and above, you can also integrate the issue reporter in your bootstrap/app.php file:

// bootstrap/app.php

use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use EngagingIo\IssueReporter\Facades\IssueReporter;
// ...

return Application::configure(basePath: dirname(__DIR__))
    // ...
    ->withExceptions(function (Exceptions $exceptions) {
        // This section captures all types of exceptions.
        $exceptions->reportable(fn (\Throwable $e) => IssueReporter::report($e));
    })->create();

HTTP RequestException Handling

The package automatically detects if the exception is an HTTP RequestException and includes relevant request data in the report:

  • Request headers
  • Request body
  • Response data (if available)

This additional information helps with debugging API-related issues.

Security

The package sends exception data to a designated endpoint. Make sure:

  1. Your Slack webhook URL is kept secure
  2. Your API endpoint is secured with proper authentication
  3. Sensitive data in error reports is properly sanitized

Configuration Options

Option Environment Variable Description
enabled ISSUE_REPORTER_ENABLED Whether the issue reporter is enabled (true/false). Should be set to false for local development
reference ISSUE_REPORTER_GITHUB_REFERENCE The default branch or reference in your repository (e.g., 'main', 'master')
repository ISSUE_REPORTER_GITHUB_REPOSITORY Your repository name in 'repo' format
slack_webhook_url ISSUE_REPORTER_SLACK_WEBHOOK Your Slack webhook URL for notifications

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Credits

License

The MIT License (MIT). Please see License File for more information.

engaging-io/issue-reporter 适用场景与选型建议

engaging-io/issue-reporter 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 195 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 06 月 10 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「github」 「laravel」 「issue」 「reporter」 「ai」 「engaging-io」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 engaging-io/issue-reporter 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 engaging-io/issue-reporter 我们能提供哪些服务?
定制开发 / 二次开发

基于 engaging-io/issue-reporter 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 195
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 18
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-06-10