-
Notifications
You must be signed in to change notification settings - Fork 904
41 lines (38 loc) · 1.63 KB
/
Copy pathassign.yml
File metadata and controls
41 lines (38 loc) · 1.63 KB
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
name: Assign Command
on:
issue_comment:
types: [created]
jobs:
assign:
# Only run on issue comments (not PR comments)
if: "!github.event.issue.pull_request && contains(github.event.comment.body, '/assign')"
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Self-assign if unassigned
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPO: ${{ github.repository }}
ISSUE_NUMBER: ${{ github.event.issue.number }}
COMMENTER: ${{ github.event.comment.user.login }}
run: |
# Check if issue has any assignees
ASSIGNEES=$(gh issue view "$ISSUE_NUMBER" --repo "$REPO" --json assignees -q '.assignees | length')
if [ "$ASSIGNEES" -eq 0 ]; then
# Use API directly to assign (works for any GitHub user, not just collaborators)
if gh api "repos/${REPO}/issues/${ISSUE_NUMBER}/assignees" -X POST -f "assignees[]=${COMMENTER}" --silent; then
echo "Successfully assigned @${COMMENTER} to issue #${ISSUE_NUMBER}"
else
echo "Failed to assign @${COMMENTER} to issue #${ISSUE_NUMBER}"
exit 1
fi
else
# Add commenter as an additional assignee
if gh api "repos/${REPO}/issues/${ISSUE_NUMBER}/assignees" -X POST -f "assignees[]=${COMMENTER}" --silent; then
echo "Successfully added @${COMMENTER} as an additional assignee to issue #${ISSUE_NUMBER}"
else
echo "Failed to add @${COMMENTER} as an additional assignee to issue #${ISSUE_NUMBER}"
exit 1
fi
fi