atlassian 플랫폼은 기업의 팀 단위에서 프로젝트나 지식을 효율적으로 관리할 수 있도록 도와주는 다양한 소프트웨어들을 제공해준다.
Jira, Trello, Confluence, Bitbucket 등 아주 다양한 협업툴들 중 우리 팀에서는 아래 두 가지 툴을 주로 사용한다.
Jira : 프로젝트 계획 및 관리, 작업 스케쥴링, 이슈 트래킹
Confluence : 지식 공유, 문서 기반 협업
개발한 Data Pipeline이 운영되면서 에러 발생시 Jira의 Issue에서 해당 에러 관련 내용을 확인할 수 있도록 flow를 설계하였다.
이번 글에서는 Jira의 Issue 생성 및 Comment 추가 기능을 Python으로 다룰 수 있도록 코드를 구성해 볼 것이다.
atlassian-python-api
에서는 Jira, Confluence, BitBucket 등 Atlassian 플랫폼에서 제공해주는 일부 솔루션들을 다룰 수 있도록 SDK를 제공해주고 있다. (atlassian-python-api)pip install atlassian-python-api
SDK를 사용하기 위해서는 자신의 계정과 connection을 생성해야 하는데 이 때 필요한 것이 API KEY이다. 아래 링크로 들어가 로그인 하면 API KEY를 생성할 수 있다.
from atlassian import Jira
jira = Jira(
url = [Jira Workspace URL],
username = [User Emain],
password = [API KEY],
)
###### 예시 ######
jira = Jira(
url='https://my-workspace.atlassian.net',
username="hyunsooyein@gmail.com",
password="ATATT......",
)
Issue를 생성하면서 field에 입력해주어야할 인자들이 있는데 주로 사용되는 값들은 아래와 같다.
- project - Issue가 등록될 프로젝트 코드
- summary - Issue 제목
- description - Issue 내용
- issuetype - Issue 타입 (Task, Bug, Story 등)
- priority - 중요도 (Highest, High, Medium, Low, Lowest)
- duedate - 기한 ("YYYY-MM-DD" 포맷)
Project Key는 아래와 같이 등록한 Project 목록을 펼쳐보면 확인이 가능하다.
코드 작성
fields = {
'project': {'key': 'OBT'},
'summary': 'Pipeline Bug',
'description': 'This Issue is about pipeline bug',
'issuetype': {'name': 'Bug'},
"priority": {"name": "Medium"},
"duedate" : "2024-05-28"
}
response = jira.issue_create(fields=fields)
issue_create
함수를 실행시켜보면 아래와 같이 지정한 Project 아래에 Issue가 생성된 것을 볼 수 있다.jira.issue_add_comment([issue_key], [comment 내용])
###### 예시 ######
jira.issue_add_comment('OBT-6', "This is a sample comment string.")