name: Automation

on:
  push:
    branches:
      - master
  pull_request_target:
  issue_comment:

jobs:
  label:
    name: Labeling
    runs-on: ubuntu-latest
    if: ${{ github.repository == 'jellyfin/jellyfin' }}
    steps:
      - name: Apply label
        uses: eps1lon/actions-label-merge-conflict@v2.0.1
        if: ${{ github.event_name == 'push' || github.event_name == 'pull_request_target'}}
        with:
          dirtyLabel: 'merge conflict'
          repoToken: ${{ secrets.JF_BOT_TOKEN }}

  project:
    name: Project board
    runs-on: ubuntu-latest
    if: ${{ github.repository == 'jellyfin/jellyfin' }}
    steps:
      - name: Remove from 'Current Release' project
        uses: alex-page/github-project-automation-plus@v0.8.1
        if: (github.event.pull_request || github.event.issue.pull_request) && !contains(github.event.*.labels.*.name, 'stable backport')
        continue-on-error: true
        with:
          project: Current Release
          action: delete
          repo-token: ${{ secrets.JF_BOT_TOKEN }}

      - name: Add to 'Release Next' project
        uses: alex-page/github-project-automation-plus@v0.8.1
        if: (github.event.pull_request || github.event.issue.pull_request) && github.event.action == 'opened'
        continue-on-error: true
        with:
          project: Release Next
          column: In progress
          repo-token: ${{ secrets.JF_BOT_TOKEN }}

      - name: Add to 'Current Release' project
        uses: alex-page/github-project-automation-plus@v0.8.1
        if: (github.event.pull_request || github.event.issue.pull_request) && !contains(github.event.*.labels.*.name, 'stable backport')
        continue-on-error: true
        with:
          project: Current Release
          column: In progress
          repo-token: ${{ secrets.JF_BOT_TOKEN }}

      - name: Check number of comments from the team member
        if: github.event.issue.pull_request == '' && github.event.comment.author_association == 'MEMBER'
        id: member_comments
        run: echo "::set-output name=number::$(curl -s ${{ github.event.issue.comments_url }} | jq '.[] | select(.author_association == "MEMBER") | .author_association' | wc -l)"

      - name: Move issue to needs triage
        uses: alex-page/github-project-automation-plus@v0.8.1
        if: github.event.issue.pull_request == '' && github.event.comment.author_association == 'MEMBER' && steps.member_comments.outputs.number <= 1
        continue-on-error: true
        with:
          project: Issue Triage for Main Repo
          column: Needs triage
          repo-token: ${{ secrets.JF_BOT_TOKEN }}

      - name: Add issue to triage project
        uses: alex-page/github-project-automation-plus@v0.8.1
        if: github.event.issue.pull_request == '' && github.event.action == 'opened'
        continue-on-error: true
        with:
          project: Issue Triage for Main Repo
          column: Pending response
          repo-token: ${{ secrets.JF_BOT_TOKEN }}