eminos/statamic-changelog

Display recent git commits as a changelog in the Statamic control panel.

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

Type:statamic-addon

pkg:composer/eminos/statamic-changelog

v1.0.0 2026-02-12 15:32 UTC

This package is auto-updated.

Last update: 2026-02-12 16:11:12 UTC


README

Display recent git commits as a changelog in the Statamic control panel.

Features

  • Automatic changelog — reads directly from your project's git history, no manual entries needed
  • Unread badge — shows a count of new commits since you last checked
  • Per-user tracking — each CP user has their own "last seen" state
  • Configurable filtering — limit commits, exclude merges, filter by path, author, or message pattern
  • Statamic Git integration aware — one toggle to hide auto-commits from Statamic's Git addon

Screenshots

Dark — badge Dark — popover Light — popover
Dark badge Dark popover Light popover

Requirements

  • PHP 8.3+
  • Statamic 6.0+
  • Git available on the server

Installation

composer require eminos/statamic-changelog

Configuration

Publish the config file:

php artisan vendor:publish --tag=statamic-changelog-config

This creates config/statamic-changelog.php with the following options:

General

Option Default Description
max_commits 50 Maximum number of recent commits to display
exclude_merge_commits false Filter out merge commits
path_filters [] Limit to commits touching specific paths (e.g. ['app/', 'config/'])
git_binary null Custom path to the git binary (null uses system default)

Author Filters

Filter commits by author name. Supports partial matching (case-insensitive).

Option Default Description
authors.include [] Only show commits from these authors. Leave empty to show all.
authors.exclude [] Hide commits from these authors.

Message Filters

Filter commits by their commit message using regex patterns.

Option Default Description
messages.include [] Only show commits matching at least one pattern. Leave empty for all.
messages.exclude [] Hide commits matching any of these patterns.

Statamic Git Integration

Option Default Description
exclude_statamic_commits false Automatically exclude commits made by Statamic's built-in Git integration
statamic_git_user null Override the git user name used to identify Statamic commits. When null, auto-detects from statamic.git.user.name config (defaults to Spock).

When exclude_statamic_commits is enabled, the addon will:

  1. Exclude commits authored by the Statamic git user (default: Spock)
  2. Exclude commits with the message Content saved

Examples

Hide Statamic auto-commits (simplest):

'exclude_statamic_commits' => true,

Only show conventional commits:

'messages' => [
    'include' => ['/^(feat|fix|refactor|perf|docs|test|chore)(\(.+\))?:/'],
    'exclude' => [],
],

Only show commits from specific developers:

'authors' => [
    'include' => ['Emin', 'Jane'],
    'exclude' => [],
],

Hide bot commits and dependency updates:

'authors' => [
    'include' => [],
    'exclude' => ['dependabot', 'renovate'],
],
'messages' => [
    'include' => [],
    'exclude' => ['/^chore\(deps\):/'],
],

Only show commits affecting app code:

'path_filters' => ['app/', 'config/', 'routes/'],
'exclude_merge_commits' => true,

Under the hood, path filters are passed directly to git log -- <paths>, so filtering is handled natively by git and adds no overhead.

Usage

Once installed, a changelog icon appears in the CP top navigation. Click it to see recent commits with author, message, and relative timestamp. New commits since your last visit are highlighted with an unread badge.

The changelog automatically marks commits as seen when you open the dropdown.

How It Works

The addon runs git log on your project root to fetch recent commits. Per-user read state is tracked by timestamp and stored in storage/statamic/addons/changelog/seen.json — each user's last-seen timestamp is compared against commit dates to determine the unseen count. This approach survives git rebases and history rewrites.

Roadmap

Some ideas for future versions:

  • Commit detail panel — click a commit to see the full diff or changed files
  • Slack/email notifications — get notified about new deployments outside the CP
  • Release grouping — group commits by tag/release instead of a flat list
  • Commit avatars — show author avatars from Gravatar or GitHub
  • Webhook trigger — fire a webhook when new commits are detected
  • Custom commit parsers — support Conventional Commits with icons per type (feat, fix, etc.)

Have an idea? Open an issue — contributions are welcome!

Other Statamic Addons

Check out more from eminos:

Addon Description
Tabs Add a Tab fieldtype — organize fields into tabs anywhere in your blueprints
Consent Manager GDPR-compliant cookie consent banner with full control over tracking scripts and user privacy
Iconify Browse and pick from 200,000+ Iconify icons directly in the control panel
Field Item Relationship A fieldtype that lets you create relationships between individual field items
Cloudflare Cache Automatically purge your Cloudflare cache when content changes
Group Inline Group fieldtype — group fields together without affecting scope, with visibility conditions and optional header/toggle
Set Header Toggle Add mini toggles to Replicator and Bard set headers for quick on/off controls
Element Picker Pick any element on your site and generate a unique CSS selector for it

Built by Emin at kiwikiwi for the Statamic community ❤️

License

MIT