Dzahn has submitted this change and it was merged.

Change subject: Phabricator project creation/changes log email for Phab admins
......................................................................


Phabricator project creation/changes log email for Phab admins

Bug: T85183
Change-Id: Ib7d9ec92c04012c8ad8821c2a5fba151613f822c
---
M manifests/role/phabricator.pp
A modules/phabricator/templates/project_changes.sh.erb
2 files changed, 97 insertions(+), 0 deletions(-)

Approvals:
  jenkins-bot: Verified
  Dzahn: Looks good to me, approved



diff --git a/manifests/role/phabricator.pp b/manifests/role/phabricator.pp
index 6d44c04..28bec04 100644
--- a/manifests/role/phabricator.pp
+++ b/manifests/role/phabricator.pp
@@ -163,6 +163,14 @@
         sndr_address => 'communitymetr...@wikimedia.org',
         monthday     => '1',
     }
+
+    # project changes mail (T85183)
+    phabricator::logmail {'projectchanges':
+        script_name  => 'project_changes.sh',
+        rcpt_address => 'aklap...@wikimedia.org',
+        sndr_address => 'aklap...@wikimedia.org',
+        monthday     => [1, 8, 15, 22, 29],
+    }
 }
 
 # phabricator instance on wmflabs at phab-0[1-9].wmflabs.org
diff --git a/modules/phabricator/templates/project_changes.sh.erb 
b/modules/phabricator/templates/project_changes.sh.erb
new file mode 100644
index 0000000..645bd53
--- /dev/null
+++ b/modules/phabricator/templates/project_changes.sh.erb
@@ -0,0 +1,89 @@
+#!/bin/bash
+# send project changes in Phabricator for the last week
+# to aklapper
+# per T85183
+# ! this file is managed by puppet !
+# ./modules/phabricator/templates/<%= @script_name %>.erb
+
+declare rcpt_address='<%= @rcpt_address %>'
+declare sndr_address='<%= @sndr_address %>'
+
+declare sql_host='<%= @mysql_host %>'
+declare sql_user='<%= 
scope.lookupvar('passwords::mysql::phabricator::metrics_user') %>'
+declare sql_name='phabricator_project'
+declare sql_pass='<%= 
scope.lookupvar('passwords::mysql::phabricator::metrics_pass') %>'
+
+#echo "result_creations_and_name_changes"
+result_creations_and_name_changes=$(MYSQL_PWD=${sql_pass} /usr/bin/mysql -h 
$sql_host -u $sql_user $sql_name << END
+
+SELECT oldValue, newValue
+    FROM project_transaction
+    WHERE transactionType = "project:name"
+    AND dateModified > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 WEEK));
+
+END
+)
+
+#echo "result_color_changes"
+result_color_changes=$(MYSQL_PWD=${sql_pass} /usr/bin/mysql -h $sql_host 
-u$sql_user $sql_name << END
+
+SELECT project_transaction.oldValue, project_transaction.newValue, project.name
+    FROM project_transaction
+    JOIN project
+    WHERE project_transaction.transactionType = "project:color"
+    AND project_transaction.objectPHID = project.phid
+    AND project_transaction.dateModified > UNIX_TIMESTAMP(DATE_SUB(NOW(), 
INTERVAL 1 WEEK));
+
+END
+)
+
+#echo "result_policy_locking_archiving_changes"
+result_policy_locking_archiving_changes=$(MYSQL_PWD=${sql_pass} /usr/bin/mysql 
-h $sql_host -u$sql_user $sql_name << END
+
+SELECT project_transaction.oldValue, project_transaction.newValue,
+    project_transaction.transactionType, project.name
+    FROM project_transaction
+    JOIN project
+    WHERE (project_transaction.transactionType = "core:join-policy"
+    OR project_transaction.transactionType = "core:edit-policy"
+    OR project_transaction.transactionType = "core:view-policy"
+    OR project_transaction.transactionType = "project:locked"
+    OR project_transaction.transactionType = "project:status")
+    AND project_transaction.objectPHID = project.phid
+    AND project_transaction.dateModified > UNIX_TIMESTAMP(DATE_SUB(NOW(), 
INTERVAL 1 WEEK));
+
+END
+)
+
+
+creations_and_name_changes=$(echo $result_creations_and_name_changes)
+color_changes=$(echo $result_color_changes)
+policy_locking_archiving_changes=$(echo 
$result_policy_locking_archiving_changes)
+
+
+# the actual email
+cat <<EOF | /usr/bin/mail -r "${sndr_address}" -s "Phabricator weekly project 
changes" ${rcpt_address}
+
+Hi Phabricator admin,
+
+this is your automatic weekly Phabricator project changes mail.
+
+
+PROJECT CREATIONS AND PROJECT NAME CHANGES:
+${creations_and_name_changes}
+
+
+PROJECT COLOR CHANGES:
+${color_changes}
+
+
+PROJECT POLICY/LOCKING/ARCHIVING CHANGES:
+${policy_locking_archiving_changes}
+
+
+
+Yours sincerely,
+Fab Rick Aytor
+
+(via $(basename $0) on $(hostname) at $(date))
+EOF

-- 
To view, visit https://gerrit.wikimedia.org/r/233219
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib7d9ec92c04012c8ad8821c2a5fba151613f822c
Gerrit-PatchSet: 3
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Aklapper <aklap...@wikimedia.org>
Gerrit-Reviewer: Aklapper <aklap...@wikimedia.org>
Gerrit-Reviewer: Dzahn <dz...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to