11import { Action , Step } from '../../actions' ;
22import { 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} ;
0 commit comments