Github Actions로 Github Issue 생성 시 Jira Issue도 같이 등록 시키기

sumi-0011·2023년 7월 28일
2

📋 Github Action

목록 보기
1/1

Jira의 티켓을 끊고, 같은 작업을 Github에서는 issue를 등록해주면서 할일을 관리하고 있었는데, 작업을 하다보니 너무 번거로운 문제가 있었다.

그래서 github action을 이용해서 issue가 생성되면, jira issue도 같이 생성하면 일이 반으로 줄을것 이라고 생각하고 시도해 보게 되었다.

Github Action 만들기

Action Flow는 다음과 같다.
1. Jira 로그인한다.
2. Jira issue를 생성한다.

create_jira_issue.yml

name: Create Jira issue # 1
on: # 2
  issues: 
    types: [opened] 
    
jobs: # 3
  create-issue:  # 4
    name: Create Jira issue # 5
    runs-on: ubuntu-latest # 6
    steps: # 7
    - name: Login
      uses: atlassian/gajira-login@v3 # 8
      env: 
        JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }} # 9
        JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
        JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
    
    - name: Create Issue 
      uses: atlassian/gajira-create@v3
      with:
        project: PROJECT_KEY  # 10 - 프로젝트 key
        issuetype: Story # 11 - 이슈 타입
        summary: '${{ github.event.issue.title }}'
        description: '${{ github.event.issue.html_url }}'
 

create_jira_issue.yml 설명

#1 : workflow의 이름 지정

이떄 지정한 이름은 Github repository에서 action 탭의 이름이 된다.

#2 : workflow가 실행된 트리거 지정

이 Github Action의 경우에는 issue가 새로 생성될 때마다 실행되어야하므로,
issuestypes 속성중 opened 상태일 때 workflow가 트리거되도록 하였다.

#3 : workflow에서 수행될 jobs을 정의

#4 : jobs의 job을 정의

#5 : 해당 job의 Github UI에 표시되는 작업의 이름을 설정

이부분에서 설정한 이름이 아래와 같이 나오게 된다.

#6 : job이 실행될 환경을 정의

여러가지 환경 중 가장 많이 사용되는 Ubuntu 22.04을 선택하여 사용하였다. -> ubuntu-latest

Github docs

#7 : steps를 사용하여 job이 실행될 작업을 지정

name: ${name} 을 사용하여 각 step을 정의하고, 이부분에 설정된 작업이 아래와 같이 나뉘어서 나오게된다.

Github docs

#8 : uses를 사용하여 다른 repository에 정의된 작업을 사용

gajira-login를 이용해 Jira에 로그인 하고,
gajira-create를 이용해 Jira에 이슈를 생성해주었다.

gajira-login : https://github.com/atlassian/gajira-login
gajira-create : https://github.com/atlassian/gajira-create

Github docs

#9

Jira에 로그인 하려면, 민감한 개인정보를 입력해야하는데, (토큰, 사용자 이메일등)
이를 Github secrets를 이용해 비밀로 유지할 수 있다.

사용한 key들은

  • JIRA_BASE_URL : URL of Jira instance
    ex) https://{domain}.atlassian.net
  • JIRA_API_TOKEN : Access Token for Authorization
    ex) 이 링크에서 발급받은 token
  • JIRA_USER_EMAIL : user email
    ex) example@example.com

#10 : Jira 프로젝트 Key

issue를 생성할 Jira 프로젝트의 Key를 입력해야한다.
Jira Project의 프로젝트 설정에서 확인할 수 있다.

프로젝트 이름과는 다를 수 있음!

#11 : Jira Issue Type 설정

자동으로 Jira issue를 생성하면서 issue type을 설정하는데,
나의 경우 Story 타입을 선택하였다.

Jira issue type 종류

  • Task
  • Bug
  • Story
  • Subtask
    .. 등등

더 자세한 정보

profile
안녕하세요 😚

0개의 댓글