PHPackages                             spiriitlabs/commit-history-bundle - 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. spiriitlabs/commit-history-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

spiriitlabs/commit-history-bundle
=================================

Symfony bundle to display git commit history in a vertical timeline

V1.1.0(3mo ago)2544↓41.7%[2 PRs](https://github.com/SpiriitLabs/commit-history-bundle/pulls)MITPHPPHP &gt;=8.2CI passing

Since Jan 5Pushed 2mo agoCompare

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

READMEChangelog (3)Dependencies (12)Versions (6)Used By (0)

SpiriitLabs Commit History Bundle
=================================

[](#spiriitlabs-commit-history-bundle)

A Symfony bundle that fetches commit history from GitLab or GitHub repositories and displays them in a beautiful vertical timeline UI — similar to the Symfony releases page.

[![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE)[![PHP Version](https://camo.githubusercontent.com/744f8821cc27dec8b0013ade48179731a44eadf4f943e0b1d9ffcb93f80177de/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d382e322532422d626c75652e737667)](https://php.net)[![Symfony](https://camo.githubusercontent.com/a9594a8254c2e9302ef967f6ce22099ecf57a77058b0280ec1a274c56f100510/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73796d666f6e792d362e34253242253743372e302532422d626c75652e737667)](https://symfony.com)[![Latest Stable Version](https://camo.githubusercontent.com/0b927a2ab198da0bf4891a09efdbe89f071de26c42e1b78dfbbf77067418740b/68747470733a2f2f706f7365722e707567782e6f72672f737069726969746c6162732f636f6d6d69742d686973746f72792d62756e646c652f762f737461626c652e737667)](https://packagist.org/packages/spiriitlabs/commit-history-bundle)

Features
--------

[](#features)

- **Multi-Provider Support**: Fetch commits from GitLab or GitHub repositories
- **REST API Integration**: Uses official APIs with pagination to fetch all commits
- **Self-Hosted Support**: Works with GitLab self-hosted instances and GitHub Enterprise
- **Year Filtering**: Filter commits by year with a dropdown, fetched via API with per-year caching
- **Dependency Tracking**: Automatically detect and display dependency changes (composer.json, package.json, etc.)
- **Vertical Timeline UI**: Beautiful, responsive timeline inspired by Symfony releases
- **Caching**: 1-hour cache by default to reduce API calls (cached per year)
- **Private Repository Support**: Supports authentication tokens for private repositories
- **Standalone Page**: Ready-to-use page with embedded CSS
- **Embeddable Fragment**: Include the timeline in your own layouts

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

[](#architecture)

This project is split into two packages:

- **[spiriitlabs/commit-history](https://github.com/SpiriitLabs/commit-history)** - A standalone, framework-agnostic PHP library containing all the core logic (providers, DTOs, services, diff parsers)
- **spiriitlabs/commit-history-bundle** (this package) - A Symfony bundle providing controllers, commands, Twig templates, and adapters to integrate the library with Symfony

This separation allows you to use the core library in any PHP project (Laravel, plain PHP, etc.) while Symfony users get a ready-to-use bundle with full integration.

### Bundle Components

[](#bundle-components)

The bundle provides Symfony-specific integrations:

ComponentDescription`SymfonyCacheAdapter`Bridges Symfony's cache to the library's `CacheInterface``SymfonyHttpClientAdapter`Bridges Symfony's HTTP client to the library's `HttpClientInterface``TimelineController`Renders the timeline page`DependenciesChangesController`JSON API for dependency details`RefreshCacheCommand`CLI command to refresh cache`ClearCacheCommand`CLI command to clear cacheRequirements
------------

[](#requirements)

- PHP 8.2 or higher
- Symfony 6.4+ or 7.0+

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

[](#installation)

Install the bundle using Composer:

```
composer require spiriitlabs/commit-history-bundle
```

If you're using Symfony Flex, the bundle will be automatically registered. Otherwise, add it to your `config/bundles.php`:

```
