@ksw8954/git-ai-commit 1.0.11 → 1.1.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.
- package/CHANGELOG.md +9 -0
- package/Makefile +50 -1
- package/dist/commands/completion.d.ts +10 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +250 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/git.d.ts +5 -1
- package/dist/commands/git.d.ts.map +1 -1
- package/dist/commands/git.js +45 -3
- package/dist/commands/git.js.map +1 -1
- package/dist/commands/tag.d.ts +1 -1
- package/dist/commands/tag.d.ts.map +1 -1
- package/dist/commands/tag.js +83 -49
- package/dist/commands/tag.js.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/prompts/tag.d.ts.map +1 -1
- package/dist/prompts/tag.js +48 -21
- package/dist/prompts/tag.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/tagCommand.test.ts +43 -18
- package/src/commands/completion.ts +251 -0
- package/src/commands/git.ts +45 -3
- package/src/commands/tag.ts +90 -50
- package/src/index.ts +3 -0
- package/src/prompts/tag.ts +50 -21
package/dist/commands/tag.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/commands/tag.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/commands/tag.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,7 @@ const configCommand_1 = require("./commands/configCommand");
|
|
|
12
12
|
const prCommand_1 = require("./commands/prCommand");
|
|
13
13
|
const tag_1 = require("./commands/tag");
|
|
14
14
|
const history_1 = require("./commands/history");
|
|
15
|
+
const completion_1 = require("./commands/completion");
|
|
15
16
|
function getPackageVersion() {
|
|
16
17
|
try {
|
|
17
18
|
// When compiled, __dirname will be dist/; package.json is one level up
|
|
@@ -35,10 +36,12 @@ const configCommand = new configCommand_1.ConfigCommand();
|
|
|
35
36
|
const pullRequestCommand = new prCommand_1.PullRequestCommand();
|
|
36
37
|
const tagCommand = new tag_1.TagCommand();
|
|
37
38
|
const historyCommand = new history_1.HistoryCommand();
|
|
39
|
+
const completionCommand = new completion_1.CompletionCommand();
|
|
38
40
|
program.addCommand(commitCommand.getCommand());
|
|
39
41
|
program.addCommand(configCommand.getCommand());
|
|
40
42
|
program.addCommand(pullRequestCommand.getCommand());
|
|
41
43
|
program.addCommand(tagCommand.getCommand());
|
|
42
44
|
program.addCommand(historyCommand.getCommand());
|
|
45
|
+
program.addCommand(completionCommand.getCommand());
|
|
43
46
|
program.parse();
|
|
44
47
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,4CAAoB;AACpB,gDAAwB;AACxB,8CAAkD;AAClD,4DAAyD;AACzD,oDAA0D;AAC1D,wCAA4C;AAC5C,gDAAoD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,4CAAoB;AACpB,gDAAwB;AACxB,8CAAkD;AAClD,4DAAyD;AACzD,oDAA0D;AAC1D,wCAA4C;AAC5C,gDAAoD;AACpD,sDAA0D;AAE1D,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,uEAAuE;QACvE,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,YAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CAAC,yCAAyC,CAAC;IACvD,6CAA6C;KAC5C,OAAO,CAAC,iBAAiB,EAAE,EAAE,eAAe,EAAE,2BAA2B,CAAC,CAAC;AAE9E,MAAM,aAAa,GAAG,IAAI,sBAAa,EAAE,CAAC;AAC1C,MAAM,aAAa,GAAG,IAAI,6BAAa,EAAE,CAAC;AAC1C,MAAM,kBAAkB,GAAG,IAAI,8BAAkB,EAAE,CAAC;AACpD,MAAM,UAAU,GAAG,IAAI,gBAAU,EAAE,CAAC;AACpC,MAAM,cAAc,GAAG,IAAI,wBAAc,EAAE,CAAC;AAC5C,MAAM,iBAAiB,GAAG,IAAI,8BAAiB,EAAE,CAAC;AAElD,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;AAC/C,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;AAC/C,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,CAAC;AACpD,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;AAC5C,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC;AAChD,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC,CAAC;AAEnD,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/prompts/tag.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5C,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EACf,2BAAuB,EACvB,WAAU,iBAAwB,KACjC,
|
|
1
|
+
{"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/prompts/tag.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5C,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EACf,2BAAuB,EACvB,WAAU,iBAAwB,KACjC,MAwEF,CAAC"}
|
package/dist/prompts/tag.js
CHANGED
|
@@ -2,42 +2,69 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateTagPrompt = void 0;
|
|
4
4
|
const generateTagPrompt = (tagName, customInstructions = '', language = 'ko') => {
|
|
5
|
+
const titleInstruction = language === 'ko'
|
|
6
|
+
? `첫 줄에 버전 "${tagName}"을 제목으로 작성하세요.`
|
|
7
|
+
: `Write the version "${tagName}" as the title on the first line.`;
|
|
5
8
|
const summaryInstruction = language === 'ko'
|
|
6
|
-
? '
|
|
7
|
-
: '
|
|
9
|
+
? '제목 다음 줄에 이번 릴리즈의 전체적인 영향을 요약하는 한 문장을 작성하세요.'
|
|
10
|
+
: 'On the line after the title, write a one-sentence summary capturing the overall impact of this release.';
|
|
8
11
|
const listInstruction = language === 'ko'
|
|
9
|
-
? '
|
|
10
|
-
: 'After the summary,
|
|
12
|
+
? '요약 후 빈 줄을 두고, 각 카테고리별로 변경사항을 나열하세요: 새로운 기능, 버그 수정, 개선사항. 각 항목은 "- " 로 시작합니다.'
|
|
13
|
+
: 'After the summary, leave a blank line, then list changes by category: New Features, Bug Fixes, Improvements. Each item starts with "- ".';
|
|
14
|
+
const categoryFormat = language === 'ko'
|
|
15
|
+
? `카테고리 형식:
|
|
16
|
+
### 새로운 기능
|
|
17
|
+
- 변경사항 1
|
|
18
|
+
- 변경사항 2
|
|
19
|
+
|
|
20
|
+
### 버그 수정
|
|
21
|
+
- 수정사항 1
|
|
22
|
+
|
|
23
|
+
### 개선사항
|
|
24
|
+
- 개선사항 1`
|
|
25
|
+
: `Category format:
|
|
26
|
+
### New Features
|
|
27
|
+
- Change 1
|
|
28
|
+
- Change 2
|
|
29
|
+
|
|
30
|
+
### Bug Fixes
|
|
31
|
+
- Fix 1
|
|
32
|
+
|
|
33
|
+
### Improvements
|
|
34
|
+
- Improvement 1`;
|
|
11
35
|
const emptyCategoryInstruction = language === 'ko'
|
|
12
|
-
? '
|
|
13
|
-
: '
|
|
36
|
+
? '변경사항이 없는 카테고리는 생략하세요.'
|
|
37
|
+
: 'Omit categories with no changes.';
|
|
14
38
|
const noChangesInstruction = language === 'ko'
|
|
15
|
-
? '
|
|
16
|
-
: 'If no changes exist at all, state "No changes to report."
|
|
39
|
+
? '변경사항이 전혀 없으면 "변경 사항 없음"이라고 작성하세요.'
|
|
40
|
+
: 'If no changes exist at all, state "No changes to report."';
|
|
17
41
|
const outputLanguageLine = language === 'ko'
|
|
18
|
-
? '
|
|
19
|
-
: 'Write the release notes in English
|
|
20
|
-
return `You are an experienced release manager. Produce clear, user-facing release notes
|
|
42
|
+
? '릴리즈 노트를 한국어로 작성하세요.'
|
|
43
|
+
: 'Write the release notes in English.';
|
|
44
|
+
return `You are an experienced release manager. Produce clear, user-facing release notes in GitHub Release style.
|
|
21
45
|
|
|
22
46
|
## Objective
|
|
23
|
-
|
|
47
|
+
Create release notes for ${tagName} that describe the meaningful changes since the previous release.
|
|
24
48
|
|
|
25
49
|
## Input Context
|
|
26
50
|
- Target tag to publish: ${tagName}
|
|
27
|
-
- Commit history between the previous tag and ${tagName} will be supplied in the user message
|
|
51
|
+
- Commit history between the previous tag and ${tagName} will be supplied in the user message.
|
|
52
|
+
|
|
53
|
+
${customInstructions ? `## Additional Instructions\n${customInstructions}\n` : ''}
|
|
54
|
+
## Output Format (GitHub Release Style)
|
|
55
|
+
${titleInstruction}
|
|
56
|
+
${summaryInstruction}
|
|
57
|
+
${listInstruction}
|
|
28
58
|
|
|
29
|
-
${
|
|
59
|
+
${categoryFormat}
|
|
30
60
|
|
|
31
|
-
##
|
|
61
|
+
## Rules
|
|
32
62
|
- ${outputLanguageLine}
|
|
33
|
-
- ${summaryInstruction}
|
|
34
|
-
- ${listInstruction}
|
|
35
|
-
- Use short phrases for each change and include scope/component names when helpful, without copying commit messages verbatim.
|
|
36
63
|
- ${emptyCategoryInstruction}
|
|
37
64
|
- ${noChangesInstruction}
|
|
38
|
-
-
|
|
39
|
-
- Do not
|
|
40
|
-
-
|
|
65
|
+
- Use concise descriptions; do not copy commit messages verbatim.
|
|
66
|
+
- Do not invent changes beyond what appears in the commit log.
|
|
67
|
+
- Use markdown formatting (###, -, etc.) as shown in the category format.
|
|
41
68
|
- Return only the release notes content with no surrounding commentary.`;
|
|
42
69
|
};
|
|
43
70
|
exports.generateTagPrompt = generateTagPrompt;
|
package/dist/prompts/tag.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/prompts/tag.ts"],"names":[],"mappings":";;;AAEO,MAAM,iBAAiB,GAAG,CAC/B,OAAe,EACf,kBAAkB,GAAG,EAAE,EACvB,WAA8B,IAAI,EAC1B,EAAE;IACV,MAAM,kBAAkB,GAAG,QAAQ,KAAK,IAAI;QAC1C,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/prompts/tag.ts"],"names":[],"mappings":";;;AAEO,MAAM,iBAAiB,GAAG,CAC/B,OAAe,EACf,kBAAkB,GAAG,EAAE,EACvB,WAA8B,IAAI,EAC1B,EAAE;IACV,MAAM,gBAAgB,GAAG,QAAQ,KAAK,IAAI;QACxC,CAAC,CAAC,YAAY,OAAO,gBAAgB;QACrC,CAAC,CAAC,sBAAsB,OAAO,mCAAmC,CAAC;IAErE,MAAM,kBAAkB,GAAG,QAAQ,KAAK,IAAI;QAC1C,CAAC,CAAC,6CAA6C;QAC/C,CAAC,CAAC,yGAAyG,CAAC;IAE9G,MAAM,eAAe,GAAG,QAAQ,KAAK,IAAI;QACvC,CAAC,CAAC,8EAA8E;QAChF,CAAC,CAAC,0IAA0I,CAAC;IAE/I,MAAM,cAAc,GAAG,QAAQ,KAAK,IAAI;QACtC,CAAC,CAAC;;;;;;;;;SASG;QACL,CAAC,CAAC;;;;;;;;;gBASU,CAAC;IAEf,MAAM,wBAAwB,GAAG,QAAQ,KAAK,IAAI;QAChD,CAAC,CAAC,uBAAuB;QACzB,CAAC,CAAC,kCAAkC,CAAC;IAEvC,MAAM,oBAAoB,GAAG,QAAQ,KAAK,IAAI;QAC5C,CAAC,CAAC,mCAAmC;QACrC,CAAC,CAAC,2DAA2D,CAAC;IAEhE,MAAM,kBAAkB,GAAG,QAAQ,KAAK,IAAI;QAC1C,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,qCAAqC,CAAC;IAE1C,OAAO;;;2BAGkB,OAAO;;;2BAGP,OAAO;gDACc,OAAO;;EAErD,kBAAkB,CAAC,CAAC,CAAC,+BAA+B,kBAAkB,IAAI,CAAC,CAAC,CAAC,EAAE;;EAE/E,gBAAgB;EAChB,kBAAkB;EAClB,eAAe;;EAEf,cAAc;;;IAGZ,kBAAkB;IAClB,wBAAwB;IACxB,oBAAoB;;;;wEAIgD,CAAC;AACzE,CAAC,CAAC;AA5EW,QAAA,iBAAiB,qBA4E5B"}
|
package/package.json
CHANGED
|
@@ -9,11 +9,13 @@ jest.mock('../commands/git', () => ({
|
|
|
9
9
|
getCommitSummariesSince: jest.fn(),
|
|
10
10
|
createAnnotatedTag: jest.fn(),
|
|
11
11
|
pushTag: jest.fn(),
|
|
12
|
+
pushTagToRemote: jest.fn(),
|
|
12
13
|
tagExists: jest.fn(),
|
|
13
14
|
remoteTagExists: jest.fn(),
|
|
14
15
|
deleteLocalTag: jest.fn(),
|
|
15
16
|
deleteRemoteTag: jest.fn(),
|
|
16
|
-
forcePushTag: jest.fn()
|
|
17
|
+
forcePushTag: jest.fn(),
|
|
18
|
+
getRemotes: jest.fn()
|
|
17
19
|
}
|
|
18
20
|
}));
|
|
19
21
|
|
|
@@ -53,15 +55,18 @@ describe('TagCommand', () => {
|
|
|
53
55
|
(GitService.tagExists as jest.Mock).mockResolvedValue(false);
|
|
54
56
|
(GitService.remoteTagExists as jest.Mock).mockResolvedValue(false);
|
|
55
57
|
|
|
58
|
+
// Default: no remotes configured (skip push flow)
|
|
59
|
+
(GitService.getRemotes as jest.Mock).mockResolvedValue([]);
|
|
60
|
+
|
|
56
61
|
// Confirm creation by default
|
|
57
62
|
jest
|
|
58
63
|
.spyOn(TagCommand.prototype as any, 'confirmTagCreate')
|
|
59
64
|
.mockResolvedValue(true);
|
|
60
65
|
|
|
61
|
-
// Do not push by default
|
|
66
|
+
// Do not push by default (return null = skip push)
|
|
62
67
|
confirmSpy = jest
|
|
63
|
-
.spyOn(TagCommand.prototype as any, '
|
|
64
|
-
.mockResolvedValue(
|
|
68
|
+
.spyOn(TagCommand.prototype as any, 'selectRemotesForPush')
|
|
69
|
+
.mockResolvedValue(null);
|
|
65
70
|
});
|
|
66
71
|
|
|
67
72
|
afterEach(() => {
|
|
@@ -178,30 +183,32 @@ describe('TagCommand', () => {
|
|
|
178
183
|
|
|
179
184
|
it('should push tag when user confirms', async () => {
|
|
180
185
|
(GitService.createAnnotatedTag as jest.Mock).mockResolvedValue(true);
|
|
181
|
-
(GitService.
|
|
182
|
-
|
|
186
|
+
(GitService.pushTagToRemote as jest.Mock).mockResolvedValue(true);
|
|
187
|
+
(GitService.getRemotes as jest.Mock).mockResolvedValue(['origin']);
|
|
188
|
+
confirmSpy.mockResolvedValueOnce(['origin']);
|
|
183
189
|
|
|
184
190
|
const command = getTagCommand();
|
|
185
191
|
|
|
186
192
|
await (command as any).handleTag('v2.0.0', { message: 'Release notes' });
|
|
187
193
|
|
|
188
194
|
expect(GitService.createAnnotatedTag).toHaveBeenCalledWith('v2.0.0', 'Release notes');
|
|
189
|
-
expect(GitService.
|
|
195
|
+
expect(GitService.pushTagToRemote).toHaveBeenCalledWith('v2.0.0', 'origin');
|
|
190
196
|
expect(exitSpy).not.toHaveBeenCalled();
|
|
191
197
|
});
|
|
192
198
|
|
|
193
199
|
it('should exit when tag push fails after confirmation', async () => {
|
|
194
200
|
(GitService.createAnnotatedTag as jest.Mock).mockResolvedValue(true);
|
|
195
|
-
(GitService.
|
|
196
|
-
|
|
201
|
+
(GitService.pushTagToRemote as jest.Mock).mockResolvedValue(false);
|
|
202
|
+
(GitService.getRemotes as jest.Mock).mockResolvedValue(['origin']);
|
|
203
|
+
confirmSpy.mockResolvedValueOnce(['origin']);
|
|
197
204
|
|
|
198
205
|
const command = getTagCommand();
|
|
199
206
|
|
|
200
207
|
await (command as any).handleTag('v3.0.0', { message: 'Release notes' });
|
|
201
208
|
|
|
202
209
|
expect(GitService.createAnnotatedTag).toHaveBeenCalledWith('v3.0.0', 'Release notes');
|
|
203
|
-
expect(GitService.
|
|
204
|
-
|
|
210
|
+
expect(GitService.pushTagToRemote).toHaveBeenCalledWith('v3.0.0', 'origin');
|
|
211
|
+
// Note: Now the command doesn't exit on push failure, it just logs and continues
|
|
205
212
|
});
|
|
206
213
|
|
|
207
214
|
it('should cancel when user declines to replace existing local tag', async () => {
|
|
@@ -308,11 +315,12 @@ describe('TagCommand', () => {
|
|
|
308
315
|
(GitService.deleteLocalTag as jest.Mock).mockResolvedValueOnce(true);
|
|
309
316
|
(GitService.createAnnotatedTag as jest.Mock).mockResolvedValueOnce(true);
|
|
310
317
|
(GitService.forcePushTag as jest.Mock).mockResolvedValueOnce(true);
|
|
318
|
+
(GitService.getRemotes as jest.Mock).mockResolvedValue(['origin']);
|
|
311
319
|
|
|
312
320
|
jest
|
|
313
321
|
.spyOn(TagCommand.prototype as any, 'confirmTagDelete')
|
|
314
322
|
.mockResolvedValueOnce(true);
|
|
315
|
-
confirmSpy.mockResolvedValueOnce(
|
|
323
|
+
confirmSpy.mockResolvedValueOnce(['origin']);
|
|
316
324
|
jest
|
|
317
325
|
.spyOn(TagCommand.prototype as any, 'confirmForcePush')
|
|
318
326
|
.mockResolvedValueOnce(true);
|
|
@@ -323,7 +331,7 @@ describe('TagCommand', () => {
|
|
|
323
331
|
|
|
324
332
|
expect(GitService.deleteLocalTag).toHaveBeenCalledWith('v1.0.0');
|
|
325
333
|
expect(GitService.createAnnotatedTag).toHaveBeenCalledWith('v1.0.0', 'Release notes');
|
|
326
|
-
expect(GitService.forcePushTag).toHaveBeenCalledWith('v1.0.0');
|
|
334
|
+
expect(GitService.forcePushTag).toHaveBeenCalledWith('v1.0.0', 'origin');
|
|
327
335
|
});
|
|
328
336
|
|
|
329
337
|
it('should cancel push when user declines force push', async () => {
|
|
@@ -331,11 +339,12 @@ describe('TagCommand', () => {
|
|
|
331
339
|
(GitService.remoteTagExists as jest.Mock).mockResolvedValueOnce(false);
|
|
332
340
|
(GitService.deleteLocalTag as jest.Mock).mockResolvedValueOnce(true);
|
|
333
341
|
(GitService.createAnnotatedTag as jest.Mock).mockResolvedValueOnce(true);
|
|
342
|
+
(GitService.getRemotes as jest.Mock).mockResolvedValue(['origin']);
|
|
334
343
|
|
|
335
344
|
jest
|
|
336
345
|
.spyOn(TagCommand.prototype as any, 'confirmTagDelete')
|
|
337
346
|
.mockResolvedValueOnce(true);
|
|
338
|
-
confirmSpy.mockResolvedValueOnce(
|
|
347
|
+
confirmSpy.mockResolvedValueOnce(['origin']);
|
|
339
348
|
jest
|
|
340
349
|
.spyOn(TagCommand.prototype as any, 'confirmForcePush')
|
|
341
350
|
.mockResolvedValueOnce(false);
|
|
@@ -346,7 +355,7 @@ describe('TagCommand', () => {
|
|
|
346
355
|
|
|
347
356
|
expect(GitService.createAnnotatedTag).toHaveBeenCalledWith('v1.0.0', 'Release notes');
|
|
348
357
|
expect(GitService.forcePushTag).not.toHaveBeenCalled();
|
|
349
|
-
expect(GitService.
|
|
358
|
+
expect(GitService.pushTagToRemote).not.toHaveBeenCalled();
|
|
350
359
|
});
|
|
351
360
|
|
|
352
361
|
it('should force push when remote tag exists and user confirms', async () => {
|
|
@@ -356,6 +365,7 @@ describe('TagCommand', () => {
|
|
|
356
365
|
(GitService.deleteLocalTag as jest.Mock).mockResolvedValueOnce(true);
|
|
357
366
|
(GitService.createAnnotatedTag as jest.Mock).mockResolvedValueOnce(true);
|
|
358
367
|
(GitService.forcePushTag as jest.Mock).mockResolvedValueOnce(true);
|
|
368
|
+
(GitService.getRemotes as jest.Mock).mockResolvedValue(['origin']);
|
|
359
369
|
|
|
360
370
|
jest
|
|
361
371
|
.spyOn(TagCommand.prototype as any, 'confirmTagDelete')
|
|
@@ -363,7 +373,7 @@ describe('TagCommand', () => {
|
|
|
363
373
|
jest
|
|
364
374
|
.spyOn(TagCommand.prototype as any, 'confirmRemoteTagDelete')
|
|
365
375
|
.mockResolvedValueOnce(false); // Decline remote deletion
|
|
366
|
-
confirmSpy.mockResolvedValueOnce(
|
|
376
|
+
confirmSpy.mockResolvedValueOnce(['origin']);
|
|
367
377
|
jest
|
|
368
378
|
.spyOn(TagCommand.prototype as any, 'confirmForcePush')
|
|
369
379
|
.mockResolvedValueOnce(true);
|
|
@@ -372,7 +382,22 @@ describe('TagCommand', () => {
|
|
|
372
382
|
|
|
373
383
|
await (command as any).handleTag('v1.0.0', { message: 'Release notes' });
|
|
374
384
|
|
|
375
|
-
expect(GitService.forcePushTag).toHaveBeenCalledWith('v1.0.0');
|
|
376
|
-
expect(GitService.
|
|
385
|
+
expect(GitService.forcePushTag).toHaveBeenCalledWith('v1.0.0', 'origin');
|
|
386
|
+
expect(GitService.pushTagToRemote).not.toHaveBeenCalled();
|
|
387
|
+
});
|
|
388
|
+
|
|
389
|
+
it('should push to multiple remotes when user selects all', async () => {
|
|
390
|
+
(GitService.createAnnotatedTag as jest.Mock).mockResolvedValue(true);
|
|
391
|
+
(GitService.pushTagToRemote as jest.Mock).mockResolvedValue(true);
|
|
392
|
+
(GitService.getRemotes as jest.Mock).mockResolvedValue(['origin', 'upstream']);
|
|
393
|
+
confirmSpy.mockResolvedValueOnce(['origin', 'upstream']);
|
|
394
|
+
|
|
395
|
+
const command = getTagCommand();
|
|
396
|
+
|
|
397
|
+
await (command as any).handleTag('v2.0.0', { message: 'Release notes' });
|
|
398
|
+
|
|
399
|
+
expect(GitService.createAnnotatedTag).toHaveBeenCalledWith('v2.0.0', 'Release notes');
|
|
400
|
+
expect(GitService.pushTagToRemote).toHaveBeenCalledWith('v2.0.0', 'origin');
|
|
401
|
+
expect(GitService.pushTagToRemote).toHaveBeenCalledWith('v2.0.0', 'upstream');
|
|
377
402
|
});
|
|
378
403
|
});
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
|
|
3
|
+
export class CompletionCommand {
|
|
4
|
+
private program: Command;
|
|
5
|
+
|
|
6
|
+
constructor() {
|
|
7
|
+
this.program = new Command('completion')
|
|
8
|
+
.description('Generate shell completion scripts')
|
|
9
|
+
.argument('<shell>', 'Shell type (bash or zsh)')
|
|
10
|
+
.action(this.handleCompletion.bind(this));
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
private handleCompletion(shell: string): void {
|
|
14
|
+
const normalized = shell.toLowerCase().trim();
|
|
15
|
+
|
|
16
|
+
if (normalized === 'bash') {
|
|
17
|
+
console.log(this.generateBashCompletion());
|
|
18
|
+
} else if (normalized === 'zsh') {
|
|
19
|
+
console.log(this.generateZshCompletion());
|
|
20
|
+
} else {
|
|
21
|
+
console.error(`Unsupported shell: ${shell}`);
|
|
22
|
+
console.error('Supported shells: bash, zsh');
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
private generateBashCompletion(): string {
|
|
28
|
+
return `# git-ai-commit bash completion
|
|
29
|
+
# Add to ~/.bashrc or ~/.bash_profile:
|
|
30
|
+
# eval "$(git-ai-commit completion bash)"
|
|
31
|
+
|
|
32
|
+
_git_ai_commit() {
|
|
33
|
+
local cur prev words cword
|
|
34
|
+
_init_completion || return
|
|
35
|
+
|
|
36
|
+
local commands="commit config pr tag history completion"
|
|
37
|
+
|
|
38
|
+
# Global options
|
|
39
|
+
local global_opts="-v --version -h --help"
|
|
40
|
+
|
|
41
|
+
# Command-specific options
|
|
42
|
+
local commit_opts="-k --api-key -b --base-url --model -m --message-only -p --push --prompt --no-verify"
|
|
43
|
+
local config_opts="-s --show -l --language --auto-push --no-auto-push -k --api-key -b --base-url -m --model --mode"
|
|
44
|
+
local pr_opts="--base --compare -k --api-key -b --base-url --model"
|
|
45
|
+
local tag_opts="-k --api-key --base-url -m --model --message -t --base-tag --prompt"
|
|
46
|
+
local history_opts="-l --limit --json --clear"
|
|
47
|
+
local completion_opts=""
|
|
48
|
+
|
|
49
|
+
case "\${cword}" in
|
|
50
|
+
1)
|
|
51
|
+
COMPREPLY=( \$(compgen -W "\${commands} \${global_opts}" -- "\${cur}") )
|
|
52
|
+
return
|
|
53
|
+
;;
|
|
54
|
+
esac
|
|
55
|
+
|
|
56
|
+
local cmd="\${words[1]}"
|
|
57
|
+
|
|
58
|
+
case "\${cmd}" in
|
|
59
|
+
commit)
|
|
60
|
+
case "\${prev}" in
|
|
61
|
+
-k|--api-key|-b|--base-url|--model|--prompt)
|
|
62
|
+
return
|
|
63
|
+
;;
|
|
64
|
+
esac
|
|
65
|
+
COMPREPLY=( \$(compgen -W "\${commit_opts}" -- "\${cur}") )
|
|
66
|
+
;;
|
|
67
|
+
config)
|
|
68
|
+
case "\${prev}" in
|
|
69
|
+
-l|--language)
|
|
70
|
+
COMPREPLY=( \$(compgen -W "ko en" -- "\${cur}") )
|
|
71
|
+
return
|
|
72
|
+
;;
|
|
73
|
+
--mode)
|
|
74
|
+
COMPREPLY=( \$(compgen -W "custom openai" -- "\${cur}") )
|
|
75
|
+
return
|
|
76
|
+
;;
|
|
77
|
+
-k|--api-key|-b|--base-url|-m|--model)
|
|
78
|
+
return
|
|
79
|
+
;;
|
|
80
|
+
esac
|
|
81
|
+
COMPREPLY=( \$(compgen -W "\${config_opts}" -- "\${cur}") )
|
|
82
|
+
;;
|
|
83
|
+
pr)
|
|
84
|
+
case "\${prev}" in
|
|
85
|
+
--base|--compare)
|
|
86
|
+
# Complete with git branches
|
|
87
|
+
local branches=\$(git branch --format='%(refname:short)' 2>/dev/null)
|
|
88
|
+
COMPREPLY=( \$(compgen -W "\${branches}" -- "\${cur}") )
|
|
89
|
+
return
|
|
90
|
+
;;
|
|
91
|
+
-k|--api-key|-b|--base-url|--model)
|
|
92
|
+
return
|
|
93
|
+
;;
|
|
94
|
+
esac
|
|
95
|
+
COMPREPLY=( \$(compgen -W "\${pr_opts}" -- "\${cur}") )
|
|
96
|
+
;;
|
|
97
|
+
tag)
|
|
98
|
+
case "\${prev}" in
|
|
99
|
+
-t|--base-tag)
|
|
100
|
+
# Complete with git tags
|
|
101
|
+
local tags=\$(git tag 2>/dev/null)
|
|
102
|
+
COMPREPLY=( \$(compgen -W "\${tags}" -- "\${cur}") )
|
|
103
|
+
return
|
|
104
|
+
;;
|
|
105
|
+
-k|--api-key|--base-url|-m|--model|--message|--prompt)
|
|
106
|
+
return
|
|
107
|
+
;;
|
|
108
|
+
esac
|
|
109
|
+
COMPREPLY=( \$(compgen -W "\${tag_opts}" -- "\${cur}") )
|
|
110
|
+
;;
|
|
111
|
+
history)
|
|
112
|
+
case "\${prev}" in
|
|
113
|
+
-l|--limit)
|
|
114
|
+
return
|
|
115
|
+
;;
|
|
116
|
+
esac
|
|
117
|
+
COMPREPLY=( \$(compgen -W "\${history_opts}" -- "\${cur}") )
|
|
118
|
+
;;
|
|
119
|
+
completion)
|
|
120
|
+
COMPREPLY=( \$(compgen -W "bash zsh" -- "\${cur}") )
|
|
121
|
+
;;
|
|
122
|
+
esac
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
complete -F _git_ai_commit git-ai-commit
|
|
126
|
+
`;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
private generateZshCompletion(): string {
|
|
130
|
+
return `#compdef git-ai-commit
|
|
131
|
+
# git-ai-commit zsh completion
|
|
132
|
+
# Add to ~/.zshrc:
|
|
133
|
+
# eval "$(git-ai-commit completion zsh)"
|
|
134
|
+
# Or save to a file in your $fpath (e.g., ~/.zsh/completions/_git-ai-commit)
|
|
135
|
+
|
|
136
|
+
_git-ai-commit() {
|
|
137
|
+
local -a commands
|
|
138
|
+
commands=(
|
|
139
|
+
'commit:Generate AI-powered commit message'
|
|
140
|
+
'config:Manage git-ai-commit configuration'
|
|
141
|
+
'pr:Generate a pull request title and summary'
|
|
142
|
+
'tag:Create an annotated git tag with AI-generated notes'
|
|
143
|
+
'history:Manage git-ai-commit command history'
|
|
144
|
+
'completion:Generate shell completion scripts'
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
_arguments -C \\
|
|
148
|
+
'-v[output the version number]' \\
|
|
149
|
+
'--version[output the version number]' \\
|
|
150
|
+
'-h[display help]' \\
|
|
151
|
+
'--help[display help]' \\
|
|
152
|
+
'1: :->command' \\
|
|
153
|
+
'*:: :->args'
|
|
154
|
+
|
|
155
|
+
case \$state in
|
|
156
|
+
command)
|
|
157
|
+
_describe -t commands 'git-ai-commit commands' commands
|
|
158
|
+
;;
|
|
159
|
+
args)
|
|
160
|
+
case \$words[1] in
|
|
161
|
+
commit)
|
|
162
|
+
_arguments \\
|
|
163
|
+
'-k[OpenAI API key]:key:' \\
|
|
164
|
+
'--api-key[OpenAI API key]:key:' \\
|
|
165
|
+
'-b[Custom API base URL]:url:' \\
|
|
166
|
+
'--base-url[Custom API base URL]:url:' \\
|
|
167
|
+
'--model[Model to use]:model:' \\
|
|
168
|
+
'-m[Output only the generated commit message]' \\
|
|
169
|
+
'--message-only[Output only the generated commit message]' \\
|
|
170
|
+
'-p[Push after creating the commit]' \\
|
|
171
|
+
'--push[Push after creating the commit]' \\
|
|
172
|
+
'--prompt[Additional AI prompt instructions]:text:' \\
|
|
173
|
+
'--no-verify[Skip pre-commit hooks]'
|
|
174
|
+
;;
|
|
175
|
+
config)
|
|
176
|
+
_arguments \\
|
|
177
|
+
'-s[Show current configuration]' \\
|
|
178
|
+
'--show[Show current configuration]' \\
|
|
179
|
+
'-l[Set default language]:language:(ko en)' \\
|
|
180
|
+
'--language[Set default language]:language:(ko en)' \\
|
|
181
|
+
'--auto-push[Enable automatic git push]' \\
|
|
182
|
+
'--no-auto-push[Disable automatic git push]' \\
|
|
183
|
+
'-k[Persist API key]:key:' \\
|
|
184
|
+
'--api-key[Persist API key]:key:' \\
|
|
185
|
+
'-b[Persist API base URL]:url:' \\
|
|
186
|
+
'--base-url[Persist API base URL]:url:' \\
|
|
187
|
+
'-m[Persist default AI model]:model:' \\
|
|
188
|
+
'--model[Persist default AI model]:model:' \\
|
|
189
|
+
'--mode[Persist AI mode]:mode:(custom openai)'
|
|
190
|
+
;;
|
|
191
|
+
pr)
|
|
192
|
+
_arguments \\
|
|
193
|
+
'--base[Base branch to diff against]:branch:__git_branch_names' \\
|
|
194
|
+
'--compare[Compare branch to describe]:branch:__git_branch_names' \\
|
|
195
|
+
'-k[Override API key]:key:' \\
|
|
196
|
+
'--api-key[Override API key]:key:' \\
|
|
197
|
+
'-b[Override API base URL]:url:' \\
|
|
198
|
+
'--base-url[Override API base URL]:url:' \\
|
|
199
|
+
'--model[Override AI model]:model:'
|
|
200
|
+
;;
|
|
201
|
+
tag)
|
|
202
|
+
_arguments \\
|
|
203
|
+
'1:tag name:' \\
|
|
204
|
+
'-k[OpenAI API key]:key:' \\
|
|
205
|
+
'--api-key[OpenAI API key]:key:' \\
|
|
206
|
+
'--base-url[Custom API base URL]:url:' \\
|
|
207
|
+
'-m[Model to use]:model:' \\
|
|
208
|
+
'--model[Model to use]:model:' \\
|
|
209
|
+
'--message[Tag message to use directly]:message:' \\
|
|
210
|
+
'-t[Existing tag to diff against]:tag:__git_tags' \\
|
|
211
|
+
'--base-tag[Existing tag to diff against]:tag:__git_tags' \\
|
|
212
|
+
'--prompt[Additional AI prompt instructions]:text:'
|
|
213
|
+
;;
|
|
214
|
+
history)
|
|
215
|
+
_arguments \\
|
|
216
|
+
'-l[Limit number of entries]:number:' \\
|
|
217
|
+
'--limit[Limit number of entries]:number:' \\
|
|
218
|
+
'--json[Output in JSON format]' \\
|
|
219
|
+
'--clear[Clear all stored history]'
|
|
220
|
+
;;
|
|
221
|
+
completion)
|
|
222
|
+
_arguments \\
|
|
223
|
+
'1:shell:(bash zsh)'
|
|
224
|
+
;;
|
|
225
|
+
esac
|
|
226
|
+
;;
|
|
227
|
+
esac
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
# Helper function to complete git branches
|
|
231
|
+
__git_branch_names() {
|
|
232
|
+
local -a branches
|
|
233
|
+
branches=(\${(f)"\$(git branch --format='%(refname:short)' 2>/dev/null)"})
|
|
234
|
+
_describe -t branches 'branches' branches
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
# Helper function to complete git tags
|
|
238
|
+
__git_tags() {
|
|
239
|
+
local -a tags
|
|
240
|
+
tags=(\${(f)"\$(git tag 2>/dev/null)"})
|
|
241
|
+
_describe -t tags 'tags' tags
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
_git-ai-commit "\$@"
|
|
245
|
+
`;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
getCommand(): Command {
|
|
249
|
+
return this.program;
|
|
250
|
+
}
|
|
251
|
+
}
|