@mehmetsagir/git-ai 0.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/README.md +365 -0
- package/bin/git-ai +4 -0
- package/dist/add.d.ts +5 -0
- package/dist/add.d.ts.map +1 -0
- package/dist/add.js +98 -0
- package/dist/add.js.map +1 -0
- package/dist/commit-processor.d.ts +6 -0
- package/dist/commit-processor.d.ts.map +1 -0
- package/dist/commit-processor.js +138 -0
- package/dist/commit-processor.js.map +1 -0
- package/dist/commit.d.ts +5 -0
- package/dist/commit.d.ts.map +1 -0
- package/dist/commit.js +245 -0
- package/dist/commit.js.map +1 -0
- package/dist/config.d.ts +44 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +185 -0
- package/dist/config.js.map +1 -0
- package/dist/git.d.ts +54 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +256 -0
- package/dist/git.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +138 -0
- package/dist/index.js.map +1 -0
- package/dist/openai.d.ts +22 -0
- package/dist/openai.d.ts.map +1 -0
- package/dist/openai.js +137 -0
- package/dist/openai.js.map +1 -0
- package/dist/prompts.d.ts +17 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +117 -0
- package/dist/prompts.js.map +1 -0
- package/dist/reset.d.ts +5 -0
- package/dist/reset.d.ts.map +1 -0
- package/dist/reset.js +77 -0
- package/dist/reset.js.map +1 -0
- package/dist/setup.d.ts +5 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +234 -0
- package/dist/setup.js.map +1 -0
- package/dist/types.d.ts +41 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/user-management.d.ts +10 -0
- package/dist/user-management.d.ts.map +1 -0
- package/dist/user-management.js +225 -0
- package/dist/user-management.js.map +1 -0
- package/dist/users.d.ts +9 -0
- package/dist/users.d.ts.map +1 -0
- package/dist/users.js +129 -0
- package/dist/users.js.map +1 -0
- package/package.json +46 -0
package/dist/commit.js
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.runCommit = runCommit;
|
|
40
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
41
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
+
const ora_1 = __importDefault(require("ora"));
|
|
43
|
+
const config = __importStar(require("./config"));
|
|
44
|
+
const git = __importStar(require("./git"));
|
|
45
|
+
const openai = __importStar(require("./openai"));
|
|
46
|
+
const commitProcessor = __importStar(require("./commit-processor"));
|
|
47
|
+
/**
|
|
48
|
+
* Run commit command
|
|
49
|
+
*/
|
|
50
|
+
async function runCommit(userFlag = null) {
|
|
51
|
+
console.log(chalk_1.default.blue.bold('\n🤖 Git Commit AI\n'));
|
|
52
|
+
if (!config.configExists()) {
|
|
53
|
+
console.log(chalk_1.default.yellow('⚠ Configuration not found. Please run setup first.\n'));
|
|
54
|
+
console.log(chalk_1.default.blue('Run: git-ai setup\n'));
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const openaiKey = config.getOpenAIKey();
|
|
58
|
+
if (!openaiKey) {
|
|
59
|
+
console.log(chalk_1.default.yellow('⚠ OpenAI API key not found. Please run setup first.\n'));
|
|
60
|
+
console.log(chalk_1.default.blue('Run: git-ai setup\n'));
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const isRepo = await git.isGitRepository();
|
|
64
|
+
if (!isRepo) {
|
|
65
|
+
console.log(chalk_1.default.red('❌ This directory is not a git repository!\n'));
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const hasChanges = await git.hasChanges();
|
|
69
|
+
if (!hasChanges) {
|
|
70
|
+
console.log(chalk_1.default.yellow('⚠ No changes found to commit.\n'));
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const gitUsers = config.getGitUsers();
|
|
74
|
+
let selectedUser = null;
|
|
75
|
+
if (gitUsers.length === 0) {
|
|
76
|
+
console.log(chalk_1.default.yellow('⚠ No git user profile found. Setup is recommended.\n'));
|
|
77
|
+
try {
|
|
78
|
+
const currentUser = await git.getGitUserInfo();
|
|
79
|
+
if (currentUser.name && currentUser.email) {
|
|
80
|
+
selectedUser = {
|
|
81
|
+
name: currentUser.name,
|
|
82
|
+
email: currentUser.email
|
|
83
|
+
};
|
|
84
|
+
console.log(chalk_1.default.blue(`Using current git user: ${currentUser.name} <${currentUser.email}>\n`));
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
console.log(chalk_1.default.red('❌ Could not get git user info!\n'));
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
const err = error;
|
|
93
|
+
console.log(chalk_1.default.red(`❌ Could not get git user info: ${err.message}\n`));
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
if (userFlag) {
|
|
99
|
+
const userFlagLower = userFlag.toLowerCase().trim();
|
|
100
|
+
let foundUser = gitUsers.find(u => u.shortcut === userFlagLower);
|
|
101
|
+
if (!foundUser) {
|
|
102
|
+
foundUser = gitUsers.find(u => u.id === userFlag ||
|
|
103
|
+
u.id === userFlagLower ||
|
|
104
|
+
u.email === userFlag ||
|
|
105
|
+
u.email.toLowerCase() === userFlagLower);
|
|
106
|
+
}
|
|
107
|
+
if (!foundUser) {
|
|
108
|
+
console.log(chalk_1.default.red(`❌ Git user not found: ${userFlag}\n`));
|
|
109
|
+
console.log(chalk_1.default.blue('Available user profiles:\n'));
|
|
110
|
+
gitUsers.forEach(u => {
|
|
111
|
+
const shortcutInfo = u.shortcut
|
|
112
|
+
? chalk_1.default.yellow(` [shortcut: ${u.shortcut}]`)
|
|
113
|
+
: '';
|
|
114
|
+
console.log(chalk_1.default.cyan(` - ${u.label}${shortcutInfo}`));
|
|
115
|
+
});
|
|
116
|
+
console.log(chalk_1.default.blue('\nUsage: git-ai commit --user <shortcut|email|id>\n'));
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
selectedUser = {
|
|
120
|
+
name: foundUser.name,
|
|
121
|
+
email: foundUser.email
|
|
122
|
+
};
|
|
123
|
+
const shortcutInfo = foundUser.shortcut
|
|
124
|
+
? chalk_1.default.yellow(` (shortcut: ${foundUser.shortcut})`)
|
|
125
|
+
: '';
|
|
126
|
+
console.log(chalk_1.default.blue(`Git user (selected via flag): ${foundUser.name} <${foundUser.email}>${shortcutInfo}\n`));
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
const defaultUserId = config.getDefaultGitUser();
|
|
130
|
+
if (defaultUserId) {
|
|
131
|
+
const defaultUser = gitUsers.find(u => u.id === defaultUserId);
|
|
132
|
+
if (defaultUser) {
|
|
133
|
+
selectedUser = {
|
|
134
|
+
name: defaultUser.name,
|
|
135
|
+
email: defaultUser.email
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (gitUsers.length > 1 && !selectedUser) {
|
|
140
|
+
const { userId } = await inquirer_1.default.prompt([
|
|
141
|
+
{
|
|
142
|
+
type: 'list',
|
|
143
|
+
name: 'userId',
|
|
144
|
+
message: 'Select git user:',
|
|
145
|
+
choices: gitUsers.map(u => ({
|
|
146
|
+
name: u.label,
|
|
147
|
+
value: u.id
|
|
148
|
+
}))
|
|
149
|
+
}
|
|
150
|
+
]);
|
|
151
|
+
const chosenUser = gitUsers.find(u => u.id === userId);
|
|
152
|
+
if (chosenUser) {
|
|
153
|
+
selectedUser = {
|
|
154
|
+
name: chosenUser.name,
|
|
155
|
+
email: chosenUser.email
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
else if (!selectedUser && gitUsers.length > 0) {
|
|
160
|
+
selectedUser = {
|
|
161
|
+
name: gitUsers[0].name,
|
|
162
|
+
email: gitUsers[0].email
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
if (selectedUser) {
|
|
166
|
+
console.log(chalk_1.default.blue(`Git user (default): ${selectedUser.name} <${selectedUser.email}>\n`));
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
const diffSpinner = (0, ora_1.default)('Analyzing changes...').start();
|
|
171
|
+
let diffData;
|
|
172
|
+
try {
|
|
173
|
+
diffData = await git.getAllDiff();
|
|
174
|
+
diffSpinner.succeed('Changes analyzed');
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
const err = error;
|
|
178
|
+
diffSpinner.fail(`Error getting diff: ${err.message}`);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
if (!diffData.all || diffData.all.trim().length === 0) {
|
|
182
|
+
diffSpinner.fail('No diff found to analyze');
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
const aiSpinner = (0, ora_1.default)('🤖 Analyzing diff with OpenAI and creating commit groups...').start();
|
|
186
|
+
let analysisResult;
|
|
187
|
+
try {
|
|
188
|
+
analysisResult = await openai.analyzeDiffAndGroup(diffData.all, openaiKey);
|
|
189
|
+
aiSpinner.succeed(`Analysis complete: ${analysisResult.groups?.length || 0} groups created`);
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
const err = error;
|
|
193
|
+
aiSpinner.fail(`OpenAI analysis error: ${err.message}`);
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
if (!analysisResult.groups || analysisResult.groups.length === 0) {
|
|
197
|
+
console.log(chalk_1.default.yellow('⚠ Could not create groups.\n'));
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
console.log(chalk_1.default.green.bold(`\n✓ ${analysisResult.groups.length} groups created\n`));
|
|
201
|
+
console.log(chalk_1.default.blue('📋 Commit Plan:\n'));
|
|
202
|
+
analysisResult.groups.forEach((group) => {
|
|
203
|
+
console.log(chalk_1.default.cyan(`\nGroup ${group.number}: ${group.description}`));
|
|
204
|
+
console.log(chalk_1.default.gray(`Files: ${group.files.join(', ')}`));
|
|
205
|
+
console.log(chalk_1.default.yellow(`Commit: ${group.commitMessage}`));
|
|
206
|
+
if (group.commitBody) {
|
|
207
|
+
const bodyLines = group.commitBody.split('\n');
|
|
208
|
+
bodyLines.forEach(line => {
|
|
209
|
+
console.log(chalk_1.default.gray(` ${line}`));
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
console.log('\n');
|
|
214
|
+
const { confirm } = await inquirer_1.default.prompt([
|
|
215
|
+
{
|
|
216
|
+
type: 'confirm',
|
|
217
|
+
name: 'confirm',
|
|
218
|
+
message: 'Do you approve this commit plan?',
|
|
219
|
+
default: true
|
|
220
|
+
}
|
|
221
|
+
]);
|
|
222
|
+
if (!confirm) {
|
|
223
|
+
console.log(chalk_1.default.yellow('\n❌ Operation cancelled.\n'));
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
const commitResults = await commitProcessor.processAllCommitGroups(analysisResult.groups, selectedUser);
|
|
227
|
+
console.log(chalk_1.default.blue.bold('\n📊 Summary Report\n'));
|
|
228
|
+
console.log(chalk_1.default.cyan(`Total commits: ${commitResults.filter(r => r.success).length}`));
|
|
229
|
+
console.log(chalk_1.default.cyan(`Successful: ${commitResults.filter(r => r.success).length}`));
|
|
230
|
+
console.log(chalk_1.default.cyan(`Failed: ${commitResults.filter(r => !r.success).length}\n`));
|
|
231
|
+
if (commitResults.length > 0) {
|
|
232
|
+
console.log(chalk_1.default.blue('Commit Details:\n'));
|
|
233
|
+
commitResults.forEach(result => {
|
|
234
|
+
if (result.success) {
|
|
235
|
+
console.log(chalk_1.default.green(` ✓ ${result.message} - ${result.files} files`));
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
console.log(chalk_1.default.red(` ❌ ${result.message} - Error: ${result.error}`));
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
console.log(chalk_1.default.yellow('\n⚠ Note: Commits were not pushed. You can push manually.\n'));
|
|
243
|
+
console.log(chalk_1.default.blue('Example: git push origin $(git symbolic-ref --short HEAD)\n'));
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=commit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../src/commit.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Config, GitUserProfile } from './types';
|
|
2
|
+
declare const CONFIG_FILE: string;
|
|
3
|
+
/**
|
|
4
|
+
* Check if config exists
|
|
5
|
+
*/
|
|
6
|
+
export declare function configExists(): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Get OpenAI key
|
|
9
|
+
*/
|
|
10
|
+
export declare function getOpenAIKey(): string | null;
|
|
11
|
+
/**
|
|
12
|
+
* Save OpenAI key
|
|
13
|
+
*/
|
|
14
|
+
export declare function setOpenAIKey(key: string): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Get git user profiles
|
|
17
|
+
*/
|
|
18
|
+
export declare function getGitUsers(): GitUserProfile[];
|
|
19
|
+
/**
|
|
20
|
+
* Save git user profiles
|
|
21
|
+
*/
|
|
22
|
+
export declare function setGitUsers(users: GitUserProfile[]): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Get default git user
|
|
25
|
+
*/
|
|
26
|
+
export declare function getDefaultGitUser(): string | null;
|
|
27
|
+
/**
|
|
28
|
+
* Save default git user
|
|
29
|
+
*/
|
|
30
|
+
export declare function setDefaultGitUser(userId: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Get all config
|
|
33
|
+
*/
|
|
34
|
+
export declare function getConfig(): Config;
|
|
35
|
+
/**
|
|
36
|
+
* Reset config
|
|
37
|
+
*/
|
|
38
|
+
export declare function resetConfig(): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Remove a git user by ID, email, or shortcut
|
|
41
|
+
*/
|
|
42
|
+
export declare function removeGitUser(identifier: string): boolean;
|
|
43
|
+
export { CONFIG_FILE };
|
|
44
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGjD,QAAA,MAAM,WAAW,QAAuC,CAAC;AAkCzD;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAG5C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIjD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,cAAc,EAAE,CAG9C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAI5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAGjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIzD;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAWrC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAgCzD;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.CONFIG_FILE = void 0;
|
|
37
|
+
exports.configExists = configExists;
|
|
38
|
+
exports.getOpenAIKey = getOpenAIKey;
|
|
39
|
+
exports.setOpenAIKey = setOpenAIKey;
|
|
40
|
+
exports.getGitUsers = getGitUsers;
|
|
41
|
+
exports.setGitUsers = setGitUsers;
|
|
42
|
+
exports.getDefaultGitUser = getDefaultGitUser;
|
|
43
|
+
exports.setDefaultGitUser = setDefaultGitUser;
|
|
44
|
+
exports.getConfig = getConfig;
|
|
45
|
+
exports.resetConfig = resetConfig;
|
|
46
|
+
exports.removeGitUser = removeGitUser;
|
|
47
|
+
const fs = __importStar(require("fs"));
|
|
48
|
+
const path = __importStar(require("path"));
|
|
49
|
+
const os = __importStar(require("os"));
|
|
50
|
+
const CONFIG_DIR = path.join(os.homedir(), '.git-ai');
|
|
51
|
+
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.json');
|
|
52
|
+
exports.CONFIG_FILE = CONFIG_FILE;
|
|
53
|
+
/**
|
|
54
|
+
* Read config file
|
|
55
|
+
*/
|
|
56
|
+
function readConfig() {
|
|
57
|
+
try {
|
|
58
|
+
if (!fs.existsSync(CONFIG_FILE)) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
const content = fs.readFileSync(CONFIG_FILE, 'utf8');
|
|
62
|
+
return JSON.parse(content);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Write config file
|
|
70
|
+
*/
|
|
71
|
+
function writeConfig(config) {
|
|
72
|
+
try {
|
|
73
|
+
if (!fs.existsSync(CONFIG_DIR)) {
|
|
74
|
+
fs.mkdirSync(CONFIG_DIR, { recursive: true });
|
|
75
|
+
}
|
|
76
|
+
fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2), 'utf8');
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
const err = error;
|
|
81
|
+
console.error('Config write error:', err.message);
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Check if config exists
|
|
87
|
+
*/
|
|
88
|
+
function configExists() {
|
|
89
|
+
return fs.existsSync(CONFIG_FILE);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get OpenAI key
|
|
93
|
+
*/
|
|
94
|
+
function getOpenAIKey() {
|
|
95
|
+
const config = readConfig();
|
|
96
|
+
return config?.openaiKey || null;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Save OpenAI key
|
|
100
|
+
*/
|
|
101
|
+
function setOpenAIKey(key) {
|
|
102
|
+
const config = readConfig() || {};
|
|
103
|
+
config.openaiKey = key;
|
|
104
|
+
return writeConfig(config);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Get git user profiles
|
|
108
|
+
*/
|
|
109
|
+
function getGitUsers() {
|
|
110
|
+
const config = readConfig();
|
|
111
|
+
return config?.gitUsers || [];
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Save git user profiles
|
|
115
|
+
*/
|
|
116
|
+
function setGitUsers(users) {
|
|
117
|
+
const config = readConfig() || {};
|
|
118
|
+
config.gitUsers = users;
|
|
119
|
+
return writeConfig(config);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Get default git user
|
|
123
|
+
*/
|
|
124
|
+
function getDefaultGitUser() {
|
|
125
|
+
const config = readConfig();
|
|
126
|
+
return config?.defaultGitUser || null;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Save default git user
|
|
130
|
+
*/
|
|
131
|
+
function setDefaultGitUser(userId) {
|
|
132
|
+
const config = readConfig() || {};
|
|
133
|
+
config.defaultGitUser = userId;
|
|
134
|
+
return writeConfig(config);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Get all config
|
|
138
|
+
*/
|
|
139
|
+
function getConfig() {
|
|
140
|
+
return readConfig() || {};
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Reset config
|
|
144
|
+
*/
|
|
145
|
+
function resetConfig() {
|
|
146
|
+
try {
|
|
147
|
+
if (fs.existsSync(CONFIG_FILE)) {
|
|
148
|
+
fs.unlinkSync(CONFIG_FILE);
|
|
149
|
+
}
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
const err = error;
|
|
154
|
+
console.error('Config reset error:', err.message);
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Remove a git user by ID, email, or shortcut
|
|
160
|
+
*/
|
|
161
|
+
function removeGitUser(identifier) {
|
|
162
|
+
const config = readConfig();
|
|
163
|
+
if (!config || !config.gitUsers) {
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
const identifierLower = identifier.toLowerCase().trim();
|
|
167
|
+
const users = config.gitUsers;
|
|
168
|
+
const userIndex = users.findIndex(u => u.id === identifier ||
|
|
169
|
+
u.id === identifierLower ||
|
|
170
|
+
u.email === identifier ||
|
|
171
|
+
u.email.toLowerCase() === identifierLower ||
|
|
172
|
+
u.shortcut === identifierLower);
|
|
173
|
+
if (userIndex === -1) {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
const removedUser = users[userIndex];
|
|
177
|
+
const wasDefault = config.defaultGitUser === removedUser.id;
|
|
178
|
+
users.splice(userIndex, 1);
|
|
179
|
+
config.gitUsers = users;
|
|
180
|
+
if (wasDefault) {
|
|
181
|
+
config.defaultGitUser = users.length > 0 ? users[0].id : null;
|
|
182
|
+
}
|
|
183
|
+
return writeConfig(config);
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/git.d.ts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { DiffData, GitUserInfo, GitUserProfile } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Get staged changes
|
|
4
|
+
*/
|
|
5
|
+
export declare function getStagedDiff(): Promise<string>;
|
|
6
|
+
/**
|
|
7
|
+
* Get unstaged changes
|
|
8
|
+
*/
|
|
9
|
+
export declare function getUnstagedDiff(): Promise<string>;
|
|
10
|
+
/**
|
|
11
|
+
* Get all changes (staged + unstaged)
|
|
12
|
+
*/
|
|
13
|
+
export declare function getAllDiff(): Promise<DiffData>;
|
|
14
|
+
/**
|
|
15
|
+
* Check if there are changes
|
|
16
|
+
*/
|
|
17
|
+
export declare function hasChanges(): Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Get git user info (global and local)
|
|
20
|
+
*/
|
|
21
|
+
export declare function getGitUserInfo(): Promise<GitUserInfo>;
|
|
22
|
+
/**
|
|
23
|
+
* Collect user profiles from all git configs
|
|
24
|
+
*/
|
|
25
|
+
export declare function getAllGitUserProfiles(): Promise<GitUserProfile[]>;
|
|
26
|
+
/**
|
|
27
|
+
* Set git user
|
|
28
|
+
*/
|
|
29
|
+
export declare function setGitUser(name: string, email: string, scope?: 'global' | 'local'): Promise<boolean>;
|
|
30
|
+
/**
|
|
31
|
+
* Stage files
|
|
32
|
+
*/
|
|
33
|
+
export declare function stageFiles(files: string[]): Promise<boolean>;
|
|
34
|
+
/**
|
|
35
|
+
* Unstage all staged files
|
|
36
|
+
*/
|
|
37
|
+
export declare function unstageAll(): Promise<boolean>;
|
|
38
|
+
/**
|
|
39
|
+
* Create commit
|
|
40
|
+
*/
|
|
41
|
+
export declare function createCommit(message: string, authorName?: string | null, authorEmail?: string | null): Promise<boolean>;
|
|
42
|
+
/**
|
|
43
|
+
* List staged files
|
|
44
|
+
*/
|
|
45
|
+
export declare function getStagedFiles(): Promise<string[]>;
|
|
46
|
+
/**
|
|
47
|
+
* List all changed files
|
|
48
|
+
*/
|
|
49
|
+
export declare function getAllChangedFiles(): Promise<string[]>;
|
|
50
|
+
/**
|
|
51
|
+
* Check if git repository
|
|
52
|
+
*/
|
|
53
|
+
export declare function isGitRepository(): Promise<boolean>;
|
|
54
|
+
//# sourceMappingURL=git.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAShE;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CASrD;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CASvD;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC,CAapD;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CASnD;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAa3D;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CA+CvE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,QAAQ,GAAG,OAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAUnH;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CASlE;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CASnD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,GAAG,IAAW,EAAE,WAAW,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAazI;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CASxD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAS5D;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAQxD"}
|