본문 바로가기
게임 커리어 관련/지라, 컨플루언스 관리

지라 REST API - 50개 이상 검색하기

by Prayy 2024. 10. 13.
반응형

요약

요약하자면, 최대 100개씩 검색이 한계이다.

대신, 검색 시작 지점을 지정할 수 있기 때문에,

100개 검색 - 101번째에서 또 100개 검색 - ... 을 반복하다가, 검색 결과 < 100 조건을 만족할 때 반복문을 끝내면 되는 것.

검색마다 result에 내용을 추가하면 된다.

 

 

지라 Rest API 사용한 검색의 문제점?

기본적으로 jql을 통해 서치를 진행하면, 결과물이 단 50개만 수신되는 것을 알 수 있다.

이때, api에서 'maxResults = 100'으로 파라미터를 설정해주면 딱 100개의 이슈 정보를 받아올 수 있는데, 101번째의 이슈는 물론 가져오지 못한다.

 

따라서, 100개 초과의 검색 결과를 온전히 가져오려면 페이지 인덱시을 통해 구간을 나누어 검색하는 방법이 필요하다.

파이썬의 JIRA 라이브러리를 활용하는 경우 아래와 같이 활용할 수 있는데, 지라에 직접 api 요청을 보내는 케이스에도 파라미터로 사용 가능한 것이니, rest 문서를 참고해서 진행하면 된다. (구조는 크게 다르지 않다.)

 

jql = 'assignee = 김철수'
start_at = 0
max_results = 100
search_list = []
while True:
    # API
    results = jira.search_issues(jql, startAt=start_at, maxResults=max_results)
    # search list에 이슈 추가
    search_list.extend(results)
    # 다음 페이지
    start_at += max_results
    # 마지막 페이지임을 체크하여 종료
    if len(results) < max_results:
        break

 

위와 같이 검색을 진행하면, 100개를 초과하는 결과를 모두 받아와 저장할 수 있다.

 

이 방법을 알기 전에는 API로 검색한 결과를 수정하고.. 를 반복해야 하는 경우, 레이블을 추가하거나 해서, 다시 반복될 jql에는 잡히지 않도록 하는 귀찮은 편법을 사용했었다.

 

지라 API도 활용하기에 따라서, 이슈 관리나 정리에 큰 도움이 되는데 국내에서 사용 관련 정보는 상당히 없는 편이어서...

가끔가다 생각이 나거나, 진짜 꿀팁같은 것은 때때로 정리해야겠다.

 

 

 

(관련해서 질문이 있다면 댓글로 얼마든 문의해주세요)

반응형