Python 3 command line utility to standardize commit messages
[](https://conventionalcommits.org)
This client tool prompts the user with information about the commit.
Based on conventional commits
By default it uses angular guidelines
pip install commitizen
Run in your terminal
cz
cz --help
Create a file starting with cz_ for example cz_jira.py.
This prefix is used to detect the plugin. Same method flask uses
Inherit from BaseCommitizen and you must define questions
and message. The others are optionals.
from commitizen import BaseCommitizen
class JiraCz(BaseCommitizen):
def questions(self):
"""Questions regarding the commit message.
Must have 'whaaaaat' format.
More info: https://github.com/finklabs/whaaaaat/
:rtype: list
"""
questions = [
{
'type': 'input',
'name': 'title',
'message': 'Commit title'
},
{
'type': 'input',
'name': 'issue',
'message': 'Jira Issue number:'
},
]
return questions
def message(self, answers):
"""Generate the message with the given answers.
:type answers: dict
:rtype: string
"""
return '{0} (#{1})'.format(answers['title'], answers['issue'])
def example(self):
"""Provide an example to help understand the style (OPTIONAL)
Used by cz example.
:rtype: string
"""
return 'Problem with user (#321)'
def schema(self):
"""Show the schema used (OPTIONAL)
:rtype: string
"""
return '<title> (<issue>)'
def info(self):
"""Explanation of the commit rules. (OPTIONAL)
:rtype: string
"""
return 'We use this because is useful'
discover_this = JiraCz # used by the plugin systemThe next file required is setup.py modified from flask version
from distutils.core import setup
setup(
name='JiraCommitizen',
version='0.1.0',
py_modules=['cz_jira'],
license='MIT',
long_description='this is a long description',
install_requires=['commitizen']
)So at the end we would have
. ├── cz_jira.py └── setup.py
And that's it, you can install it without uploading by doing
pip install .
- [ ] auto changelog integration
- [ ] tests