Weekly Meetup Issue Creator #5
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 | |
| 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) 및 연도/분기/프로젝트명 계산 | |
| # 날짜 차이를 구한 뒤 7로 나누어 주차 계산 | |
| DAYS_DIFF=$(( ($(date -d "$TARGET_DATE" +%s) - $(date -d "$BASE_DATE" +%s)) / 86400 )) | |
| WEEKS_DIFF=$(( DAYS_DIFF / 7 )) | |
| NEXT_COUNT=$(( BASE_COUNT + WEEKS_DIFF )) | |
| 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" | |
| # 4. 새 이슈 생성 (이슈 생성 후 URL을 변수에 저장) | |
| # --assignee는 본인 아이디인 'jongfeel'로 고정 | |
| NEW_ISSUE_URL=$(gh issue create \ | |
| --title "$NEXT_TITLE" \ | |
| --body "## Weekly Online Study Meetup ($TARGET_DATE)\n자동 생성된 주간 미트업 이슈입니다." \ | |
| --assignee "jongfeel" \ | |
| --label "$YEAR" \ | |
| --milestone "$MILESTONE") | |
| echo "Issue created: $NEW_ISSUE_URL" | |
| # 5. 프로젝트에 이슈 추가 | |
| # --project 옵션 대신 gh project item-create를 사용하여 명시적으로 추가합니다. | |
| # --owner를 지정해야 'not found' 에러를 방지할 수 있습니다. | |
| gh project item-create "$PROJECT_NAME" \ | |
| --owner "${{ github.repository_owner }}" \ | |
| --url "$NEW_ISSUE_URL" |