Weekly Meetup Issue Creator #7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Weekly Meetup Issue Creator | |
| on: | |
| schedule: | |
| - cron: '0 13 * * 0' # 매주 일요일 22:00 KST (13:00 UTC) | |
| workflow_dispatch: | |
| jobs: | |
| create-meetup-issue: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| issues: write | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Calculate Values and Create Issue | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| # 1. 기준 설정 (2026-03-28이 280회) | |
| BASE_DATE="2026-03-28" | |
| BASE_COUNT=280 | |
| # 2. 타겟 날짜 계산 (일요일 실행 기준 +6일 = 다가오는 토요일) | |
| TARGET_DATE=$(date -d "+6 days" +%Y-%m-%d) | |
| # 3. 최근 이슈에서 본문(Body) 가져오기 | |
| # 가장 최근 생성된 이슈 1개의 본문을 추출합니다. | |
| LATEST_BODY=$(gh issue list --state all --limit 1 --json body --jq '.[0].body') | |
| # 4. 회차(Count) 계산 | |
| DAYS_DIFF=$(( ($(date -d "$TARGET_DATE" +%s) - $(date -d "$BASE_DATE" +%s)) / 86400 )) | |
| WEEKS_DIFF=$(( DAYS_DIFF / 7 )) | |
| NEXT_COUNT=$(( BASE_COUNT + WEEKS_DIFF )) | |
| # 5. 연도 및 분기 계산 | |
| YEAR=$(date -d "$TARGET_DATE" +'%Y') | |
| MONTH=$(date -d "$TARGET_DATE" +%-m) | |
| QUARTER=$(((MONTH - 1) / 3 + 1)) | |
| MILESTONE="${YEAR} ${QUARTER}Q" | |
| NEXT_TITLE="${NEXT_COUNT}th online meetup, ${TARGET_DATE}" | |
| echo "Syncing content from latest issue..." | |
| echo "Target Title: $NEXT_TITLE" | |
| # 6. 새 이슈 생성 (이전 이슈 본문 적용) | |
| gh issue create \ | |
| --title "$NEXT_TITLE" \ | |
| --body "$LATEST_BODY" \ | |
| --assignee "jongfeel" \ | |
| --label "$YEAR" \ | |
| --milestone "$MILESTONE" |