-
Notifications
You must be signed in to change notification settings - Fork 3.5k
50 lines (47 loc) · 2.01 KB
/
triage.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
name: Triage Opened Issues
on:
issues:
types: [opened]
permissions:
issues: write
jobs:
assign_triage_label:
runs-on: ubuntu-latest
steps:
- name: Assign Triage Label
if: ${{ join(github.event.issue.labels) == '' && join(github.event.issue.assignees) == '' }}
uses: actions-ecosystem/action-add-labels@v1
with:
labels: triage-needed
number: ${{ github.event.issue.number }}
github_token: ${{ secrets.GITHUB_TOKEN }}
assign_random_user:
needs: assign_triage_label
runs-on: ubuntu-latest
steps:
- name: Assign Random User
run: |
echo "Waiting a few seconds before assigning..."
sleep 30
assignees=$(gh issue view ${{ github.event.issue.number }} --repo ${{ github.repository }} --json assignees)
if echo "$assignees" | grep -q '"login"'; then
echo "The issue has assignees. "
exit 0
else
echo "The issue has no assignee(s)."
if ! gh issue view ${{ github.event.issue.number }} --repo ${{ github.event.repository.full_name }} --json labels | grep "triage-needed"; then
echo "Skipping triage assignment since triage-needed label is not present"
exit 0
fi
users=("isidorn" "jrieken" "roblourens" "aeschli" "mjbvz" "connor4312" "Tyriar" "Yoyokrazy" "andreamah" "joyceerhl" "alexr00" "bpasero" "rebornix" "chrmarti" "lramos15" "hediet" "alexdima" "rzhao271" "bhavyaus")
if [[ " ${users[@]} " =~ " ${{ github.event.issue.user.login }} " ]]; then
echo "Issue author is in the users list, skipping random assignment."
exit 0
else
random_user=${users[$RANDOM % ${#users[@]}]}
echo "Assigning issue to $random_user"
gh issue edit ${{ github.event.issue.number }} --add-assignee $random_user --repo ${{ github.repository }}
fi
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}