# 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

on:
  issues:
    types: [opened, reopened]

  pull_request_target:
    types: [opened, reopened, ready_for_review]

  discussion:
    types: [created]

jobs:
  issue:
    if: github.event_name == 'issues' && github.actor != 'asyncapi-bot' && github.actor != 'dependabot[bot]' && github.actor != 'dependabot-preview[bot]'
    name: Notify slack on every new issue
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3
      - name: Convert markdown to slack markdown for issue
        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_GITHUB_NEWISSUEPR}}
          SLACK_TITLE: 🐛 New Issue in ${{github.repository}} 🐛
          SLACK_MESSAGE: ${{steps.issuemarkdown.outputs.text}}
          MSG_MINIMAL: true

  pull_request:
    if: github.event_name == 'pull_request_target' && github.actor != 'asyncapi-bot' && github.actor != 'dependabot[bot]' && github.actor != 'dependabot-preview[bot]'
    name: Notify slack on every new pull request
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3
      - name: Convert markdown to slack markdown for pull request
        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_GITHUB_NEWISSUEPR}}
          SLACK_TITLE: 💪 New Pull Request in ${{github.repository}} 💪
          SLACK_MESSAGE: ${{steps.prmarkdown.outputs.text}}
          MSG_MINIMAL: true

  discussion:
    if: github.event_name == 'discussion' && github.actor != 'asyncapi-bot' && github.actor != 'dependabot[bot]' && github.actor != 'dependabot-preview[bot]'
    name: Notify slack on every new pull request
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3
      - name: Convert markdown to slack markdown for pull request
        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_GITHUB_NEWISSUEPR}}
          SLACK_TITLE: 💬 New Discussion in ${{github.repository}} 💬
          SLACK_MESSAGE: ${{steps.discussionmarkdown.outputs.text}}
          MSG_MINIMAL: true
