본문 바로가기
Python

지라/컨플루언스 서버 - 활성 스프린트 리스트

by 앗사비 2022. 12. 21.
728x90

* 미션

현재 진행 중인 스프린트를 컨플루언스에서 보여주기

 

* 해결 방안

1. 지라에서 스프린트 리스트 추출

https://jira.readthedocs.io/api.html#jira.client.JIRA.sprints

한번에 50개까지만 불러오니 사전에 보드id 선택을 잘 해야함

보드id는 백로그 화면 URL에서 rapidView 값에 있음

from jira import JIRA

server = "https://~" 
user = "~" 
password = "~" 

server = {'server': server} 
jira = JIRA(options=server, basic_auth=(user, password))

text_result = []
boards = jira.boards(type="scrum")
for board in boards:
    if board.id in [15,20,21,22,110,34]: #한번에 50개까지만 검색 가능하므로 필요한 것만 지정
        sprints = jira.sprints(board.id)
        for sprint in sprints:
            if sprint.state in ["active"]: #future, active, closed 중 선택 가능
                print(f"{sprint.state} : {sprint.name}")
                text_result.append(sprint.name)

 

2. 이미지 형식으로 만들기

from PIL import Image, ImageDraw, ImageFont  # pip install pillow

font_path = "./data/GowunDodum-Regular.ttf"
img_path = './data/sprint.png'

draw_text = text_result
font = ImageFont.truetype(font_path, 18)

# 이미지 사이즈 지정
text_width = 220
text_height = 200
 
# 이미지 객체 생성
canvas = Image.new('RGB', (text_width, text_height), "white")
 
# 그리기
draw = ImageDraw.Draw(canvas)
h_default = 0
h_interval = 25
for i in text_result:
    draw.text((0,h_default), i, 'black', font)
    h_default = h_default + h_interval

# png로 저장
canvas.save(img_path, "PNG")

 

3. 컨플루언스에 이미지 업로드 (파일명 동일하면 버전으로 관리됨)

from atlassian import Confluence #pip install atlassian-python-api

confluence = Confluence(
    url="https://~",
    username="~",
    password="~",
)

space_key = "test"
page_title = "test" 

page_id = confluence.get_page_by_title(
    space=space_key, title=page_title).get("id")

confluence.attach_file(filename=img_path, name=None, content_type=None,
                       page_id=page_id, title=None, space=space_key, comment=None)
728x90