Skip to content

PHP Commitizen - A CLI tool used to create commits according to Conventional Commits specification

License

Notifications You must be signed in to change notification settings

conventional-commits/php-commitizen

Folders and files

NameName
Last commit message
Last commit date
Jul 15, 2020
Jul 15, 2020
Feb 21, 2018
Feb 21, 2018
Feb 21, 2018
Feb 21, 2018
Feb 21, 2018
Sep 7, 2022
Sep 7, 2022
Feb 21, 2018
Jul 15, 2020

Repository files navigation

PHP Commitizen

Scrutinizer Code Quality Code Coverage Build Status

Commitizen is a tool built for create good commits for a clean and readable git history.

This tool follow the Conventional Commit specs and some best practices described in this slides

Installation and usage

You can install it easily with composer

$ php composer.phar require --dev damianopetrungaro/php-commitizen

Usage is simple too

$ php vendor/bin/php-commitizen commit

You can also

  • pass a flag for add all the file to the stage: -a
  • specify a custom configuration file adding the file path as argument

You can ask for more information using: $ php vendor/bin/php-commitizen commit --help

Configuration file

The configuration file must return an array (or partial override)

<?php

return [
    'type' => [
        'lengthMin' => 1, // Min length of the type
        'lengthMax' => 5, // Max length of the type
        'acceptExtra' => false, // Allow adding types not listed in 'values' key
        'values' => ['feat', 'fix'], // All the values usable as type
    ],
    'scope' => [
        'lengthMin' => 0, // Min length of the scope
        'lengthMax' => 10, // Max length of the scope
        'acceptExtra' => true, // Allow adding scopes not listed in 'values' key
        'values' => [], // All the values usable as scope
    ],
    'description' => [
        'lengthMin' => 1, // Min length of the description
        'lengthMax' => 44, // Max length of the description
    ],
    'subject' => [
        'lengthMin' => 1, // Min length of the subject
        'lengthMax' => 50, // Max length of the subject
    ],
    'body' => [
        'wrap' => 72, // Wrap the body at 72 characters
    ],
    'footer' => [
        'wrap' => 72, Wrap the footer at 72 characters
    ],
];