diff --git a/.gitlab/dangerjs/dangerfile.js b/.gitlab/dangerjs/dangerfile.js index dae0a1bc5a..e5bce92615 100644 --- a/.gitlab/dangerjs/dangerfile.js +++ b/.gitlab/dangerjs/dangerfile.js @@ -17,6 +17,7 @@ async function runChecks() { // Checks for MR commits require("./mrCommitsTooManyCommits.js")(); require("./mrCommitsCommitMessage.js")(); + require("./mrCommitsEmail.js")(); // Checks for MR code require("./mrSizeTooLarge.js")(); diff --git a/.gitlab/dangerjs/mrCommitsEmail.js b/.gitlab/dangerjs/mrCommitsEmail.js new file mode 100644 index 0000000000..9ffc1b7eea --- /dev/null +++ b/.gitlab/dangerjs/mrCommitsEmail.js @@ -0,0 +1,16 @@ +/** + * Check if the author is accidentally making a commit using a personal email + * + * @dangerjs INFO + */ +module.exports = function () { + const mrCommitAuthorEmails = danger.gitlab.commits.map(commit => commit.author_email); + const mrCommitCommitterEmails = danger.gitlab.commits.map(commit => commit.committer_email); + const emailPattern = /.*@espressif\.com/; + const filteredEmails = [...mrCommitAuthorEmails, ...mrCommitCommitterEmails].filter((email) => !emailPattern.test(email)); + if (filteredEmails.length) { + return message( + `Some of the commits were authored or committed by developers outside Espressif: ${filteredEmails.join(', ')}. Please check if this is expected.` + ); + } +};