Skip to main content

A set of tools to validate git Conventional Commit messages.

Project description

Commit Message Git Hook

A set of tools to validate git Conventional Commit messages.

Conjunto de ferramentas para validar mensagens de commit seguindo a especificação Conventional Commits.

Veja a especificação Conventional Commits.

NOTA: Somente commits novos são analisados.

  1. commit_msg.py: script principal

    • Verifica se uma mensagem de commit está dentro da especificação, considerando a configuração em commit-msg.config.json.
  2. scan_git.py: script para ser usado em uma pipeline de Pull Request

    • A partir dos SHAs dos commits de uma PR, chama o commit_msg.py para cada uma das mensagens de commit.
  3. setup.py: script de configuração

    • Configura o git-hook commit-msg no repositório do diretório atual.

Instruções de Instalação

Instalar do PyPI (Python Package Index)

Execute o script abaixo para instalar a versão mais recente deste pacote:

pip install commit-msg-git-hook --upgrade

Configurar o Git Hook Local commit-msg

Execute um dos comandos abaixo para criar o hook:

  • Para Linux e macOS:
python3 -m commit_msg_git_hook.setup
  • Para Windows:
python -m commit_msg_git_hook.setup

Ele executa as seguintes etapas:

  • Lê e depois mostra o tipo do seu Sistema Operacional.
    • Encerra com uma mensagem de erro se o sistema operacional não for compatível.
  • Cria um diretório para git-hooks, por padrão ./.github/git-hooks.
    • Cria subdiretórios para cada um dos sistemas operacionais suportados.
    • Cria um arquivo de hook commit-msg para cada sistema operacional, se ele não existir.
      • Preenche-o com um script básico para chamar commit_msg.main(), deste pacote.
      • Se o sistema operacional for Linux ou macOS, torna o arquivo de hook executável.
  • Define o caminho (relativo) dos hooks para o repositório atual como o diretório respectivo ao tipo de sistema operacional (por exemplo: ./.github/git-hooks/linux).
  • Cria um arquivo de configuração commit-msg.config.json se ele não existir.
  • Termina com uma mensagem de sucesso referenciando novamente o tipo do seu sistema operacional.

Instruções de Configuração

Captura de Tela do arquivo de configuração sem nenhuma customização.

Personalize o arquivo de configuração commit-msg.config.json para atender às necessidades do seu projeto.

Provavelmente você desejará adicionar escopos para utilizar totalmente a especificação Conventional Commits.

Uso Básico

Depois de configurar e adicionar os novos arquivos ao seu repositório remoto git, seus colaboradores terão de executar as etapas de instalação e configuração novamente. Mas, desta vez, a configuração irá apenas definir o caminho dos hooks e garantir que o arquivo commit-msg esteja executável.

Cada vez que você fizer um commit, o hook irá verificar se sua mensagem está de acordo com a especificação e as customizações do projeto.

Exemplo de Mensagem Inválida

Exemplo de mensagem inválida.

Exemplo de Mensagem Muito Longa

Exemplo de mensagem muito longa.

Como Editar Commits

Se a sua branch ainda não estiver publicada ainda (não mesclada na develop nem na main, por exemplo), você pode editar seus commits com o comando abaixo. O Git listará os últimos n commits e perguntará se você deseja manter ou editar cada um deles.

git rebase -i HEAD~n

Mais informações em: https://docs.github.com/pt/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message

Créditos

Este pacote foi criado a partir de um tutorial do Craicoverflow.

Veja o tutorial no link: https://dev.to/craicoverflow/enforcing-conventional-commits-using-git-hooks-1o5p

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

commit_msg_git_hook-0.7.0.tar.gz (65.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

commit_msg_git_hook-0.7.0-py3-none-any.whl (67.4 kB view details)

Uploaded Python 3

File details

Details for the file commit_msg_git_hook-0.7.0.tar.gz.

File metadata

  • Download URL: commit_msg_git_hook-0.7.0.tar.gz
  • Upload date:
  • Size: 65.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for commit_msg_git_hook-0.7.0.tar.gz
Algorithm Hash digest
SHA256 7c47a345c89aab90e96448ea8e8e2e671176dbef5509adb2bd2e7fd4b1289205
MD5 3c9c1762c2c492bbda4ce2d2a3137fb6
BLAKE2b-256 bfb1034b8f2139e0ea08e5508b3b04248a5aab7ef28c109fdf6631a105a5c819

See more details on using hashes here.

File details

Details for the file commit_msg_git_hook-0.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for commit_msg_git_hook-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8703e2c6cbac4771e53cdbbf70059ef62bf9836cce010cd66fc9a7674c1a1c93
MD5 280932f15dcd2d9cddab7c08517da208
BLAKE2b-256 b42ebc04611d58a83aa00c766d94025f5cea238c725b2cd20394aaf13c6201d7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page