chore(deps): bump actions/setup-node from 4 to 6 #16
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "PR Size Labeler" | |
| on: | |
| pull_request: | |
| types: [opened, synchronize] | |
| jobs: | |
| size-label: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| steps: | |
| - name: Calculate PR size | |
| id: pr-size | |
| uses: actions/github-script@v7 | |
| with: | |
| script: | | |
| const pr = await github.rest.pulls.get({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| pull_number: context.issue.number | |
| }); | |
| const additions = pr.data.additions; | |
| const deletions = pr.data.deletions; | |
| const totalChanges = additions + deletions; | |
| let sizeLabel = ''; | |
| if (totalChanges <= 10) sizeLabel = 'size/xs'; | |
| else if (totalChanges <= 100) sizeLabel = 'size/s'; | |
| else if (totalChanges <= 500) sizeLabel = 'size/m'; | |
| else if (totalChanges <= 1000) sizeLabel = 'size/l'; | |
| else sizeLabel = 'size/xl'; | |
| // Remove existing size labels | |
| const labels = await github.rest.issues.listLabelsOnIssue({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: context.issue.number | |
| }); | |
| for (const label of labels.data) { | |
| if (label.name.startsWith('size/')) { | |
| await github.rest.issues.removeLabel({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: context.issue.number, | |
| name: label.name | |
| }); | |
| } | |
| } | |
| // Add new size label | |
| await github.rest.issues.addLabels({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: context.issue.number, | |
| labels: [sizeLabel] | |
| }); | |
| // Comment if XL | |
| if (sizeLabel === 'size/xl') { | |
| await github.rest.issues.createComment({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: context.issue.number, | |
| body: '⚠️ This PR is very large. Consider breaking it down into smaller, more focused changes for easier review.' | |
| }); | |
| } |