PHPackages                             pisac/pisac - 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. pisac/pisac

ActiveLibrary

pisac/pisac
===========

...

0.0.9(5y ago)9586MITPHP

Since Feb 26Pushed 5y ago1 watchersCompare

[ Source](https://github.com/pisac/pisac)[ Packagist](https://packagist.org/packages/pisac/pisac)[ RSS](/packages/pisac-pisac/feed)WikiDiscussions master Synced 4d ago

READMEChangelog (9)Dependencies (6)Versions (10)Used By (0)

Pisac - Keep git commit histories clean
---------------------------------------

[](#pisac---keep-git-commit-histories-clean)

Commits are one of the critical parts of a Git repository, and more so, the commit message is a lifelog for the repository. As the project evolves (new features getting added, bugs being fixed, architecture being refactored), commit letters can see what was changed and how. So these messages must reflect the underlying change in a short, precise manner.

#### Git commits history is straightforward to mess up. Here's how you can fix it!

[](#git-commits-history-is-straightforward-to-mess-up-heres-how-you-can-fix-it)

**Pisac** is added to your CI, and when they commit description failed validation, an error occurs. Usually, everyone in the project gets an error message, so you can stop your friends from writing the ugly story. 😈

Configuration
-------------

[](#configuration)

To configure the validation rules, you need to create a new file called `pisac.json` in the project root. For example:

```
{
  "pattern": "(Added|Changed|Deprecated|Removed|Fixed|Security) .*",
  "message": "The commit must start with words (Added|Changed|Deprecated|Removed|Fixed|Security)",
  "limit": 1,
  "skip": [
    "Fix styling",
    "Initial commit"
  ]
}
```

#### Pattern

[](#pattern)

A regular expression that will be used to check messages. Here are some popular suggestions:

- **Update readme** - `(Create|Update|Delete) .*`
- **Changed readme** - `(Added|Changed|Deprecated|Removed|Fixed|Security) .*`
- **refs #123 Changed readme** - `refs #[0-9]+ (Added|Changed|Deprecated|Removed|Fixed|Security) .*`
- **refs #123 \[Info\] Changed readme** - `refs #[0-9]+ \[.*\] (Added|Changed|Deprecated|Removed|Fixed|Security) .*`

#### Message

[](#message)

The message will be displayed if the message does not match the template. It is good practice to show an example of how to describe.

#### Limit

[](#limit)

Indicates how many messages in history Pisac should check. Don't use too many.

#### Skip

[](#skip)

A set of words or their combinations, if present, you need to skip the check. Example:

```
"skip": [
  "Initial commit",
  "Build",
  "Skip"
]
```

GitHub Actions
--------------

[](#github-actions)

You can use it as a GitHub Actions by creating a file `.github/workflows/pisac.yml` with the following content:

```
name: Pisac

on: [ push ]

jobs:
  pisac-cheker:
    runs-on: ubuntu-20.04
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
        with:
          ref: ${{ github.head_ref }}
      - name: Setup PHP 🔧
        uses: shivammathur/setup-php@v2
        with:
          php-version: 8.0
          extensions: mbstring
          coverage: none
          tools: composer:v2
      - name: Install 👀
        run: composer global require "pisac/pisac:0.*" -q -n
      - name: Execute 🔧
        run: pisac check
```

Composer
--------

[](#composer)

> **Not recommended.** Sometimes your project can conflict with one or more of Pisac dependencies.

Alternatively, you can also install Pisac as part of your development dependencies. You will likely want to use the require-dev section to exclude Pisac in your production environment. You can either modify your `composer.json` manually or run the following command to include the latest tagged release:

```
$ composer require --dev pisac/pisac
```

And then run as executable:

```
$ php vendor/bin/pisac check
```

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Maintainers
-----------

[](#maintainers)

Pisac is developed and maintained by [Alexandr Chernyaev](https://github.com/tabuna).

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 81.5% 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 ~0 days

Total

9

Last Release

1902d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3c47797b11041f37c2eec74b09bc6619c8997467d690797ebad0e6ab7cb232b7?d=identicon)[tabuna](/maintainers/tabuna)

---

Top Contributors

[![tabuna](https://avatars.githubusercontent.com/u/5102591?v=4)](https://github.com/tabuna "tabuna (44 commits)")[![Mamau](https://avatars.githubusercontent.com/u/10494695?v=4)](https://github.com/Mamau "Mamau (10 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPsalm

Type Coverage Yes

### Embed Badge

![Health badge](/badges/pisac-pisac/health.svg)

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

###  Alternatives

[spatie/laravel-backup

A Laravel package to backup your application

6.0k21.8M191](/packages/spatie-laravel-backup)[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k12.1M99](/packages/laravel-pulse)[laravel-zero/framework

The Laravel Zero Framework.

3371.4M369](/packages/laravel-zero-framework)[studio/laravel-totem

A Laravel package to manage your cron jobs through a beautiful dashboard

1.8k1.1M](/packages/studio-laravel-totem)[tightenco/jigsaw

Simple static sites with Laravel's Blade.

2.2k438.5k29](/packages/tightenco-jigsaw)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9682.1M97](/packages/roots-acorn)

PHPackages © 2026

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