diff options
-rw-r--r-- | .github/workflows/assign-relevant-labels.yml | 64 | ||||
-rw-r--r-- | .github/workflows/label-bug-fix.yml | 44 |
2 files changed, 64 insertions, 44 deletions
diff --git a/.github/workflows/assign-relevant-labels.yml b/.github/workflows/assign-relevant-labels.yml new file mode 100644 index 000000000..4118c7172 --- /dev/null +++ b/.github/workflows/assign-relevant-labels.yml @@ -0,0 +1,64 @@ +name: "Assign relevant labels" +on: + pull_request_target: + types: [ opened, edited ] +jobs: + assign-label: + if: github.event.pull_request.state == 'open' + runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write + contents: read + steps: + - name: label + env: + TITLE: ${{ github.event.pull_request.title }} + LABEL_FIX: Bug Fix + LABEL_BACKEND: Backend + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GITHUB_TOKEN}} + script: | + const labelsToAdd = []; + const labelsToRemove = []; + const title = process.env.TITLE.split(":")[0].toUpperCase(); + + if(title.includes("FIX")){ + labelsToAdd.push(process.env.LABEL_FIX); + } else { + labelsToRemove.push(process.env.LABEL_FIX); + } + + if(title.includes("BACKEND")){ + labelsToAdd.push(process.env.LABEL_BACKEND); + } else { + labelsToRemove.push(process.env.LABEL_BACKEND); + } + + for (const label of labelsToAdd) { + github.rest.issues.addLabels({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + labels: [label] + }); + } + + const {data} = await github.rest.issues.listLabelsOnIssue({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + }); + + for (const label of labelsToRemove) { + const filtered = data.filter(l => l.name == label); + if(filtered.length == 1){ + github.rest.issues.removeLabel({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + name: label + }); + } + } diff --git a/.github/workflows/label-bug-fix.yml b/.github/workflows/label-bug-fix.yml deleted file mode 100644 index 4730d6194..000000000 --- a/.github/workflows/label-bug-fix.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: "Bug Fix label" -on: - pull_request_target: - types: [ opened, edited ] -jobs: - assign-label: - if: github.event.pull_request.state == 'open' # Condition to check if PR is open - runs-on: ubuntu-latest - permissions: - issues: write - pull-requests: write - contents: read - steps: - - name: label - env: - TITLE: ${{ github.event.pull_request.title }} - LABEL: Bug Fix - uses: actions/github-script@v7 - with: - github-token: ${{ secrets.GITHUB_TOKEN}} - script: | - if(process.env.TITLE.split(":")[0].toUpperCase().includes("FIX")){ - github.rest.issues.addLabels({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - labels: [process.env.LABEL] - }) - }else{ - const {data} = await github.rest.issues.listLabelsOnIssue({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - }) - const filtered = data.filter(label => label.name == process.env.LABEL) - if(filtered.length == 1){ - github.rest.issues.removeLabel({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - name: process.env.LABEL - }) - } - } |