aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/template.js
diff options
context:
space:
mode:
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.js89
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,
+};