본문 바로가기
Python

Python - JIRA API 로그인 및 검색하기

by 올엠 2024. 4. 12.
반응형

 JIRA를 개발을 시작하게 되면, 가장 먼저 해야할 부분으로 API 로그인 부분이라고 할 수 있다.

필자가 경험하면서 진행했던 내용을 주요한 포인트를 집어서 정리해보았다.

주요한 포인트는 SSL 인증 부분과 패스워드 인코딩 이였다.

User/Password(Token) 로그인 하기

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)

 

가장 먼저 프록시와 같은 별도 인증서를 사용하는 경우 인증서 오류가 발생한다. 이를 해결하기 위해서는 options에 Dict 구조로 설정하여 접근 사이트와 'verify'를 설정하여 해소할 수 있다.

1
options = {'server': 'https://server.site', 'verify': False}
cs

Unauthorized (401)

두번째 부분은 패스워드에 대한 인코딩이라고 할 수 있다.

Username과 API Token 및 Password는 기본적으로 basic_auth를 사용한다.
이때 Username과 API Token 및 Password에 특수기호,공백등이 들어갔다면, (베이스64)BASE64 인코딩을 사용해야 정상적으로 인식된다. 그리고 basic_auth에서 기본적으로 BASE64 인코딩을 진행해주는데, 이를 위해서는 문자열을 Byte로 전환을 해주어야 한다.
 
아래와 같이 Byte로 전환후 로그인을 진행하도록 하자.
1
2
3
4
5
6
STR_USERNAME = ''
STR_PASSWORD = ''
BYTE_USERNAME = STR_USERNAME.encode('ascii')
BYTE_TOKEN = STR_PASSWORD.encode('ascii')
 
jira = JIRA(options = {'server': 'https://server.site', 'verify': False}, basic_auth=(BYTE_USERNAME, BYTE_TOKEN))
cs
이렇게 로그인 하였다면, 가장 기본적으로 프로젝트의 이슈를 가져오는 코드로 테스트 해볼 수 있겠다.
 
여기서 부터는 JIRA에서 사용할 수 있는 검색문과 동일하게 사용이 가능하므로 JIRA Search 문서를 참고하여 진행하면 좋다.
 
아래는 기본적으로 마지막 50개의 이슈(기본값이 50)를 가져오는 검색 구문이다.
1
issues_in_proj = jira.search_issues('project=PROJ')
cs
 

참조

 

 
 
 
반응형