PHPackages                             yxx/weekly-report - 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. yxx/weekly-report

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

yxx/weekly-report
=================

Generate weekly reports from git commits and GitHub issues, with email preview and confirmation workflow.

v1.0.0(4mo ago)01MITPHPPHP ^8.1

Since Feb 14Pushed 4mo agoCompare

[ Source](https://github.com/youyingxiang/weekly-report)[ Packagist](https://packagist.org/packages/yxx/weekly-report)[ RSS](/packages/yxx-weekly-report/feed)WikiDiscussions main Synced today

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

yxx/weekly-report
=================

[](#yxxweekly-report)

[中文文档](README-ZH.md)

A Laravel package that generates weekly reports from git commits and GitHub issues, with an email preview and confirmation workflow.

Installation
------------

[](#installation)

```
composer require yxx/weekly-report
```

Setup
-----

[](#setup)

Add to your `.env`:

```
WEEKLY_REPORT_PREVIEW_TO=you@example.com
WEEKLY_REPORT_RECIPIENTS=boss@example.com,team@example.com
```

That's it. Everything else is auto-detected:

ItemAuto-detectionGitHub token`gh auth token` (GitHub CLI)Repo owner/name`git remote get-url origin`Repo pathDefaults to current projectMail fromLaravel's `MAIL_FROM_*` config### Multi-repo setup (optional)

[](#multi-repo-setup-optional)

Edit `config/weekly-report.php`:

```
'repositories' => [
    ['path' => '/path/to/repo-a'],
    ['path' => '/path/to/repo-b'],
],
```

Usage
-----

[](#usage)

```
# Generate and send preview email
php artisan report:weekly

# Dry run - show data without sending emails
php artisan report:weekly --dry-run

# Generate for a previous week
php artisan report:weekly --weeks-ago=1
```

### How it works

[](#how-it-works)

1. Scans `git log` for the current week's commits
2. Extracts `#issue` references from commit messages
3. Fetches issue titles via GitHub API
4. Sends a **preview email** to you (with Confirm / Cancel signed URL buttons)
5. Click **Confirm** → final report sent to all recipients
6. Click **Cancel** → report discarded
7. Links expire after 24 hours

Customization
-------------

[](#customization)

```
php artisan vendor:publish --tag=weekly-report-views
```

Architecture
------------

[](#architecture)

```
src/
├── Commands/WeeklyReportCommand.php    # report:weekly command
├── Http/Controllers/                   # Signed URL confirm/cancel
├── Mail/                               # Preview and final mailables
├── Services/
│   ├── GitLogParser.php                # Git log parsing + issue extraction
│   ├── GitHubClient.php                # GitHub API client (auto token via gh CLI)
│   └── ReportGenerator.php             # Orchestrator
└── WeeklyReportServiceProvider.php     # Auto-registered provider

```

License
-------

[](#license)

MIT

###  Health Score

33

—

LowBetter than 72% of packages

Maintenance74

Regular maintenance activity

Popularity1

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

139d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a556fe7375e1f3ca1a30482386f782dbd673a76a0317a83c354294db3d5aa6f3?d=identicon)[yxx](/maintainers/yxx)

---

Top Contributors

[![youyingxiang](https://avatars.githubusercontent.com/u/28653285?v=4)](https://github.com/youyingxiang "youyingxiang (3 commits)")

### Embed Badge

![Health badge](/badges/yxx-weekly-report/health.svg)

```
[![Health](https://phpackages.com/badges/yxx-weekly-report/health.svg)](https://phpackages.com/packages/yxx-weekly-report)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M346](/packages/psalm-plugin-laravel)[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

77022.3M151](/packages/laravel-mcp)[laravel/boost

Laravel Boost accelerates AI-assisted development by providing the essential context and structure that AI needs to generate high-quality, Laravel-specific code.

3.5k21.5M594](/packages/laravel-boost)[spatie/laravel-export

Create a static site bundle from a Laravel app

674146.0k6](/packages/spatie-laravel-export)[laravel/surveyor

Static analysis tool for Laravel applications.

86121.4k13](/packages/laravel-surveyor)[flarum/core

Delightfully simple forum software.

201.4M2.3k](/packages/flarum-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
