Skip to content

Commit 5857bf3

Browse files
committed
refactor: checkCommitMessages logs moved to step.log
1 parent ecd6161 commit 5857bf3

2 files changed

Lines changed: 31 additions & 20 deletions

File tree

src/proxy/processors/push-action/checkCommitMessages.ts

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
import { Action, Step } from '../../actions';
22
import { getCommitConfig } from '../../../config';
33

4-
const isMessageAllowed = (commitMessage: string): boolean => {
4+
const isMessageAllowed = (commitMessage: any): string | null => {
55
try {
66
const commitConfig = getCommitConfig();
77

88
// Commit message is empty, i.e. '', null or undefined
99
if (!commitMessage) {
10-
console.log('No commit message included...');
11-
return false;
10+
// console.log('No commit message included...');
11+
return 'No commit message included...';
1212
}
1313

1414
// Validation for configured block pattern(s) check...
1515
if (typeof commitMessage !== 'string') {
16-
console.log('A non-string value has been captured for the commit message...');
17-
return false;
16+
// console.log('A non-string value has been captured for the commit message...');
17+
return 'A non-string value has been captured for the commit message...';
1818
}
1919

2020
// Configured blocked literals and patterns
@@ -36,15 +36,15 @@ const isMessageAllowed = (commitMessage: string): boolean => {
3636

3737
// Commit message matches configured block pattern(s)
3838
if (literalMatches.length || patternMatches.length) {
39-
console.log('Commit message is blocked via configured literals/patterns...');
40-
return false;
39+
// console.log('Commit message is blocked via configured literals/patterns...');
40+
return 'Commit message is blocked via configured literals/patterns...';
4141
}
4242
} catch (error) {
43-
console.log('Invalid regex pattern...');
44-
return false;
43+
// console.log('Invalid regex pattern...');
44+
return 'Invalid regex pattern...';
4545
}
4646

47-
return true;
47+
return null;
4848
};
4949

5050
// Execute if the repo is approved
@@ -53,13 +53,23 @@ const exec = async (req: any, action: Action): Promise<Action> => {
5353

5454
const uniqueCommitMessages = [...new Set(action.commitData?.map((commit) => commit.message))];
5555

56-
const illegalMessages = uniqueCommitMessages.filter((message) => !isMessageAllowed(message));
56+
// const illegalMessages = uniqueCommitMessages.filter((message) => !isMessageAllowed(message));
57+
const illegalMessages = uniqueCommitMessages.filter(
58+
(message) => isMessageAllowed(message) !== null,
59+
);
5760

5861
if (illegalMessages.length > 0) {
59-
console.log(`The following commit messages are illegal: ${illegalMessages}`);
62+
// console.log(`The following commit messages are illegal: ${illegalMessages}`);
6063

61-
step.error = true;
62-
step.log(`The following commit messages are illegal: ${illegalMessages}`);
64+
illegalMessages.forEach((message) => {
65+
const error = isMessageAllowed(message);
66+
step.log(
67+
`Illegal commit message detected: "${message}" - Reason: ${error ?? 'Unknown reason'}`,
68+
);
69+
});
70+
71+
// step.error = true;
72+
// step.log(`The following commit messages are illegal: ${illegalMessages}`);
6373
step.setError(
6474
`\n\n\nYour push has been blocked.\nPlease ensure your commit message(s) does not contain sensitive information or URLs.\n\nThe following commit messages are illegal: ${JSON.stringify(illegalMessages)}\n\n`,
6575
);
@@ -68,7 +78,8 @@ const exec = async (req: any, action: Action): Promise<Action> => {
6878
return action;
6979
}
7080

71-
console.log(`The following commit messages are legal: ${uniqueCommitMessages}`);
81+
// console.log(`The following commit messages are legal: ${uniqueCommitMessages}`);
82+
step.log(`The following commit messages are legal: ${JSON.stringify(uniqueCommitMessages)}`);
7283
action.addStep(step);
7384
return action;
7485
};

test/processors/checkCommitMessages.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ describe('checkCommitMessages', () => {
4646
const result = await exec({}, action);
4747

4848
expect(result.steps[0].error).toBe(true);
49-
expect(consoleLogSpy).toHaveBeenCalledWith('No commit message included...');
49+
expect(result.steps[0].logs.join('\n')).toContain('No commit message included...');
5050
});
5151

5252
it('should block null commit messages', async () => {
@@ -74,7 +74,7 @@ describe('checkCommitMessages', () => {
7474
const result = await exec({}, action);
7575

7676
expect(result.steps[0].error).toBe(true);
77-
expect(consoleLogSpy).toHaveBeenCalledWith(
77+
expect(JSON.stringify(result.steps[0])).toContain(
7878
'A non-string value has been captured for the commit message...',
7979
);
8080
});
@@ -106,7 +106,7 @@ describe('checkCommitMessages', () => {
106106
const result = await exec({}, action);
107107

108108
expect(result.steps[0].error).toBe(true);
109-
expect(consoleLogSpy).toHaveBeenCalledWith(
109+
expect(JSON.stringify(result.steps[0])).toContain(
110110
'Commit message is blocked via configured literals/patterns...',
111111
);
112112
});
@@ -241,8 +241,8 @@ describe('checkCommitMessages', () => {
241241
const result = await exec({}, action);
242242

243243
expect(result.steps[0].error).toBe(false);
244-
expect(consoleLogSpy).toHaveBeenCalledWith(
245-
expect.stringContaining('The following commit messages are legal:'),
244+
expect(JSON.stringify(result.steps[0])).toContain(
245+
'The following commit messages are legal:',
246246
);
247247
});
248248

0 commit comments

Comments
 (0)