1+ name : Create Jira Story from GitHub Issue
2+
3+ on :
4+ issues :
5+ types : [opened]
6+
7+ jobs :
8+ create-jira-issue :
9+ runs-on : ubuntu-latest
10+
11+ steps :
12+ - name : main 브랜치 체크아웃
13+ uses : actions/checkout@v4
14+ with :
15+ ref : main
16+
17+ - name : Jira 로그인
18+ uses : atlassian/gajira-login@v3
19+ env :
20+ JIRA_BASE_URL : ${{ secrets.JIRA_BASE_URL }}
21+ JIRA_USER_EMAIL : ${{ secrets.JIRA_USER_EMAIL }}
22+ JIRA_API_TOKEN : ${{ secrets.JIRA_API_TOKEN }}
23+
24+ - name : 이슈 템플릿 파싱
25+ uses : stefanbuck/github-issue-parser@v3
26+ id : issue-parser
27+ with :
28+ template-path : .github/ISSUE_TEMPLATE/issue-form.yml
29+
30+ - name : 마크다운 → Jira 문법 변환
31+ uses : peter-evans/jira2md@v1
32+ id : md2jira
33+ with :
34+ input-text : |
35+ ### GitHub Issue
36+ - ${{ github.event.issue.html_url }}
37+
38+ ${{ github.event.issue.body }}
39+ mode : md2jira
40+
41+ - name : Jira 이슈 생성
42+ id : create
43+ uses : atlassian/gajira-create@v3
44+ with :
45+ project : GUC
46+ issuetype : Story
47+ summary : ' ${{ github.event.issue.title }}'
48+ description : ' ${{ steps.md2jira.outputs.output-text }}'
49+ fields : |
50+ {
51+ "parent": {
52+ "key": "${{ steps.issue-parser.outputs.issueparser_parentKey }}"
53+ }
54+ }
55+
56+ - name : 브랜치 생성 및 푸시
57+ env :
58+ GH_PAT : ${{ secrets.GH_PAT }}
59+ run : |
60+ ISSUE_NUMBER="${{ steps.create.outputs.issue }}"
61+ BRANCH_TYPE="${{ steps.issue-parser.outputs.issueparser_branchType }}"
62+ BRANCH_NAME_INPUT="${{ steps.issue-parser.outputs.issueparser_branch }}"
63+ SANITIZED_INPUT=$(echo "${BRANCH_NAME_INPUT}" | tr '[:upper:]' '[:lower:]' | sed 's/ /-/g' | sed 's/[^a-z0-9\\-]//g')
64+ BRANCH_NAME="${BRANCH_TYPE}/${ISSUE_NUMBER}-${SANITIZED_INPUT}"
65+
66+ git config user.name "github-actions"
67+ git config user.email "actions@github.com"
68+
69+ git checkout -b "${BRANCH_NAME}"
70+ git push "https://x-access-token:${GH_PAT}@github.com/${{ github.repository }}.git" "${BRANCH_NAME}"
71+
72+ - name : GitHub 이슈 제목 업데이트
73+ uses : actions-cool/issues-helper@v3
74+ with :
75+ actions : ' update-issue'
76+ token : ${{ secrets.GITHUB_TOKEN }}
77+ title : ' [${{ steps.create.outputs.issue }}] ${{ github.event.issue.title }}'
78+
79+ - name : Jira 링크 코멘트 남기기
80+ uses : actions-cool/issues-helper@v3
81+ with :
82+ actions : ' create-comment'
83+ token : ${{ secrets.GITHUB_TOKEN }}
84+ issue-number : ${{ github.event.issue.number }}
85+ body : ' 📌 Jira Ticket: [${{ steps.create.outputs.issue }}](${{ secrets.JIRA_BASE_URL }}/browse/${{ steps.create.outputs.issue }})'
0 commit comments