@gilbert_oliveira/commit-wizard 1.2.2 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.commit-wizardrc +17 -0
- package/LICENSE +3 -3
- package/README.md +374 -211
- package/bin/commit-wizard.ts +51 -0
- package/dist/commit-wizard.js +195 -0
- package/package.json +71 -64
- package/src/config/index.ts +237 -0
- package/src/core/cache.ts +210 -0
- package/src/core/index.ts +381 -0
- package/src/core/openai.ts +336 -0
- package/src/core/smart-split.ts +698 -0
- package/src/git/index.ts +177 -0
- package/src/ui/index.ts +204 -0
- package/src/ui/smart-split.ts +141 -0
- package/src/utils/args.ts +56 -0
- package/src/utils/polyfill.ts +82 -0
- package/dist/ai-service.d.ts +0 -44
- package/dist/ai-service.js +0 -287
- package/dist/ai-service.js.map +0 -1
- package/dist/commit-splitter.d.ts +0 -48
- package/dist/commit-splitter.js +0 -227
- package/dist/commit-splitter.js.map +0 -1
- package/dist/config.d.ts +0 -22
- package/dist/config.js +0 -84
- package/dist/config.js.map +0 -1
- package/dist/diff-processor.d.ts +0 -39
- package/dist/diff-processor.js +0 -156
- package/dist/diff-processor.js.map +0 -1
- package/dist/git-utils.d.ts +0 -72
- package/dist/git-utils.js +0 -373
- package/dist/git-utils.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -486
- package/dist/index.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,310 +1,473 @@
|
|
|
1
1
|
# 🧙♂️ Commit Wizard
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
[](https://github.com/gilbert-oliveira/commit-wizard/actions)
|
|
6
|
+
[](https://codecov.io/gh/gilbert-oliveira/commit-wizard)
|
|
7
|
+
[](https://www.npmjs.com/package/@gilbert-oliveira/commit-wizard)
|
|
6
8
|
[](https://opensource.org/licenses/MIT)
|
|
7
9
|
|
|
8
|
-
|
|
10
|
+
Um CLI desenvolvido com Bun.js que analisa suas mudanças no Git e gera mensagens de commit personalizadas usando a API da OpenAI.
|
|
11
|
+
|
|
12
|
+
## 📊 Status do Projeto
|
|
13
|
+
|
|
14
|
+
- **✅ Core Functionality**: 100% completo
|
|
15
|
+
- **✅ Smart Split**: 100% completo (cache implementado)
|
|
16
|
+
- **✅ Testes**: 100% cobertura
|
|
17
|
+
- **✅ Documentação**: 100% completa
|
|
18
|
+
- **🔄 Distribuição**: 90% (CI/CD configurado, aguardando publicação)
|
|
19
|
+
- **🚧 Interface Avançada**: 30% (edição de grupos em desenvolvimento)
|
|
9
20
|
|
|
10
21
|
## ✨ Funcionalidades
|
|
11
22
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
23
|
+
### 🧠 **Geração Inteligente**
|
|
24
|
+
|
|
25
|
+
- **Commit único**: Analisa todas as mudanças e gera uma mensagem coesa
|
|
26
|
+
- **Smart Split**: IA agrupa arquivos relacionados em commits lógicos separados
|
|
27
|
+
- **Split Manual**: Divisão manual por arquivo para controle total
|
|
28
|
+
|
|
29
|
+
### ⚙️ **Configuração Flexível**
|
|
30
|
+
|
|
31
|
+
- Arquivo `.commit-wizardrc` para personalização
|
|
32
|
+
- Suporte a configuração global e local
|
|
33
|
+
- Múltiplos modelos OpenAI (GPT-4o, GPT-3.5, etc.)
|
|
34
|
+
- Estilos de commit: Conventional, Simple, Detailed
|
|
35
|
+
|
|
36
|
+
### 🎨 **Interface Rica**
|
|
37
|
+
|
|
38
|
+
- Interface interativa com opções de edição
|
|
39
|
+
- Preview de mensagens antes do commit
|
|
40
|
+
- Copiar para clipboard
|
|
41
|
+
- Modos silencioso e automático
|
|
42
|
+
|
|
43
|
+
### 🎯 **Smart Split Avançado**
|
|
44
|
+
|
|
45
|
+
- Análise de contexto das mudanças
|
|
46
|
+
- Agrupamento por funcionalidade, correção, refatoração
|
|
47
|
+
- **Cache inteligente** para análises similares
|
|
48
|
+
- **Interface de edição** (em desenvolvimento):
|
|
49
|
+
- ✏️ Renomear grupos
|
|
50
|
+
- 📁 Reorganizar arquivos entre grupos
|
|
51
|
+
- ➕ Criar novos grupos
|
|
52
|
+
- 🔗 Mesclar grupos existentes
|
|
53
|
+
- 🗑️ Excluir grupos vazios
|
|
54
|
+
|
|
55
|
+
---
|
|
24
56
|
|
|
25
57
|
## 🚀 Instalação
|
|
26
58
|
|
|
27
|
-
###
|
|
59
|
+
### Pré-requisitos
|
|
60
|
+
|
|
61
|
+
- [Bun](https://bun.sh/) instalado
|
|
62
|
+
- Chave da API OpenAI
|
|
63
|
+
|
|
64
|
+
### Instalação Global
|
|
65
|
+
|
|
28
66
|
```bash
|
|
29
|
-
|
|
67
|
+
bun install -g @gilbert_oliveira/commit-wizard
|
|
30
68
|
```
|
|
31
69
|
|
|
32
|
-
###
|
|
70
|
+
### Uso via npx (sem instalação)
|
|
71
|
+
|
|
33
72
|
```bash
|
|
34
|
-
|
|
73
|
+
npx @gilbert_oliveira/commit-wizard
|
|
35
74
|
```
|
|
36
75
|
|
|
37
|
-
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## ⚡ Uso Rápido
|
|
79
|
+
|
|
80
|
+
### 1. Configure sua chave OpenAI
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
export OPENAI_API_KEY="sua-chave-aqui"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 2. Faça suas mudanças e adicione ao staging
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
git add .
|
|
90
|
+
```
|
|
38
91
|
|
|
39
|
-
###
|
|
40
|
-
Defina sua chave da OpenAI como variável de ambiente:
|
|
92
|
+
### 3. Execute o commit wizard
|
|
41
93
|
|
|
42
94
|
```bash
|
|
43
|
-
|
|
95
|
+
commit-wizard
|
|
44
96
|
```
|
|
45
97
|
|
|
46
|
-
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## 📋 Comandos CLI
|
|
47
101
|
|
|
48
|
-
###
|
|
49
|
-
Execute o comando de configuração para personalizar o comportamento:
|
|
102
|
+
### Modo Básico
|
|
50
103
|
|
|
51
104
|
```bash
|
|
52
|
-
commit-wizard
|
|
105
|
+
commit-wizard # Modo interativo padrão
|
|
106
|
+
commit-wizard --yes # Aceitar automaticamente
|
|
107
|
+
commit-wizard --silent # Modo silencioso
|
|
108
|
+
commit-wizard --auto # Automático (--yes + --silent)
|
|
109
|
+
commit-wizard --dry-run # Visualizar sem commitar
|
|
53
110
|
```
|
|
54
111
|
|
|
55
|
-
|
|
112
|
+
### Split de Commits
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
commit-wizard --split # Split manual por arquivo
|
|
116
|
+
commit-wizard --smart-split # Smart Split com IA
|
|
117
|
+
commit-wizard --smart-split --yes # Smart Split automático
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Ajuda e Informações
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
commit-wizard --help # Mostrar ajuda
|
|
124
|
+
commit-wizard --version # Mostrar versão
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## ⚙️ Configuração
|
|
130
|
+
|
|
131
|
+
### Arquivo `.commit-wizardrc`
|
|
132
|
+
|
|
133
|
+
Crie um arquivo `.commit-wizardrc` no seu projeto ou no diretório home:
|
|
56
134
|
|
|
57
135
|
```json
|
|
58
136
|
{
|
|
59
|
-
"model": "gpt-4o",
|
|
60
|
-
"temperature": 0.2,
|
|
61
|
-
"maxTokens": 1000,
|
|
62
137
|
"language": "pt",
|
|
138
|
+
"commitStyle": "conventional",
|
|
63
139
|
"autoCommit": false,
|
|
64
|
-
"
|
|
65
|
-
"
|
|
140
|
+
"splitCommits": true,
|
|
141
|
+
"openai": {
|
|
142
|
+
"model": "gpt-4o",
|
|
143
|
+
"maxTokens": 200,
|
|
144
|
+
"temperature": 0.7,
|
|
145
|
+
"timeout": 30000,
|
|
146
|
+
"retries": 2
|
|
147
|
+
},
|
|
148
|
+
"prompt": {
|
|
149
|
+
"includeFileNames": true,
|
|
150
|
+
"includeDiffStats": true,
|
|
151
|
+
"customInstructions": "",
|
|
152
|
+
"maxDiffSize": 8000
|
|
153
|
+
},
|
|
154
|
+
"smartSplit": {
|
|
155
|
+
"enabled": true,
|
|
156
|
+
"minGroupSize": 1,
|
|
157
|
+
"maxGroups": 5,
|
|
158
|
+
"autoEdit": false,
|
|
159
|
+
"confidenceThreshold": 0.7,
|
|
160
|
+
"preferredGroupTypes": ["feat", "fix", "refactor", "test", "docs"]
|
|
161
|
+
},
|
|
162
|
+
"ui": {
|
|
163
|
+
"theme": "auto",
|
|
164
|
+
"showProgress": true,
|
|
165
|
+
"animateProgress": true,
|
|
166
|
+
"compactMode": false
|
|
167
|
+
},
|
|
168
|
+
"cache": {
|
|
169
|
+
"enabled": true, // ✅ Cache inteligente implementado
|
|
170
|
+
"ttl": 60, // Tempo de vida em minutos
|
|
171
|
+
"maxSize": 100 // Máximo de entradas no cache
|
|
172
|
+
},
|
|
173
|
+
"advanced": {
|
|
174
|
+
"maxFileSize": 1024,
|
|
175
|
+
"excludePatterns": ["*.log", "*.tmp", "node_modules/**", ".git/**"],
|
|
176
|
+
"includePatterns": [],
|
|
177
|
+
"enableDebug": false,
|
|
178
|
+
"logLevel": "info"
|
|
179
|
+
}
|
|
66
180
|
}
|
|
67
181
|
```
|
|
68
182
|
|
|
69
|
-
|
|
183
|
+
### Gerar Configuração Exemplo
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
commit-wizard --init # Cria .commit-wizardrc exemplo
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## 🧠 Smart Split - Funcionalidade Destacada
|
|
192
|
+
|
|
193
|
+
O Smart Split usa IA para analisar o contexto das suas mudanças e criar commits organizados logicamente.
|
|
70
194
|
|
|
71
|
-
|
|
72
|
-
2. **Processamento**: Divide diff grandes em chunks menores
|
|
73
|
-
3. **IA**: Envia para OpenAI com prompts otimizados
|
|
74
|
-
4. **Geração**: Cria mensagem seguindo Conventional Commits
|
|
75
|
-
5. **Interação**: Permite edição, regeneração ou cópia
|
|
76
|
-
6. **Commit**: Executa git commit com a mensagem final
|
|
195
|
+
### Como Funciona
|
|
77
196
|
|
|
78
|
-
|
|
197
|
+
1. **Análise de Contexto**: IA analisa arquivos e diffs
|
|
198
|
+
2. **Agrupamento Inteligente**: Agrupa por funcionalidade/correção
|
|
199
|
+
3. **Interface de Edição**: Personaliza grupos antes do commit
|
|
200
|
+
|
|
201
|
+
### Exemplo de Uso
|
|
79
202
|
|
|
80
|
-
### Uso Básico
|
|
81
203
|
```bash
|
|
82
|
-
#
|
|
83
|
-
|
|
204
|
+
# Você modificou:
|
|
205
|
+
# src/auth/login.ts
|
|
206
|
+
# src/auth/register.ts
|
|
207
|
+
# src/components/LoginForm.tsx
|
|
208
|
+
# tests/auth.test.ts
|
|
209
|
+
# docs/authentication.md
|
|
210
|
+
|
|
211
|
+
commit-wizard --smart-split
|
|
212
|
+
```
|
|
84
213
|
|
|
85
|
-
|
|
86
|
-
|
|
214
|
+
**Resultado:**
|
|
215
|
+
|
|
216
|
+
```
|
|
217
|
+
🧠 Análise de Contexto
|
|
218
|
+
✅ 3 grupo(s) identificado(s):
|
|
219
|
+
|
|
220
|
+
1. **Sistema de Autenticação**
|
|
221
|
+
📄 src/auth/login.ts, src/auth/register.ts
|
|
222
|
+
💡 Implementação do core de autenticação
|
|
223
|
+
🎯 Confiança: 95%
|
|
224
|
+
|
|
225
|
+
2. **Interface de Autenticação**
|
|
226
|
+
📄 src/components/LoginForm.tsx
|
|
227
|
+
💡 Componentes de UI para autenticação
|
|
228
|
+
🎯 Confiança: 90%
|
|
229
|
+
|
|
230
|
+
3. **Documentação e Testes**
|
|
231
|
+
📄 tests/auth.test.ts, docs/authentication.md
|
|
232
|
+
💡 Testes e documentação relacionada
|
|
233
|
+
🎯 Confiança: 85%
|
|
234
|
+
|
|
235
|
+
? O que você gostaria de fazer?
|
|
236
|
+
✅ Prosseguir com esta organização
|
|
237
|
+
✏️ Editar grupos
|
|
238
|
+
✋ Fazer split manual
|
|
239
|
+
❌ Cancelar
|
|
87
240
|
```
|
|
88
241
|
|
|
89
|
-
###
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
242
|
+
### Interface de Edição
|
|
243
|
+
|
|
244
|
+
> **🚧 Em desenvolvimento** - A interface de edição de grupos será implementada em breve
|
|
245
|
+
|
|
246
|
+
Quando implementada, você poderá:
|
|
247
|
+
|
|
248
|
+
- **📝 Renomear grupos** - Alterar nome e descrição
|
|
249
|
+
- **📁 Reorganizar arquivos** - Mover entre grupos
|
|
250
|
+
- **➕ Criar novos grupos** - Grupos personalizados
|
|
251
|
+
- **🔗 Mesclar grupos** - Combinar grupos existentes
|
|
252
|
+
- **🗑️ Excluir grupos** - Remover grupos vazios
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## 🎨 Estilos de Commit
|
|
257
|
+
|
|
258
|
+
### Conventional (Padrão)
|
|
259
|
+
|
|
96
260
|
```
|
|
261
|
+
feat(auth): implement user login system
|
|
97
262
|
|
|
98
|
-
|
|
263
|
+
- Add login validation
|
|
264
|
+
- Create session management
|
|
265
|
+
- Add password encryption
|
|
266
|
+
```
|
|
99
267
|
|
|
100
|
-
|
|
268
|
+
### Simple
|
|
101
269
|
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
commit-wizard --split
|
|
270
|
+
```
|
|
271
|
+
Add user login functionality
|
|
105
272
|
```
|
|
106
273
|
|
|
107
|
-
|
|
108
|
-
- 🧠 **Análise inteligente** dos arquivos alterados
|
|
109
|
-
- 📂 **Agrupamento por contexto**: testes, docs, features, fixes, etc.
|
|
110
|
-
- 🎯 **Priorização automática**: bugs primeiro, depois testes, docs, features
|
|
111
|
-
- ✨ **Commits bem organizados** com mensagens específicas para cada grupo
|
|
274
|
+
### Detailed
|
|
112
275
|
|
|
113
|
-
**Exemplo de saída:**
|
|
114
276
|
```
|
|
115
|
-
|
|
116
|
-
|
|
277
|
+
Implement comprehensive user authentication system
|
|
278
|
+
|
|
279
|
+
This commit introduces a new authentication module that includes:
|
|
280
|
+
- User login validation with email/password
|
|
281
|
+
- Session management with JWT tokens
|
|
282
|
+
- Password encryption using bcrypt
|
|
283
|
+
- Error handling for invalid credentials
|
|
284
|
+
|
|
285
|
+
Files modified:
|
|
286
|
+
- src/auth/login.ts: Core login logic
|
|
287
|
+
- src/auth/session.ts: Session management
|
|
288
|
+
- tests/auth.test.ts: Unit tests
|
|
289
|
+
```
|
|
117
290
|
|
|
118
|
-
|
|
119
|
-
Arquivos (2): src/auth.ts, src/validators.ts
|
|
291
|
+
---
|
|
120
292
|
|
|
121
|
-
|
|
122
|
-
Arquivos (1): tests/auth.test.ts
|
|
293
|
+
## 🔧 Variáveis de Ambiente
|
|
123
294
|
|
|
124
|
-
|
|
125
|
-
|
|
295
|
+
```bash
|
|
296
|
+
# Obrigatório
|
|
297
|
+
export OPENAI_API_KEY="sua-chave-aqui"
|
|
126
298
|
|
|
127
|
-
|
|
299
|
+
# Opcionais
|
|
300
|
+
export COMMIT_WIZARD_DEBUG="true" # Ativar debug
|
|
301
|
+
export COMMIT_WIZARD_DRY_RUN="true" # Sempre dry-run
|
|
302
|
+
```
|
|
128
303
|
|
|
129
|
-
|
|
130
|
-
✅ Commit 1: 🐛 fix: corrige validação de entrada em auth.ts
|
|
304
|
+
---
|
|
131
305
|
|
|
132
|
-
|
|
133
|
-
✅ Commit 2: 🧪 test: adiciona testes abrangentes para auth
|
|
306
|
+
## 📊 Exemplos Práticos
|
|
134
307
|
|
|
135
|
-
|
|
136
|
-
✅ Commit 3: 📚 docs: atualiza documentação da API
|
|
308
|
+
### Commit Único Simples
|
|
137
309
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
310
|
+
```bash
|
|
311
|
+
# Modificou apenas README.md
|
|
312
|
+
git add README.md
|
|
313
|
+
commit-wizard
|
|
142
314
|
|
|
143
|
-
|
|
144
|
-
- 🐛 **fix** - Correções de bugs (prioridade 1)
|
|
145
|
-
- 🧪 **test** - Testes (prioridade 2)
|
|
146
|
-
- 📚 **docs** - Documentação (prioridade 3)
|
|
147
|
-
- 🔧 **chore** - Configurações (prioridade 4)
|
|
148
|
-
- 💄 **style** - Formatação (prioridade 5)
|
|
149
|
-
- ♻️ **refactor** - Refatoração (prioridade 6)
|
|
150
|
-
- ✨ **feat** - Novas funcionalidades (prioridade 7)
|
|
151
|
-
- 🔄 **ci** - CI/CD (prioridade 8)
|
|
152
|
-
|
|
153
|
-
### Exemplo de Output
|
|
315
|
+
# Resultado: "docs: update project documentation"
|
|
154
316
|
```
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
❯ 📌 Confirmar e commitar
|
|
169
|
-
📝 Editar a mensagem antes de commitar
|
|
170
|
-
🔄 Regenerar mensagem
|
|
171
|
-
📋 Copiar para clipboard
|
|
172
|
-
🚫 Cancelar o commit
|
|
317
|
+
|
|
318
|
+
### Smart Split para Feature Complexa
|
|
319
|
+
|
|
320
|
+
```bash
|
|
321
|
+
# Implementou sistema completo de autenticação
|
|
322
|
+
git add src/auth/ src/components/auth/ tests/auth/ docs/auth.md
|
|
323
|
+
|
|
324
|
+
commit-wizard --smart-split
|
|
325
|
+
|
|
326
|
+
# Resultado: 3 commits organizados por contexto
|
|
327
|
+
# 1. feat(auth): implement core authentication system
|
|
328
|
+
# 2. feat(ui): add authentication components
|
|
329
|
+
# 3. test(auth): add comprehensive auth tests
|
|
173
330
|
```
|
|
174
331
|
|
|
175
|
-
|
|
332
|
+
### Cache Inteligente
|
|
176
333
|
|
|
177
|
-
|
|
178
|
-
- **GPT-4o Mini** - Mais rápido e econômico
|
|
179
|
-
- **GPT-4 Turbo** - Versão anterior robusta
|
|
180
|
-
- **GPT-3.5 Turbo** - Opção econômica
|
|
334
|
+
O Commit Wizard usa cache inteligente para otimizar performance:
|
|
181
335
|
|
|
182
|
-
|
|
336
|
+
- **Cache de análises**: Evita chamadas repetidas à OpenAI
|
|
337
|
+
- **Hash MD5**: Identifica análises similares automaticamente
|
|
338
|
+
- **TTL configurável**: Invalida cache antigo automaticamente
|
|
339
|
+
- **Limpeza automática**: Remove entradas antigas quando necessário
|
|
340
|
+
|
|
341
|
+
### Split Manual para Controle Total
|
|
183
342
|
|
|
184
343
|
```bash
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
npm run lint:fix # Corrigir lint automaticamente
|
|
192
|
-
npm run format # Formatar código
|
|
193
|
-
npm run format:check # Verificar formatação
|
|
194
|
-
npm run clean # Limpar arquivos build
|
|
344
|
+
# Múltiplas mudanças não relacionadas
|
|
345
|
+
git add .
|
|
346
|
+
commit-wizard --split
|
|
347
|
+
|
|
348
|
+
# Você escolhe arquivo por arquivo
|
|
349
|
+
# Resultado: commits separados para cada mudança
|
|
195
350
|
```
|
|
196
351
|
|
|
197
|
-
|
|
352
|
+
---
|
|
198
353
|
|
|
199
|
-
|
|
354
|
+
## 🧪 Desenvolvimento e Testes
|
|
200
355
|
|
|
201
|
-
|
|
202
|
-
- `fix:` - Correções de bugs
|
|
203
|
-
- `docs:` - Mudanças na documentação
|
|
204
|
-
- `style:` - Formatação, ponto e vírgula, etc.
|
|
205
|
-
- `refactor:` - Mudanças que não alteram funcionalidade
|
|
206
|
-
- `perf:` - Melhorias de performance
|
|
207
|
-
- `test:` - Adição ou correção de testes
|
|
208
|
-
- `chore:` - Mudanças em ferramentas, configs, etc.
|
|
209
|
-
- `ci:` - Mudanças no CI/CD
|
|
356
|
+
### Executar Testes
|
|
210
357
|
|
|
211
|
-
|
|
212
|
-
|
|
358
|
+
```bash
|
|
359
|
+
bun test # Todos os testes
|
|
360
|
+
bun test src/__tests__ # Testes unitários
|
|
361
|
+
bun test tests/ # Testes de integração
|
|
213
362
|
```
|
|
214
|
-
feat!(auth): reestruturar API de login
|
|
215
363
|
|
|
216
|
-
|
|
364
|
+
### Desenvolvimento Local
|
|
365
|
+
|
|
366
|
+
```bash
|
|
367
|
+
git clone https://github.com/gilbert-oliveira/commit-wizard
|
|
368
|
+
cd commit-wizard
|
|
369
|
+
bun install
|
|
370
|
+
bun run dev
|
|
217
371
|
```
|
|
218
372
|
|
|
219
|
-
|
|
373
|
+
### Build
|
|
220
374
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
```json
|
|
224
|
-
{
|
|
225
|
-
"excludePatterns": [
|
|
226
|
-
"*.lock*",
|
|
227
|
-
"*.log",
|
|
228
|
-
"node_modules/**",
|
|
229
|
-
"dist/**",
|
|
230
|
-
"coverage/**"
|
|
231
|
-
]
|
|
232
|
-
}
|
|
375
|
+
```bash
|
|
376
|
+
bun run build
|
|
233
377
|
```
|
|
234
378
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
## 🤝 Contribuição
|
|
382
|
+
|
|
383
|
+
1. Fork o projeto
|
|
384
|
+
2. Crie uma branch para sua feature (`git checkout -b feature/nova-feature`)
|
|
385
|
+
3. Commit suas mudanças (`git commit -m 'feat: add nova feature'`)
|
|
386
|
+
4. Push para a branch (`git push origin feature/nova-feature`)
|
|
387
|
+
5. Abra um Pull Request
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
## 🐛 Troubleshooting
|
|
392
|
+
|
|
393
|
+
### Erro: "Chave da OpenAI não encontrada"
|
|
394
|
+
|
|
395
|
+
```bash
|
|
396
|
+
export OPENAI_API_KEY="sua-chave-aqui"
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
### Erro: "Não é um repositório Git"
|
|
400
|
+
|
|
401
|
+
```bash
|
|
402
|
+
git init
|
|
241
403
|
```
|
|
242
404
|
|
|
243
|
-
###
|
|
244
|
-
|
|
405
|
+
### Commits muito grandes/pequenos
|
|
406
|
+
|
|
407
|
+
Ajuste no `.commit-wizardrc`:
|
|
408
|
+
|
|
245
409
|
```json
|
|
246
410
|
{
|
|
247
|
-
"
|
|
411
|
+
"openai": {
|
|
412
|
+
"maxTokens": 300 // Para commits maiores
|
|
413
|
+
},
|
|
414
|
+
"prompt": {
|
|
415
|
+
"maxDiffSize": 16000 // Para diffs maiores
|
|
416
|
+
}
|
|
248
417
|
}
|
|
249
418
|
```
|
|
250
419
|
|
|
251
|
-
|
|
420
|
+
### Smart Split não cria grupos
|
|
252
421
|
|
|
253
|
-
|
|
254
|
-
-
|
|
255
|
-
-
|
|
256
|
-
- ❌ Sem arquivos staged
|
|
257
|
-
- ❌ Erros da API OpenAI
|
|
258
|
-
- ❌ Problemas de conectividade
|
|
259
|
-
- ❌ Arquivos de configuração inválidos
|
|
422
|
+
- Verifique conexão com internet
|
|
423
|
+
- Confirme que há arquivos staged
|
|
424
|
+
- Tente com menos arquivos primeiro
|
|
260
425
|
|
|
261
|
-
|
|
426
|
+
---
|
|
262
427
|
|
|
263
|
-
|
|
264
|
-
2. **Configuração por projeto**: Crie `.commit-wizard.json` no projeto
|
|
265
|
-
3. **Temperatura baixa**: Use 0.1-0.3 para mensagens mais consistentes
|
|
266
|
-
4. **Exclude patterns**: Configure para ignorar arquivos irrelevantes
|
|
267
|
-
5. **Auto commit**: Ative apenas em ambientes confiáveis
|
|
428
|
+
## 📝 Licença
|
|
268
429
|
|
|
269
|
-
|
|
430
|
+
MIT © [Gilbert Oliveira](https://github.com/gilbert-oliveira)
|
|
270
431
|
|
|
271
|
-
|
|
272
|
-
2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`)
|
|
273
|
-
3. Commit suas mudanças (`git commit -m 'feat: add some AmazingFeature'`)
|
|
274
|
-
4. Push para a branch (`git push origin feature/AmazingFeature`)
|
|
275
|
-
5. Abra um Pull Request
|
|
432
|
+
---
|
|
276
433
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
434
|
+
## 🔗 Links Úteis
|
|
435
|
+
|
|
436
|
+
- [Documentação da OpenAI](https://platform.openai.com/docs)
|
|
437
|
+
- [Conventional Commits](https://www.conventionalcommits.org/)
|
|
438
|
+
- [Bun.js](https://bun.sh/)
|
|
439
|
+
|
|
440
|
+
---
|
|
441
|
+
|
|
442
|
+
## 🎯 Roadmap
|
|
443
|
+
|
|
444
|
+
### ✅ Concluído Recentemente
|
|
445
|
+
|
|
446
|
+
- [x] **Cache inteligente de análises** - Sistema de cache em memória com TTL configurável
|
|
447
|
+
- [x] **Configuração avançada** - 40+ opções de configuração organizadas
|
|
448
|
+
- [x] **Testes de integração** - Cobertura end-to-end completa
|
|
449
|
+
- [x] **Documentação completa** - README profissional com exemplos práticos
|
|
450
|
+
- [x] **CI/CD Pipeline** - Workflows automatizados para testes e build
|
|
285
451
|
|
|
286
|
-
|
|
452
|
+
### 🚧 Em Desenvolvimento
|
|
287
453
|
|
|
288
|
-
- [ ]
|
|
289
|
-
- [ ]
|
|
290
|
-
- [ ] Plugin para VS Code
|
|
291
|
-
- [ ] Templates de commit customizáveis
|
|
292
|
-
- [ ] Integração com Conventional Changelog
|
|
293
|
-
- [ ] Suporte a monorepos
|
|
294
|
-
- [ ] Cache de respostas IA
|
|
454
|
+
- [ ] **Interface de edição de grupos** - Editar grupos do Smart Split antes do commit
|
|
455
|
+
- [ ] **Tema escuro** - Suporte a tema escuro na interface
|
|
295
456
|
|
|
296
|
-
|
|
457
|
+
### 📋 Próximas Funcionalidades
|
|
297
458
|
|
|
298
|
-
|
|
459
|
+
- [ ] **Plugins personalizados** - Sistema extensível de plugins
|
|
460
|
+
- [ ] **Integração com VS Code** - Extensão para VS Code
|
|
461
|
+
- [ ] **Templates de commit customizados** - Templates personalizáveis
|
|
462
|
+
- [ ] **Análise de impacto das mudanças** - Estimativa de impacto
|
|
299
463
|
|
|
300
|
-
|
|
464
|
+
### 🎨 Melhorias Planejadas
|
|
301
465
|
|
|
302
|
-
- [
|
|
303
|
-
- [
|
|
304
|
-
-
|
|
466
|
+
- [ ] **Suporte a mais idiomas** - Interface multilíngue
|
|
467
|
+
- [ ] **Interface gráfica opcional** - GUI para usuários não-CLI
|
|
468
|
+
- [ ] **Hooks personalizáveis** - Hooks para CI/CD
|
|
469
|
+
- [ ] **Animações e UX** - Interface mais fluida
|
|
305
470
|
|
|
306
471
|
---
|
|
307
472
|
|
|
308
|
-
|
|
309
|
-
<sub>Feito com 💜 por <a href="https://github.com/gilbert-oliveira">Gilbert de Oliveira Santos</a></sub>
|
|
310
|
-
</div>
|
|
473
|
+
**💡 Dica:** Use `commit-wizard --smart-split` para organizar automaticamente seus commits e manter um histórico Git limpo e profissional!
|