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.
-
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.
- Verifica se uma mensagem de commit está dentro da especificação, considerando a configuração em
-
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.pypara cada uma das mensagens de commit.
- A partir dos SHAs dos commits de uma PR, chama o
-
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-msgpara 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.
- Preenche-o com um script básico para chamar
- 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.jsonse ele não existir. - Termina com uma mensagem de sucesso referenciando novamente o tipo do seu sistema operacional.
Instruções de Configuraçã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 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c47a345c89aab90e96448ea8e8e2e671176dbef5509adb2bd2e7fd4b1289205
|
|
| MD5 |
3c9c1762c2c492bbda4ce2d2a3137fb6
|
|
| BLAKE2b-256 |
bfb1034b8f2139e0ea08e5508b3b04248a5aab7ef28c109fdf6631a105a5c819
|
File details
Details for the file commit_msg_git_hook-0.7.0-py3-none-any.whl.
File metadata
- Download URL: commit_msg_git_hook-0.7.0-py3-none-any.whl
- Upload date:
- Size: 67.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8703e2c6cbac4771e53cdbbf70059ef62bf9836cce010cd66fc9a7674c1a1c93
|
|
| MD5 |
280932f15dcd2d9cddab7c08517da208
|
|
| BLAKE2b-256 |
b42ebc04611d58a83aa00c766d94025f5cea238c725b2cd20394aaf13c6201d7
|