mirror of
https://github.com/actions/runner-images-sangeeth.git
synced 2025-12-25 19:14:09 +08:00
78 lines
2.5 KiB
YAML
78 lines
2.5 KiB
YAML
# Adapted from: https://github.com/microsoft/azure-pipelines-tasks/blob/master/.github/workflows/blank.yml
|
|
# This action labels and assigns newly opened issues
|
|
|
|
name: Issue triager
|
|
on:
|
|
issues:
|
|
types: [opened]
|
|
|
|
jobs:
|
|
label:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
|
|
- uses: damccorm/tag-ur-it@master
|
|
with:
|
|
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
|
configuration-path: "./triage-rules.yml"
|
|
|
|
- uses: actions/github-script@v4
|
|
id: check-if-spammy
|
|
name: Check if new issue is spammy
|
|
with:
|
|
github-token: ${{secrets.GITHUB_TOKEN}}
|
|
result-encoding: string
|
|
script: |
|
|
const issue = context.payload.issue;
|
|
const minTitleLength = 2;
|
|
const titleLength = issue.title.trim().split(' ').length;
|
|
const isEmptyToolRequest = !!(issue.title.includes('[tool name]') && issue.body.includes('Tool name: <!--- Name -->'));
|
|
|
|
if (isEmptyToolRequest || titleLength < minTitleLength) {
|
|
await github.issues.createComment({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
issue_number: issue.number,
|
|
body: "This issue appears to have been opened accidentally. I'm going to close it now, but feel free to open a new issue or ask any questions in discussions!"
|
|
});
|
|
|
|
await github.issues.update({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
labels: ['Invalid'],
|
|
issue_number: issue.number,
|
|
state: 'closed'
|
|
});
|
|
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
|
|
- if: ${{ steps.check-if-spammy.outputs.result == 'false' }}
|
|
uses: actions/github-script@v4
|
|
name: Assign labels to issue
|
|
with:
|
|
github-token: ${{secrets.GITHUB_TOKEN}}
|
|
script: |
|
|
const issueLabels = await github.issues.listLabelsOnIssue({
|
|
issue_number: context.issue.number,
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo
|
|
});
|
|
|
|
const isAnnouncement = issueLabels.data && issueLabels.data
|
|
.map(label => label.name)
|
|
.includes('Announcement');
|
|
|
|
if (!isAnnouncement) {
|
|
github.issues.addLabels({
|
|
issue_number: context.issue.number,
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
labels: ['needs triage']
|
|
})
|
|
} |