Este guia irá te ajudar a configurar e rodar o gitautomata pela primeira vez.
- Node.js 18.0 ou superior
- npm ou yarn
- Uma conta no GitHub com um Personal Access Token
-
Clone o repositório:
git clone https://github.com/seu-usuario/gitautomata.git cd gitautomata -
Instale as dependências:
npm install
-
Configure as variáveis de ambiente:
cp .env.example .env
Edite o arquivo
.enve configure:GITHUB_TOKEN=seu_token_aqui WEBHOOK_SECRET=seu_webhook_secret_aqui PORT=3000
- Vá para GitHub Settings > Developer settings > Personal access tokens
- Clique em "Generate new token"
- Selecione os seguintes escopos:
repo(acesso completo a repositórios)issues(leitura/escrita de issues)pull_requests(leitura/escrita de PRs)workflow(acesso aos GitHub Actions)
npm run devO servidor será iniciado na porta 3000 (ou a porta configurada no .env).
curl -X POST http://localhost:3000/automations/hello-world/run \\
-H "Content-Type: application/json" \\
-d '{"args": ["Olá do gitautomata!"]}'curl http://localhost:3000/automationsPara que o gitautomata receba eventos em tempo real do GitHub:
- Vá para o seu repositório no GitHub
- Clique em Settings > Webhooks > Add webhook
- Configure:
- Payload URL:
https://seu-servidor.com/webhook/github - Content type:
application/json - Secret: o mesmo valor configurado em
WEBHOOK_SECRET - Events: Selecione os eventos que você quer monitorar
- Payload URL:
- Clique em Add webhook
gitautomata/
├── src/
│ ├── core/ # Engine principal
│ ├── automations/ # Suas automações
│ ├── server/ # Servidor Express
│ └── utils/ # Utilities
├── tests/ # Testes
├── examples/ # Exemplos de automações
└── docs/ # Documentação
Crie um arquivo em src/automations/minha-automacao.ts:
import { Automation, GitHubWebhookEvent, GitHubClient } from '../core/automation';
export const minhaAutomacao: Automation = {
name: 'minha-automacao',
description: 'Minha primeira automação',
async onPush(event: GitHubWebhookEvent, github: GitHubClient): Promise<void> {
console.log('Push recebido!', event.repository?.full_name);
},
async run(github: GitHubClient): Promise<void> {
console.log('Executando manualmente!');
},
};- Leia Criando Automações para aprender mais sobre automações
- Veja Exemplos para inspiração
- Consulte a API Reference para detalhes técnicos
Verifique se:
- O token do GitHub está correto no
.env - O token tem as permissões necessárias
- O token não expirou
Verifique se:
- A URL do webhook está correta
- O secret do webhook confere com o
.env - O servidor está acessível pela internet
- Os eventos corretos estão selecionados
Se a porta 3000 estiver em uso, altere no .env:
PORT=3001