brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · 96fc553 Raw
70 lines · yaml
1name: LLVM Bugs notifier2 3permissions:4  contents: read5  issues: read6 7on:8  issues:9    types:10      - opened11 12jobs:13  auto-subscribe:14    runs-on: ubuntu-24.0415    if: github.repository == 'llvm/llvm-project'16    steps:17      - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.018        with:19          node-version: 2420          check-latest: true21      - run: npm install mailgun.js form-data22      - name: Send notification23        uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.024        env:25          MAILGUN_API_KEY: ${{ secrets.LLVM_BUGS_KEY }}26        with:27          script: |28            const Mailgun = require('mailgun.js');29            const formData = require('form-data');30 31            const mailgun = new Mailgun(formData);32            const DOMAIN = 'email.llvm.org';33 34            const mg = mailgun.client({ username: 'api', key: process.env.MAILGUN_API_KEY });35 36            github.rest.issues.get({37              issue_number: context.issue.number,38              owner: context.repo.owner,39              repo: context.repo.repo40            })41            .then((issue) => {42              var maybeTruncatedBody = issue.data.body;43              if (maybeTruncatedBody.length > 15000) {44                maybeTruncatedBody = maybeTruncatedBody.substring(0,45                    15000) +46                  "<truncated>Please see the issue for the entire body."47              }48              const payload = {49                author : issue.data.user.login,50                issue  : issue.data.number,51                title  : issue.data.title,52                url    : issue.data.html_url,53                labels : issue.data.labels.map((label) => label.name),54                assignee : issue.data.assignees.map((assignee) => assignee.login),55                body   : maybeTruncatedBody56              };57 58              const data = {59                from: 'LLVM Bugs <llvm-bugs@email.llvm.org>',60                to: 'llvm-bugs@lists.llvm.org',61                subject: `[Bug ${issue.data.number}] ${issue.data.title}`,62                template: 'new-github-issue',63                'o:tracking-clicks': 'no',64                'h:X-Mailgun-Variables': JSON.stringify(payload)65              };66 67              return mg.messages.create(DOMAIN, data);68            })69            .then((msg) => console.log(msg));70