gcgbarbosa's

Walk trough pre-commit and enforcing conventional commits

Pre commit

Pre-commit is a framework that allows you to run automated checks. You can run like code formatting and linting on your code before you commit it to a Git repository.

How to add pre-commit to your project

Install pre-commit with pip:

pip install pre-commit

Generate a sample configuration file and save it as .pre-commit-config.yaml:

pre-commit sample-config > .pre-commit-config.yaml

How to add commit-lint to enforce conventional commits

Conventional commits is a specification for writing commit messages with a structured format that helps automate changelog generation and semantic versioning.

Your .pre-commit-config.yaml file should look like this:

❯ cat .pre-commit-config.yaml
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v3.2.0
    hooks:
    -   id: trailing-whitespace
    -   id: end-of-file-fixer
    -   id: check-yaml
    -   id: check-added-large-files

You are going to add the following to the end of the file:

-   repo: https://github.com/compilerla/conventional-pre-commit
    rev: v2.1.1
    hooks:
    -   id: conventional-pre-commit
        stages: [commit-msg]
        args: [] # optional: list of Conventional Commits types to allow e.g. [feat, fix, ci, chore, test]

This link will give you the basics of the default setup: config-conventional.

#Git #Productivity #Development