From 1f3bae7bd8a58a1c082bbb8a7523fd7fdf536745 Mon Sep 17 00:00:00 2001 From: hadevyi Date: Tue, 8 Sep 2026 15:43:15 +0900 Subject: [PATCH] =?UTF-8?q?feat(github):=20=EC=84=A0=ED=83=9D=ED=95=9C=20?= =?UTF-8?q?=EC=9A=B4=EC=98=81=20=ED=8F=BC=EA=B3=BC=20=EC=9E=90=EB=8F=99?= =?UTF-8?q?=ED=99=94=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 공통 구현을 검증된 커밋으로 고정하고 기존 배포·Project 설정을 보존한다. Refs #1 --- .github/ISSUE_TEMPLATE/01-task.yml | 37 ++++++++++++ .github/ISSUE_TEMPLATE/27-learning-other.yml | 61 ++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 2 + .github/dependabot.yml | 25 ++++++++ .github/workflows/auto-assign-issues.yml | 14 ++--- .github/workflows/auto-assign-prs.yml | 14 +++++ .github/workflows/discord-notify.yml | 30 ++++++++++ .github/workflows/sync-labels.yml | 25 +++++--- 8 files changed, 194 insertions(+), 14 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/01-task.yml create mode 100644 .github/ISSUE_TEMPLATE/27-learning-other.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/auto-assign-prs.yml create mode 100644 .github/workflows/discord-notify.yml diff --git a/.github/ISSUE_TEMPLATE/01-task.yml b/.github/ISSUE_TEMPLATE/01-task.yml new file mode 100644 index 0000000..daf8aad --- /dev/null +++ b/.github/ISSUE_TEMPLATE/01-task.yml @@ -0,0 +1,37 @@ +name: 일반 작업 +description: 일반 작업의 목적과 완료 기준을 기록합니다. +title: "[작업] " +labels: +- type:작업 +body: +- type: markdown + attributes: + value: 같은 목적의 열린 Issue를 먼저 확인하고 저장소 정책에 맞는 추가 라벨을 지정해 주세요. +- type: textarea + id: purpose + attributes: + description: 목적에 관한 내용을 구체적으로 적어 주세요. + label: 목적 + validations: + required: true +- type: textarea + id: work-details + attributes: + description: 작업 내용에 관한 내용을 구체적으로 적어 주세요. + label: 작업 내용 + validations: + required: true +- type: textarea + id: completion-criteria + attributes: + description: 완료 기준에 관한 내용을 구체적으로 적어 주세요. + label: 완료 기준 + validations: + required: true +- type: textarea + id: references + attributes: + description: 참고 자료에 관한 내용을 구체적으로 적어 주세요. + label: 참고 자료 + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/27-learning-other.yml b/.github/ISSUE_TEMPLATE/27-learning-other.yml new file mode 100644 index 0000000..6fa7764 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/27-learning-other.yml @@ -0,0 +1,61 @@ +name: 기타 학습 +description: 기타 학습의 목적과 목표를 기록합니다. +title: "[학습][기타] " +labels: +- type:학습 +- source:기타 +body: +- type: markdown + attributes: + value: 같은 목적의 열린 Issue를 먼저 확인하고 저장소 정책에 맞는 추가 라벨을 지정해 주세요. +- type: input + id: learning-title + attributes: + description: 자료나 과정의 정확한 이름을 적어 주세요. + label: 학습 제목 + validations: + required: true +- type: input + id: learning-source + attributes: + description: 자료 유형에 관한 내용을 구체적으로 적어 주세요. + label: 자료 유형 + value: 기타 + validations: + required: true +- type: input + id: related-link + attributes: + description: 관련 링크가 없으면 없음이라고 적어 주세요. + label: 관련 링크 + validations: + required: true +- type: textarea + id: learning-purpose + attributes: + description: 학습 목적에 관한 내용을 구체적으로 적어 주세요. + label: 학습 목적 + validations: + required: true +- type: textarea + id: learning-goal + attributes: + description: 학습 목표에 관한 내용을 구체적으로 적어 주세요. + label: 학습 목표 + validations: + required: true +- type: input + id: start-date + attributes: + description: 시작일에 관한 내용을 구체적으로 적어 주세요. + label: 시작일 + placeholder: YYYY-MM-DD + validations: + required: true +- type: textarea + id: expected-output + attributes: + description: 예상 결과물에 관한 내용을 구체적으로 적어 주세요. + label: 예상 결과물 + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..8005e32 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,2 @@ +blank_issues_enabled: false +contact_links: [] diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..d12a5b4 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,25 @@ +--- +version: 2 +updates: +- package-ecosystem: github-actions + directory: "/" + schedule: + interval: weekly + day: monday + time: '09:00' + timezone: Asia/Seoul + open-pull-requests-limit: 5 + labels: + - type:의존성 + groups: + minor-and-patch: + applies-to: version-updates + patterns: + - "*" + update-types: + - minor + - patch + security-updates: + applies-to: security-updates + patterns: + - "*" diff --git a/.github/workflows/auto-assign-issues.yml b/.github/workflows/auto-assign-issues.yml index e5e3694..529c4c5 100644 --- a/.github/workflows/auto-assign-issues.yml +++ b/.github/workflows/auto-assign-issues.yml @@ -1,12 +1,12 @@ -name: Auto assign issues - -on: +--- +name: Issue 담당자 자동 지정 +'on': issues: - types: [opened] - + types: + - opened permissions: + contents: read issues: write - jobs: assign: - uses: hadevyi/.github/.github/workflows/reusable-auto-assign.yml@main + uses: hadevyi/.github/.github/workflows/reusable-issue-auto-assign.yml@d96d2e5a4211d4eaacf576db094f354adff87aef diff --git a/.github/workflows/auto-assign-prs.yml b/.github/workflows/auto-assign-prs.yml new file mode 100644 index 0000000..c2c34ce --- /dev/null +++ b/.github/workflows/auto-assign-prs.yml @@ -0,0 +1,14 @@ +--- +name: PR 담당자 자동 지정 +'on': + pull_request_target: + types: + - opened + - reopened + - ready_for_review +permissions: + contents: read + pull-requests: write +jobs: + assign: + uses: hadevyi/.github/.github/workflows/reusable-pull-request-auto-assign.yml@d96d2e5a4211d4eaacf576db094f354adff87aef diff --git a/.github/workflows/discord-notify.yml b/.github/workflows/discord-notify.yml new file mode 100644 index 0000000..6d581b3 --- /dev/null +++ b/.github/workflows/discord-notify.yml @@ -0,0 +1,30 @@ +--- +name: Discord GitHub 알림 +'on': + issues: + types: + - opened + issue_comment: + types: + - created + pull_request: + types: + - opened + - reopened + - synchronize + workflow_run: + workflows: + - Sync shared labels + - PR 담당자 자동 지정 + - Issue 담당자 자동 지정 + types: + - completed +permissions: + contents: read +jobs: + notify: + uses: hadevyi/.github/.github/workflows/reusable-discord-notify.yml@d96d2e5a4211d4eaacf576db094f354adff87aef + with: + bot-name: Study Bot + secrets: + DISCORD_WEBHOOK_URL: "${{ secrets.DISCORD_WEBHOOK_URL }}" diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index 5358b17..18374c5 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -1,16 +1,27 @@ +--- name: Sync shared labels - -on: +'on': workflow_dispatch: + inputs: + mode: + type: choice + options: + - preview + - apply + default: preview + issue_number: + type: string + required: false schedule: - - cron: "8 9 13 * *" - timezone: "Asia/Seoul" - + - cron: 8 9 13 * * + timezone: Asia/Seoul permissions: issues: write - jobs: sync: - uses: hadevyi/.github/.github/workflows/reusable-sync-labels.yml@main + uses: hadevyi/.github/.github/workflows/reusable-sync-labels.yml@d96d2e5a4211d4eaacf576db094f354adff87aef with: profile: algorithm + mode: "${{ github.event_name == 'workflow_dispatch' && inputs.mode || 'preview' + }}" + issue_number: "${{ inputs.issue_number || '' }}"