Skip to content

test(setup): hostile-client fixtures against the real setup server (#173) #355

test(setup): hostile-client fixtures against the real setup server (#173)

test(setup): hostile-client fixtures against the real setup server (#173) #355

name: Pull request labels
on:
pull_request:
types: [opened, synchronize, reopened]
permissions:
contents: read
pull-requests: write
issues: write
jobs:
label:
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@b8dd2d9be0f68b860e7dae5dae7d772984eacd6d # v6
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
sync-labels: true
- name: Apply size label
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
with:
script: |
const labels = ['size:XS','size:S','size:M','size:L','size:XL'];
const colors = ['0e8a16','1d76db','fbca04','d93f0b','b60205'];
for (let i = 0; i < labels.length; i++) {
try { await github.rest.issues.getLabel({owner: context.repo.owner, repo: context.repo.repo, name: labels[i]}); }
catch { await github.rest.issues.createLabel({owner: context.repo.owner, repo: context.repo.repo, name: labels[i], color: colors[i]}); }
}
const pr = context.payload.pull_request;
const lines = pr.additions + pr.deletions;
const size = lines <= 10 ? labels[0] : lines <= 50 ? labels[1] : lines <= 200 ? labels[2] : lines <= 500 ? labels[3] : labels[4];
const current = (await github.rest.issues.listLabelsOnIssue({owner: context.repo.owner, repo: context.repo.repo, issue_number: pr.number})).data.map(x => x.name);
for (const name of current.filter(x => labels.includes(x) && x !== size)) await github.rest.issues.removeLabel({owner: context.repo.owner, repo: context.repo.repo, issue_number: pr.number, name});
if (!current.includes(size)) await github.rest.issues.addLabels({owner: context.repo.owner, repo: context.repo.repo, issue_number: pr.number, labels: [size]});