@ksw8954/git-ai-commit 1.1.4 → 1.1.6
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/AGENTS.md +1 -0
- package/CHANGELOG.md +17 -0
- package/dist/commands/ai.d.ts +4 -1
- package/dist/commands/ai.d.ts.map +1 -1
- package/dist/commands/ai.js +44 -46
- package/dist/commands/ai.js.map +1 -1
- package/dist/commands/git.d.ts +2 -0
- package/dist/commands/git.d.ts.map +1 -1
- package/dist/commands/git.js +30 -0
- package/dist/commands/git.js.map +1 -1
- package/dist/commands/tag.d.ts +4 -0
- package/dist/commands/tag.d.ts.map +1 -1
- package/dist/commands/tag.js +149 -5
- package/dist/commands/tag.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/ai.test.ts +45 -68
- package/src/__tests__/tagCommand.test.ts +9 -2
- package/src/commands/ai.ts +55 -53
- package/src/commands/git.ts +35 -0
- package/src/commands/tag.ts +178 -6
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/package.json
CHANGED
package/src/__tests__/ai.test.ts
CHANGED
|
@@ -6,6 +6,22 @@ import OpenAI from 'openai';
|
|
|
6
6
|
jest.mock('openai');
|
|
7
7
|
const MockedOpenAI = OpenAI as jest.MockedClass<typeof OpenAI>;
|
|
8
8
|
|
|
9
|
+
function createMockStream(content: string | null) {
|
|
10
|
+
const chunks = content
|
|
11
|
+
? content.split('').map(ch => ({
|
|
12
|
+
choices: [{ delta: { content: ch } }]
|
|
13
|
+
}))
|
|
14
|
+
: [];
|
|
15
|
+
|
|
16
|
+
return {
|
|
17
|
+
[Symbol.asyncIterator]: async function* () {
|
|
18
|
+
for (const chunk of chunks) {
|
|
19
|
+
yield chunk;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
|
|
9
25
|
describe('AIService', () => {
|
|
10
26
|
let aiService: AIService;
|
|
11
27
|
let mockOpenai: jest.Mocked<OpenAI>;
|
|
@@ -32,15 +48,9 @@ describe('AIService', () => {
|
|
|
32
48
|
|
|
33
49
|
describe('generateCommitMessage', () => {
|
|
34
50
|
it('should return success with commit message when API call succeeds', async () => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
content: 'feat: add new feature'
|
|
39
|
-
}
|
|
40
|
-
}]
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
(mockOpenai.chat.completions.create as jest.Mock).mockResolvedValue(mockResponse);
|
|
51
|
+
(mockOpenai.chat.completions.create as jest.Mock).mockResolvedValue(
|
|
52
|
+
createMockStream('feat: add new feature')
|
|
53
|
+
);
|
|
44
54
|
|
|
45
55
|
const diff = 'diff --git a/file.txt b/file.txt\nnew file mode 100644';
|
|
46
56
|
const result = await aiService.generateCommitMessage(diff);
|
|
@@ -66,20 +76,15 @@ describe('AIService', () => {
|
|
|
66
76
|
content: `Git diff:\n${diff}`
|
|
67
77
|
}
|
|
68
78
|
],
|
|
69
|
-
max_completion_tokens: 3000
|
|
79
|
+
max_completion_tokens: 3000,
|
|
80
|
+
stream: true
|
|
70
81
|
});
|
|
71
82
|
});
|
|
72
83
|
|
|
73
84
|
it('should return error when API returns no message', async () => {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
content: null
|
|
78
|
-
}
|
|
79
|
-
}]
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
(mockOpenai.chat.completions.create as jest.Mock).mockResolvedValue(mockResponse);
|
|
85
|
+
(mockOpenai.chat.completions.create as jest.Mock).mockResolvedValue(
|
|
86
|
+
createMockStream(null)
|
|
87
|
+
);
|
|
83
88
|
|
|
84
89
|
const diff = 'diff --git a/file.txt b/file.txt\nnew file mode 100644';
|
|
85
90
|
const result = await aiService.generateCommitMessage(diff);
|
|
@@ -120,17 +125,9 @@ describe('AIService', () => {
|
|
|
120
125
|
}
|
|
121
126
|
);
|
|
122
127
|
|
|
123
|
-
const mockResponse = {
|
|
124
|
-
choices: [{
|
|
125
|
-
message: {
|
|
126
|
-
content: 'feat: add retry fallback'
|
|
127
|
-
}
|
|
128
|
-
}]
|
|
129
|
-
};
|
|
130
|
-
|
|
131
128
|
(mockOpenai.chat.completions.create as jest.Mock)
|
|
132
129
|
.mockRejectedValueOnce(error)
|
|
133
|
-
.mockResolvedValueOnce(
|
|
130
|
+
.mockResolvedValueOnce(createMockStream('feat: add retry fallback'));
|
|
134
131
|
|
|
135
132
|
const diff = 'diff --git a/file.txt b/file.txt\nnew file mode 100644';
|
|
136
133
|
const result = await aiService.generateCommitMessage(diff);
|
|
@@ -156,7 +153,8 @@ describe('AIService', () => {
|
|
|
156
153
|
content: `Git diff:\n${diff}`
|
|
157
154
|
}
|
|
158
155
|
],
|
|
159
|
-
max_completion_tokens: 3000
|
|
156
|
+
max_completion_tokens: 3000,
|
|
157
|
+
stream: true
|
|
160
158
|
});
|
|
161
159
|
|
|
162
160
|
expect(mockOpenai.chat.completions.create).toHaveBeenNthCalledWith(2, {
|
|
@@ -175,20 +173,15 @@ describe('AIService', () => {
|
|
|
175
173
|
content: `Git diff:\n${diff}`
|
|
176
174
|
}
|
|
177
175
|
],
|
|
178
|
-
max_tokens: 3000
|
|
176
|
+
max_tokens: 3000,
|
|
177
|
+
stream: true
|
|
179
178
|
});
|
|
180
179
|
});
|
|
181
180
|
|
|
182
181
|
it('should strip markdown formatting from commit header', async () => {
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
content: '**chore(track_object): 불필요한 줄바꿈 제거하여 가독성 개선**'
|
|
187
|
-
}
|
|
188
|
-
}]
|
|
189
|
-
};
|
|
190
|
-
|
|
191
|
-
(mockOpenai.chat.completions.create as jest.Mock).mockResolvedValue(mockResponse);
|
|
182
|
+
(mockOpenai.chat.completions.create as jest.Mock).mockResolvedValue(
|
|
183
|
+
createMockStream('**chore(track_object): 불필요한 줄바꿈 제거하여 가독성 개선**')
|
|
184
|
+
);
|
|
192
185
|
|
|
193
186
|
const result = await aiService.generateCommitMessage('diff --git a/file b/file');
|
|
194
187
|
|
|
@@ -199,15 +192,9 @@ describe('AIService', () => {
|
|
|
199
192
|
});
|
|
200
193
|
|
|
201
194
|
it('should keep only the first commit header when multiple are returned', async () => {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
content: 'feat: add payment API\nchore: update dependencies'
|
|
206
|
-
}
|
|
207
|
-
}]
|
|
208
|
-
};
|
|
209
|
-
|
|
210
|
-
(mockOpenai.chat.completions.create as jest.Mock).mockResolvedValue(mockResponse);
|
|
195
|
+
(mockOpenai.chat.completions.create as jest.Mock).mockResolvedValue(
|
|
196
|
+
createMockStream('feat: add payment API\nchore: update dependencies')
|
|
197
|
+
);
|
|
211
198
|
|
|
212
199
|
const result = await aiService.generateCommitMessage('diff --git a/file b/file');
|
|
213
200
|
|
|
@@ -228,22 +215,18 @@ describe('AIService', () => {
|
|
|
228
215
|
|
|
229
216
|
describe('generatePullRequestMessage', () => {
|
|
230
217
|
it('should return success with PR message when API call succeeds', async () => {
|
|
231
|
-
const
|
|
232
|
-
choices: [{
|
|
233
|
-
message: {
|
|
234
|
-
content: 'Add caching layer\n\n## Summary\n- cache expensive queries to reduce latency\n\n## Testing\n- npm run test'
|
|
235
|
-
}
|
|
236
|
-
}]
|
|
237
|
-
};
|
|
218
|
+
const prContent = 'Add caching layer\n\n## Summary\n- cache expensive queries to reduce latency\n\n## Testing\n- npm run test';
|
|
238
219
|
|
|
239
|
-
(mockOpenai.chat.completions.create as jest.Mock).mockResolvedValue(
|
|
220
|
+
(mockOpenai.chat.completions.create as jest.Mock).mockResolvedValue(
|
|
221
|
+
createMockStream(prContent)
|
|
222
|
+
);
|
|
240
223
|
|
|
241
224
|
const diff = 'diff --git a/app.ts b/app.ts\nindex 123..456 100644';
|
|
242
225
|
const result = await aiService.generatePullRequestMessage('main', 'feature/cache', diff);
|
|
243
226
|
|
|
244
227
|
expect(result).toEqual({
|
|
245
228
|
success: true,
|
|
246
|
-
message:
|
|
229
|
+
message: prContent
|
|
247
230
|
});
|
|
248
231
|
|
|
249
232
|
expect(mockOpenai.chat.completions.create).toHaveBeenCalledWith({
|
|
@@ -258,21 +241,15 @@ describe('AIService', () => {
|
|
|
258
241
|
content: `Git diff between main and feature/cache:\n${diff}`
|
|
259
242
|
}
|
|
260
243
|
],
|
|
261
|
-
max_completion_tokens: 4000
|
|
244
|
+
max_completion_tokens: 4000,
|
|
245
|
+
stream: true
|
|
262
246
|
});
|
|
263
247
|
});
|
|
264
248
|
|
|
265
249
|
it('should return error when API returns no content', async () => {
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
content: '',
|
|
270
|
-
reasoning_content: ''
|
|
271
|
-
}
|
|
272
|
-
}]
|
|
273
|
-
};
|
|
274
|
-
|
|
275
|
-
(mockOpenai.chat.completions.create as jest.Mock).mockResolvedValue(mockResponse);
|
|
250
|
+
(mockOpenai.chat.completions.create as jest.Mock).mockResolvedValue(
|
|
251
|
+
createMockStream(null)
|
|
252
|
+
);
|
|
276
253
|
|
|
277
254
|
const result = await aiService.generatePullRequestMessage('main', 'feature/cache', 'diff');
|
|
278
255
|
|
|
@@ -15,7 +15,10 @@ jest.mock('../commands/git', () => ({
|
|
|
15
15
|
deleteLocalTag: jest.fn(),
|
|
16
16
|
deleteRemoteTag: jest.fn(),
|
|
17
17
|
forcePushTag: jest.fn(),
|
|
18
|
-
getRemotes: jest.fn()
|
|
18
|
+
getRemotes: jest.fn(),
|
|
19
|
+
getTagMessage: jest.fn(),
|
|
20
|
+
getTagBefore: jest.fn(),
|
|
21
|
+
getRecentTags: jest.fn()
|
|
19
22
|
}
|
|
20
23
|
}));
|
|
21
24
|
|
|
@@ -55,6 +58,10 @@ describe('TagCommand', () => {
|
|
|
55
58
|
(GitService.tagExists as jest.Mock).mockResolvedValue(false);
|
|
56
59
|
(GitService.remoteTagExists as jest.Mock).mockResolvedValue(false);
|
|
57
60
|
|
|
61
|
+
(GitService.getTagMessage as jest.Mock).mockResolvedValue(null);
|
|
62
|
+
(GitService.getTagBefore as jest.Mock).mockResolvedValue({ success: false, error: 'No earlier tag found.' });
|
|
63
|
+
(GitService.getRecentTags as jest.Mock).mockResolvedValue([]);
|
|
64
|
+
|
|
58
65
|
// Default: no remotes configured (skip push flow)
|
|
59
66
|
(GitService.getRemotes as jest.Mock).mockResolvedValue([]);
|
|
60
67
|
|
|
@@ -120,7 +127,7 @@ describe('TagCommand', () => {
|
|
|
120
127
|
model: 'gpt-test',
|
|
121
128
|
language: 'ko'
|
|
122
129
|
});
|
|
123
|
-
expect(mockGenerateTagNotes).toHaveBeenCalledWith('v1.3.0', '- feat: add feature\n- fix: bug fix', undefined);
|
|
130
|
+
expect(mockGenerateTagNotes).toHaveBeenCalledWith('v1.3.0', '- feat: add feature\n- fix: bug fix', undefined, null, null);
|
|
124
131
|
expect(GitService.createAnnotatedTag).toHaveBeenCalledWith('v1.3.0', '- Added feature\n- Fixed bug');
|
|
125
132
|
expect(GitService.pushTag).not.toHaveBeenCalled();
|
|
126
133
|
});
|
package/src/commands/ai.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import OpenAI from 'openai';
|
|
2
|
+
import { type ChatCompletionCreateParamsNonStreaming } from 'openai/resources/chat/completions';
|
|
2
3
|
import { generateCommitPrompt } from '../prompts/commit';
|
|
3
4
|
import { generateTagPrompt } from '../prompts/tag';
|
|
4
5
|
import { generatePullRequestPrompt } from '../prompts/pr';
|
|
@@ -134,29 +135,70 @@ export class AIService {
|
|
|
134
135
|
return { ...rest };
|
|
135
136
|
}
|
|
136
137
|
|
|
137
|
-
private
|
|
138
|
-
|
|
138
|
+
private readonly spinnerFrames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
139
|
+
|
|
140
|
+
private writeProgress(tokenCount: number, frameIndex: number): void {
|
|
141
|
+
const frame = this.spinnerFrames[frameIndex % this.spinnerFrames.length];
|
|
142
|
+
process.stderr.write(`\r${frame} Streaming response... (${tokenCount} tokens)`);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
private clearProgress(): void {
|
|
146
|
+
process.stderr.write('\r\x1b[K');
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
private async createStreamingCompletion(
|
|
150
|
+
request: ChatCompletionCreateParamsNonStreaming,
|
|
139
151
|
attempt = 0
|
|
140
|
-
): Promise<
|
|
152
|
+
): Promise<string> {
|
|
141
153
|
try {
|
|
142
|
-
|
|
154
|
+
const stream = await this.openai.chat.completions.create({
|
|
155
|
+
...request,
|
|
156
|
+
stream: true
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
const chunks: string[] = [];
|
|
160
|
+
let tokenCount = 0;
|
|
161
|
+
let frameIndex = 0;
|
|
162
|
+
const showProgress = this.verbose && process.stderr.isTTY;
|
|
163
|
+
|
|
164
|
+
for await (const chunk of stream) {
|
|
165
|
+
const delta = chunk.choices[0]?.delta?.content;
|
|
166
|
+
if (delta) {
|
|
167
|
+
chunks.push(delta);
|
|
168
|
+
tokenCount++;
|
|
169
|
+
if (showProgress) {
|
|
170
|
+
this.writeProgress(tokenCount, frameIndex++);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
if (showProgress) {
|
|
176
|
+
this.clearProgress();
|
|
177
|
+
this.debugLog(`Streaming complete (${tokenCount} tokens)`);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
return chunks.join('');
|
|
143
181
|
} catch (error) {
|
|
182
|
+
if (this.verbose && process.stderr.isTTY) {
|
|
183
|
+
this.clearProgress();
|
|
184
|
+
}
|
|
185
|
+
|
|
144
186
|
if (attempt < 3 && this.isUnsupportedValueError(error, 'temperature')) {
|
|
145
187
|
const fallbackRequest = this.removeTemperature(request);
|
|
146
188
|
this.debugLog('Retrying without temperature due to unsupported value error.');
|
|
147
|
-
return await this.
|
|
189
|
+
return await this.createStreamingCompletion(fallbackRequest, attempt + 1);
|
|
148
190
|
}
|
|
149
191
|
|
|
150
192
|
if (this.isUnsupportedTokenParamError(error, 'max_completion_tokens')) {
|
|
151
193
|
const fallbackRequest = this.swapTokenParam(request, 'max_tokens');
|
|
152
194
|
this.debugLog('Retrying with max_tokens due to unsupported max_completion_tokens error.');
|
|
153
|
-
return await this.
|
|
195
|
+
return await this.createStreamingCompletion(fallbackRequest, attempt + 1);
|
|
154
196
|
}
|
|
155
197
|
|
|
156
198
|
if (this.isUnsupportedTokenParamError(error, 'max_tokens')) {
|
|
157
199
|
const fallbackRequest = this.swapTokenParam(request, 'max_completion_tokens');
|
|
158
200
|
this.debugLog('Retrying with max_completion_tokens due to unsupported max_tokens error.');
|
|
159
|
-
return await this.
|
|
201
|
+
return await this.createStreamingCompletion(fallbackRequest, attempt + 1);
|
|
160
202
|
}
|
|
161
203
|
|
|
162
204
|
throw error;
|
|
@@ -205,7 +247,7 @@ export class AIService {
|
|
|
205
247
|
? `Git diff will be provided separately in the user message.\n\n## Additional User Instructions\n${extraInstructions.trim()}`
|
|
206
248
|
: 'Git diff will be provided separately in the user message.';
|
|
207
249
|
|
|
208
|
-
const
|
|
250
|
+
const content = await this.createStreamingCompletion({
|
|
209
251
|
model: this.model,
|
|
210
252
|
messages: [
|
|
211
253
|
{
|
|
@@ -224,36 +266,8 @@ export class AIService {
|
|
|
224
266
|
max_completion_tokens: 3000
|
|
225
267
|
});
|
|
226
268
|
|
|
227
|
-
|
|
269
|
+
let finalMessage = content.trim() || null;
|
|
228
270
|
|
|
229
|
-
const choice = response.choices[0];
|
|
230
|
-
const message = choice?.message?.content?.trim();
|
|
231
|
-
|
|
232
|
-
// Handle reasoning content if available (type assertion for custom API response)
|
|
233
|
-
const messageAny = choice?.message as any;
|
|
234
|
-
const reasoningMessage = messageAny?.reasoning_content?.trim();
|
|
235
|
-
|
|
236
|
-
// Try to extract commit message from reasoning content if regular content is null
|
|
237
|
-
let finalMessage = message;
|
|
238
|
-
if (!finalMessage && reasoningMessage) {
|
|
239
|
-
// Look for commit message pattern in reasoning content
|
|
240
|
-
const commitMatch = reasoningMessage.match(/(?:feat|fix|docs|style|refactor|test|chore|build|ci|perf|revert): .+/);
|
|
241
|
-
if (commitMatch) {
|
|
242
|
-
finalMessage = commitMatch[0].trim();
|
|
243
|
-
} else {
|
|
244
|
-
// Look for any line that starts with conventional commit types
|
|
245
|
-
const typeMatch = reasoningMessage.match(/(?:feat|fix|docs|style|refactor|test|chore|build|ci|perf|revert)[^:]*: .+/);
|
|
246
|
-
if (typeMatch) {
|
|
247
|
-
finalMessage = typeMatch[0].trim();
|
|
248
|
-
} else {
|
|
249
|
-
// Try to find a short descriptive line
|
|
250
|
-
const lines = reasoningMessage.split('\n').filter((line: string) => line.trim().length > 0);
|
|
251
|
-
const shortLine = lines.find((line: string) => line.length < 100 && line.includes('version'));
|
|
252
|
-
finalMessage = shortLine ? `chore: ${shortLine.trim()}` : `chore: update files`;
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
|
|
257
271
|
if (!finalMessage) {
|
|
258
272
|
this.debugLog('No message found in response');
|
|
259
273
|
return {
|
|
@@ -381,7 +395,7 @@ export class AIService {
|
|
|
381
395
|
userContent += `\n\n---\nPrevious release notes for this tag (improve upon this):\n${previousMessage}`;
|
|
382
396
|
}
|
|
383
397
|
|
|
384
|
-
const
|
|
398
|
+
const content = await this.createStreamingCompletion({
|
|
385
399
|
model: this.model,
|
|
386
400
|
messages: [
|
|
387
401
|
{
|
|
@@ -396,13 +410,7 @@ export class AIService {
|
|
|
396
410
|
max_completion_tokens: 3000
|
|
397
411
|
});
|
|
398
412
|
|
|
399
|
-
const
|
|
400
|
-
const message = choice?.message?.content?.trim();
|
|
401
|
-
|
|
402
|
-
const messageAny = choice?.message as any;
|
|
403
|
-
const reasoningMessage = messageAny?.reasoning_content?.trim();
|
|
404
|
-
|
|
405
|
-
const finalNotes = message || reasoningMessage;
|
|
413
|
+
const finalNotes = content.trim() || null;
|
|
406
414
|
|
|
407
415
|
if (!finalNotes) {
|
|
408
416
|
this.debugLog('No notes found in response');
|
|
@@ -435,7 +443,7 @@ export class AIService {
|
|
|
435
443
|
this.debugLog('Model:', this.model);
|
|
436
444
|
this.debugLog('Base URL:', this.openai.baseURL);
|
|
437
445
|
|
|
438
|
-
const
|
|
446
|
+
const content = await this.createStreamingCompletion({
|
|
439
447
|
model: this.model,
|
|
440
448
|
messages: [
|
|
441
449
|
{
|
|
@@ -455,13 +463,7 @@ export class AIService {
|
|
|
455
463
|
max_completion_tokens: 4000
|
|
456
464
|
});
|
|
457
465
|
|
|
458
|
-
const
|
|
459
|
-
const message = choice?.message?.content?.trim();
|
|
460
|
-
|
|
461
|
-
const messageAny = choice?.message as any;
|
|
462
|
-
const reasoningMessage = messageAny?.reasoning_content?.trim();
|
|
463
|
-
|
|
464
|
-
const finalMessage = message || reasoningMessage;
|
|
466
|
+
const finalMessage = content.trim() || null;
|
|
465
467
|
|
|
466
468
|
if (!finalMessage) {
|
|
467
469
|
return {
|
package/src/commands/git.ts
CHANGED
|
@@ -210,6 +210,41 @@ export class GitService {
|
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
|
|
213
|
+
static async getRecentTags(count = 10): Promise<string[]> {
|
|
214
|
+
try {
|
|
215
|
+
const { stdout } = await execAsync(
|
|
216
|
+
`git tag --sort=-creatordate | head -n ${count}`
|
|
217
|
+
);
|
|
218
|
+
return stdout
|
|
219
|
+
.split('\n')
|
|
220
|
+
.map(line => line.trim())
|
|
221
|
+
.filter(line => line.length > 0);
|
|
222
|
+
} catch {
|
|
223
|
+
return [];
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
static async getTagBefore(tagName: string): Promise<GitTagResult> {
|
|
228
|
+
try {
|
|
229
|
+
const { stdout: tagCommit } = await execAsync(`git rev-list -n 1 ${tagName}`);
|
|
230
|
+
const commit = tagCommit.trim();
|
|
231
|
+
if (!commit) {
|
|
232
|
+
return { success: false, error: 'Could not resolve tag to a commit.' };
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
const { stdout } = await execAsync(`git describe --tags --abbrev=0 ${commit}~1`);
|
|
236
|
+
const tag = stdout.trim();
|
|
237
|
+
|
|
238
|
+
if (!tag) {
|
|
239
|
+
return { success: false, error: 'No earlier tag found.' };
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
return { success: true, tag };
|
|
243
|
+
} catch {
|
|
244
|
+
return { success: false, error: 'No earlier tag found.' };
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
213
248
|
static async getCommitSummariesSince(tag?: string): Promise<GitLogResult> {
|
|
214
249
|
try {
|
|
215
250
|
const logCommand = tag
|