@gilbert_oliveira/commit-wizard 1.0.5 → 1.0.7

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.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env ts-node
2
+ export {};
@@ -0,0 +1,215 @@
1
+ #!/usr/bin/env ts-node
2
+ import chalk from 'chalk';
3
+ import { execSync } from 'child_process';
4
+ import fs from 'fs';
5
+ import inquirer from 'inquirer';
6
+ import os from 'os';
7
+ import path from 'path';
8
+ // Função para verificar se o comando 'cody' está disponível
9
+ function isCodyInstalled() {
10
+ try {
11
+ execSync('cody --version', { stdio: 'ignore' });
12
+ return true;
13
+ }
14
+ catch (error) {
15
+ return false;
16
+ }
17
+ }
18
+ // Função para instalar o 'cody' automaticamente
19
+ function installCody() {
20
+ console.log(chalk.blue('🚀 Instalando o cody automaticamente...'));
21
+ try {
22
+ execSync('npm i -g @sourcegraph/cody', { stdio: 'inherit' });
23
+ console.log(chalk.green('✅ Cody instalado com sucesso!'));
24
+ }
25
+ catch (error) {
26
+ console.error(chalk.red('❌ Erro ao instalar o Cody:'), error.message);
27
+ process.exit(1);
28
+ }
29
+ }
30
+ // Verifica se o 'cody' está instalado, caso contrário, instala
31
+ if (!isCodyInstalled()) {
32
+ installCody();
33
+ }
34
+ // Função para verificar se está logado no Cody
35
+ function isCodyLoggedIn() {
36
+ try {
37
+ execSync('cody auth whoami', { stdio: 'ignore' });
38
+ return true;
39
+ }
40
+ catch (error) {
41
+ return false;
42
+ }
43
+ }
44
+ // Verificar se o usuário está logado no Cody, se não estiver, roda o comando para logar
45
+ if (!isCodyLoggedIn()) {
46
+ console.log(chalk.blue('🔑 Realize o login no Cody...'));
47
+ try {
48
+ execSync('cody auth login --web', { stdio: 'inherit' });
49
+ }
50
+ catch (error) {
51
+ console.error(chalk.red('❌ Erro ao realizar o login no Cody:'), error.message);
52
+ process.exit(1);
53
+ }
54
+ }
55
+ // Função para verificar arquivos no estado staged e unstaged
56
+ function getGitStatus() {
57
+ const staged = execSync('git diff --name-only --cached')
58
+ .toString()
59
+ .trim()
60
+ .split('\n')
61
+ .filter(Boolean);
62
+ const unstaged = execSync('git diff --name-only')
63
+ .toString()
64
+ .trim()
65
+ .split('\n')
66
+ .filter(Boolean);
67
+ return { staged, unstaged };
68
+ }
69
+ async function ccm() {
70
+ const CODY_PROMPT = `
71
+ Por favor, escreva a mensagem de commit para este diff usando a convenção de Conventional Commits...
72
+ `;
73
+ const prompt = inquirer.createPromptModule();
74
+ // Verifica se o diretório é um repositório Git
75
+ try {
76
+ console.log(chalk.blue('🔄 Verificando se o diretório é um repositório git...'));
77
+ execSync('git rev-parse --is-inside-work-tree', { stdio: 'ignore' });
78
+ }
79
+ catch (error) {
80
+ console.error(chalk.red('❌ Este diretório não é um repositório git.'));
81
+ return;
82
+ }
83
+ // Obtém status do git
84
+ const { staged, unstaged } = getGitStatus();
85
+ if (staged.length === 0 && unstaged.length === 0) {
86
+ console.log(chalk.yellow('⚠️ Nenhuma modificação detectada no repositório.'));
87
+ return;
88
+ }
89
+ if (staged.length === 0 && unstaged.length > 0) {
90
+ console.log(chalk.yellow('📂 Há arquivos modificados fora da staged:'));
91
+ console.log(unstaged.map((file) => ` - ${file}`).join('\n'));
92
+ const { addAll } = await prompt([
93
+ {
94
+ type: 'confirm',
95
+ name: 'addAll',
96
+ message: 'Deseja adicionar todos os arquivos ao staged?',
97
+ },
98
+ ]);
99
+ if (addAll) {
100
+ execSync('git add .');
101
+ console.log(chalk.green('✅ Todos os arquivos foram adicionados à staged.'));
102
+ }
103
+ else {
104
+ console.log(chalk.red('❌ Nenhum arquivo foi adicionado à staged. Operação cancelada.'));
105
+ return;
106
+ }
107
+ }
108
+ else if (staged.length > 0 && unstaged.length > 0) {
109
+ console.log(chalk.blue('📂 Arquivos na staged:'));
110
+ console.log(staged.map((file) => ` - ${file}`).join('\n'));
111
+ console.log(chalk.yellow('📂 Arquivos fora da staged:'));
112
+ console.log(unstaged.map((file) => ` - ${file}`).join('\n'));
113
+ const { addUnstaged } = await prompt([
114
+ {
115
+ type: 'confirm',
116
+ name: 'addUnstaged',
117
+ message: 'Deseja adicionar os arquivos fora da staged?',
118
+ },
119
+ ]);
120
+ if (addUnstaged) {
121
+ execSync('git add .');
122
+ console.log(chalk.green('✅ Todos os arquivos foram adicionados à staged.'));
123
+ }
124
+ }
125
+ // Confirma se há arquivos na staged após as alterações
126
+ const finalStatus = getGitStatus();
127
+ if (finalStatus.staged.length === 0) {
128
+ console.log(chalk.red('❌ Nenhum arquivo na staged. Operação cancelada.'));
129
+ return;
130
+ }
131
+ // Cria arquivos temporários para armazenar o prompt e o diff
132
+ const tempPromptPath = path.join(os.tmpdir(), 'CODY_PROMPT.txt');
133
+ const tempDiffPath = path.join(os.tmpdir(), 'CODY_DIFF.patch');
134
+ fs.writeFileSync(tempPromptPath, CODY_PROMPT);
135
+ fs.writeFileSync(tempDiffPath, execSync('git diff --cached').toString());
136
+ // Gera a mensagem do commit usando o diff salvo no arquivo temporário
137
+ let generatedMessage;
138
+ try {
139
+ console.log(chalk.blue.bold('⌛ Gerando mensagem de commit com o Cody...'));
140
+ const response = execSync(`cody chat --context-file ${tempDiffPath} --stdin -m "$(cat ${tempPromptPath})"`).toString();
141
+ // Extrai o bloco de código delimitado por ``` usando regex
142
+ const match = response.match(/```([\s\S]*?)```/);
143
+ generatedMessage = match ? match[1].trim() : response.trim();
144
+ console.log(chalk.greenBright('\n✨ Mensagem de commit gerada automaticamente:'));
145
+ console.log(chalk.yellowBright(generatedMessage));
146
+ }
147
+ catch (error) {
148
+ console.error(chalk.red('❌ Erro ao gerar mensagem de commit com o Cody:'), error.message);
149
+ return;
150
+ }
151
+ finally {
152
+ fs.unlinkSync(tempPromptPath); // Remove o arquivo temporário do prompt
153
+ fs.unlinkSync(tempDiffPath); // Remove o arquivo temporário do diff
154
+ }
155
+ // Pergunta ao usuário se ele quer editar, confirmar ou cancelar o commit
156
+ const { action } = await prompt([
157
+ {
158
+ type: 'list',
159
+ name: 'action',
160
+ message: chalk.blue.bold('O que deseja fazer com a mensagem de commit gerada?'),
161
+ choices: [
162
+ { name: '📌 Confirmar e commitar', value: 'confirm' },
163
+ { name: '📝 Editar a mensagem antes de commitar', value: 'edit' },
164
+ { name: '🚫 Cancelar o commit', value: 'cancel' },
165
+ ],
166
+ },
167
+ ]);
168
+ // Caminho temporário para salvar a mensagem gerada
169
+ const tempFilePath = path.join(os.tmpdir(), 'COMMIT_EDITMSG');
170
+ fs.writeFileSync(tempFilePath, generatedMessage);
171
+ if (action === 'edit') {
172
+ console.log(chalk.cyan('📝 Abrindo editor para edição da mensagem...'));
173
+ const editor = process.env.EDITOR || 'nano';
174
+ try {
175
+ execSync(`${editor} ${tempFilePath}`, { stdio: 'inherit' });
176
+ }
177
+ catch (error) {
178
+ console.error(chalk.red('❌ Erro ao abrir o editor:'), error.message);
179
+ return;
180
+ }
181
+ }
182
+ else if (action === 'cancel') {
183
+ console.log(chalk.yellow('🚫 Commit cancelado pelo usuário.'));
184
+ fs.unlinkSync(tempFilePath);
185
+ return;
186
+ }
187
+ // Lê a mensagem do arquivo temporário após a edição
188
+ const finalMessage = fs.readFileSync(tempFilePath, 'utf8').trim();
189
+ // Verifica se a mensagem está vazia
190
+ if (!finalMessage) {
191
+ console.log(chalk.red('❌ Nenhuma mensagem inserida, commit cancelado.'));
192
+ fs.unlinkSync(tempFilePath);
193
+ return;
194
+ }
195
+ // Realiza o commit com a mensagem final
196
+ try {
197
+ execSync(`git commit -F ${tempFilePath}`);
198
+ console.log(chalk.green.bold('✅ Commit realizado com sucesso.'));
199
+ }
200
+ catch (error) {
201
+ console.error(chalk.red('❌ Erro ao realizar o commit:'), error.message);
202
+ }
203
+ finally {
204
+ fs.unlinkSync(tempFilePath);
205
+ }
206
+ }
207
+ // Chama a função principal
208
+ ccm().catch((err) => console.error(chalk.red('❌ Erro durante o commit:'), err)).finally(() => {
209
+ // delete the temp files
210
+ fs.unlinkSync(path.join(os.tmpdir(), 'CODY_PROMPT.txt'));
211
+ fs.unlinkSync(path.join(os.tmpdir(), 'CODY_DIFF.patch'));
212
+ fs.unlinkSync(path.join(os.tmpdir(), 'COMMIT_EDITMSG'));
213
+ console.log(chalk.green('✅ Todos os arquivos temporários removidos.'));
214
+ });
215
+ //# sourceMappingURL=index%20copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index copy.js","sourceRoot":"","sources":["../src/index copy.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -84,7 +84,7 @@ Lembre-se: os textos fora do Conventional Commit devem ser em português.
84
84
  `;
85
85
  async function ccm() {
86
86
  const prompt = inquirer.createPromptModule();
87
- // verifica se o repositório git está inicializado
87
+ // Verifica se o repositório git está inicializado
88
88
  try {
89
89
  console.log(chalk.blue('🔄 Verificando se o diretório é um repositório git...'));
90
90
  execSync('git rev-parse --is-inside-work-tree', { stdio: 'ignore' });
@@ -93,13 +93,17 @@ async function ccm() {
93
93
  console.error(chalk.red('❌ Este diretório não é um repositório git.'));
94
94
  return;
95
95
  }
96
- // Adiciona todos os arquivos modificados ao índice
97
- execSync('git add .');
96
+ // Verifica se alterações staged
97
+ const stagedChanges = execSync('git diff --cached --name-only').toString().trim();
98
+ if (!stagedChanges) {
99
+ console.log(chalk.yellow('⚠️ Não há alterações staged para o commit.'));
100
+ return;
101
+ }
98
102
  // Cria arquivos temporários para armazenar o prompt e o diff
99
103
  const tempPromptPath = path.join(os.tmpdir(), 'CODY_PROMPT.txt');
100
104
  const tempDiffPath = path.join(os.tmpdir(), 'CODY_DIFF.patch');
101
105
  fs.writeFileSync(tempPromptPath, CODY_PROMPT);
102
- fs.writeFileSync(tempDiffPath, execSync('git diff --cached').toString());
106
+ fs.writeFileSync(tempDiffPath, execSync("git diff --cached --ignore-all-space | grep '^[+-]'").toString());
103
107
  // Gera a mensagem do commit usando o diff salvo no arquivo temporário
104
108
  let generatedMessage;
105
109
  try {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gilbert_oliveira/commit-wizard",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "description": "O **Commit Wizard** é uma ferramenta automatizada para geração de mensagens de commit com base na convenção de **Conventional Commits**. Ele ajuda a garantir que suas mensagens de commit sigam um padrão consistente e facilite a comunicação de mudanças no código.",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
package/src/index.ts CHANGED
@@ -93,7 +93,7 @@ interface CommitAction {
93
93
  async function ccm(): Promise<void> {
94
94
  const prompt = inquirer.createPromptModule();
95
95
 
96
- // verifica se o repositório git está inicializado
96
+ // Verifica se o repositório git está inicializado
97
97
  try {
98
98
  console.log(chalk.blue('🔄 Verificando se o diretório é um repositório git...'));
99
99
  execSync('git rev-parse --is-inside-work-tree', { stdio: 'ignore' });
@@ -102,14 +102,18 @@ async function ccm(): Promise<void> {
102
102
  return;
103
103
  }
104
104
 
105
- // Adiciona todos os arquivos modificados ao índice
106
- execSync('git add .');
105
+ // Verifica se alterações staged
106
+ const stagedChanges = execSync('git diff --cached --name-only').toString().trim();
107
+ if (!stagedChanges) {
108
+ console.log(chalk.yellow('⚠️ Não há alterações staged para o commit.'));
109
+ return;
110
+ }
107
111
 
108
112
  // Cria arquivos temporários para armazenar o prompt e o diff
109
113
  const tempPromptPath = path.join(os.tmpdir(), 'CODY_PROMPT.txt');
110
114
  const tempDiffPath = path.join(os.tmpdir(), 'CODY_DIFF.patch');
111
115
  fs.writeFileSync(tempPromptPath, CODY_PROMPT);
112
- fs.writeFileSync(tempDiffPath, execSync('git diff --cached').toString());
116
+ fs.writeFileSync(tempDiffPath, execSync("git diff --cached --ignore-all-space | grep '^[+-]'").toString());
113
117
 
114
118
  // Gera a mensagem do commit usando o diff salvo no arquivo temporário
115
119
  let generatedMessage: string;