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
'Python' 카테고리의 다른 글
pip 내장인 venv로 가상환경 구성 (0) | 2022.12.27 |
---|---|
pipenv 구성해보기 (0) | 2022.12.27 |
[pandas] table이 df로 변환되지 않는 경우 조치 (0) | 2022.11.24 |
playwright 실행해보기 (0) | 2022.09.19 |
파이썬 메일 전송시 파일 첨부 (0) | 2022.08.04 |