Skip to content

chore(deps): bump actions/setup-node from 4 to 6 #16

chore(deps): bump actions/setup-node from 4 to 6

chore(deps): bump actions/setup-node from 4 to 6 #16

Workflow file for this run

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.'
});
}