alysontrizotto/git-pre-push
最新稳定版本:v1.0.0
Composer 安装命令:
composer require alysontrizotto/git-pre-push
包简介
Biblioteca PHP para hooks de pre-push no Git.
README 文档
README
Biblioteca PHP (Composer Plugin) para automatizar o hook pre-push do Git, executando testes antes do push. Compatível com Laravel, (ainda em testes PHPUnit puro e outros frameworks PHP).
Principais recursos
- Instala automaticamente o hook
pre-pushao instalar/atualizar o pacote. - Cria automaticamente o arquivo de configuração
git-pre-push.phpna raiz do projeto (não sobrescreve se já existir). - Executa o comando de testes configurado antes do push e bloqueia o push em caso de falhas.
- Respeita
--env=...no comando de testes e exige o arquivo.env.<env>correspondente. - Em
APP_ENV=production, pula os testes e permite o push.
Requisitos
- PHP CLI disponível (
php -v). - Composer >= 2.2 (para permitir plugins).
- Repositório Git inicializado (para instalar o hook em
.git/hooks/).
Instalação
Permitir o plugin no composer.json do projeto (Composer >= 2.2):
{
"config": {
"allow-plugins": {
"alysontrizotto/git-pre-push": true
}
}
}
Instalar no projeto (recomendado como dev):
composer require --dev alysontrizotto/git-pre-push
Ao instalar/atualizar, o hook .git/hooks/pre-push será criado automaticamente e o arquivo git-pre-push.php será gerado na raiz se não existir.
Configuração
O arquivo git-pre-push.php contém a configuração do comando de testes:
<?php return [ // Exemplo Laravel 'test_command' => 'php artisan test --env=testing', // Alternativa: PHPUnit puro // 'test_command' => 'vendor/bin/phpunit', ];
Comportamento relacionado a ambientes:
- Se
'test_command'tiver--env=testing, o hook exige a existência de.env.testing. - Se
APP_ENV=production(variável de ambiente ou.env), o hook não roda testes e permite o push.
Desinstalação
Ao remover o pacote via Composer, o hook é removido automaticamente. Opcionalmente:
php vendor/bin/git-pre-push uninstall-hook
Segurança: o hook gerado possui marcação e só é removido se tiver sido criado por este pacote.
Solução de problemas
- “Arquivo de ambiente esperado não encontrado: .env.testing”: crie o arquivo ou ajuste o
--envnotest_command. - Permissão do hook (Linux/Mac):
chmod +x .git/hooks/pre-push. - Garanta que o Git esteja executando hooks (use Git CLI/Git Bash).
Exemplo de composer.json do consumidor
{
"require-dev": {
"alysontrizotto/git-pre-push": "^1.0"
},
"config": {
"allow-plugins": {
"alysontrizotto/git-pre-push": true
}
}
}
Licença
MIT
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-08-21