@mehmetsagir/git-ai 0.0.8 ā 0.0.18
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 +91 -319
- package/dist/commit.d.ts +1 -4
- package/dist/commit.d.ts.map +1 -1
- package/dist/commit.js +214 -208
- package/dist/commit.js.map +1 -1
- package/dist/config.d.ts +0 -39
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -95
- package/dist/config.js.map +1 -1
- package/dist/git.d.ts +19 -51
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +137 -269
- package/dist/git.js.map +1 -1
- package/dist/index.js +54 -109
- package/dist/index.js.map +1 -1
- package/dist/openai.d.ts +2 -21
- package/dist/openai.d.ts.map +1 -1
- package/dist/openai.js +17 -96
- package/dist/openai.js.map +1 -1
- package/dist/prompts.d.ts +2 -16
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +32 -146
- package/dist/prompts.js.map +1 -1
- package/dist/reset.d.ts +0 -3
- package/dist/reset.d.ts.map +1 -1
- package/dist/reset.js +10 -20
- package/dist/reset.js.map +1 -1
- package/dist/setup.d.ts +0 -3
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +28 -156
- package/dist/setup.js.map +1 -1
- package/dist/stash.d.ts +2 -0
- package/dist/stash.d.ts.map +1 -0
- package/dist/stash.js +818 -0
- package/dist/stash.js.map +1 -0
- package/dist/types.d.ts +9 -23
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/hunk-parser.d.ts +22 -0
- package/dist/utils/hunk-parser.d.ts.map +1 -0
- package/dist/utils/hunk-parser.js +155 -0
- package/dist/utils/hunk-parser.js.map +1 -0
- package/package.json +12 -8
- package/dist/add.d.ts +0 -5
- package/dist/add.d.ts.map +0 -1
- package/dist/add.js +0 -98
- package/dist/add.js.map +0 -1
- package/dist/commit-processor.d.ts +0 -6
- package/dist/commit-processor.d.ts.map +0 -1
- package/dist/commit-processor.js +0 -226
- package/dist/commit-processor.js.map +0 -1
- package/dist/update.d.ts +0 -9
- package/dist/update.d.ts.map +0 -1
- package/dist/update.js +0 -69
- package/dist/update.js.map +0 -1
- package/dist/user-management.d.ts +0 -10
- package/dist/user-management.d.ts.map +0 -1
- package/dist/user-management.js +0 -175
- package/dist/user-management.js.map +0 -1
- package/dist/users.d.ts +0 -9
- package/dist/users.d.ts.map +0 -1
- package/dist/users.js +0 -129
- package/dist/users.js.map +0 -1
- package/dist/utils/validation.d.ts +0 -24
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/validation.js +0 -81
- package/dist/utils/validation.js.map +0 -1
package/dist/commit.js
CHANGED
|
@@ -43,249 +43,255 @@ const ora_1 = __importDefault(require("ora"));
|
|
|
43
43
|
const config = __importStar(require("./config"));
|
|
44
44
|
const git = __importStar(require("./git"));
|
|
45
45
|
const openai = __importStar(require("./openai"));
|
|
46
|
-
const
|
|
46
|
+
const hunk_parser_1 = require("./utils/hunk-parser");
|
|
47
47
|
const errors_1 = require("./utils/errors");
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
console.log(chalk_1.default.yellow("ā Configuration not found. Please run setup first.\n"));
|
|
55
|
-
console.log(chalk_1.default.blue("Run: git-ai setup\n"));
|
|
48
|
+
async function runCommit() {
|
|
49
|
+
console.log(chalk_1.default.blue.bold("\nš¤ Git AI\n"));
|
|
50
|
+
// Check config
|
|
51
|
+
const apiKey = config.getOpenAIKey();
|
|
52
|
+
if (!apiKey) {
|
|
53
|
+
console.log(chalk_1.default.yellow("ā Setup required. Run: git-ai setup\n"));
|
|
56
54
|
return;
|
|
57
55
|
}
|
|
58
|
-
|
|
59
|
-
if (!
|
|
60
|
-
console.log(chalk_1.default.
|
|
61
|
-
console.log(chalk_1.default.blue("Run: git-ai setup\n"));
|
|
56
|
+
// Check git repo
|
|
57
|
+
if (!(await git.isGitRepository())) {
|
|
58
|
+
console.log(chalk_1.default.red("ā Not a git repository\n"));
|
|
62
59
|
return;
|
|
63
60
|
}
|
|
64
|
-
|
|
65
|
-
if (!
|
|
66
|
-
console.log(chalk_1.default.
|
|
61
|
+
// Check for changes
|
|
62
|
+
if (!(await git.hasChanges())) {
|
|
63
|
+
console.log(chalk_1.default.yellow("ā No changes to commit\n"));
|
|
67
64
|
return;
|
|
68
65
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
let
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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}`));
|
|
66
|
+
// Get ALL changed files from git status (including untracked)
|
|
67
|
+
const allChangedFiles = await git.getChangedFiles();
|
|
68
|
+
const allFilePaths = new Set(allChangedFiles.map(f => f.file));
|
|
69
|
+
// Get diff and parse into hunks
|
|
70
|
+
const spinner = (0, ora_1.default)("Analyzing changes...").start();
|
|
71
|
+
let fileDiffs;
|
|
72
|
+
let formattedDiff;
|
|
73
|
+
let stats;
|
|
74
|
+
try {
|
|
75
|
+
// Get diff for tracked files
|
|
76
|
+
const rawDiff = await git.getFullDiff();
|
|
77
|
+
// Parse tracked file diffs
|
|
78
|
+
fileDiffs = rawDiff.trim() ? (0, hunk_parser_1.parseDiff)(rawDiff) : [];
|
|
79
|
+
// Add untracked files that weren't in diff
|
|
80
|
+
const parsedFiles = new Set(fileDiffs.map(f => f.file));
|
|
81
|
+
for (const fileInfo of allChangedFiles) {
|
|
82
|
+
if (!parsedFiles.has(fileInfo.file)) {
|
|
83
|
+
// This is an untracked file, add it as a simple entry
|
|
84
|
+
fileDiffs.push({
|
|
85
|
+
file: fileInfo.file,
|
|
86
|
+
isNew: fileInfo.status === "new",
|
|
87
|
+
isDeleted: fileInfo.status === "deleted",
|
|
88
|
+
isBinary: fileInfo.isBinary,
|
|
89
|
+
hunks: [{
|
|
90
|
+
file: fileInfo.file,
|
|
91
|
+
index: 0,
|
|
92
|
+
header: fileInfo.status === "new" ? "[NEW]" : "[FILE]",
|
|
93
|
+
content: "",
|
|
94
|
+
summary: fileInfo.status === "new" ? "New file" :
|
|
95
|
+
fileInfo.status === "deleted" ? "Deleted file" : "Modified file"
|
|
96
|
+
}]
|
|
115
97
|
});
|
|
116
|
-
console.log(chalk_1.default.blue("\nUsage: git-ai commit --user <shortcut|email|id>\n"));
|
|
117
|
-
return;
|
|
118
98
|
}
|
|
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: ${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: ${selectedUser.name} <${selectedUser.email}>\n`));
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
// Verify current git config matches selected user
|
|
171
|
-
if (selectedUser) {
|
|
172
|
-
try {
|
|
173
|
-
const currentGitUser = await git.getGitUserInfo();
|
|
174
|
-
if (currentGitUser.name !== selectedUser.name ||
|
|
175
|
-
currentGitUser.email !== selectedUser.email) {
|
|
176
|
-
console.log(chalk_1.default.yellow(`ā Git user will be changed to: ${selectedUser.name} <${selectedUser.email}>\n`));
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
catch (error) {
|
|
180
|
-
// Continue even if we can't verify
|
|
181
99
|
}
|
|
100
|
+
formattedDiff = (0, hunk_parser_1.formatForAI)(fileDiffs);
|
|
101
|
+
stats = (0, hunk_parser_1.getStats)(fileDiffs);
|
|
102
|
+
const totalHunks = fileDiffs.reduce((sum, f) => sum + f.hunks.length, 0);
|
|
103
|
+
spinner.succeed(`Found ${fileDiffs.length} file(s), ${totalHunks} change(s)`);
|
|
182
104
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
const unstagedFiles = allChangedFiles.filter((file) => !stagedFiles.includes(file));
|
|
187
|
-
if (stagedFiles.length > 0) {
|
|
188
|
-
console.log(chalk_1.default.blue(`š¦ Found ${stagedFiles.length} staged file(s). These will be analyzed and committed.\n`));
|
|
189
|
-
if (unstagedFiles.length > 0) {
|
|
190
|
-
console.log(chalk_1.default.blue(`š Also found ${unstagedFiles.length} unstaged file(s). These will be analyzed together.\n`));
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
else if (unstagedFiles.length > 0) {
|
|
194
|
-
console.log(chalk_1.default.blue(`š No staged files. Found ${unstagedFiles.length} unstaged file(s). These will be analyzed and committed.\n`));
|
|
105
|
+
catch (error) {
|
|
106
|
+
spinner.fail(`Error: ${(0, errors_1.getErrorMessage)(error)}`);
|
|
107
|
+
return;
|
|
195
108
|
}
|
|
196
|
-
|
|
197
|
-
console.log(chalk_1.default.yellow("ā No changes found
|
|
109
|
+
if (fileDiffs.length === 0) {
|
|
110
|
+
console.log(chalk_1.default.yellow("ā No changes found\n"));
|
|
198
111
|
return;
|
|
199
112
|
}
|
|
200
|
-
|
|
201
|
-
|
|
113
|
+
// Show files
|
|
114
|
+
console.log(chalk_1.default.gray("\nChanges:"));
|
|
115
|
+
for (const file of fileDiffs) {
|
|
116
|
+
const icon = file.isNew ? "+" : file.isDeleted ? "-" : "~";
|
|
117
|
+
const suffix = file.isBinary ? " (binary)" : "";
|
|
118
|
+
console.log(chalk_1.default.gray(` ${icon} ${file.file}${suffix}`));
|
|
119
|
+
}
|
|
120
|
+
console.log();
|
|
121
|
+
// Analyze with AI
|
|
122
|
+
const aiSpinner = (0, ora_1.default)("Grouping with AI...").start();
|
|
123
|
+
let result;
|
|
202
124
|
try {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
const hasStaged = diffData.staged && diffData.staged.trim().length > 0;
|
|
206
|
-
const hasUnstaged = diffData.unstaged && diffData.unstaged.trim().length > 0;
|
|
207
|
-
if (!hasStaged && !hasUnstaged) {
|
|
208
|
-
diffSpinner.fail("No diff content found");
|
|
209
|
-
console.log(chalk_1.default.yellow(`ā¹ Found ${allChangedFiles.length} file(s) but no diff content (may be renames/permissions only).\n`));
|
|
210
|
-
return;
|
|
211
|
-
}
|
|
212
|
-
// Combine staged and unstaged diffs
|
|
213
|
-
if (!hasStaged && hasUnstaged) {
|
|
214
|
-
diffData.all = diffData.unstaged;
|
|
215
|
-
}
|
|
216
|
-
else if (hasStaged && !hasUnstaged) {
|
|
217
|
-
diffData.all = diffData.staged;
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
diffData.all = `${diffData.staged}\n${diffData.unstaged}`.trim();
|
|
221
|
-
}
|
|
222
|
-
diffSpinner.succeed("Changes analyzed");
|
|
125
|
+
result = await openai.analyzeAndGroup(formattedDiff, stats, apiKey);
|
|
126
|
+
aiSpinner.succeed(`Created ${result.groups?.length || 0} commit group(s)`);
|
|
223
127
|
}
|
|
224
128
|
catch (error) {
|
|
225
|
-
|
|
129
|
+
aiSpinner.fail(`AI error: ${(0, errors_1.getErrorMessage)(error)}`);
|
|
226
130
|
return;
|
|
227
131
|
}
|
|
228
|
-
if (!
|
|
229
|
-
|
|
132
|
+
if (!result.groups || result.groups.length === 0) {
|
|
133
|
+
console.log(chalk_1.default.yellow("ā Could not create commit groups\n"));
|
|
230
134
|
return;
|
|
231
135
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
136
|
+
// Convert hunk-based groups to file-based groups
|
|
137
|
+
// Each file goes to the FIRST group that references any of its hunks
|
|
138
|
+
const fileToGroup = new Map();
|
|
139
|
+
const fileBasedGroups = [];
|
|
140
|
+
for (const group of result.groups) {
|
|
141
|
+
const filesInGroup = [];
|
|
142
|
+
for (const hunk of group.hunks) {
|
|
143
|
+
// If this file hasn't been assigned yet, assign to this group
|
|
144
|
+
if (!fileToGroup.has(hunk.file) && allFilePaths.has(hunk.file)) {
|
|
145
|
+
fileToGroup.set(hunk.file, group.number);
|
|
146
|
+
filesInGroup.push(hunk.file);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
if (filesInGroup.length > 0) {
|
|
150
|
+
fileBasedGroups.push({
|
|
151
|
+
number: group.number,
|
|
152
|
+
description: group.description,
|
|
153
|
+
files: filesInGroup,
|
|
154
|
+
commitMessage: group.commitMessage,
|
|
155
|
+
commitBody: group.commitBody,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
237
158
|
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
159
|
+
// Find files that weren't assigned to any group
|
|
160
|
+
const assignedFiles = new Set(fileToGroup.keys());
|
|
161
|
+
const missingFiles = [];
|
|
162
|
+
for (const filePath of allFilePaths) {
|
|
163
|
+
if (!assignedFiles.has(filePath)) {
|
|
164
|
+
missingFiles.push(filePath);
|
|
165
|
+
}
|
|
241
166
|
}
|
|
242
|
-
|
|
243
|
-
|
|
167
|
+
// Add missing files to a catch-all group
|
|
168
|
+
if (missingFiles.length > 0) {
|
|
169
|
+
const nextGroupNumber = fileBasedGroups.length > 0
|
|
170
|
+
? Math.max(...fileBasedGroups.map(g => g.number)) + 1
|
|
171
|
+
: 1;
|
|
172
|
+
fileBasedGroups.push({
|
|
173
|
+
number: nextGroupNumber,
|
|
174
|
+
description: "Remaining changes",
|
|
175
|
+
files: missingFiles,
|
|
176
|
+
commitMessage: "chore: update remaining files",
|
|
177
|
+
commitBody: undefined,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
if (fileBasedGroups.length === 0) {
|
|
181
|
+
console.log(chalk_1.default.yellow("ā No valid commit groups\n"));
|
|
244
182
|
return;
|
|
245
183
|
}
|
|
246
|
-
|
|
247
|
-
console.log(chalk_1.default.blue("š Commit Plan:\n"));
|
|
248
|
-
|
|
249
|
-
console.log(chalk_1.default.cyan(
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
if (group.commitBody) {
|
|
253
|
-
const bodyLines = group.commitBody.split("\n");
|
|
254
|
-
bodyLines.forEach((line) => {
|
|
255
|
-
console.log(chalk_1.default.gray(` ${line}`));
|
|
256
|
-
});
|
|
184
|
+
// Show commit plan
|
|
185
|
+
console.log(chalk_1.default.blue("\nš Commit Plan:\n"));
|
|
186
|
+
for (const group of fileBasedGroups) {
|
|
187
|
+
console.log(chalk_1.default.cyan(`${group.number}. ${group.description}`));
|
|
188
|
+
for (const file of group.files) {
|
|
189
|
+
console.log(chalk_1.default.gray(` ${file}`));
|
|
257
190
|
}
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
191
|
+
console.log(chalk_1.default.yellow(` ā ${group.commitMessage}`));
|
|
192
|
+
console.log();
|
|
193
|
+
}
|
|
194
|
+
// Get approval
|
|
195
|
+
const { approved } = await inquirer_1.default.prompt([
|
|
261
196
|
{
|
|
262
197
|
type: "confirm",
|
|
263
|
-
name: "
|
|
264
|
-
message: "
|
|
198
|
+
name: "approved",
|
|
199
|
+
message: "Proceed with commits?",
|
|
265
200
|
default: true,
|
|
266
201
|
},
|
|
267
202
|
]);
|
|
268
|
-
if (!
|
|
269
|
-
console.log(chalk_1.default.yellow("\nā
|
|
203
|
+
if (!approved) {
|
|
204
|
+
console.log(chalk_1.default.yellow("\nā Cancelled\n"));
|
|
270
205
|
return;
|
|
271
206
|
}
|
|
272
|
-
|
|
273
|
-
console.log(chalk_1.default.blue
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
207
|
+
// Process commits
|
|
208
|
+
console.log(chalk_1.default.blue("\nš¦ Creating commits...\n"));
|
|
209
|
+
const results = await processCommits(fileBasedGroups);
|
|
210
|
+
// Summary
|
|
211
|
+
const successful = results.filter((r) => r.success).length;
|
|
212
|
+
const failed = results.filter((r) => !r.success).length;
|
|
213
|
+
console.log(chalk_1.default.blue.bold("\nš Summary\n"));
|
|
214
|
+
console.log(chalk_1.default.green(`ā ${successful} commit(s) created`));
|
|
215
|
+
if (failed > 0) {
|
|
216
|
+
console.log(chalk_1.default.red(`ā ${failed} failed`));
|
|
217
|
+
results
|
|
218
|
+
.filter((r) => !r.success)
|
|
219
|
+
.forEach((r) => {
|
|
220
|
+
console.log(chalk_1.default.red(` - Group ${r.group}: ${r.error}`));
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
console.log(chalk_1.default.yellow("\nā Don't forget to push: git push\n"));
|
|
224
|
+
}
|
|
225
|
+
async function processCommits(groups) {
|
|
226
|
+
const results = [];
|
|
227
|
+
const committedFiles = new Set();
|
|
228
|
+
// First, unstage everything
|
|
229
|
+
await git.unstageAll();
|
|
230
|
+
for (const group of groups) {
|
|
231
|
+
// Filter to only files that haven't been committed yet
|
|
232
|
+
const filesToCommit = group.files.filter((f) => !committedFiles.has(f));
|
|
233
|
+
if (filesToCommit.length === 0) {
|
|
234
|
+
console.log(chalk_1.default.yellow(`ā Group ${group.number}: No files to commit, skipping`));
|
|
235
|
+
results.push({
|
|
236
|
+
group: group.number,
|
|
237
|
+
message: group.commitMessage,
|
|
238
|
+
hunks: [],
|
|
239
|
+
success: false,
|
|
240
|
+
error: "No valid files",
|
|
241
|
+
});
|
|
242
|
+
continue;
|
|
243
|
+
}
|
|
244
|
+
const commitSpinner = (0, ora_1.default)(`Group ${group.number}: ${group.commitMessage}`).start();
|
|
245
|
+
try {
|
|
246
|
+
// Stage files for this group
|
|
247
|
+
await git.stageFiles(filesToCommit);
|
|
248
|
+
// Verify files are staged
|
|
249
|
+
const staged = await git.getStagedFiles();
|
|
250
|
+
if (staged.length === 0) {
|
|
251
|
+
commitSpinner.fail(`Group ${group.number}: No files staged`);
|
|
252
|
+
results.push({
|
|
253
|
+
group: group.number,
|
|
254
|
+
message: group.commitMessage,
|
|
255
|
+
hunks: filesToCommit.map((f) => ({ file: f, hunkIndex: 0 })),
|
|
256
|
+
success: false,
|
|
257
|
+
error: "Failed to stage files",
|
|
258
|
+
});
|
|
259
|
+
continue;
|
|
282
260
|
}
|
|
283
|
-
|
|
284
|
-
|
|
261
|
+
// Create commit
|
|
262
|
+
const message = group.commitBody
|
|
263
|
+
? `${group.commitMessage}\n\n${group.commitBody}`
|
|
264
|
+
: group.commitMessage;
|
|
265
|
+
await git.createCommit(message);
|
|
266
|
+
// Mark files as committed
|
|
267
|
+
filesToCommit.forEach((f) => committedFiles.add(f));
|
|
268
|
+
commitSpinner.succeed(`Group ${group.number}: ${group.commitMessage}`);
|
|
269
|
+
console.log(chalk_1.default.gray(` Files: ${filesToCommit.join(", ")}`));
|
|
270
|
+
results.push({
|
|
271
|
+
group: group.number,
|
|
272
|
+
message: group.commitMessage,
|
|
273
|
+
hunks: filesToCommit.map((f) => ({ file: f, hunkIndex: 0 })),
|
|
274
|
+
success: true,
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
catch (error) {
|
|
278
|
+
commitSpinner.fail(`Group ${group.number}: ${(0, errors_1.getErrorMessage)(error)}`);
|
|
279
|
+
results.push({
|
|
280
|
+
group: group.number,
|
|
281
|
+
message: group.commitMessage,
|
|
282
|
+
hunks: filesToCommit.map((f) => ({ file: f, hunkIndex: 0 })),
|
|
283
|
+
success: false,
|
|
284
|
+
error: (0, errors_1.getErrorMessage)(error),
|
|
285
|
+
});
|
|
286
|
+
// Try to unstage for next group
|
|
287
|
+
try {
|
|
288
|
+
await git.unstageAll();
|
|
285
289
|
}
|
|
286
|
-
|
|
290
|
+
catch {
|
|
291
|
+
// Ignore
|
|
292
|
+
}
|
|
293
|
+
}
|
|
287
294
|
}
|
|
288
|
-
|
|
289
|
-
console.log(chalk_1.default.blue("Example: git push origin $(git symbolic-ref --short HEAD)\n"));
|
|
295
|
+
return results;
|
|
290
296
|
}
|
|
291
297
|
//# sourceMappingURL=commit.js.map
|
package/dist/commit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../src/commit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../src/commit.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,44 +1,5 @@
|
|
|
1
|
-
import { Config, GitUserProfile } from "./types";
|
|
2
|
-
declare const CONFIG_FILE: string;
|
|
3
|
-
/**
|
|
4
|
-
* Check if config exists
|
|
5
|
-
*/
|
|
6
1
|
export declare function configExists(): boolean;
|
|
7
|
-
/**
|
|
8
|
-
* Get OpenAI key
|
|
9
|
-
*/
|
|
10
2
|
export declare function getOpenAIKey(): string | null;
|
|
11
|
-
/**
|
|
12
|
-
* Save OpenAI key
|
|
13
|
-
*/
|
|
14
3
|
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
4
|
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
5
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAmCA,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAG5C;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIjD;AAED,wBAAgB,WAAW,IAAI,OAAO,CASrC"}
|