Skip to content

[REQ] System scalability #355

[REQ] System scalability

[REQ] System scalability #355

name: Issue triage labels
on:
issues:
types:
- opened
- reopened
- labeled
- unlabeled
permissions:
issues: write
jobs:
sync-triage-label:
name: Sync needs-triage label
runs-on: ubuntu-latest
steps:
- name: Apply/remove needs-triage
uses: actions/github-script@v8
with:
script: |
const triageLabel = "needs-triage";
const labels = context.payload.issue.labels.map((label) => label.name);
const hasAreaLabel = labels.some((label) => label.startsWith("area:"));
const hasPriorityLabel = labels.some((label) => label.startsWith("priority:"));
const hasTriageLabel = labels.includes(triageLabel);
const shouldHaveTriageLabel = !(hasAreaLabel || hasPriorityLabel);
if (shouldHaveTriageLabel && !hasTriageLabel) {
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
labels: [triageLabel],
});
core.info(`Added ${triageLabel}`);
return;
}
if (!shouldHaveTriageLabel && hasTriageLabel) {
await github.rest.issues.removeLabel({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
name: triageLabel,
});
core.info(`Removed ${triageLabel}`);
return;
}
core.info("No label changes needed");