@@ -2,42 +2,55 @@ name: Weekly Meetup Issue Creator
22
33on :
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
88jobs :
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