# Apply potential regression label on issues
name: issue-regression-label
on:
  issues:
    types: [opened, edited]
jobs:
  add-regression-label:
    runs-on: ubuntu-latest
    permissions:
      issues: write
    steps:
    - name: Fetch template body
      id: check_regression
      uses: actions/github-script@v7
      env: 
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        TEMPLATE_BODY: ${{ github.event.issue.body }}
      with:
        script: |
          const regressionPattern = /\[x\] Select this option if this issue appears to be a regression\./i;
          const template = `${process.env.TEMPLATE_BODY}`
          const match = regressionPattern.test(template);
          core.setOutput('is_regression', match);
    - name: Manage regression label
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      run: |
        if [ "${{ steps.check_regression.outputs.is_regression }}" == "true" ]; then
          gh issue edit ${{ github.event.issue.number }} --add-label "potential-regression" -R ${{ github.repository }}
        else
          gh issue edit ${{ github.event.issue.number }} --remove-label "potential-regression" -R ${{ github.repository }}
        fi
