São muitas outras ferramentas e plugins de compositor para gerenciar ganchos Git. Mas Githooks oferece:
githooks tool name-of-the-tool .Além disso, ele pode ser usado junto com ferramentas de validação de JavaScript, como Tipicode/Husky, se você tiver projetos híbridos.
composer require --dev wtyd/githooks NOTA: Para PHP <8.1, você deve adicionar o próximo evento post-update-cmd à seção scripts em seu composer.json :
"scripts" : {
"post-update-cmd" : [
" Wtyd \ GitHooks \ Utils \ ComposerUpdater::phpOldVersions "
]
} Em seguida, execute composer update wtyd/githooks .
Até a versão 2.3.0, o método utilizado foi php72orminorupdate , mas foi depreciado e será removido da versão 3.0.0
Também é conveniente adicioná-lo ao evento post-install-cm para que o restante dos desenvolvedores do projeto não tenha problemas com a construção
"scripts" : {
"post-update-cmd" : " Wtyd \ GitHooks \ Utils \ ComposerUpdater::phpOldVersions " ,
"post-install-cmd" : " Wtyd \ GitHooks \ Utils \ ComposerUpdater::phpOldVersions "
}githooks conf:init . Este comando cria o arquivo de configuração no caminho root ( githooks.yml ). githooks hook . Ele copia o script para o lançamento de Githooks no evento pré-comprometimento no diretório .git/hooks . Você também pode executar githooks hook otherHook MyScriptFile.php para definir qualquer gancho com um script personalizado. Veja o wiki para obter mais informações. Para garantir que ele esteja configurado automaticamente, podemos configurar o comando nos eventos post-update-cmd e post-install-cmd do arquivo composer.json (seção scripts ):
"scripts" : {
"post-update-cmd" : [
" vendor/bin/githooks hook " // or "vendor/bin/githooks hook pre-commit MyScriptFile.php"
],
"post-install-cmd" : [
" vendor/bin/githooks hook "
]
}Quando você se compromete, todas as ferramentas de verificação de código configuradas são iniciadas automaticamente. Se o seu código passar em todas as verificações, o Githooks permitirá que você se comprometa. Caso contrário, você deve consertar o código e tentar novamente:
Você também pode executar Githooks sempre que quiser. Todas as ferramentas ao mesmo tempo ou uma a uma:
githooks tool all # Run all tools
githooks tool phpcs # Run only phpcsNeste momento, as ferramentas suportadas são:
Mas você pode definir seu próprio script em qualquer gancho git.
O arquivo githooks.yml é dividido em três partes:
A bandeira execution marca como os githooks serão executados:
full (a opção padrão): executa sempre todas as ferramentas definidas contra todo o caminho definido para cada ferramenta. Por exemplo, você definiu PHPCs para execução nos diretórios de src e app . O comprometimento contém apenas arquivos modificados no diretório database . Os PHPCs verificarão os diretórios de src e app , mesmo que nenhum arquivo nesses diretórios tenha sido modificado.fast : esta opção executa as ferramentas apenas contra arquivos modificados por Commit.githooks.yml ou no arquivo de configuração da ferramenta EATH, pois essa opção substitui os principais paths das ferramentas para que elas sejam executadas apenas nos arquivos modificados. Execute várias ferramentas em vários processos ao mesmo tempo (comando tool all ). O número padrão de processos é 1.
É uma matriz com o nome das ferramentas que os Githooks executarão. O nome das ferramentas é o executável. Se você deseja que todas as ferramentas sejam executadas, a chave Tools será a seguinte:
Tools :
- phpstan
- security-checker
- parallel-lint
- phpcs
- phpcbf
- phpmd
- phpcpdA ordem em que as ferramentas são é a ordem em que serão executadas.
Na próxima etapa, você deve configurar as ferramentas com o mesmo nome da tecla Tools . Por exemplo, para definir PHPCs:
phpcs :
executablePath : vendor/bin/phpcs
paths : [src, tests]
ignore : [vendor]
standard : ' PSR12 'Todas as opções disponíveis estão no wiki.
As contribuições de outros seriam muito apreciadas! Enviar solicitação de puxar/emissão. Verifique todas as etapas para fazer isso na seção wiki para contribuir. Obrigado!
A licença do MIT (MIT). Consulte o arquivo de licença para obter mais informações.