PHPackages                             conduit-ui/commit - 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. conduit-ui/commit

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

conduit-ui/commit
=================

Commit management for agents

00PHP

Since Dec 11Pushed 5mo agoCompare

[ Source](https://github.com/conduit-ui/commit)[ Packagist](https://packagist.org/packages/conduit-ui/commit)[ RSS](/packages/conduit-ui-commit/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Commit
======

[](#commit)

[![Latest Version on Packagist](https://camo.githubusercontent.com/fc2f201b45aee953b65dfac171703fdafda7e9135014cab2fdd879a716bba625/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f636f6e647569742d75692f636f6d6d69742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/conduit-ui/commit)[![Total Downloads](https://camo.githubusercontent.com/2b61605e32dafbf29cd6d24f148f03db5d706a60ea104c254e0f8c8b1648f6bc/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f636f6e647569742d75692f636f6d6d69742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/conduit-ui/commit)[![Tests](https://camo.githubusercontent.com/b4bfed2f249275c9247b6a74579ace0aba7f7d92ae2ba4a0a9931033521e96a7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f636f6e647569742d75692f636f6d6d69742f74657374732e796d6c3f6272616e63683d6d6173746572266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/conduit-ui/commit/actions)

**Stop parsing commit history manually.** Get structured commit data, generate changelogs automatically, and analyze code evolution with one clean API.

Turn weeks of git archaeology into minutes. Purpose-built for changelog generation, audit trails, and release automation.

The Problem
-----------

[](#the-problem)

You need to:

- Generate changelogs from commit history
- Track code changes for compliance audits
- Analyze contribution patterns across teams
- Build release notes automatically
- Monitor file evolution over time

But you're stuck running shell commands, parsing output, and maintaining fragile scripts.

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

[](#installation)

```
composer require conduit-ui/commit
```

Usage
-----

[](#usage)

### Generate a Changelog (30 seconds)

[](#generate-a-changelog-30-seconds)

```
use ConduitUI\Commits\Facades\Commits;

// Get all commits since last release
$commits = Commits::query()
    ->repository('your-org/your-repo')
    ->since('2025-01-01')
    ->until('2025-02-01')
    ->get();

// Group by type (feat, fix, docs, etc.)
$changelog = $commits->groupBy(function ($commit) {
    preg_match('/^(\w+)(\(.+\))?:/', $commit->message, $matches);
    return $matches[1] ?? 'other';
});
```

### Audit Trail Analysis

[](#audit-trail-analysis)

```
// Track who touched sensitive files
$commits = Commits::query()
    ->repository('your-org/your-repo')
    ->path('config/production.php')
    ->since('2025-01-01')
    ->get();

foreach ($commits as $commit) {
    echo "{$commit->author->name} modified config on {$commit->author->date->format('Y-m-d')}\n";
    echo "SHA: {$commit->shortSha()}\n\n";
}
```

### Contribution Analysis

[](#contribution-analysis)

```
// See what your team shipped this month
$commits = Commits::query()
    ->repository('your-org/your-repo')
    ->author('jane@company.com')
    ->since('2025-12-01')
    ->get();

$stats = [
    'total_commits' => $commits->count(),
    'lines_added' => $commits->sum(fn($c) => $c->stats?->additions ?? 0),
    'lines_deleted' => $commits->sum(fn($c) => $c->stats?->deletions ?? 0),
    'files_changed' => $commits->flatMap(fn($c) => $c->files)->unique('filename')->count(),
];
```

### Compare Branches Before Merging

[](#compare-branches-before-merging)

```
// See what's changed before the merge
$comparison = Commits::compare('your-org/your-repo', 'main', 'feature-branch');

echo "Commits ahead: {$comparison->aheadBy}\n";
echo "Files changed: {$comparison->totalChangedFiles()}\n";
echo "Status: {$comparison->status}\n";

if ($comparison->isDiverged()) {
    echo "Warning: Branch has diverged from main\n";
}
```

### Track Specific File Evolution

[](#track-specific-file-evolution)

```
// See every change to a critical file
$commits = Commits::query()
    ->repository('your-org/your-repo')
    ->path('src/Payment/PaymentProcessor.php')
    ->get();

foreach ($commits as $commit) {
    echo "[{$commit->shortSha()}] {$commit->message}\n";
    echo "Author: {$commit->author->name}\n";
    echo "Date: {$commit->author->date->format('Y-m-d H:i')}\n\n";
}
```

API Reference
-------------

[](#api-reference)

### Query Builder

[](#query-builder)

```
Commits::query()
    ->repository('owner/repo')      // Required
    ->branch('main')                // Filter by branch
    ->path('src/file.php')          // Filter by file path
    ->author('user@email.com')      // Filter by author
    ->committer('bot@github.com')   // Filter by committer
    ->since('2025-01-01')           // Start date
    ->until('2025-12-31')           // End date
    ->take(100)                     // Limit results
    ->page(2)                       // Pagination
    ->get();                        // Execute
```

### DTOs

[](#dtos)

Every response is a clean, typed object:

```
// Commit
$commit->sha                // Full SHA
$commit->shortSha(7)        // Short SHA
$commit->message            // Commit message
$commit->author             // CommitAuthor DTO
$commit->committer          // CommitAuthor DTO
$commit->stats              // CommitStats DTO
$commit->files              // Collection
$commit->htmlUrl            // GitHub URL

// CommitAuthor
$author->name               // Author name
$author->email              // Author email
$author->date               // DateTimeImmutable

// CommitFile
$file->filename             // File path
$file->status               // added|modified|removed|renamed
$file->additions            // Lines added
$file->deletions            // Lines deleted
$file->patch                // Git patch
$file->isModified()         // Status helpers

// CommitComparison
$comparison->aheadBy        // Commits ahead
$comparison->behindBy       // Commits behind
$comparison->status         // ahead|behind|diverged|identical
$comparison->commits        // Collection
$comparison->files          // Collection
$comparison->isDiverged()   // Status helpers
```

Real-World Examples
-------------------

[](#real-world-examples)

### Automated Release Notes

[](#automated-release-notes)

```
$commits = Commits::query()
    ->repository('your-org/your-repo')
    ->since($lastReleaseDate)
    ->get();

$notes = [
    'features' => $commits->filter(fn($c) => str_starts_with($c->message, 'feat:')),
    'fixes' => $commits->filter(fn($c) => str_starts_with($c->message, 'fix:')),
    'breaking' => $commits->filter(fn($c) => str_contains($c->message, 'BREAKING CHANGE')),
];
```

### Compliance Audit Report

[](#compliance-audit-report)

```
$sensitiveFiles = [
    'config/database.php',
    'config/services.php',
    '.env.production',
];

foreach ($sensitiveFiles as $file) {
    $commits = Commits::query()
        ->repository('your-org/your-repo')
        ->path($file)
        ->since('2025-01-01')
        ->get();

    // Generate audit report
}
```

### Team Velocity Dashboard

[](#team-velocity-dashboard)

```
$team = ['dev1@company.com', 'dev2@company.com', 'dev3@company.com'];

$metrics = collect($team)->mapWithKeys(function ($email) {
    $commits = Commits::query()
        ->repository('your-org/your-repo')
        ->author($email)
        ->since('2025-12-01')
        ->get();

    return [$email => [
        'commits' => $commits->count(),
        'additions' => $commits->sum(fn($c) => $c->stats?->additions ?? 0),
        'deletions' => $commits->sum(fn($c) => $c->stats?->deletions ?? 0),
    ]];
});
```

Related Packages
----------------

[](#related-packages)

Part of the [Conduit UI](https://github.com/conduit-ui) ecosystem:

- [conduit-ui/action](https://github.com/conduit-ui/action) - GitHub Actions management
- [conduit-ui/pr](https://github.com/conduit-ui/pr) - Pull request automation
- [conduit-ui/issue](https://github.com/conduit-ui/issue) - Issue tracking
- [conduit-ui/connector](https://github.com/conduit-ui/connector) - GitHub API client

Enterprise Support
------------------

[](#enterprise-support)

Building automation workflows at scale? We provide custom integrations, dedicated support, and SLA guarantees.

Contact: [Conduit UI](https://github.com/conduit-ui)

Testing
-------

[](#testing)

```
composer test
composer analyse
composer format
```

License
-------

[](#license)

MIT License - see [LICENSE](LICENSE.md)

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance49

Moderate activity, may be stable

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity12

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/a6bb27de88a541a632427686306c8fc56366d72582f6a3316d20500efe7971f3?d=identicon)[conduit-ui](/maintainers/conduit-ui)

---

Top Contributors

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

### Embed Badge

![Health badge](/badges/conduit-ui-commit/health.svg)

```
[![Health](https://phpackages.com/badges/conduit-ui-commit/health.svg)](https://phpackages.com/packages/conduit-ui-commit)
```

###  Alternatives

[torchlight/engine

The PHP-based Torchlight code annotation and rendering engine.

655.7k4](/packages/torchlight-engine)

PHPackages © 2026

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