오늘은 JIRA에 Python 코드를 이용하여 글을 생성하는 방법에 대해 기술하려고 한다.
import requests
from requests.auth import HTTPBasicAuth
import json
# JIRA 인스턴스 URL 및 API 엔드포인트
jira_url = 'https://jira.xxxxxx.com'
api_endpoint_create = '/rest/api/2/issue/'
# 프로젝트 및 이슈 유형에 대한 메타데이터 조회
api_endpoint_field = '/rest/api/2/issue/createmeta'
# 사용자 인증 정보
username = '사용자ID'
api_token = '개인용액세스토큰'
def create_jiraissus(api_endpoint_data):
# 이슈 생성에 필요한 데이터
issue_data = {
"fields": {
"project": {
"key": "프로젝트키" #Jira 이슈앞의 keyword, ex) DCS-123 이면 DCS가 키이다.
},
"summary": "이슈의 제목",
"description": "이슈의 설명부분에 들어갈 내용",
"issuetype": {
"name": "Task" #Bug / Task / ...
},
"assignee": {
"name": f"{username}"
},
"customfield_10100": "DCS-9809" # 에픽 링크, 'customfield_10100'은 에픽 링크 필드의 ID입니다.
}
}
# HTTP 요청 헤더
headers = {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": f"Bearer {api_token}"
}
# API 요청
response = requests.post(
jira_url + api_endpoint_data,
headers=headers,
data=json.dumps(issue_data)
)
# 응답 처리
if response.status_code == 201:
print("이슈가 성공적으로 생성되었습니다.")
else:
print(f"이슈 생성에 실패했습니다. 상태 코드: {response.status_code}")
response_data = response.json()
if response_data: # 응답 데이터가 None이 아닌지 확인
print(response_data)
else:
print("응답 데이터가 None입니다.")
create_jiraissus(api_endpoint_create)
샘플코드는 위와 같다.
1. jira_url
JIRA 시스템에 접속하고 있는 URL을 넣으면 된다. .com 또는 .net을 사용하고 있을 테니 여기까지 넣는다.
2. api_endpoint_create
JIRA 이슈 생성시에 필요한 내용이다. 이대로 넣으면 된다.
3. username
뒤의 메일 정보(@뒤의 내용)는 필요없고, 딱 사용자 이름만 넣으면 된다.
4. api_token
'JIRA 페이지 > 사용자프로필 > 개인용 액세스 토큰 > 토큰 만들기' 를 통해 생성된 Key이다.
한번 생성하면 다시 들어가서 확인할 수는 없으니, 생성할 때 잘 적어놓자.
5. 이슈 생성 시 추가 내용
username 이 '나' 인 경우, 위의 샘플 코드와 같이 JIRA 페이지를 생성하면 보고자가 '나',
assignee 도 '나' 로 생성하였다. 그리고 특정 큰틀(Epic) 하위에 이슈를 생성하기 위해
Customfield_10100 : "DCS-9809" 라고 넣었다.
여기서 이 Cusomfield 의 10100 을 찾아내는 방법이 몇가지 있다.
1. JIRA관리자와 친하다면 바로 물어본다.
2. 웹페이지의 개발자 도구를 사용하여 알아내는 방법도 있다.
- 큰틀 연결이 포함되어 있는 JIRA페이지에서 마우스를 큰틀 연결에 가져가 '우클릭 > 검사'를 클릭한다.
- 우측에 개발자 검사 도구가 출력되는데, 거기서 화면의 큰틀 연결 부분을 찾으녀 이렇게 Customfield를 알아낼 수 있다.
이제 이걸로 뭐를 자동화 할 수 있을까???
매주 주기적으로 만들어야 하는 페이지를 자동으로 만들어지도록 윈도우 스케줄러에 걸어놓아도 좋을 거 같다.
'python' 카테고리의 다른 글
python, LSTM을 활용한 주식 가격 예측 (3) | 2024.08.30 |
---|---|
pyinstaller로 배포할 exe에 필요한 파일들 모두 포함시키는 방법 (0) | 2024.06.13 |
python 주식 가격 알림 메일 보내기 (59) | 2023.10.19 |
이미지로 좌표찾기 및 마우스클릭 - pyautogui (72) | 2023.10.11 |
파이썬 스크립트(.py 파일)를 실행 가능한(.exe) 파일로 변환 (2) | 2023.08.02 |