Skip to content

Weekly Meetup Issue Creator #5

Weekly Meetup Issue Creator

Weekly Meetup Issue Creator #5

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"