Skip to content

Commit 5fc81be

Browse files
authored
Refactor Weekly Meetup Issue Creator workflow
Updated the workflow to improve issue creation logic and added comments for clarity.
1 parent 9c9799e commit 5fc81be

1 file changed

Lines changed: 36 additions & 23 deletions

File tree

.github/workflows/Weekly Meetup Issue Creator.yml

Lines changed: 36 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,55 @@ name: Weekly Meetup Issue Creator
22

33
on:
44
schedule:
5-
- cron: '0 13 * * 0' # 매주 일요일 밤 10시 (KST)
6-
workflow_dispatch: # 테스트 실행용
5+
- cron: '0 13 * * 0' # 매주 일요일 13:00 UTC (22:00 KST)
6+
workflow_dispatch:
77

88
jobs:
9-
create-next-meetup-issue:
9+
create-meetup-issue:
1010
runs-on: ubuntu-latest
1111
permissions:
1212
issues: write
13+
repository-projects: write
1314

1415
steps:
1516
- name: Checkout repository
1617
uses: actions/checkout@v4
17-
18-
- name: Calculate Next Issue Title and Content
19-
id: next_issue
18+
19+
- name: Calculate Values and Create Issue
2020
env:
2121
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2222
run: |
23-
# 1. 가장 최근 이슈 정보 가져오기
24-
LATEST_ISSUE=$(gh issue list --state all --limit 1 --json title,body)
25-
ORIGINAL_TITLE=$(echo "$LATEST_ISSUE" | jq -r '.[0].title')
26-
BODY=$(echo "$LATEST_ISSUE" | jq -r '.[0].body')
27-
28-
# 2. 정규표현식을 사용하여 회차 숫자와 날짜 추출
29-
# 형식 예: "280th online meetup, 2026-03-28"
30-
COUNT=$(echo "$ORIGINAL_TITLE" | grep -oP '\d+(?=th)')
31-
DATE_STR=$(echo "$ORIGINAL_TITLE" | grep -oP '\d{4}-\d{2}-\d{2}')
32-
33-
# 3. 새로운 값 계산
34-
NEXT_COUNT=$((COUNT + 1))
35-
NEXT_DATE=$(date -d "$DATE_STR + 7 days" +%Y-%m-%d)
23+
# 1. 기준 설정 (2026-03-28이 280회)
24+
BASE_DATE="2026-03-28"
25+
BASE_COUNT=280
26+
27+
# 2. 타겟 날짜 계산 (일요일 실행 기준 +6일 = 다가오는 토요일)
28+
TARGET_DATE=$(date -d "+6 days" +%Y-%m-%d)
3629
37-
# 4. 새로운 제목 조합
38-
NEXT_TITLE="${NEXT_COUNT}th online meetup, ${NEXT_DATE}"
30+
# 3. 회차(Count) 계산 (날짜 차이 이용)
31+
# 기준일로부터 타겟일까지의 일수(days)를 계산합니다.
32+
DAYS_DIFF=$(( ($(date -d "$TARGET_DATE" +%s) - $(date -d "$BASE_DATE" +%s)) / 86400 ))
33+
WEEKS_DIFF=$(( DAYS_DIFF / 7 ))
3934
40-
echo "Next Title: $NEXT_TITLE"
35+
NEXT_COUNT=$(( BASE_COUNT + WEEKS_DIFF ))
36+
37+
# 4. 연도, 분기, 프로젝트 이름 계산
38+
YEAR=$(date -d "$TARGET_DATE" +'%Y')
39+
MONTH=$(date -d "$TARGET_DATE" +%-m)
40+
QUARTER=$(((MONTH - 1) / 3 + 1))
41+
42+
MILESTONE="${YEAR} ${QUARTER}Q"
43+
PROJECT_NAME="${YEAR} Online study meetup"
44+
NEXT_TITLE="${NEXT_COUNT}th online meetup, ${TARGET_DATE}"
45+
46+
echo "Target Title: $NEXT_TITLE"
47+
echo "Milestone: $MILESTONE / Project: $PROJECT_NAME"
4148
4249
# 5. 새 이슈 생성
43-
gh issue create --title "$NEXT_TITLE" --body "$BODY"
50+
gh issue create \
51+
--title "$NEXT_TITLE" \
52+
--body "## Weekly Online Study Meetup ($TARGET_DATE)\n자동 생성된 주간 미트업 이슈입니다." \
53+
--assignee "@me" \
54+
--label "$YEAR" \
55+
--project "$PROJECT_NAME" \
56+
--milestone "$MILESTONE"

0 commit comments

Comments
 (0)