PHPackages                             julienbohy/git-profiler-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. julienbohy/git-profiler-bundle

ActiveSymfony-bundle

julienbohy/git-profiler-bundle
==============================

Displays Git information (branch, commit and working state) in the Symfony Web Profiler.

0.2.1(2w ago)07↓66.7%[1 PRs](https://github.com/julienbohy/git-profiler-bundle/pulls)MITPHPPHP &gt;=8.3CI passing

Since Jul 17Pushed 2w agoCompare

[ Source](https://github.com/julienbohy/git-profiler-bundle)[ Packagist](https://packagist.org/packages/julienbohy/git-profiler-bundle)[ Docs](https://github.com/julienbohy/git-profiler-bundle)[ RSS](/packages/julienbohy-git-profiler-bundle/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (4)Dependencies (18)Versions (7)Used By (0)

GitProfilerBundle
=================

[](#gitprofilerbundle)

[![Latest Version](https://camo.githubusercontent.com/c62539096da4a208646b23015f0dbd91938c29dee3d8ab7d982acf4801471bc8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a756c69656e626f68792f6769742d70726f66696c65722d62756e646c65)](https://packagist.org/packages/julienbohy/git-profiler-bundle)[![Total Downloads](https://camo.githubusercontent.com/7ebc0b78d0e1973ed64268e67fcf65ac654c3e90cd242a3ceb2ed494cb85c969/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6a756c69656e626f68792f6769742d70726f66696c65722d62756e646c65)](https://packagist.org/packages/julienbohy/git-profiler-bundle)[![CI](https://github.com/julienbohy/git-profiler-bundle/actions/workflows/ci.yml/badge.svg)](https://github.com/julienbohy/git-profiler-bundle/actions/workflows/ci.yml)[![License](https://camo.githubusercontent.com/71ffc232ae89bafc9b8686b9e83c29512ab2d2c9fa30b2b0f52352c76c6c2a72/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6a756c69656e626f68792f6769742d70726f66696c65722d62756e646c65)](LICENSE)[![PHP](https://camo.githubusercontent.com/38027453aeb7eb818641c9de8f82b7624c3558d92634f1946edc715c3ddf8956/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e332532422d3737374242343f6c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/38027453aeb7eb818641c9de8f82b7624c3558d92634f1946edc715c3ddf8956/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e332532422d3737374242343f6c6f676f3d706870266c6f676f436f6c6f723d7768697465)[![Symfony](https://camo.githubusercontent.com/091f368527b8d5f289f969cd44ac747f442f80267cb93dc3999ed7fa9d6122d3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53796d666f6e792d362e3425323025374325323037253230253743253230382d3030303030303f6c6f676f3d73796d666f6e79266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/091f368527b8d5f289f969cd44ac747f442f80267cb93dc3999ed7fa9d6122d3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53796d666f6e792d362e3425323025374325323037253230253743253230382d3030303030303f6c6f676f3d73796d666f6e79266c6f676f436f6c6f723d7768697465)

Symfony bundle that exposes the Git state of the current repository — **branch**, **short commit**, **modified files** and **unpushed commits** — in a dedicated **Web Profiler** panel.

Features
--------

[](#features)

- Current **branch** and **short commit** of `HEAD`, in the profiler toolbar and panel.
- Live toolbar counters for **locally modified files** (✎) and **unpushed commits** (↑).
- **Commit graph** — the recent commits of `HEAD` and its upstream drawn as a mini graph (lanes, merge and divergence curves), with `HEAD`/upstream badges; when an upstream is configured, hollow dots mark commits not pushed yet.
- Detailed **working-tree changes** — staged, unstaged and untracked — with their status (added, modified, deleted, renamed…).
- **Commits ahead of the upstream** (unpushed) with hash, message, author, date and the files they touch.
- **Zero configuration** — active as soon as the Web Profiler is, in `dev`/`test` only.
- **Graceful degradation** — no exception when the directory is not a Git repository or `git` is unavailable.

Screenshots
-----------

[](#screenshots)

The compact **toolbar** segment — branch and counters at a glance:

[![GitProfilerBundle segment in the Symfony debug toolbar](docs/assets/git-toolbar.png)](docs/assets/git-toolbar.png)

The full **profiler panel** — working-tree changes and unpushed commits in detail:

[![GitProfilerBundle Git panel in the Symfony Web Profiler](docs/assets/git-panel.png)](docs/assets/git-panel.png)

The **commit graph** — `HEAD` and its upstream at a glance, merges and divergence included:

[![Commit graph in the Git profiler panel](docs/assets/git-graph.png)](docs/assets/git-graph.png)

Requirements
------------

[](#requirements)

- PHP **8.3+**
- Symfony **6.4**, **7.x** or **8.x**
- The `git` binary available in the runtime environment
- Git reading relies on [`gitonomy/gitlib`](https://github.com/gitonomy/gitlib)

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

[](#installation)

```
composer require --dev julienbohy/git-profiler-bundle
```

### Registering the bundle

[](#registering-the-bundle)

The bundle is not shipped with a Symfony Flex recipe, so register it manually in `config/bundles.php`:

```
return [
    // ...
    JulienBohy\GitProfilerBundle\GitProfilerBundle::class => ['dev' => true, 'test' => true],
];
```

The bundle is only useful in a development environment (Web Profiler): `dev` (and `test`) are enough.

Usage
-----

[](#usage)

No configuration required. As soon as the profiler is active, a **Git** panel appears in the debug bar and in the profiler.

In the (compact) **toolbar** you get the current **branch** followed by **two counters**: the number of **locally modified files** (✎) and the number of **unpushed commits** (↑).

The **detailed panel** additionally shows:

- the **short commit** of `HEAD`;
- the **commit graph** — the last 30 commits of `HEAD` and its upstream, drawn with their lanes and merge/divergence curves; when an upstream is configured, hollow dots are commits not pushed yet, and badges mark `HEAD` and the upstream tip;
- the **list of uncommitted working-tree files** (staged, unstaged, untracked) with their status (added, modified, deleted, renamed…);
- the **list of local commits ahead of the remote** (unpushed) — short hash, message, author, date — **together with the list of files they touch**.

Unpushed-commit detection:

- it is based on the **upstream** branch (`@{u}`, e.g. `origin/main`); with no upstream configured, the section says so and the counters show `–`;
- the list of unpushed files is the **net diff** `@{u}..HEAD` (a file created then deleted within the range therefore does not appear).

If the directory is not a Git repository (or if `git` is unavailable), the panel states it cleanly — no exception is thrown.

Tests
-----

[](#tests)

```
composer install
vendor/bin/phpunit
```

License
-------

[](#license)

MIT © 2026 Julien Bohy

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance96

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 90% 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

Every ~9 days

Total

4

Last Release

18d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5576245?v=4)[Julien Bohy](/maintainers/JulienBohy)[@julienbohy](https://github.com/julienbohy)

---

Top Contributors

[![julienbohy](https://avatars.githubusercontent.com/u/5576245?v=4)](https://github.com/julienbohy "julienbohy (9 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")

---

Tags

symfonybundleprofilergitdata collector

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/julienbohy-git-profiler-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/julienbohy-git-profiler-bundle/health.svg)](https://phpackages.com/packages/julienbohy-git-profiler-bundle)
```

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k18.7M445](/packages/easycorp-easyadmin-bundle)

PHPackages © 2026

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