Weekly Meetup Issue Creator #4
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' # 매주 일요일 13:00 UTC (22:00 KST) | |
| workflow_dispatch: | |
| jobs: | |
| create-meetup-issue: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| issues: write | |
| repository-projects: 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. 회차(Count) 계산 (날짜 차이 이용) | |
| # 기준일로부터 타겟일까지의 일수(days)를 계산합니다. | |
| DAYS_DIFF=$(( ($(date -d "$TARGET_DATE" +%s) - $(date -d "$BASE_DATE" +%s)) / 86400 )) | |
| WEEKS_DIFF=$(( DAYS_DIFF / 7 )) | |
| NEXT_COUNT=$(( BASE_COUNT + WEEKS_DIFF )) | |
| # 4. 연도, 분기, 프로젝트 이름 계산 | |
| YEAR=$(date -d "$TARGET_DATE" +'%Y') | |
| MONTH=$(date -d "$TARGET_DATE" +%-m) | |
| QUARTER=$(((MONTH - 1) / 3 + 1)) | |
| MILESTONE="${YEAR} ${QUARTER}Q" | |
| PROJECT_NAME="${YEAR} Online study meetup" | |
| NEXT_TITLE="${NEXT_COUNT}th online meetup, ${TARGET_DATE}" | |
| echo "Target Title: $NEXT_TITLE" | |
| echo "Milestone: $MILESTONE / Project: $PROJECT_NAME" | |
| # 5. 새 이슈 생성 | |
| gh issue create \ | |
| --title "$NEXT_TITLE" \ | |
| --body "## Weekly Online Study Meetup ($TARGET_DATE)\n자동 생성된 주간 미트업 이슈입니다." \ | |
| --assignee "jongfeel" \ | |
| --label "$YEAR" \ | |
| --project "$PROJECT_NAME" \ | |
| --milestone "$MILESTONE" |