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