geeto 0.9.0 → 0.9.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/lib/api/copilot-sdk.d.ts.map +1 -1
- package/lib/api/copilot-sdk.js +51 -29
- package/lib/api/copilot-sdk.js.map +1 -1
- package/lib/core/copilot-setup.d.ts +1 -1
- package/lib/core/copilot-setup.d.ts.map +1 -1
- package/lib/core/copilot-setup.js +22 -34
- package/lib/core/copilot-setup.js.map +1 -1
- package/lib/index.js +17 -0
- package/lib/index.js.map +1 -1
- package/lib/utils/exec.d.ts.map +1 -1
- package/lib/utils/exec.js +10 -2
- package/lib/utils/exec.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/workflows/release-merge.d.ts.map +1 -1
- package/lib/workflows/release-merge.js +25 -1
- package/lib/workflows/release-merge.js.map +1 -1
- package/lib/workflows/release-sync.d.ts.map +1 -1
- package/lib/workflows/release-sync.js +62 -5
- package/lib/workflows/release-sync.js.map +1 -1
- package/lib/workflows/settings.d.ts +2 -1
- package/lib/workflows/settings.d.ts.map +1 -1
- package/lib/workflows/settings.js +31 -1
- package/lib/workflows/settings.js.map +1 -1
- package/lib/workflows/submodules.d.ts +6 -0
- package/lib/workflows/submodules.d.ts.map +1 -0
- package/lib/workflows/submodules.js +344 -0
- package/lib/workflows/submodules.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive git submodule manager
|
|
3
|
+
* Add, list, update, remove, and sync submodules
|
|
4
|
+
*/
|
|
5
|
+
import { askQuestion, confirm } from '../cli/input.js';
|
|
6
|
+
import { multiSelect, select } from '../cli/menu.js';
|
|
7
|
+
import { colors } from '../utils/colors.js';
|
|
8
|
+
import { exec, execAsync, execSilent } from '../utils/exec.js';
|
|
9
|
+
import { log } from '../utils/logging.js';
|
|
10
|
+
// ─── Helpers ────────────────────────────────────────────────────
|
|
11
|
+
/**
|
|
12
|
+
* Parse `git submodule status` output into structured entries.
|
|
13
|
+
* Status prefixes: ' ' = init, '-' = not init, '+' = changed, 'U' = conflict
|
|
14
|
+
*/
|
|
15
|
+
const getSubmodules = () => {
|
|
16
|
+
try {
|
|
17
|
+
const statusOut = execSilent('git submodule status --recursive').trim();
|
|
18
|
+
if (!statusOut)
|
|
19
|
+
return [];
|
|
20
|
+
return statusOut
|
|
21
|
+
.split('\n')
|
|
22
|
+
.filter(Boolean)
|
|
23
|
+
.map((line) => {
|
|
24
|
+
const prefix = line.charAt(0);
|
|
25
|
+
const rest = line.slice(1).trim();
|
|
26
|
+
const parts = rest.split(/\s+/);
|
|
27
|
+
const sha = parts[0] ?? '';
|
|
28
|
+
const subPath = parts[1] ?? '';
|
|
29
|
+
let url = '';
|
|
30
|
+
let branch = '';
|
|
31
|
+
try {
|
|
32
|
+
url = execSilent(`git config --file .gitmodules --get submodule.${subPath}.url`).trim();
|
|
33
|
+
branch =
|
|
34
|
+
execSilent(`git config --file .gitmodules --get submodule.${subPath}.branch`).trim() ||
|
|
35
|
+
'';
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
// .gitmodules may not have branch key
|
|
39
|
+
}
|
|
40
|
+
let status = 'up-to-date';
|
|
41
|
+
let statusIcon = `${colors.green}✓${colors.reset}`;
|
|
42
|
+
switch (prefix) {
|
|
43
|
+
case '-': {
|
|
44
|
+
status = 'uninitialized';
|
|
45
|
+
statusIcon = `${colors.gray}○${colors.reset}`;
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
case '+': {
|
|
49
|
+
status = 'modified';
|
|
50
|
+
statusIcon = `${colors.yellow}●${colors.reset}`;
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
case 'U': {
|
|
54
|
+
status = 'conflict';
|
|
55
|
+
statusIcon = `${colors.red}✗${colors.reset}`;
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
// No default
|
|
59
|
+
}
|
|
60
|
+
return { path: subPath, url, branch, sha: sha.slice(0, 8), status, statusIcon };
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Render submodule list with status indicators
|
|
69
|
+
*/
|
|
70
|
+
const renderSubmodules = (submodules) => {
|
|
71
|
+
for (const [i, sm] of submodules.entries()) {
|
|
72
|
+
const connector = i === submodules.length - 1 ? '╰' : '├';
|
|
73
|
+
const pipe = i === submodules.length - 1 ? ' ' : '│';
|
|
74
|
+
const pathStr = `${colors.bright}${sm.path}${colors.reset}`;
|
|
75
|
+
const shaStr = `${colors.yellow}${sm.sha}${colors.reset}`;
|
|
76
|
+
const branchStr = sm.branch
|
|
77
|
+
? ` ${colors.gray}→${colors.reset} ${colors.green}${sm.branch}${colors.reset}`
|
|
78
|
+
: '';
|
|
79
|
+
console.log(` ${colors.gray}${connector}─${colors.reset} ${sm.statusIcon} ${pathStr} ${shaStr}${branchStr}`);
|
|
80
|
+
console.log(` ${colors.gray}${pipe}${colors.reset} ${colors.gray}${sm.url}${colors.reset}`);
|
|
81
|
+
if (i < submodules.length - 1) {
|
|
82
|
+
console.log(` ${colors.gray}│${colors.reset}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
// ─── Actions ────────────────────────────────────────────────────
|
|
87
|
+
const handleAdd = async () => {
|
|
88
|
+
if (process.stdin.isTTY) {
|
|
89
|
+
process.stdin.setRawMode(false);
|
|
90
|
+
}
|
|
91
|
+
const url = askQuestion('Repository URL: ').trim();
|
|
92
|
+
if (!url) {
|
|
93
|
+
log.warn('No URL provided.');
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const defaultPath = url
|
|
97
|
+
.split('/')
|
|
98
|
+
.pop()
|
|
99
|
+
?.replace(/\.git$/, '') ?? '';
|
|
100
|
+
const subPath = askQuestion(`Path (default: ${defaultPath}): `).trim() || defaultPath;
|
|
101
|
+
const branch = askQuestion('Track branch (optional, press Enter to skip): ').trim();
|
|
102
|
+
let cmd = `git submodule add`;
|
|
103
|
+
if (branch)
|
|
104
|
+
cmd += ` -b ${branch}`;
|
|
105
|
+
cmd += ` "${url}" "${subPath}"`;
|
|
106
|
+
const spinner = log.spinner();
|
|
107
|
+
spinner.start('Adding submodule...');
|
|
108
|
+
try {
|
|
109
|
+
await execAsync(cmd, true);
|
|
110
|
+
spinner.succeed(`Submodule added at ${colors.green}${subPath}${colors.reset}`);
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
spinner.fail('Failed to add submodule');
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
const handleInit = async (submodules) => {
|
|
117
|
+
const uninit = submodules.filter((sm) => sm.status === 'uninitialized');
|
|
118
|
+
if (uninit.length === 0) {
|
|
119
|
+
log.info('All submodules are already initialized.');
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const selected = await multiSelect(`Select submodules to initialize (${uninit.length} uninitialized):`, uninit.map((sm) => ({
|
|
123
|
+
label: `${colors.gray}○${colors.reset} ${sm.path} ${colors.gray}${sm.url}${colors.reset}`,
|
|
124
|
+
value: sm.path,
|
|
125
|
+
})), uninit.map((sm) => sm.path));
|
|
126
|
+
if (selected.length === 0)
|
|
127
|
+
return;
|
|
128
|
+
const spinner = log.spinner();
|
|
129
|
+
spinner.start('Initializing submodules...');
|
|
130
|
+
try {
|
|
131
|
+
for (const p of selected) {
|
|
132
|
+
exec(`git submodule init "${p}"`, true);
|
|
133
|
+
}
|
|
134
|
+
await execAsync(`git submodule update ${selected.map((p) => `"${p}"`).join(' ')}`, true);
|
|
135
|
+
spinner.succeed(`${selected.length} submodule(s) initialized`);
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
spinner.fail('Failed to initialize submodules');
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
const handleUpdate = async (submodules) => {
|
|
142
|
+
const initialized = submodules.filter((sm) => sm.status !== 'uninitialized');
|
|
143
|
+
if (initialized.length === 0) {
|
|
144
|
+
log.warn('No initialized submodules to update.');
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const mode = await select('Update mode:', [
|
|
148
|
+
{ label: 'Update to recorded commit (safe)', value: 'checkout' },
|
|
149
|
+
{ label: 'Update to latest remote (--remote)', value: 'remote' },
|
|
150
|
+
{ label: 'Cancel', value: 'cancel' },
|
|
151
|
+
]);
|
|
152
|
+
if (mode === 'cancel')
|
|
153
|
+
return;
|
|
154
|
+
const scope = await select('Scope:', [
|
|
155
|
+
{ label: `All submodules (${initialized.length})`, value: 'all' },
|
|
156
|
+
{ label: 'Select specific submodules', value: 'pick' },
|
|
157
|
+
{ label: 'Cancel', value: 'cancel' },
|
|
158
|
+
]);
|
|
159
|
+
if (scope === 'cancel')
|
|
160
|
+
return;
|
|
161
|
+
let targets = [];
|
|
162
|
+
if (scope === 'pick') {
|
|
163
|
+
targets = await multiSelect('Select submodules to update:', initialized.map((sm) => ({
|
|
164
|
+
label: `${sm.statusIcon} ${sm.path} ${colors.gray}${sm.sha}${colors.reset}`,
|
|
165
|
+
value: sm.path,
|
|
166
|
+
})));
|
|
167
|
+
if (targets.length === 0)
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
let cmd = 'git submodule update --recursive';
|
|
171
|
+
if (mode === 'remote')
|
|
172
|
+
cmd += ' --remote';
|
|
173
|
+
if (targets.length > 0) {
|
|
174
|
+
cmd += ' ' + targets.map((p) => `"${p}"`).join(' ');
|
|
175
|
+
}
|
|
176
|
+
const spinner = log.spinner();
|
|
177
|
+
spinner.start('Updating submodules...');
|
|
178
|
+
try {
|
|
179
|
+
await execAsync(cmd, true);
|
|
180
|
+
spinner.succeed('Submodules updated!');
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
spinner.fail('Failed to update submodules');
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
const handleRemove = async (submodules) => {
|
|
187
|
+
if (submodules.length === 0) {
|
|
188
|
+
log.warn('No submodules to remove.');
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
const selected = await multiSelect('Select submodules to remove:', submodules.map((sm) => ({
|
|
192
|
+
label: `${sm.statusIcon} ${sm.path} ${colors.gray}${sm.url}${colors.reset}`,
|
|
193
|
+
value: sm.path,
|
|
194
|
+
})));
|
|
195
|
+
if (selected.length === 0)
|
|
196
|
+
return;
|
|
197
|
+
const sure = confirm(`Remove ${selected.length} submodule(s)? This will deinit and delete the directories.`);
|
|
198
|
+
if (!sure)
|
|
199
|
+
return;
|
|
200
|
+
const spinner = log.spinner();
|
|
201
|
+
spinner.start('Removing submodules...');
|
|
202
|
+
try {
|
|
203
|
+
for (const p of selected) {
|
|
204
|
+
exec(`git submodule deinit -f "${p}"`, true);
|
|
205
|
+
exec(`git rm -f "${p}"`, true);
|
|
206
|
+
// Clean .git/modules cache
|
|
207
|
+
try {
|
|
208
|
+
exec(`rm -rf ".git/modules/${p}"`, true);
|
|
209
|
+
}
|
|
210
|
+
catch {
|
|
211
|
+
// May not exist, ignore
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
spinner.succeed(`${selected.length} submodule(s) removed`);
|
|
215
|
+
log.info('Run `git commit` to finalize the removal.');
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
spinner.fail('Failed to remove submodules');
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
const handleSync = async (submodules) => {
|
|
222
|
+
if (submodules.length === 0) {
|
|
223
|
+
log.warn('No submodules to sync.');
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
const scope = await select('Sync scope:', [
|
|
227
|
+
{ label: `All submodules (${submodules.length})`, value: 'all' },
|
|
228
|
+
{ label: 'Select specific submodules', value: 'pick' },
|
|
229
|
+
{ label: 'Cancel', value: 'cancel' },
|
|
230
|
+
]);
|
|
231
|
+
if (scope === 'cancel')
|
|
232
|
+
return;
|
|
233
|
+
let targets = [];
|
|
234
|
+
if (scope === 'pick') {
|
|
235
|
+
targets = await multiSelect('Select submodules to sync:', submodules.map((sm) => ({
|
|
236
|
+
label: `${sm.statusIcon} ${sm.path} ${colors.gray}${sm.url}${colors.reset}`,
|
|
237
|
+
value: sm.path,
|
|
238
|
+
})));
|
|
239
|
+
if (targets.length === 0)
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
let cmd = 'git submodule sync --recursive';
|
|
243
|
+
if (targets.length > 0) {
|
|
244
|
+
cmd += ' ' + targets.map((p) => `"${p}"`).join(' ');
|
|
245
|
+
}
|
|
246
|
+
const spinner = log.spinner();
|
|
247
|
+
spinner.start('Syncing submodule URLs...');
|
|
248
|
+
try {
|
|
249
|
+
await execAsync(cmd, true);
|
|
250
|
+
spinner.succeed('Submodule URLs synced!');
|
|
251
|
+
log.info('Remote URLs updated from .gitmodules to .git/config');
|
|
252
|
+
}
|
|
253
|
+
catch {
|
|
254
|
+
spinner.fail('Failed to sync submodules');
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
// ─── Main Handler ───────────────────────────────────────────────
|
|
258
|
+
export const handleSubmodules = async () => {
|
|
259
|
+
log.banner();
|
|
260
|
+
log.step(`${colors.cyan}Submodule Manager${colors.reset}\n`);
|
|
261
|
+
let keepGoing = true;
|
|
262
|
+
while (keepGoing) {
|
|
263
|
+
const submodules = getSubmodules();
|
|
264
|
+
const hasSubmodules = submodules.length > 0;
|
|
265
|
+
if (hasSubmodules) {
|
|
266
|
+
const uninit = submodules.filter((sm) => sm.status === 'uninitialized').length;
|
|
267
|
+
const modified = submodules.filter((sm) => sm.status === 'modified').length;
|
|
268
|
+
console.log(` ${colors.gray}╭── Submodules (${submodules.length}) ──${colors.reset}`);
|
|
269
|
+
console.log(` ${colors.gray}│${colors.reset}`);
|
|
270
|
+
renderSubmodules(submodules);
|
|
271
|
+
console.log('');
|
|
272
|
+
if (uninit > 0 || modified > 0) {
|
|
273
|
+
const parts = [];
|
|
274
|
+
if (uninit > 0)
|
|
275
|
+
parts.push(`${colors.gray}${uninit} uninitialized${colors.reset}`);
|
|
276
|
+
if (modified > 0)
|
|
277
|
+
parts.push(`${colors.yellow}${modified} modified${colors.reset}`);
|
|
278
|
+
log.info(parts.join(' '));
|
|
279
|
+
console.log('');
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
log.info('No submodules found in this repository.');
|
|
284
|
+
console.log('');
|
|
285
|
+
}
|
|
286
|
+
const menuOptions = [
|
|
287
|
+
{ label: `${colors.green}+ Add${colors.reset} — add new submodule`, value: 'add' },
|
|
288
|
+
];
|
|
289
|
+
if (hasSubmodules) {
|
|
290
|
+
const uninit = submodules.filter((sm) => sm.status === 'uninitialized');
|
|
291
|
+
if (uninit.length > 0) {
|
|
292
|
+
menuOptions.push({
|
|
293
|
+
label: `${colors.cyan}⚙ Init${colors.reset} — initialize submodules (${uninit.length} pending)`,
|
|
294
|
+
value: 'init',
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
menuOptions.push({
|
|
298
|
+
label: `${colors.yellow}⚡ Update${colors.reset} — fetch latest changes`,
|
|
299
|
+
value: 'update',
|
|
300
|
+
}, {
|
|
301
|
+
label: `${colors.blue}🔄 Sync${colors.reset} — sync remote URLs from .gitmodules`,
|
|
302
|
+
value: 'sync',
|
|
303
|
+
}, {
|
|
304
|
+
label: `${colors.red}✗ Remove${colors.reset} — deinit and delete submodules`,
|
|
305
|
+
value: 'remove',
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
menuOptions.push({ label: 'Exit', value: 'exit' });
|
|
309
|
+
const choice = await select('Action:', menuOptions);
|
|
310
|
+
switch (choice) {
|
|
311
|
+
case 'add': {
|
|
312
|
+
await handleAdd();
|
|
313
|
+
console.log('');
|
|
314
|
+
break;
|
|
315
|
+
}
|
|
316
|
+
case 'init': {
|
|
317
|
+
await handleInit(submodules);
|
|
318
|
+
console.log('');
|
|
319
|
+
break;
|
|
320
|
+
}
|
|
321
|
+
case 'update': {
|
|
322
|
+
await handleUpdate(submodules);
|
|
323
|
+
console.log('');
|
|
324
|
+
break;
|
|
325
|
+
}
|
|
326
|
+
case 'sync': {
|
|
327
|
+
await handleSync(submodules);
|
|
328
|
+
console.log('');
|
|
329
|
+
break;
|
|
330
|
+
}
|
|
331
|
+
case 'remove': {
|
|
332
|
+
await handleRemove(submodules);
|
|
333
|
+
console.log('');
|
|
334
|
+
break;
|
|
335
|
+
}
|
|
336
|
+
default: {
|
|
337
|
+
keepGoing = false;
|
|
338
|
+
break;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
console.log('');
|
|
343
|
+
};
|
|
344
|
+
//# sourceMappingURL=submodules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submodules.js","sourceRoot":"","sources":["../../src/workflows/submodules.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "geeto",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "AI-powered Git workflow automation CLI with smart commit messages, branch naming, and Trello integration",
|
|
5
5
|
"author": {
|
|
6
6
|
"email": "amdev142@gmail.com",
|
|
@@ -59,6 +59,7 @@
|
|
|
59
59
|
"postpublish": "pinst --enable",
|
|
60
60
|
"lint-staged": "lint-staged",
|
|
61
61
|
"tools:install": "sh tools/install.sh",
|
|
62
|
+
"install:local": "bash scripts/install-local.sh",
|
|
62
63
|
"danger:ci": "danger ci",
|
|
63
64
|
"danger:local": "danger pr",
|
|
64
65
|
"copilot": "gh"
|