O NPM Auto Commit é uma ferramenta de linha de comando que facilita o processo de commit automático de alterações em um repositório git. Ele verifica se o Git está instalado, se o usuário do Git está configurado corretamente e se um repositório Git foi iniciado. Além disso, ele permite adicionar automaticamente arquivos modificados ou realizar o commit manualmente.
- Git instalado
Para usar o NPM Auto Commit, siga as etapas abaixo:
-
Faça o clone deste repositório em sua máquina.
-
Navegue até o diretório raiz do projeto.
-
Execute o seguinte comando para instalar as dependências:
yarn global add npm-auto-commit
ou
npm install npm-auto-commit -g
ou
npx npm-auto-commit
Para usar o NPM Auto Commit, execute o seguinte comando:
yarn commit -a "<tipo>:sua descrição de commit - <detalhe>"
Substitua "sua descrição de commit"
pela descrição real do seu commit.
O NPM Auto Commit também oferece algumas opções adicionais:
-add
ou-a
: Adiciona automaticamente todos os arquivos modificados antes de fazer o commit.-b
: Incrementa a versão maior (major) em vez de usar o tipo de commit para determinar o incremento da versão.
O NPM Auto Commit reconhece os seguintes tipos de commit:
- feat: Para adição de uma nova funcionalidade. Incrementa a versão menor (minor).
- fix: Para correção de bugs. Incrementa a versão de correção (patch).
- chore: Para tarefas de manutenção ou ajustes internos. Não requer versionamento.
- refactor: Para refatoração de código existente. Não requer versionamento.
- test: Para adição ou modificação de testes. Não requer versionamento.
- docs: Para atualização ou adição de documentação. Não requer versionamento.
Quando um commit é do tipo feat
(adiciona uma nova funcionalidade) ou fix
(corrige um bug), a versão do projeto é incrementada automaticamente. Nos demais tipos de commit, o versionamento não é realizado.
Certifique-se de fornecer a descrição correta do commit, seguindo o padrão:
<tipo>: Descrição do commit
Por exemplo:
feat: Adicionar funcionalidade de autenticação
A descrição do commit será utilizada para determinar o tipo de commit e realizar o versionamento, se aplicável.
Você pode adicionar detalhes ao commit, usando o caractere -
(hífen) após a descrição do commit.
Aqui está um exemplo de uso do NPM Auto Commit:
yarn commit -a "feat: Adicionar funcionalidade de autenticação -foi adicionado um token JWT para autenticação"
O NPM Auto Commit segue o seguinte fluxo de execução:
- Verifica se o Git está instalado. Caso contrário, exibe uma mensagem de aviso e encerra o programa.
- Verifica se o usuário do Git está configurado corretamente. Caso contrário, exibe uma mensagem de aviso e encerra o programa.
- Verifica se um repositório Git foi iniciado. Caso contrário, exibe uma mensagem de aviso e encerra o programa.
- Executa
git pull
para atualizar o repositório local. - Verifica se foram passados argumentos na linha de comando. Caso contrário, exibe uma mensagem de aviso e encerra o programa.
- Extrai a descrição do commit dos argumentos passados.
- Verifica se a opção
-add
foi passada. Caso positivo, executagit add .
para adicionar todos os arquivos modificados ao commit. - Verifica se há arquivos modificados para commitar. Caso não haja, exibe uma mensagem informando que não há nada para commitar e encerra o programa.
- Cria uma mensagem de commit com base na descrição fornecida.
- Obtém a versão atual do projeto com base nas tags do Git.
- Determina o tipo de versão com base no tipo de commit ou na opção
-b
. - Incrementa a versão atual com base no tipo de versão.
- Verifica se o tipo de commit não requer versionamento. Caso seja verdadeiro, exibe uma mensagem de aviso e encerra o programa.
- Exibe a mensagem de commit, a versão atual e a nova versão.
- Pergunta ao usuário se deseja continuar.
- Caso o usuário confirme, atualiza a versão no arquivo
package.json
ou em um arquivo separado, adiciona os arquivos alterados ao commit, realiza o commit com a mensagem fornecida e cria uma nova tag com a nova versão. - Executa
git push
para enviar as alterações para o repositório remoto. - Executa
git push --tags
para enviar as tags para o repositório remoto. - Exibe uma mensagem informando que o commit foi realizado com sucesso.
Este projeto está licenciado sob a MIT License.