CommitAI e um bot do Telegram que ajuda devs a padronizar titulo e descricao de commits seguindo o padrao Conventional Commits. A ideia nasceu dentro da empresa onde trabalho, pois nao existia um formato consistente. Com o CommitAI, qualquer pessoa descreve o que fez e recebe um commit pronto, tecnico e padronizado.
- Gera titulo e descricao de commit no formato Conventional Commits
- Mantem o formato rigoroso com dois blocos Markdown
- Suporta texto e audio (transcricao via OpenAI)
- Responde direto no Telegram para agilizar o fluxo de trabalho
- O usuario clica em Gerar commit no bot do Telegram
- Envia um texto (ou audio) descrevendo a alteracao
- O bot usa um prompt especializado (
prompts/commitai.md) para gerar:- Titulo do commit (1a linha)
- Descricao do commit (bullets quando necessario)
- Python 3.10+
- Chave do bot do Telegram
- Chave de API da OpenAI (o uso gera custo de tokens)
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtNo arquivo main.py sao usadas duas chaves:
TELEGRAM_BOT_API_KEYOPENAI_API
Recomendado: usar variaveis de ambiente e nao deixar chaves hardcoded.
Crie um arquivo .env na raiz do projeto com as chaves:
TELEGRAM_BOT_API_KEY=sua_chave
OPENAI_API=sua_chave
Exemplo:
TELEGRAM_BOT_API_KEY = os.getenv("TELEGRAM_BOT_API_KEY", "")
OPENAI_API = os.getenv("OPENAI_API", "")python main.pyO bot roda em polling e ja fica ouvindo mensagens no Telegram.
main.py: bot do Telegram e integracao com OpenAIprompts/commitai.md: prompt com regras de formatacao do commitrequirements.txt: dependencias
Entrada do usuario:
"Corrigi o retorno da funcao e diminui o tempo de sleep nos testes"
Resposta do bot:
🏷️ Título do commit:
refactor: reduz tempo de espera para testes
📝 Descrição do commit:
- Ajusta retornos das funcoes para garantir consistencia
- Diminui o tempo de sleep para agilizar testes
- O formato retornado segue estritamente o padrao definido em
prompts/commitai.md - O bot nao inventa informacoes que o usuario nao forneceu
- Evite textos vagos: quanto mais claro o resumo, melhor o commit
- Nome: David Alves
- Site:
https://davidalves.dev/ - LinkedIn:
https://www.linkedin.com/in/davidalves-dev/