Notify slack and email subscribers whenever TSC members are mentioned in GitHub #4125
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This action is centrally managed in https://github.com/asyncapi/.github/ | |
# Don't make changes to this file in this repo as they will be overwritten with changes made to the same file in above mentioned repo | |
# This action notifies community on slack whenever there is a new issue, PR or discussion started in given repository | |
name: Notify slack and email subscribers whenever TSC members are mentioned in GitHub | |
on: | |
issue_comment: | |
types: | |
- created | |
discussion_comment: | |
types: | |
- created | |
issues: | |
types: | |
- opened | |
pull_request_target: | |
types: | |
- opened | |
discussion: | |
types: | |
- created | |
jobs: | |
issue: | |
if: github.event_name == 'issues' && contains(github.event.issue.body, '@asyncapi/tsc_members') | |
name: TSC notification on every new issue | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
######### | |
# Handling Slack notifications | |
######### | |
- name: Convert markdown to slack markdown | |
uses: asyncapi/.github/.github/actions/slackify-markdown@master | |
id: issuemarkdown | |
with: | |
markdown: "[${{github.event.issue.title}}](${{github.event.issue.html_url}}) \n ${{github.event.issue.body}}" | |
- name: Send info about issue | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{secrets.SLACK_TSC_MEMBERS_NOTIFY}} | |
SLACK_TITLE: 🆘 New issue that requires TSC Members attention 🆘 | |
SLACK_MESSAGE: ${{steps.issuemarkdown.outputs.text}} | |
MSG_MINIMAL: true | |
######### | |
# Handling Mailchimp notifications | |
######### | |
- name: Install deps | |
run: npm install | |
working-directory: ./.github/workflows/scripts/mailchimp | |
- name: Send email with MailChimp | |
uses: actions/github-script@v6 | |
env: | |
CALENDAR_ID: ${{ secrets.CALENDAR_ID }} | |
CALENDAR_SERVICE_ACCOUNT: ${{ secrets.CALENDAR_SERVICE_ACCOUNT }} | |
MAILCHIMP_API_KEY: ${{ secrets.MAILCHIMP_API_KEY }} | |
with: | |
script: | | |
const sendEmail = require('./.github/workflows/scripts/mailchimp/index.js'); | |
sendEmail('${{github.event.issue.html_url}}', '${{github.event.issue.title}}'); | |
pull_request: | |
if: github.event_name == 'pull_request_target' && contains(github.event.pull_request.body, '@asyncapi/tsc_members') | |
name: TSC notification on every new pull request | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
######### | |
# Handling Slack notifications | |
######### | |
- name: Convert markdown to slack markdown | |
uses: asyncapi/.github/.github/actions/slackify-markdown@master | |
id: prmarkdown | |
with: | |
markdown: "[${{github.event.pull_request.title}}](${{github.event.pull_request.html_url}}) \n ${{github.event.pull_request.body}}" | |
- name: Send info about pull request | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{secrets.SLACK_TSC_MEMBERS_NOTIFY}} | |
SLACK_TITLE: 🆘 New PR that requires TSC Members attention 🆘 | |
SLACK_MESSAGE: ${{steps.prmarkdown.outputs.text}} | |
MSG_MINIMAL: true | |
######### | |
# Handling Mailchimp notifications | |
######### | |
- name: Install deps | |
run: npm install | |
working-directory: ./.github/workflows/scripts/mailchimp | |
- name: Send email with MailChimp | |
uses: actions/github-script@v6 | |
env: | |
CALENDAR_ID: ${{ secrets.CALENDAR_ID }} | |
CALENDAR_SERVICE_ACCOUNT: ${{ secrets.CALENDAR_SERVICE_ACCOUNT }} | |
MAILCHIMP_API_KEY: ${{ secrets.MAILCHIMP_API_KEY }} | |
with: | |
script: | | |
const sendEmail = require('./.github/workflows/scripts/mailchimp/index.js'); | |
sendEmail('${{github.event.pull_request.html_url}}', '${{github.event.pull_request.title}}'); | |
discussion: | |
if: github.event_name == 'discussion' && contains(github.event.discussion.body, '@asyncapi/tsc_members') | |
name: TSC notification on every new discussion | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
######### | |
# Handling Slack notifications | |
######### | |
- name: Convert markdown to slack markdown | |
uses: asyncapi/.github/.github/actions/slackify-markdown@master | |
id: discussionmarkdown | |
with: | |
markdown: "[${{github.event.discussion.title}}](${{github.event.discussion.html_url}}) \n ${{github.event.discussion.body}}" | |
- name: Send info about pull request | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{secrets.SLACK_TSC_MEMBERS_NOTIFY}} | |
SLACK_TITLE: 🆘 New discussion that requires TSC Members attention 🆘 | |
SLACK_MESSAGE: ${{steps.discussionmarkdown.outputs.text}} | |
MSG_MINIMAL: true | |
######### | |
# Handling Mailchimp notifications | |
######### | |
- name: Install deps | |
run: npm install | |
working-directory: ./.github/workflows/scripts/mailchimp | |
- name: Send email with MailChimp | |
uses: actions/github-script@v6 | |
env: | |
CALENDAR_ID: ${{ secrets.CALENDAR_ID }} | |
CALENDAR_SERVICE_ACCOUNT: ${{ secrets.CALENDAR_SERVICE_ACCOUNT }} | |
MAILCHIMP_API_KEY: ${{ secrets.MAILCHIMP_API_KEY }} | |
with: | |
script: | | |
const sendEmail = require('./.github/workflows/scripts/mailchimp/index.js'); | |
sendEmail('${{github.event.discussion.html_url}}', '${{github.event.discussion.title}}'); | |
issue_comment: | |
if: ${{ github.event_name == 'issue_comment' && !github.event.issue.pull_request && contains(github.event.comment.body, '@asyncapi/tsc_members') }} | |
name: TSC notification on every new comment in issue | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
######### | |
# Handling Slack notifications | |
######### | |
- name: Convert markdown to slack markdown | |
uses: asyncapi/.github/.github/actions/slackify-markdown@master | |
id: issuemarkdown | |
with: | |
markdown: "[${{github.event.issue.title}}](${{github.event.comment.html_url}}) \n ${{github.event.comment.body}}" | |
- name: Send info about issue comment | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{secrets.SLACK_TSC_MEMBERS_NOTIFY}} | |
SLACK_TITLE: 🆘 New comment under existing issue that requires TSC Members attention 🆘 | |
SLACK_MESSAGE: ${{steps.issuemarkdown.outputs.text}} | |
MSG_MINIMAL: true | |
######### | |
# Handling Mailchimp notifications | |
######### | |
- name: Install deps | |
run: npm install | |
working-directory: ./.github/workflows/scripts/mailchimp | |
- name: Send email with MailChimp | |
uses: actions/github-script@v6 | |
env: | |
CALENDAR_ID: ${{ secrets.CALENDAR_ID }} | |
CALENDAR_SERVICE_ACCOUNT: ${{ secrets.CALENDAR_SERVICE_ACCOUNT }} | |
MAILCHIMP_API_KEY: ${{ secrets.MAILCHIMP_API_KEY }} | |
with: | |
script: | | |
const sendEmail = require('./.github/workflows/scripts/mailchimp/index.js'); | |
sendEmail('${{github.event.comment.html_url}}', '${{github.event.issue.title}}'); | |
pr_comment: | |
if: github.event_name == 'issue_comment' && github.event.issue.pull_request && contains(github.event.comment.body, '@asyncapi/tsc_members') | |
name: TSC notification on every new comment in pr | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
######### | |
# Handling Slack notifications | |
######### | |
- name: Convert markdown to slack markdown | |
uses: asyncapi/.github/.github/actions/slackify-markdown@master | |
id: prmarkdown | |
with: | |
markdown: "[${{github.event.issue.title}}](${{github.event.comment.html_url}}) \n ${{github.event.comment.body}}" | |
- name: Send info about PR comment | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{secrets.SLACK_TSC_MEMBERS_NOTIFY}} | |
SLACK_TITLE: 🆘 New comment under existing PR that requires TSC Members attention 🆘 | |
SLACK_MESSAGE: ${{steps.prmarkdown.outputs.text}} | |
MSG_MINIMAL: true | |
######### | |
# Handling Mailchimp notifications | |
######### | |
- name: Install deps | |
run: npm install | |
working-directory: ./.github/workflows/scripts/mailchimp | |
- name: Send email with MailChimp | |
uses: actions/github-script@v6 | |
env: | |
CALENDAR_ID: ${{ secrets.CALENDAR_ID }} | |
CALENDAR_SERVICE_ACCOUNT: ${{ secrets.CALENDAR_SERVICE_ACCOUNT }} | |
MAILCHIMP_API_KEY: ${{ secrets.MAILCHIMP_API_KEY }} | |
with: | |
script: | | |
const sendEmail = require('./.github/workflows/scripts/mailchimp/index.js'); | |
sendEmail('${{github.event.comment.html_url}}', '${{github.event.issue.title}}'); | |
discussion_comment: | |
if: github.event_name == 'discussion_comment' && contains(github.event.comment.body, '@asyncapi/tsc_members') | |
name: TSC notification on every new comment in discussion | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
######### | |
# Handling Slack notifications | |
######### | |
- name: Convert markdown to slack markdown | |
uses: asyncapi/.github/.github/actions/slackify-markdown@master | |
id: discussionmarkdown | |
with: | |
markdown: "[${{github.event.discussion.title}}](${{github.event.comment.html_url}}) \n ${{github.event.comment.body}}" | |
- name: Send info about discussion comment | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{secrets.SLACK_TSC_MEMBERS_NOTIFY}} | |
SLACK_TITLE: 🆘 New comment under existing discussion that requires TSC Members attention 🆘 | |
SLACK_MESSAGE: ${{steps.discussionmarkdown.outputs.text}} | |
MSG_MINIMAL: true | |
######### | |
# Handling Mailchimp notifications | |
######### | |
- name: Install deps | |
run: npm install | |
working-directory: ./.github/workflows/scripts/mailchimp | |
- name: Send email with MailChimp | |
uses: actions/github-script@v6 | |
env: | |
CALENDAR_ID: ${{ secrets.CALENDAR_ID }} | |
CALENDAR_SERVICE_ACCOUNT: ${{ secrets.CALENDAR_SERVICE_ACCOUNT }} | |
MAILCHIMP_API_KEY: ${{ secrets.MAILCHIMP_API_KEY }} | |
with: | |
script: | | |
const sendEmail = require('./.github/workflows/scripts/mailchimp/index.js'); | |
sendEmail('${{github.event.comment.html_url}}', '${{github.event.discussion.title}}'); |