name: Move labelled issues to correct boards and columns

on:
  issues:
    types: [labeled]

jobs:
  apply_Z-Labs_label:
    name: Add Z-Labs label for features behind labs flags
    runs-on: ubuntu-latest
    if: >
      contains(github.event.issue.labels.*.name, 'A-Maths') || 
      contains(github.event.issue.labels.*.name, 'A-Message-Pinning') ||
      contains(github.event.issue.labels.*.name, 'A-Polls') ||
      contains(github.event.issue.labels.*.name, 'A-Location-Sharing') ||
      contains(github.event.issue.labels.*.name, 'A-Message-Bubbles') ||
      contains(github.event.issue.labels.*.name, 'Z-IA') ||
      contains(github.event.issue.labels.*.name, 'A-Themes-Custom') ||
      contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
      contains(github.event.issue.labels.*.name, 'A-Tags') ||
      contains(github.event.issue.labels.*.name, 'A-Rich-Text-Editor')
    steps:
      - uses: actions/github-script@v5
        with:
          script: |
            github.rest.issues.addLabels({
              issue_number: context.issue.number,
              owner: context.repo.owner,
              repo: context.repo.repo,
              labels: ['Z-Labs']
            })

  move_needs_info_issues:
    name: X-Needs-Info issues to Need info column on triage board
    runs-on: ubuntu-latest
    steps:
      - uses: konradpabjan/move-labeled-or-milestoned-issue@219d384e03fa4b6460cd24f9f37d19eb033a4338
        with:
          action-token: "${{ secrets.ELEMENT_BOT_TOKEN }}"
          project-url: "https://github.com/vector-im/element-ios/projects/12"
          column-name: "Need info"
          label-name: "X-Needs-Info"

  add_priority_design_issues_to_project:
    name: P1 X-Needs-Design to Design project board
    runs-on: ubuntu-latest
    if: >
      contains(github.event.issue.labels.*.name, 'X-Needs-Design') &&
      (contains(github.event.issue.labels.*.name, 'S-Critical') &&
       (contains(github.event.issue.labels.*.name, 'O-Frequent') ||
        contains(github.event.issue.labels.*.name, 'O-Occasional')) ||
       (contains(github.event.issue.labels.*.name, 'S-Major') &&
       contains(github.event.issue.labels.*.name, 'O-Frequent')) ||
       contains(github.event.issue.labels.*.name, 'A11y'))
    steps:
      - uses: actions/add-to-project@main
        with:
          project-url: https://github.com/orgs/vector-im/projects/18
          github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}

  add_product_issues_to_project:
    name: X-Needs-Product to Design project board
    runs-on: ubuntu-latest
    if: >
      contains(github.event.issue.labels.*.name, 'X-Needs-Product')
    steps:
      - uses: actions/add-to-project@main
        with:
          project-url: https://github.com/orgs/vector-im/projects/28
          github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}

  ex_plorers:
    name: Add labelled issues to X-Plorer project
    runs-on: ubuntu-latest
    if: >
      contains(github.event.issue.labels.*.name, 'Team: Element X Feature')
    steps:
      - uses: actions/add-to-project@main
        with:
          project-url: https://github.com/orgs/vector-im/projects/73
          github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}

  ps_features1:
    name: Add labelled issues to PS features team 1
    runs-on: ubuntu-latest
    if: >
      contains(github.event.issue.labels.*.name, 'A-Polls') ||
      contains(github.event.issue.labels.*.name, 'A-Location-Sharing') ||
      (contains(github.event.issue.labels.*.name, 'A-Voice-Messages') &&
        !contains(github.event.issue.labels.*.name, 'A-Broadcast')) ||
      (contains(github.event.issue.labels.*.name, 'A-Session-Mgmt') &&
        contains(github.event.issue.labels.*.name, 'A-User-Settings'))
    steps:
      - uses: actions/add-to-project@main
        with:
          project-url: https://github.com/orgs/vector-im/projects/56
          github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}

  ps_features2:
    name: Add labelled issues to PS features team 2
    runs-on: ubuntu-latest
    if: >
      contains(github.event.issue.labels.*.name, 'A-DM-Start') ||
      contains(github.event.issue.labels.*.name, 'A-Broadcast')
    steps:
      - uses: actions/add-to-project@main
        with:
          project-url: https://github.com/orgs/vector-im/projects/58
          github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}

  ps_features3:
    name: Add labelled issues to PS features team 3
    runs-on: ubuntu-latest
    if: >
      contains(github.event.issue.labels.*.name, 'A-Rich-Text-Editor')
    steps:
      - uses: actions/add-to-project@main
        with:
          project-url: https://github.com/orgs/vector-im/projects/57
          github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}

  voip:
    name: Add labelled issues to VoIP project board
    runs-on: ubuntu-latest
    if: >
      contains(github.event.issue.labels.*.name, 'Team: VoIP')
    steps:
      - uses: actions/add-to-project@main
        with:
          project-url: https://github.com/orgs/vector-im/projects/41
          github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
