diff options
Diffstat (limited to 'srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/template.js')
| -rw-r--r-- | srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/template.js | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/template.js b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/template.js new file mode 100644 index 0000000..03a44b3 --- /dev/null +++ b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/template.js @@ -0,0 +1,89 @@ +'use strict'; + +/** + * @param {Array} modifiedFiles The modified files + * @returns {string} The commit message + */ +const commitMessage = function(modifiedFiles) { + const nbrMySQLFiles = modifiedFiles.filter(file => file.match(/mysql-[a-z\-\.]+.json$/g)).length; + const nbrMariaDBFiles = modifiedFiles.filter(file => file.match(/mariadb-[a-z\-\.]+.json$/g)).length; + const nbrMergedData = modifiedFiles.filter(file => file.match(/merged-(slim|ultraslim|raw).(json|md|php)$/g)) + .length; + + const hasMySQLFiles = nbrMySQLFiles > 0; + const hasMariaDBFiles = nbrMariaDBFiles > 0; + const hasOtherFiles = nbrMySQLFiles + nbrMariaDBFiles + nbrMergedData !== modifiedFiles.length; + if (hasMariaDBFiles && hasMySQLFiles) { + return 'update: [MariaDB] && [MySQL] updates' + (hasOtherFiles ? ' and other changes' : ''); + } else if (hasMariaDBFiles && !hasMySQLFiles) { + return 'update: [MariaDB] updates' + (hasOtherFiles ? ' and other changes' : ''); + } else if (!hasMariaDBFiles && hasMySQLFiles) { + return 'update: [MySQL] updates' + (hasOtherFiles ? ' and other changes' : ''); + } + return 'update: 🤖 Some updates 🤖'; +}; + +/** + * @param {Array} modifiedFiles The modified files + * @returns {string} The pr message + */ +const prMessage = function(modifiedFiles) { + const nbrMySQLFiles = modifiedFiles.filter(file => file.match(/mysql-[a-z-]+.json$/g)).length; + const nbrMariaDBFiles = modifiedFiles.filter(file => file.match(/mariadb-[a-z-]+.json$/g)).length; + const nbrMergedData = modifiedFiles.filter(file => file.match(/merged-(slim|ultraslim|raw).(json|md|php)$/g)) + .length; + + const hasMySQLFiles = nbrMySQLFiles > 0; + const hasMariaDBFiles = nbrMariaDBFiles > 0; + const hasOtherFiles = nbrMySQLFiles + nbrMariaDBFiles + nbrMergedData !== modifiedFiles.length; + if (hasMariaDBFiles && hasMySQLFiles) { + return '🤖 [MariaDB] && [MySQL] updates' + (hasOtherFiles ? ' 🚨🚨' : ''); + } else if (hasMariaDBFiles && !hasMySQLFiles) { + return '🤖 [MariaDB] updates' + (hasOtherFiles ? ' 🚨🚨' : ''); + } else if (!hasMariaDBFiles && hasMySQLFiles) { + return '🤖 [MySQL] updates' + (hasOtherFiles ? ' 🚨🚨' : ''); + } + return '🤖 Some updates to review 🤖'; +}; + +/** + * @param {Array} modifiedFiles The modified files + * @returns {string} The pr content + */ +const prContent = function(modifiedFiles) { + let message = + 'Dear human 🌻, after running my task the following file' + + (modifiedFiles.length > 1 ? 's where updated:' : ' was updated:') + + '\n'; + message += modifiedFiles + .map(file => { + let emoji = '👽'; + if (file.match(/mysql-[a-z-]+.json$/g)) { + emoji = '🐬'; + } + if (file.match(/mariadb-[a-z-]+.json$/g)) { + emoji = '🐳'; + } + if (file.match(/merged-(slim|ultraslim|raw).(json|md|php)$/g)) { + emoji = '📦'; + } + return '- `' + file + '` ' + emoji + '\n'; + }) + .join(''); + return message; +}; + +/** + * @param {Array} modifiedFiles The modified files + * @returns {string} The pr branch + */ +const prBranch = function(modifiedFiles) { + return 'refs/heads/update/' + new Date().getTime(); +}; + +module.exports = { + commitMessage: commitMessage, + prMessage: prMessage, + prContent: prContent, + prBranch: prBranch, +}; |
