[Python] Jira API 사용하기
현재 업무에서 협업 도구로 Atlassian의 Jira를 사용하고있다.
얼마전 파이썬에서 지라를 불러와 태스크를 자동화하는 업무를 맡아서 진행했었는데. 그 때 사용했던 것이 Jira 라이브러리였다.
해당 라이브러리에 대해 이번 포스팅에서 다뤄보고자 한다.
JIRA API
JIRA REST API를 사용하면 JIRA의 데이터를 프로그래밍적으로 다룰 수 있다.
- 프로젝트 정보 조회
- 이슈 생성, 업데이트, 삭제
- 사용자 관리
- 댓글, 파일 첨부 등 다양한 작업
파이썬에서는 Atlassian이 제공하는 Jira 라이브러리를 사용해 JIRA API에 쉽게 접근이 가능하다.
JIRA 라이브러리 설치 및 환경 설정
먼저 jira 라이브러리를 설치해준다.
pip install jira
Jira API는 인증을 필요로 하기 때문에, atlassian 계정이나 지라에 접근 가능한 인증된 계정이 필요하다.
# 유저의 정보나
user = 'your_id'
passwd = 'your_password'
# 토큰값이 필요함
email = "your-email@example.com"
api_token = 'your_api_token'
JIRA API 기본 사용법
JIRA 클라이언트 설정
Jira 라이브러리를 통해 지라 서버와 연결하기 위해선 위에 설정했던 인증 정보를 제공해야한다.
아래는 기본적인 클라이언트 설정 예제이다.
from jira import JIRA
jira_server = 'https://your-jira-instance.atlassian.net"
jira = JIRA(server=jira_server, basic_auth(email, api_token))
위 코드로 클라이언트를 생성하면 이후 JIRA API를 호출 할수 있다.
이슈 조회
특정 이슈를 조회 후 정보를 출력할 수 있다.
issue = jira.issue('PROJECT-123')
print(f"이슈 제목 : {issue.fields.summary}")
print(f"이슈 설명 : {issue.fields.description}")
이슈 생성
이슈를 생성하는 것 또한 가능하다.
issue_dict = {
'project': {'key':'PROJECT'},
'summary': 'Python을 활용한 이슈 생성 예제',
'description': '이 이슈는 Python을 통해 생성되었습니다.',
'issuetype': {'name': 'Task'},
}
new_issue = jira.create_issue(fields=issue_dict)
print(f"생성된 이슈 키: {new_issue.key}")
이슈 업데이트
기존 이슈의 제목이나 설명 등을 업데이트 할 수 있다.
issue = jira.issue('PROJECT-123')
issue.update(summary='이슈 제목 업데이트', description='이슈 설명 업데이트')
이슈 삭제
특정 이슈를 삭제 할 수 있다.
다만 삭제 작업은 복구할 수 없으니 주의해서 사용해야한다.
issue = jira.issue('PROJECT-123')
issue.delete()
JQL을 활용한 이슈 검색
Jira는 JQL(JIRA Query Language)을 통해 이슈를 필터링할 수 있다.
jql = '''
project = PROJECT
AND status = "To Do"
'''
issues = jira.search_issues(jql)
for issue in issues:
print(f"{issue.key}: {issue.fields.summary}")
참고
https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#version
'👩💻 Develope > Python' 카테고리의 다른 글
[Pandas] 데이터프레임 컬럼 순서 변경하기 (0) | 2025.01.06 |
---|---|
[Pandas] 결측값 처리 (0) | 2024.12.19 |
[Pandas] SQL 쿼리로 데이터프레임으로 불러오기 (read_sql) (1) | 2024.12.17 |
[Python] Tabulate (0) | 2024.12.05 |
[Python] Asyncio (0) | 2024.11.13 |