]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
notify new-bugs-announce on new issue open (#32421)
authorEe Durbin <ewdurbin@gmail.com>
Sun, 10 Apr 2022 17:48:53 +0000 (13:48 -0400)
committerGitHub <noreply@github.com>
Sun, 10 Apr 2022 17:48:53 +0000 (19:48 +0200)
.github/workflows/new-bugs-announce-notifier.yml [new file with mode: 0644]

diff --git a/.github/workflows/new-bugs-announce-notifier.yml b/.github/workflows/new-bugs-announce-notifier.yml
new file mode 100644 (file)
index 0000000..a189463
--- /dev/null
@@ -0,0 +1,53 @@
+name: new-bugs-announce notifier
+
+on:
+  issues:
+    types:
+      - opened
+
+jobs:
+  notify-new-bugs-announce:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/setup-node@v2
+        with:
+          node-version: 14
+      - run: npm install mailgun.js form-data
+      - name: Send notification
+        uses: actions/github-script@v5
+        env:
+          MAILGUN_API_KEY: ${{ secrets.PSF_MAILGUN_KEY }}
+        with:
+          script: |
+            const Mailgun = require("mailgun.js");
+            const formData = require('form-data');
+            const mailgun = new Mailgun(formData);
+            const DOMAIN = "mg.python.org";
+            const mg = mailgun.client({username: 'api', key: process.env.MAILGUN_API_KEY});
+            github.rest.issues.get({
+              issue_number: context.issue.number,
+              owner: context.repo.owner,
+              repo: context.repo.repo,
+            })
+            .then(function(issue) {
+              const payload = {
+                author : issue.data.user.login,
+                issue  : issue.data.number,
+                title  : issue.data.title,
+                url    : issue.data.html_url,
+                labels : issue.data.labels.map(label => { return label.name }).join(", "),
+                assignee : issue.data.assignees.map(assignee => { return assignee.login }),
+                body   : issue.data.body
+              };
+            
+              const data = {
+                from: "CPython Issues <github@mg.python.org>",
+                to: "new-bugs-announce@python.org",
+                subject: `[Issue ${issue.data.number}] ${issue.data.title}`,
+                template: "new-github-issue",
+                'o:tracking-clicks': 'no',
+                'h:X-Mailgun-Variables': JSON.stringify(payload)
+              };
+              return mg.messages.create(DOMAIN, data)
+            })
+            .then(msg => console.log(msg));