Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .github/ISSUE_TEMPLATE/🍀다솜-이슈-템플릿.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: "🍀다솜-이슈-템플릿"
description: "해당 이슈 생성 템플릿으로 작성해주세요! (2025.08.08 update)"
labels: [FEAT]
title: "[feat] 개발 타이틀"
body:
- type: input
id: parentKey
attributes:
label: "🎟️ 상위 작업 (Ticket Number)"
description: "상위 작업의 Ticket Number를 기입해주세요"
placeholder: "DASOMFE-00 또는 DASOMBE-00"
validations:
required: true

- type: dropdown
id: projectKey
attributes:
label: "📦 프로젝트"
description: "이슈를 생성할 Jira 프로젝트를 선택하세요"
options:
- DASOMFE
- DASOMBE
validations:
required: true

- type: textarea
id: purpose
attributes:
label: "🎯 목적(Purpose)"
description: "해당 Issue가 발생한 원인과 배경을 설명한다."
placeholder: "예: 회원 기능 구현을 위한 로그인 기능 추가 필요"
validations:
required: true

- type: textarea
id: description
attributes:
label: "📝 상세 내용(Description)"
description: "구현할 기능 또는 수정 사항에 대한 구체적인 설명"
placeholder: "예: 이메일 및 비밀번호 입력값 검증 로직 추가, OAuth 연동 검토"
validations:
required: true
31 changes: 31 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# [태그] 제목

(예: [feat] 사용자 인증 기능 추가)

## Issue

- 예시: #111, #112
(해당 PR과 관련된 이슈 번호를 명시하여 추적 용이성을 확보)

## 변경 내용

- 이번 PR에서 어떤 변경이 이루어졌는지 간략하게 기술합니다.
(예: 기존 로그인 API에 JWT 기반 인증 로직 추가)

## 체크리스트

- PR을 제출하기 전에 다음 사항들을 확인해주세요:

- [ ] 커밋 메시지가 컨벤션을 따르는가?
- [ ] 린트 검사를 통과했는가? (`npm run lint` or `npm run lint:fix`)
- [ ] 로컬에서 빌드가 성공하는가? (`npm run build`)

## 테스트

- [ ] 로컬에서 테스트 완료
- [ ] 기존 기능에 영향 없음 확인
- [ ] 다양한 브라우저에서 테스트 (필요시)

## 리뷰 요구사항(필요시)

- 특별히 리뷰해주길 원하는 부분
32 changes: 32 additions & 0 deletions .github/workflows/close-jira-issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Close Jira issue
on:
issues:
types:
- closed

jobs:
close-issue:
name: Close Jira issue
runs-on: ubuntu-latest

steps:
- name: Login to Jira
uses: atlassian/gajira-login@v3
env:
JIRA_BASE_URL: ${{ secrets.JIRA_URL }}
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
JIRA_USER_EMAIL: ${{ secrets.JIRA_EMAIL }}

- name: Extract Jira issue key from GitHub issue title
id: extract-key
run: |
ISSUE_TITLE="${{ github.event.issue.title }}"
JIRA_KEY=$(echo "$ISSUE_TITLE" | grep -oE '[A-Z]+-[0-9]+')
echo "JIRA_KEY=$JIRA_KEY" >> $GITHUB_ENV

- name: Close Jira issue
if: env.JIRA_KEY != ''
uses: atlassian/gajira-transition@v3
with:
issue: ${{ env.JIRA_KEY }}
transition: 완료
77 changes: 77 additions & 0 deletions .github/workflows/create-jira-issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Create Jira issue
on:
issues:
types:
- opened
jobs:
create-issue:
name: Create Jira issue
runs-on: ubuntu-latest
steps:
- name: Login
uses: atlassian/gajira-login@v3
env:
JIRA_BASE_URL: ${{ secrets.JIRA_URL }}
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
JIRA_USER_EMAIL: ${{ secrets.JIRA_EMAIL }}

- name: Checkout main code
uses: actions/checkout@v4
with:
ref: main

- name: Issue Parser
uses: stefanbuck/github-issue-parser@v3
id: issue-parser
with:
template-path: .github/ISSUE_TEMPLATE/🍀다솜-이슈-템플릿.yml

- name: Log Issue Parser
run: |
echo '${{ steps.issue-parser.outputs.issueparser_parentKey }}'
echo '${{ steps.issue-parser.outputs.__ticket_number }}'
echo '${{ steps.issue-parser.outputs.jsonString }}'

- name: Convert markdown to Jira Syntax
uses: peter-evans/jira2md@v1
id: md2jira
with:
input-text: |
### Github Issue Link
- ${{ github.event.issue.html_url }}

${{ github.event.issue.body }}
mode: md2jira

- name: Create Issue
id: create
uses: atlassian/gajira-create@v3
with:
project: DASOMBE
issuetype: Task
summary: "${{ github.event.issue.title }}"
description: "${{ steps.md2jira.outputs.output-text }}"
fields: |
{
"parent": {
"key": "${{ steps.issue-parser.outputs.issueparser_parentKey}}"
}
}

- name: Log created issue
run: echo "Jira Issue ${{ steps.issue-parser.outputs.parentKey }}/${{ steps.create.outputs.issue }} was created"

- name: Update issue title
uses: actions-cool/issues-helper@v3
with:
actions: "update-issue"
token: ${{ secrets.GITHUB_TOKEN }}
title: "[${{ steps.create.outputs.issue }}] ${{ github.event.issue.title }}"

- name: Add comment with Jira issue link
uses: actions-cool/issues-helper@v3
with:
actions: "create-comment"
token: ${{ secrets.GITHUB_TOKEN }}
issue-number: ${{ github.event.issue.number }}
body: "Jira Issue Created: [${{ steps.create.outputs.issue }}](${{ secrets.JIRA_URL }}/browse/${{ steps.create.outputs.issue }})"
Loading