Python으로 JIRA API 사용하기

Python으로 JIRA API 사용하기

Python
Jira
Python으로 JIRA API 사용하기
Author

gabriel yang

Published

October 6, 2024


Python으로 JIRA API 사용하기: jira 라이브러리

JIRA는 프로젝트 관리 및 이슈 추적을 위한 도구로, 다양한 기능을 제공하는 강력한 플랫폼입니다. Python에서 JIRA와 상호작용하려면 jira 라이브러리를 사용하여 JIRA API에 접근할 수 있습니다. 이 글에서는 Python의 jira 라이브러리를 설치하고 사용하는 방법을 단계별로 설명하겠습니다.

1. jira 라이브러리 설치

먼저, jira 라이브러리를 설치해야 합니다. 이를 위해 pip 명령어를 사용합니다.

pip install jira

이 명령어는 Python 환경에 jira 라이브러리를 설치합니다.

2. JIRA API 설정

JIRA API에 접근하려면 JIRA 서버 또는 클라우드 인스턴스에서 API 토큰을 생성해야 합니다. 이는 JIRA 클라우드의 경우 Atlassian 계정 설정에서 할 수 있습니다.

2.1 JIRA API 토큰 생성 (JIRA Cloud)

  1. Atlassian API 토큰 생성 페이지로 이동합니다.
  2. 새로운 토큰을 생성하고 해당 토큰을 복사합니다.

3. Python에서 JIRA 인스턴스 연결

jira 라이브러리를 사용해 JIRA 인스턴스에 연결하려면 API 토큰을 사용해 인증해야 합니다. 다음은 JIRA 클라우드 인스턴스에 연결하는 예시입니다.

from jira import JIRA

# JIRA 서버에 연결
jira_options = {'server': 'https://your-domain.atlassian.net'}
jira = JIRA(options=jira_options, basic_auth=('your-email@example.com', 'your-api-token'))

print("JIRA에 연결되었습니다!")

위 코드에서 server는 JIRA 인스턴스의 URL이며, basic_auth는 사용자 이메일과 API 토큰을 사용한 인증입니다.

4. 이슈 조회

JIRA에서 특정 이슈를 조회하려면 issue 메서드를 사용합니다. 이 메서드는 이슈 키(예: “PROJECT-1”)를 입력받아 이슈에 대한 정보를 가져옵니다.

# 이슈 조회
issue = jira.issue('PROJECT-1')
print(f"이슈 요약: {issue.fields.summary}")
print(f"이슈 상태: {issue.fields.status.name}")

이 코드는 JIRA 프로젝트에서 이슈 “PROJECT-1”의 요약과 상태를 출력합니다.

5. 이슈 생성

JIRA 프로젝트에 새로운 이슈를 생성하려면 create_issue() 메서드를 사용합니다. 이때 필요한 필드는 project, summary, description, issuetype 등입니다.

# 이슈 생성
new_issue = jira.create_issue(project='PROJECT', summary='새로운 이슈 생성 테스트',
                              description='이것은 테스트 이슈입니다.', issuetype={'name': 'Task'})

print(f"새로운 이슈가 생성되었습니다: {new_issue.key}")

이 코드는 PROJECT라는 JIRA 프로젝트에 Task 유형의 새로운 이슈를 생성하고, 생성된 이슈의 키를 출력합니다.

6. 이슈 업데이트

이미 생성된 이슈의 정보를 업데이트하려면 update() 메서드를 사용할 수 있습니다.

# 이슈 업데이트
issue = jira.issue('PROJECT-1')
issue.update(summary='수정된 이슈 제목', description='수정된 이슈 설명')

print("이슈가 업데이트되었습니다.")

이 코드는 이슈 “PROJECT-1”의 제목과 설명을 수정합니다.

7. 이슈 삭제

생성된 이슈를 삭제하려면 delete() 메서드를 호출합니다. 이 작업은 되돌릴 수 없으므로 주의해서 사용해야 합니다.

# 이슈 삭제
issue = jira.issue('PROJECT-1')
issue.delete()

print("이슈가 삭제되었습니다.")

이 코드는 “PROJECT-1” 이슈를 JIRA에서 삭제합니다.

8. 이슈 댓글 달기

JIRA 이슈에 댓글을 추가하려면 add_comment() 메서드를 사용합니다.

# 이슈에 댓글 추가
issue = jira.issue('PROJECT-1')
jira.add_comment(issue, '이 이슈에 대한 새로운 댓글입니다.')

print("댓글이 추가되었습니다.")

이 코드는 이슈 “PROJECT-1”에 새로운 댓글을 추가합니다.

9. JQL(JIRA Query Language) 사용하기

JIRA에서 여러 이슈를 검색하려면 JIRA Query Language(JQL)를 사용할 수 있습니다. JQL은 SQL과 비슷한 문법을 사용해 이슈를 검색하는 데 사용됩니다.

# JQL을 이용한 이슈 검색
issues = jira.search_issues('project=PROJECT AND status="To Do"')
for issue in issues:
    print(f"{issue.key}: {issue.fields.summary}")

이 코드는 PROJECT 프로젝트에서 상태가 “To Do”인 모든 이슈를 검색하고, 그 결과를 출력합니다.

10. 파일 첨부

JIRA 이슈에 파일을 첨부하려면 add_attachment() 메서드를 사용합니다.

# 파일 첨부
issue = jira.issue('PROJECT-1')
with open('example.txt', 'rb') as file:
    jira.add_attachment(issue=issue, attachment=file)

print("파일이 첨부되었습니다.")

이 코드는 “PROJECT-1” 이슈에 example.txt 파일을 첨부합니다.