-
Notifications
You must be signed in to change notification settings - Fork 1
49 lines (42 loc) · 1.94 KB
/
Auto_PR_Setting.yml
File metadata and controls
49 lines (42 loc) · 1.94 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
42
43
44
45
46
47
48
49
name: Auto PR Setting
on:
pull_request:
types: [opened]
jobs:
assign-issue:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set Auth Token
run: echo "GH_TOKEN=${{ secrets.PERSONAL_ACCESS_TOKEN }}" >> $GITHUB_ENV
- name: Get Issue Number
id: get_issue
run: |
PR_DATA=$(gh pr view ${{ github.event.pull_request.number }} --json headRefName)
echo "PR_DATA=${PR_DATA}" >> $GITHUB_ENV
BRANCH_NAME=$(echo "${PR_DATA}" | jq -r '.headRefName')
echo "BRANCH_NAME=${BRANCH_NAME}" >> $GITHUB_ENV
ISSUE_NUMBER=$(echo "${BRANCH_NAME}" | awk -F'#' '{print $2}' | grep -Eo '^[0-9]+')
echo "ISSUE_NUMBER=${ISSUE_NUMBER}" >> $GITHUB_ENV
- name: Get Issue Details
id: get_issue_details
run: |
ISSUE_DATA=$(gh issue view "${ISSUE_NUMBER}" --json assignees,labels,projectItems --jq '{assignees: [.assignees[].login], labels: [.labels[].name], projects: [.projectItems[].title]}')
echo "ISSUE_DATA=${ISSUE_DATA}" >> $GITHUB_ENV
- name: Setting PR
id: setting_pr
run: |
ASSIGNEES=$(echo "${ISSUE_DATA}" | jq -r '.assignees | join(",")')
LABELS=$(echo "${ISSUE_DATA}" | jq -r '.labels | join(",")')
PROJECTS=$(echo "${ISSUE_DATA}" | jq -r '.projects | join(",")')
TEAM_MEMBERS=("unifolio0" "coli-geonwoo" "leegwichan")
IFS=', ' read -r -a ASSIGNEE_ARRAY <<< "${ASSIGNEES}"
REVIEWERS=()
for MEMBER in "${TEAM_MEMBERS[@]}"; do
if [[ ! " ${ASSIGNEE_ARRAY[@]} " =~ " ${MEMBER} " ]]; then
REVIEWERS+=("${MEMBER}")
fi
done
REVIEWER_LIST=$(IFS=', '; echo "${REVIEWERS[*]}")
gh pr edit ${{ github.event.pull_request.number }} --add-assignee "${ASSIGNEES}" --add-label "${LABELS}" --add-reviewer "${REVIEWER_LIST}" --add-project "${PROJECTS}"