ci: add platform triage workflow for issue auto-assign
When a new issue selects macOS as platform, automatically labels it platform:macos and assigns afonsojramos. Linux issues get labeled platform:linux. cc
This commit is contained in:
1 file changed
+54
@@ -0,0 +1,54 @@
|
||||
name: Platform triage
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [opened]
|
||||
|
||||
permissions:
|
||||
issues: write
|
||||
|
||||
jobs:
|
||||
triage:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Parse platform from issue body
|
||||
id: platform
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const body = context.payload.issue.body || '';
|
||||
// GitHub issue forms render dropdowns as "### Label\n\nValue"
|
||||
const platformMatch = body.match(/### Platform\s*\n\n(.+)/);
|
||||
const platform = platformMatch ? platformMatch[1].trim() : '';
|
||||
core.setOutput('value', platform);
|
||||
|
||||
- name: Label and assign macOS issues
|
||||
if: steps.platform.outputs.value == 'macOS'
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const issue = context.payload.issue.number;
|
||||
await github.rest.issues.addLabels({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: issue,
|
||||
labels: ['platform:macos']
|
||||
});
|
||||
await github.rest.issues.addAssignees({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: issue,
|
||||
assignees: ['afonsojramos']
|
||||
});
|
||||
|
||||
- name: Label Linux issues
|
||||
if: steps.platform.outputs.value == 'Linux'
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
await github.rest.issues.addLabels({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: context.payload.issue.number,
|
||||
labels: ['platform:linux']
|
||||
});
|
||||
Reference in new issue
Block a user