mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-19 09:33:53 +00:00
Fix gitCoAuthor not added for combined flags like -am
This commit is contained in:
@@ -608,6 +608,36 @@ describe('ShellTool', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should handle git commit with combined short flags like -am', async () => {
|
||||||
|
const command = 'git commit -am "Add feature"';
|
||||||
|
const invocation = shellTool.build({ command, is_background: false });
|
||||||
|
const promise = invocation.execute(mockAbortSignal);
|
||||||
|
|
||||||
|
resolveExecutionPromise({
|
||||||
|
rawOutput: Buffer.from(''),
|
||||||
|
output: '',
|
||||||
|
exitCode: 0,
|
||||||
|
signal: null,
|
||||||
|
error: null,
|
||||||
|
aborted: false,
|
||||||
|
pid: 12345,
|
||||||
|
executionMethod: 'child_process',
|
||||||
|
});
|
||||||
|
|
||||||
|
await promise;
|
||||||
|
|
||||||
|
expect(mockShellExecutionService).toHaveBeenCalledWith(
|
||||||
|
expect.stringContaining(
|
||||||
|
'Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>',
|
||||||
|
),
|
||||||
|
expect.any(String),
|
||||||
|
expect.any(Function),
|
||||||
|
mockAbortSignal,
|
||||||
|
false,
|
||||||
|
{},
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
it('should not modify non-git commands', async () => {
|
it('should not modify non-git commands', async () => {
|
||||||
const command = 'npm install';
|
const command = 'npm install';
|
||||||
const invocation = shellTool.build({ command, is_background: false });
|
const invocation = shellTool.build({ command, is_background: false });
|
||||||
|
|||||||
@@ -350,8 +350,8 @@ export class ShellToolInvocation extends BaseToolInvocation<
|
|||||||
Co-authored-by: ${gitCoAuthorSettings.name} <${gitCoAuthorSettings.email}>`;
|
Co-authored-by: ${gitCoAuthorSettings.name} <${gitCoAuthorSettings.email}>`;
|
||||||
|
|
||||||
// Handle different git commit patterns
|
// Handle different git commit patterns
|
||||||
// Match -m "message" or -m 'message'
|
// Match -m "message" or -m 'message', including combined flags like -am
|
||||||
const messagePattern = /(-m\s+)(['"])((?:\\.|[^\\])*?)(\2)/;
|
const messagePattern = /(-[a-zA-Z]*m\s+)(['"])((?:\\.|[^\\])*?)(\2)/;
|
||||||
const match = command.match(messagePattern);
|
const match = command.match(messagePattern);
|
||||||
|
|
||||||
if (match) {
|
if (match) {
|
||||||
|
|||||||
Reference in New Issue
Block a user