@gilbert_oliveira/commit-wizard 2.10.0 → 2.11.0

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.
Files changed (2) hide show
  1. package/README.md +25 -413
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -2,81 +2,31 @@
2
2
 
3
3
  > **Gere mensagens de commit inteligentes usando IA**
4
4
 
5
- [![CI/CD](https://github.com/gilbert-oliveira/commit-wizard/workflows/CI/badge.svg)](https://github.com/gilbert-oliveira/commit-wizard/actions)
6
- [![Security](https://github.com/gilbert-oliveira/commit-wizard/workflows/Segurança/badge.svg)](https://github.com/gilbert-oliveira/commit-wizard/actions)
7
- [![Deploy](https://github.com/gilbert-oliveira/commit-wizard/workflows/Deploy/badge.svg)](https://github.com/gilbert-oliveira/commit-wizard/actions)
8
-
9
5
  [![npm version](https://img.shields.io/npm/v/@gilbert_oliveira/commit-wizard.svg)](https://www.npmjs.com/package/@gilbert_oliveira/commit-wizard)
10
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
11
7
 
12
- Um CLI desenvolvido para Node.js que analisa suas mudanças no Git e gera mensagens de commit personalizadas usando a API da OpenAI.
13
-
14
- ## 📊 Status do Projeto
15
-
16
- - **✅ Core Functionality**: 100% completo
17
- - **✅ Smart Split**: 100% completo (cache implementado)
18
- - **✅ Testes**: 100% cobertura
19
- - **✅ Documentação**: 100% completa
20
- - **🔄 Distribuição**: 90% (CI/CD configurado, aguardando publicação)
21
- - **🚧 Interface Avançada**: 30% (edição de grupos em desenvolvimento)
8
+ CLI que analisa suas mudanças no Git e gera mensagens de commit personalizadas usando IA.
22
9
 
23
10
  ## ✨ Funcionalidades
24
11
 
25
- ### 🧠 **Geração Inteligente**
26
-
27
12
  - **Commit único**: Analisa todas as mudanças e gera uma mensagem coesa
28
- - **Smart Split**: IA agrupa arquivos relacionados em commits lógicos separados
29
- - **Split Manual**: Divisão manual por arquivo para controle total
30
-
31
- ### ⚙️ **Configuração Flexível**
32
-
33
- - Arquivo `.commit-wizardrc` para personalização
34
- - Suporte a configuração global e local
35
- - Múltiplos modelos OpenAI (GPT-4o, GPT-3.5, etc.)
36
- - Estilos de commit: Conventional, Simple, Detailed
37
-
38
- ### 🎨 **Interface Rica**
39
-
40
- - Interface interativa com opções de edição
41
- - Preview de mensagens antes do commit
42
- - Copiar para clipboard
43
- - Modos silencioso e automático
44
-
45
- ### 🎯 **Smart Split Avançado**
46
-
47
- - Análise de contexto das mudanças
48
- - Agrupamento por funcionalidade, correção, refatoração
49
- - **Cache inteligente** para análises similares
50
- - **Interface de edição** (em desenvolvimento):
51
- - ✏️ Renomear grupos
52
- - 📁 Reorganizar arquivos entre grupos
53
- - ➕ Criar novos grupos
54
- - 🔗 Mesclar grupos existentes
55
- - 🗑️ Excluir grupos vazios
56
-
57
- ---
13
+ - **Smart Split**: IA agrupa arquivos relacionados em commits lógicos
14
+ - **Split Manual**: Divisão manual por arquivo
15
+ - **Cache inteligente**: Otimiza performance evitando chamadas repetidas
16
+ - **Interface interativa**: Preview e edição de mensagens
58
17
 
59
18
  ## 🚀 Instalação
60
19
 
61
- ### Pré-requisitos
62
-
63
- - Node.js 18+ instalado
64
- - Chave da API OpenAI
65
-
66
- ### Instalação Global
67
-
68
20
  ```bash
69
21
  npm install -g @gilbert_oliveira/commit-wizard
70
22
  ```
71
23
 
72
- ### Uso via npx (sem instalação)
24
+ Ou use sem instalar:
73
25
 
74
26
  ```bash
75
27
  npx @gilbert_oliveira/commit-wizard
76
28
  ```
77
29
 
78
- ---
79
-
80
30
  ## ⚡ Uso Rápido
81
31
 
82
32
  ### 1. Configure sua chave OpenAI
@@ -85,7 +35,7 @@ npx @gilbert_oliveira/commit-wizard
85
35
  export OPENAI_API_KEY="sua-chave-aqui"
86
36
  ```
87
37
 
88
- ### 2. Faça suas mudanças e adicione ao staging
38
+ ### 2. Adicione suas mudanças
89
39
 
90
40
  ```bash
91
41
  git add .
@@ -97,430 +47,92 @@ git add .
97
47
  commit-wizard
98
48
  ```
99
49
 
100
- ---
101
-
102
- ## 📋 Comandos CLI
103
-
104
- ### Modo Básico
50
+ ## 📋 Comandos
105
51
 
106
52
  ```bash
107
- commit-wizard # Modo interativo padrão
53
+ commit-wizard # Modo interativo
108
54
  commit-wizard --yes # Aceitar automaticamente
109
- commit-wizard --silent # Modo silencioso
110
- commit-wizard --auto # Automático (--yes + --silent)
111
- commit-wizard --dry-run # Visualizar sem commitar
112
- ```
113
-
114
- ### Split de Commits
115
-
116
- ```bash
117
- commit-wizard --split # Split manual por arquivo
118
55
  commit-wizard --smart-split # Smart Split com IA
119
- commit-wizard --smart-split --yes # Smart Split automático
120
- ```
121
-
122
- ### Ajuda e Informações
123
-
124
- ```bash
125
- commit-wizard --help # Mostrar ajuda
126
- commit-wizard --version # Mostrar versão
56
+ commit-wizard --split # Split manual por arquivo
57
+ commit-wizard --dry-run # Visualizar sem commitar
127
58
  ```
128
59
 
129
- ---
130
-
131
60
  ## ⚙️ Configuração
132
61
 
133
- ### Arquivo `.commit-wizardrc`
134
-
135
- Crie um arquivo `.commit-wizardrc` no seu projeto ou no diretório home:
62
+ Crie um arquivo `.commit-wizardrc`:
136
63
 
137
64
  ```json
138
65
  {
139
66
  "language": "pt",
140
67
  "commitStyle": "conventional",
141
- "autoCommit": false,
142
- "splitCommits": true,
143
68
  "openai": {
144
69
  "model": "gpt-4o",
145
- "maxTokens": 200,
146
- "temperature": 0.7,
147
- "timeout": 30000,
148
- "retries": 2
149
- },
150
- "prompt": {
151
- "includeFileNames": true,
152
- "includeDiffStats": true,
153
- "customInstructions": "",
154
- "maxDiffSize": 8000
155
- },
156
- "smartSplit": {
157
- "enabled": true,
158
- "minGroupSize": 1,
159
- "maxGroups": 5,
160
- "autoEdit": false,
161
- "confidenceThreshold": 0.7,
162
- "preferredGroupTypes": ["feat", "fix", "refactor", "test", "docs"]
163
- },
164
- "ui": {
165
- "theme": "auto",
166
- "showProgress": true,
167
- "animateProgress": true,
168
- "compactMode": false
70
+ "maxTokens": 200
169
71
  },
170
72
  "cache": {
171
- "enabled": true, // ✅ Cache inteligente implementado
172
- "ttl": 60, // Tempo de vida em minutos
173
- "maxSize": 100 // Máximo de entradas no cache
174
- },
175
- "advanced": {
176
- "maxFileSize": 1024,
177
- "excludePatterns": ["*.log", "*.tmp", "node_modules/**", ".git/**"],
178
- "includePatterns": [],
179
- "enableDebug": false,
180
- "logLevel": "info"
73
+ "enabled": true,
74
+ "ttl": 60
181
75
  }
182
76
  }
183
77
  ```
184
78
 
185
- ### Gerar Configuração Exemplo
186
-
187
- ```bash
188
- commit-wizard --init # Cria .commit-wizardrc exemplo
189
- ```
190
-
191
- ---
192
-
193
- ## 🧠 Smart Split - Funcionalidade Destacada
194
-
195
- O Smart Split usa IA para analisar o contexto das suas mudanças e criar commits organizados logicamente.
196
-
197
- ### Como Funciona
198
-
199
- 1. **Análise de Contexto**: IA analisa arquivos e diffs
200
- 2. **Agrupamento Inteligente**: Agrupa por funcionalidade/correção
201
- 3. **Interface de Edição**: Personaliza grupos antes do commit
202
-
203
- ### Exemplo de Uso
204
-
205
- ```bash
206
- # Você modificou:
207
- # src/auth/login.ts
208
- # src/auth/register.ts
209
- # src/components/LoginForm.tsx
210
- # tests/auth.test.ts
211
- # docs/authentication.md
212
-
213
- commit-wizard --smart-split
214
- ```
215
-
216
- **Resultado:**
217
-
218
- ```
219
- 🧠 Análise de Contexto
220
- ✅ 3 grupo(s) identificado(s):
221
-
222
- 1. **Sistema de Autenticação**
223
- 📄 src/auth/login.ts, src/auth/register.ts
224
- 💡 Implementação do core de autenticação
225
- 🎯 Confiança: 95%
226
-
227
- 2. **Interface de Autenticação**
228
- 📄 src/components/LoginForm.tsx
229
- 💡 Componentes de UI para autenticação
230
- 🎯 Confiança: 90%
231
-
232
- 3. **Documentação e Testes**
233
- 📄 tests/auth.test.ts, docs/authentication.md
234
- 💡 Testes e documentação relacionada
235
- 🎯 Confiança: 85%
236
-
237
- ? O que você gostaria de fazer?
238
- ✅ Prosseguir com esta organização
239
- ✏️ Editar grupos
240
- ✋ Fazer split manual
241
- ❌ Cancelar
242
- ```
243
-
244
- ### Interface de Edição
245
-
246
- > **🚧 Em desenvolvimento** - A interface de edição de grupos será implementada em breve
247
-
248
- Quando implementada, você poderá:
249
-
250
- - **📝 Renomear grupos** - Alterar nome e descrição
251
- - **📁 Reorganizar arquivos** - Mover entre grupos
252
- - **➕ Criar novos grupos** - Grupos personalizados
253
- - **🔗 Mesclar grupos** - Combinar grupos existentes
254
- - **🗑️ Excluir grupos** - Remover grupos vazios
255
-
256
- ---
257
-
258
79
  ## 🎨 Estilos de Commit
259
80
 
260
81
  ### Conventional (Padrão)
261
-
262
82
  ```
263
83
  feat(auth): implement user login system
264
-
265
- - Add login validation
266
- - Create session management
267
- - Add password encryption
268
84
  ```
269
85
 
270
86
  ### Simple
271
-
272
87
  ```
273
88
  Add user login functionality
274
89
  ```
275
90
 
276
91
  ### Detailed
277
-
278
92
  ```
279
93
  Implement comprehensive user authentication system
280
94
 
281
95
  This commit introduces a new authentication module that includes:
282
96
  - User login validation with email/password
283
97
  - Session management with JWT tokens
284
- - Password encryption using bcrypt
285
- - Error handling for invalid credentials
286
-
287
- Files modified:
288
- - src/auth/login.ts: Core login logic
289
- - src/auth/session.ts: Session management
290
- - tests/auth.test.ts: Unit tests
291
98
  ```
292
99
 
293
- ---
294
-
295
- ## 🔧 Variáveis de Ambiente
100
+ ## 📊 Exemplos
296
101
 
102
+ ### Commit Único
297
103
  ```bash
298
- # Obrigatório
299
- export OPENAI_API_KEY="sua-chave-aqui"
300
-
301
- # Opcionais
302
- export COMMIT_WIZARD_DEBUG="true" # Ativar debug
303
- export COMMIT_WIZARD_DRY_RUN="true" # Sempre dry-run
304
- ```
305
-
306
- ---
307
-
308
- ## 📊 Exemplos Práticos
309
-
310
- ### Commit Único Simples
311
-
312
- ```bash
313
- # Modificou apenas README.md
314
104
  git add README.md
315
105
  commit-wizard
316
-
317
106
  # Resultado: "docs: update project documentation"
318
107
  ```
319
108
 
320
- ### Smart Split para Feature Complexa
321
-
109
+ ### Smart Split
322
110
  ```bash
323
- # Implementou sistema completo de autenticação
324
- git add src/auth/ src/components/auth/ tests/auth/ docs/auth.md
325
-
111
+ git add src/auth/ src/components/auth/ tests/auth/
326
112
  commit-wizard --smart-split
327
-
328
113
  # Resultado: 3 commits organizados por contexto
329
- # 1. feat(auth): implement core authentication system
330
- # 2. feat(ui): add authentication components
331
- # 3. test(auth): add comprehensive auth tests
332
114
  ```
333
115
 
334
- ### Cache Inteligente
335
-
336
- O Commit Wizard usa cache inteligente para otimizar performance:
337
-
338
- - **Cache de análises**: Evita chamadas repetidas à OpenAI
339
- - **Hash MD5**: Identifica análises similares automaticamente
340
- - **TTL configurável**: Invalida cache antigo automaticamente
341
- - **Limpeza automática**: Remove entradas antigas quando necessário
342
-
343
- ### Split Manual para Controle Total
344
-
345
- ```bash
346
- # Múltiplas mudanças não relacionadas
347
- git add .
348
- commit-wizard --split
349
-
350
- # Você escolhe arquivo por arquivo
351
- # Resultado: commits separados para cada mudança
352
- ```
353
-
354
- ---
355
-
356
- ## 🧪 Desenvolvimento e Testes
357
-
358
- ### Executar Testes
359
-
360
- ```bash
361
- npm run test # Todos os testes
362
- ```
363
-
364
- ### Desenvolvimento Local
365
-
366
- ```bash
367
- git clone https://github.com/gilbert-oliveira/commit-wizard
368
- cd commit-wizard
369
-
370
- npm install
371
- npm run dev
372
- ```
373
-
374
- ### Build
375
-
376
- ```bash
377
- npm run build
378
- ```
379
-
380
- ---
381
-
382
- ## 🚀 Fluxo Automatizado de Publicação
383
-
384
- O Commit Wizard utiliza um sistema automatizado de CI/CD para publicação no npm e GitHub Packages.
385
-
386
- ### 📦 Versões Canary (PRs)
387
-
388
- - **Trigger**: Push em branches que não sejam `main` ou `master`
389
- - **Versão**: Formato `x.y.z-canary.<hash>` (ex: `2.4.0-canary.abc123`)
390
- - **Publicação**:
391
- - npm: `npm install @gilbert_oliveira/commit-wizard@canary`
392
- - GitHub Packages: `npm install @gilbert_oliveira/commit-wizard@canary --registry=https://npm.pkg.github.com`
393
- - **Comentário**: Automático na PR com instruções de instalação
394
-
395
- ### 🏷️ Versões Estáveis (Main)
396
-
397
- - **Trigger**: Push na branch `main` ou `master`
398
- - **Versão**: Formato semântico `x.y.z` (ex: `2.4.0`)
399
- - **Publicação**:
400
- - npm: `npm install -g @gilbert_oliveira/commit-wizard`
401
- - GitHub Packages: `npm install -g @gilbert_oliveira/commit-wizard --registry=https://npm.pkg.github.com`
402
- - **Changelog**: Gerado automaticamente via Changesets
403
-
404
- ### 🔧 Scripts de Desenvolvimento
405
-
406
- ```bash
407
- # Changesets
408
- npm run changeset # Criar changeset
409
- npm run version # Bump de versão
410
- npm run release # Publicar no npm
411
- npm run release:github # Publicar no GitHub Packages
412
-
413
- # Canary
414
- npm run canary # Publicar canary no npm
415
- npm run canary:github # Publicar canary no GitHub Packages
416
-
417
- # Release manual
418
- npm run release:patch # Bump patch
419
- npm run release:minor # Bump minor
420
- npm run release:major # Bump major
421
- ```
422
-
423
- ### 📋 Workflows GitHub Actions
424
-
425
- - **`.github/workflows/canary.yml`**: Publicação canary em PRs
426
- - **`.github/workflows/release.yml`**: Publicação estável na main
427
- - **`.github/workflows/validate-changesets.yml`**: Validação de changesets
428
- - **`.github/workflows/ci.yml`**: Testes e build
429
- - **`.github/workflows/deploy.yml`**: Deploy manual
430
-
431
- ---
432
-
433
- ## 🤝 Contribuição
434
-
435
- 1. Fork o projeto
436
- 2. Crie uma branch para sua feature (`git checkout -b feature/nova-feature`)
437
- 3. Commit suas mudanças (`git commit -m 'feat: add nova feature'`)
438
- 4. Push para a branch (`git push origin feature/nova-feature`)
439
- 5. Abra um Pull Request
440
-
441
- ---
442
-
443
116
  ## 🐛 Troubleshooting
444
117
 
445
118
  ### Erro: "Chave da OpenAI não encontrada"
446
-
447
119
  ```bash
448
120
  export OPENAI_API_KEY="sua-chave-aqui"
449
121
  ```
450
122
 
451
123
  ### Erro: "Não é um repositório Git"
452
-
453
124
  ```bash
454
125
  git init
455
126
  ```
456
127
 
457
- ### Commits muito grandes/pequenos
458
-
459
- Ajuste no `.commit-wizardrc`:
460
-
461
- ```json
462
- {
463
- "openai": {
464
- "maxTokens": 300 // Para commits maiores
465
- },
466
- "prompt": {
467
- "maxDiffSize": 16000 // Para diffs maiores
468
- }
469
- }
470
- ```
471
-
472
- ### Smart Split não cria grupos
473
-
474
- - Verifique conexão com internet
475
- - Confirme que há arquivos staged
476
- - Tente com menos arquivos primeiro
128
+ ## 🤝 Contribuição
477
129
 
478
- ---
130
+ 1. Fork o projeto
131
+ 2. Crie uma branch (`git checkout -b feature/nova-feature`)
132
+ 3. Commit suas mudanças (`git commit -m 'feat: add nova feature'`)
133
+ 4. Push para a branch (`git push origin feature/nova-feature`)
134
+ 5. Abra um Pull Request
479
135
 
480
136
  ## 📝 Licença
481
137
 
482
138
  MIT © [Gilbert Oliveira](https://github.com/gilbert-oliveira)
483
-
484
- ---
485
-
486
- ## 🔗 Links Úteis
487
-
488
- - [Documentação da OpenAI](https://platform.openai.com/docs)
489
- - [Conventional Commits](https://www.conventionalcommits.org/)
490
- - [Node.js](https://nodejs.org/) (alternativa)
491
- - [📋 Guia para Contribuidores](.github/README.md) - Informações sobre desenvolvimento e CI/CD
492
-
493
- ---
494
-
495
- ## 🎯 Roadmap
496
-
497
- ### ✅ Concluído Recentemente
498
-
499
- - [x] **Cache inteligente de análises** - Sistema de cache em memória com TTL configurável
500
- - [x] **Configuração avançada** - 40+ opções de configuração organizadas
501
- - [x] **Testes de integração** - Cobertura end-to-end completa
502
- - [x] **Documentação completa** - README profissional com exemplos práticos
503
- - [x] **CI/CD Pipeline** - Workflows automatizados para testes e build
504
-
505
- ### 🚧 Em Desenvolvimento
506
-
507
- - [ ] **Interface de edição de grupos** - Editar grupos do Smart Split antes do commit
508
- - [ ] **Tema escuro** - Suporte a tema escuro na interface
509
-
510
- ### 📋 Próximas Funcionalidades
511
-
512
- - [ ] **Plugins personalizados** - Sistema extensível de plugins
513
- - [ ] **Integração com VS Code** - Extensão para VS Code
514
- - [ ] **Templates de commit customizados** - Templates personalizáveis
515
- - [ ] **Análise de impacto das mudanças** - Estimativa de impacto
516
-
517
- ### 🎨 Melhorias Planejadas
518
-
519
- - [ ] **Suporte a mais idiomas** - Interface multilíngue
520
- - [ ] **Interface gráfica opcional** - GUI para usuários não-CLI
521
- - [ ] **Hooks personalizáveis** - Hooks para CI/CD
522
- - [ ] **Animações e UX** - Interface mais fluida
523
-
524
- ---
525
-
526
- **💡 Dica:** Use `commit-wizard --smart-split` para organizar automaticamente seus commits e manter um histórico Git limpo e profissional!
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "displayName": "Commit Wizard",
4
4
  "publisher": "gilbert-oliveira",
5
5
  "description": "CLI inteligente para gerar mensagens de commit usando OpenAI",
6
- "version": "2.10.0",
6
+ "version": "2.11.0",
7
7
  "categories": [
8
8
  "Other",
9
9
  "SCM Providers"