name: LLVM Bugs notifier

on:
  issues:
    types:
      - opened

jobs:
  auto-subscribe:
    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.LLVM_BUGS_KEY }}
        with:
          script: |
            const Mailgun = require('mailgun.js');
            const formData = require('form-data');

            const mailgun = new Mailgun(formData);
            const DOMAIN = 'email.llvm.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((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) => label.name),
                assignee : issue.data.assignees.map((assignee) => assignee.login),
                body   : issue.data.body
              };

              const data = {
                from: 'LLVM Bugs <llvm-bugs@email.llvm.org>',
                to: 'llvm-bugs@lists.llvm.org',
                subject: `[Bug ${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));
