commit-msg-git-hook


Namecommit-msg-git-hook JSON
Version 0.7.0 PyPI version JSON
download
home_pageNone
SummaryA set of tools to validate git Conventional Commit messages.
upload_time2024-08-30 20:12:56
maintainerNone
docs_urlNone
authorNone
requires_python>=3.7
licenseNone
keywords ci commit-msg git git hook git-hook scan
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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](https://www.conventionalcommits.org/pt-br/v1.0.0/).

**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:

```bash
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:
```bash
python3 -m commit_msg_git_hook.setup
```

- Para Windows:
```bash
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.](src/commit_msg_git_hook/assets/commit-msg.config.json.png "commit-msg.config.json")

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](https://www.conventionalcommits.org/pt-br/v1.0.0/).

## 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.](src/commit_msg_git_hook/assets/Exemplo-mensagem-inválida.png "Exemplo de mensagem inválida")

### Exemplo de Mensagem Muito Longa
![Exemplo de mensagem muito longa.](src/commit_msg_git_hook/assets/Exemplo-mensagem-muito-longa.png "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.

```bash
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
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "commit-msg-git-hook",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "ci, commit-msg, git, git hook, git-hook, scan",
    "author": null,
    "author_email": "Lucio Meira David <lucio.meira@om30.com.br>",
    "download_url": "https://files.pythonhosted.org/packages/bf/b1/034b8f2139e0ea08e5508b3b04248a5aab7ef28c109fdf6631a105a5c819/commit_msg_git_hook-0.7.0.tar.gz",
    "platform": null,
    "description": "# Commit Message Git Hook\n\n> *A set of tools to validate git Conventional Commit messages.*\n\nConjunto de ferramentas para validar mensagens de commit seguindo a especifica\u00e7\u00e3o **Conventional Commits**.\n\nVeja a especifica\u00e7\u00e3o [Conventional Commits](https://www.conventionalcommits.org/pt-br/v1.0.0/).\n\n**NOTA**: Somente commits novos s\u00e3o analisados.\n\n1. **commit_msg.py**: script principal\n    - Verifica se uma mensagem de commit est\u00e1 dentro da especifica\u00e7\u00e3o, considerando a configura\u00e7\u00e3o em `commit-msg.config.json`.\n\n2. **scan_git.py**: script para ser usado em uma pipeline de Pull Request\n    - A partir dos SHAs dos commits de uma PR, chama o `commit_msg.py` para cada uma das mensagens de commit.\n\n3. **setup.py**: script de configura\u00e7\u00e3o\n    - Configura o git-hook commit-msg no reposit\u00f3rio do diret\u00f3rio atual.\n\n## Instru\u00e7\u00f5es de Instala\u00e7\u00e3o\n\n### Instalar do PyPI (Python Package Index)\n\nExecute o script abaixo para instalar a vers\u00e3o mais recente deste pacote:\n\n```bash\npip install commit-msg-git-hook --upgrade\n```\n\n### Configurar o Git Hook Local `commit-msg`\n\nExecute um dos comandos abaixo para criar o hook:\n\n- Para Linux e macOS:\n```bash\npython3 -m commit_msg_git_hook.setup\n```\n\n- Para Windows:\n```bash\npython -m commit_msg_git_hook.setup\n```\n\nEle executa as seguintes etapas:\n\n- L\u00ea e depois mostra o tipo do seu Sistema Operacional.\n     - Encerra com uma mensagem de erro se o sistema operacional n\u00e3o for compat\u00edvel.\n- Cria um diret\u00f3rio para git-hooks, por padr\u00e3o `./.github/git-hooks`.\n     - Cria subdiret\u00f3rios para cada um dos sistemas operacionais suportados.\n     - Cria um arquivo de hook `commit-msg` para cada sistema operacional, se ele n\u00e3o existir.\n         - Preenche-o com um script b\u00e1sico para chamar `commit_msg.main()`, deste pacote.\n         - Se o sistema operacional for Linux ou macOS, torna o arquivo de hook execut\u00e1vel.\n- Define o caminho (relativo) dos hooks para o reposit\u00f3rio atual como o diret\u00f3rio respectivo ao tipo de sistema operacional (por exemplo: `./.github/git-hooks/linux`).\n- Cria um arquivo de configura\u00e7\u00e3o `commit-msg.config.json` se ele n\u00e3o existir.\n- Termina com uma mensagem de sucesso referenciando novamente o tipo do seu sistema operacional.\n\n\n## Instru\u00e7\u00f5es de Configura\u00e7\u00e3o\n\n![Captura de Tela do arquivo de configura\u00e7\u00e3o sem nenhuma customiza\u00e7\u00e3o.](src/commit_msg_git_hook/assets/commit-msg.config.json.png \"commit-msg.config.json\")\n\nPersonalize o arquivo de configura\u00e7\u00e3o `commit-msg.config.json` para atender \u00e0s necessidades do seu projeto.\n\nProvavelmente voc\u00ea desejar\u00e1 adicionar **escopos** para utilizar totalmente a especifica\u00e7\u00e3o [Conventional Commits](https://www.conventionalcommits.org/pt-br/v1.0.0/).\n\n## Uso B\u00e1sico\n\nDepois de configurar e adicionar os novos arquivos ao seu reposit\u00f3rio remoto **git**, seus colaboradores ter\u00e3o de executar as etapas de **instala\u00e7\u00e3o** e **configura\u00e7\u00e3o** novamente.\nMas, desta vez, a configura\u00e7\u00e3o ir\u00e1 apenas definir o caminho dos hooks e garantir que o arquivo `commit-msg` esteja execut\u00e1vel.\n\nCada vez que voc\u00ea fizer um commit, o hook ir\u00e1 verificar se sua mensagem est\u00e1 de acordo com a especifica\u00e7\u00e3o e as customiza\u00e7\u00f5es do projeto.\n\n### Exemplo de Mensagem Inv\u00e1lida\n![Exemplo de mensagem inv\u00e1lida.](src/commit_msg_git_hook/assets/Exemplo-mensagem-inv\u00e1lida.png \"Exemplo de mensagem inv\u00e1lida\")\n\n### Exemplo de Mensagem Muito Longa\n![Exemplo de mensagem muito longa.](src/commit_msg_git_hook/assets/Exemplo-mensagem-muito-longa.png \"Exemplo de mensagem muito longa\")\n\n## Como Editar Commits\n\nSe a sua branch ainda n\u00e3o estiver publicada ainda (n\u00e3o mesclada na `develop` nem na `main`, por exemplo),\nvoc\u00ea pode editar seus commits com o comando abaixo. O Git listar\u00e1 os \u00faltimos `n` commits e perguntar\u00e1 se voc\u00ea deseja manter ou\neditar cada um deles.\n\n```bash\ngit rebase -i HEAD~n\n```\n\nMais informa\u00e7\u00f5es em: https://docs.github.com/pt/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message\n\n## Cr\u00e9ditos\n\nEste pacote foi criado a partir de um tutorial do **Craicoverflow**.\n\nVeja o tutorial no link:\nhttps://dev.to/craicoverflow/enforcing-conventional-commits-using-git-hooks-1o5p",
    "bugtrack_url": null,
    "license": null,
    "summary": "A set of tools to validate git Conventional Commit messages.",
    "version": "0.7.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/OM30/commit-msg-git-hook-package/issues",
        "Homepage": "https://github.com/OM30/commit-msg-git-hook-package"
    },
    "split_keywords": [
        "ci",
        " commit-msg",
        " git",
        " git hook",
        " git-hook",
        " scan"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b42ebc04611d58a83aa00c766d94025f5cea238c725b2cd20394aaf13c6201d7",
                "md5": "280932f15dcd2d9cddab7c08517da208",
                "sha256": "8703e2c6cbac4771e53cdbbf70059ef62bf9836cce010cd66fc9a7674c1a1c93"
            },
            "downloads": -1,
            "filename": "commit_msg_git_hook-0.7.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "280932f15dcd2d9cddab7c08517da208",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 67429,
            "upload_time": "2024-08-30T20:12:54",
            "upload_time_iso_8601": "2024-08-30T20:12:54.297443Z",
            "url": "https://files.pythonhosted.org/packages/b4/2e/bc04611d58a83aa00c766d94025f5cea238c725b2cd20394aaf13c6201d7/commit_msg_git_hook-0.7.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bfb1034b8f2139e0ea08e5508b3b04248a5aab7ef28c109fdf6631a105a5c819",
                "md5": "3c9c1762c2c492bbda4ce2d2a3137fb6",
                "sha256": "7c47a345c89aab90e96448ea8e8e2e671176dbef5509adb2bd2e7fd4b1289205"
            },
            "downloads": -1,
            "filename": "commit_msg_git_hook-0.7.0.tar.gz",
            "has_sig": false,
            "md5_digest": "3c9c1762c2c492bbda4ce2d2a3137fb6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 65736,
            "upload_time": "2024-08-30T20:12:56",
            "upload_time_iso_8601": "2024-08-30T20:12:56.666703Z",
            "url": "https://files.pythonhosted.org/packages/bf/b1/034b8f2139e0ea08e5508b3b04248a5aab7ef28c109fdf6631a105a5c819/commit_msg_git_hook-0.7.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-30 20:12:56",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "OM30",
    "github_project": "commit-msg-git-hook-package",
    "github_not_found": true,
    "lcname": "commit-msg-git-hook"
}
        
Elapsed time: 0.31035s