2
respostas

GitHook

Pessoal, estou configurando em meu projeto a automação que verifica se o commit está seguindo a convenção de boas práticas.

  • Meu sistema operacional é o windows 10
  • Estou tentando configurar em um projeto feito em kotlin - android

Quando faço commit ele simplemente não roda os hook,como se eles não fossem executaveis.

Procedimento:

  • removi o sufixo sample do arquivo que fica dentro .git/hook
  • dei todas as permições para arquivo ser lido e executavel.
  • nome do arquivo "pre-commit" formato file

Tentei rodar e não funcional [nenhuma mensagem de erro foi exibido] após isso, eu tentei.

  • mudei o formato do arquivo para .sh

Lógica aplicada dentro do arquivo.

Verifico se a branch contem algumas das key word citadas.

#!/bin/bash BRANCH=$(git rev-parse --abbrev-ref HEAD) REGEX="^(feature|bugfix|release|hotfix)/[a-z0-9._-]+$"

if ! [[ $BRANCH =~ $REGEX ]]; then echo "Seu commit foi rejeitado pois não segue aos padrões definidos pelo time" echo "Por favor, altere o nome da sua branch de acordo com o padrão '(feature|bugfix|release|hotfix)/algumacoisa' " exit 1 fi

links que usei como font

https://www.youtube.com/watch?v=yzXgYoW23Ro&t=529s&ab_channel=JulioArruda https://medium.com/equals-lab/git-hooks-o-que-s%C3%A3o-e-como-utiliz%C3%A1-los-para-descobrir-commits-duplicados-f91288af0c4c

2 respostas

Oi!

Primeiramente, verifique se você está colocando o arquivo de hook na pasta correta. No seu caso, a pasta correta é .git/hooks. Certifique-se de que o arquivo pre-commit está nessa pasta.

Além disso, é importante garantir que o arquivo de hook tenha permissões de execução. No Windows, você pode usar o comando git update-index --chmod=+x .git/hooks/pre-commit para dar permissão de execução ao arquivo.

Outra coisa que pode estar causando o problema é o formato do arquivo. No seu caso, você mencionou que tentou mudar o formato para .sh. No entanto, os hooks do Git não são executáveis diretamente em um ambiente Windows. Portanto, mantenha o formato do arquivo como .bat ou .cmd para que ele possa ser executado corretamente.

Por fim, verifique se o conteúdo do seu arquivo de hook está correto. O código que você compartilhou parece estar verificando se o nome da branch segue um padrão específico. Certifique-se de que o código esteja correto e que as palavras-chave estejam corretamente definidas.

Mudei para o formato .cdm, quando tento rodar esse comando para dar a permissão eu recebo esse erro

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

$ git update-index --chmod=+x .git/hooks/pre-commit
Ignoring path .git/hooks/pre-commit
fatal: git update-index: cannot chmod +x '.git/hooks/pre-commit'

Pesquisei por algumas coisas na net e pelo que entendi ele já está com pemissão para ser executavel... mas mesmo assim não acontece nada.

Simuei o comando, fiz o git add, git commit e não respeitou minhas regras.