JIRA의 Open 프로젝트를 Google spreadsheet에 자동 전기
10606 단어 colaboratory파이썬GoogleSpreadSheetjira
사외 vs 사내 프로젝트 관리 환경 차이를 어떻게 할지 문제
클라이언트측에서는 JIRA를 사용해 관리를 하고 있습니다만, 사내에서는 Backlog를 사용하고 있습니다. 이것에는 몇 가지 이유가 얽혀 있습니다.
그래서 역시 표와 같은 것에 JIRA의 내용을 전혀 전기하는 것이 누설이나 실수도 없어도 좋을까 생각해 보았습니다.
했던 일
이치오 무거운 무거운 JIRA에서 검색하고 copipe 같은 불모한 작업은 없어졌습니다.
미세한 운영 개선은 앞으로입니다.
구현
jira.pyimport base64
import requests
from google.colab import files
import pandas as pd
from google.colab import auth
auth.authenticate_user()
import gspread
import gspread_dataframe as gs_df
from oauth2client.client import GoogleCredentials
gc = gspread.authorize(GoogleCredentials.get_application_default())
# Speradsheetファイル名を指定してシートを開く
worksheet = gc.open('ファイル名').worksheet('シート名')
base_url = 'https://jira.yourjira.com/'
authstr = 'yourID:yourPW'
authkey = base64.encodebytes(authstr.encode('utf-8')).decode('ascii')
auth_header = {'Content-Type':'application/json', 'Authorization':'Basic ' + repr(authkey)}
#トータル件数を見る
searchUrl=base_url+'/rest/api/2/search?jql=project+yourproject+AND+resolution+%3D+Unresolved'
result =requests.get(searchUrl, headers=auth_header)
result =result.json()
total=str(result['total'])
print('トータル案件数:'+total+'件')
#取得内容(Fields)を指定して全件取得
searchUrl=base_url+'/rest/api/2/search?maxResults='+total+'&fields=issuetype,summary,assignee&jql=project+%3D+yourproject+AND+resolution+%3D+Unresolved+ORDER+BY+updated+DESC'
result =requests.get(searchUrl, headers=auth_header)
result =result.json()
issues=result['issues']
#出力
with open('example.csv', 'w') as f:
f.write("Type,URL,Summary,Assignee,Reporter,Duedate,Updated\n")
for issue in issues:
if issue['fields']['assignee'] is None:
assignee=""
else:
assignee=issue['fields']['assignee']['displayName']
if issue['fields']['duedate'] is None:
duedate=""
else:
duedate=issue['fields']['duedate']
f.write(issue['fields']['issuetype']['name']+',https://jira.yourjira.com/browse/'+issue['key']+',"'+issue['fields']['summary']+'",'+assignee+','+issue['fields']['reporter']['displayName']+','+duedate+','+issue['fields']['updated']+'\n')
#CSVで落とす場合
#files.download('example.csv')
#スプレッドシートに書き出す場合
df = pd.read_csv('example.csv')
gs_df.set_with_dataframe(worksheet, df)
할 수 있었습니다.
요약
JIRA는 페이지 열고 검색하는 것보다 API가 더 빠릅니다. 페이지 불러오기·표시로 몇 초도 걸리는 이라붙기를 누르는 관점에서도 좋았을지도입니다.
Reference
이 문제에 관하여(JIRA의 Open 프로젝트를 Google spreadsheet에 자동 전기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shiro0507/items/09e8739ab5721a40c01b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import base64
import requests
from google.colab import files
import pandas as pd
from google.colab import auth
auth.authenticate_user()
import gspread
import gspread_dataframe as gs_df
from oauth2client.client import GoogleCredentials
gc = gspread.authorize(GoogleCredentials.get_application_default())
# Speradsheetファイル名を指定してシートを開く
worksheet = gc.open('ファイル名').worksheet('シート名')
base_url = 'https://jira.yourjira.com/'
authstr = 'yourID:yourPW'
authkey = base64.encodebytes(authstr.encode('utf-8')).decode('ascii')
auth_header = {'Content-Type':'application/json', 'Authorization':'Basic ' + repr(authkey)}
#トータル件数を見る
searchUrl=base_url+'/rest/api/2/search?jql=project+yourproject+AND+resolution+%3D+Unresolved'
result =requests.get(searchUrl, headers=auth_header)
result =result.json()
total=str(result['total'])
print('トータル案件数:'+total+'件')
#取得内容(Fields)を指定して全件取得
searchUrl=base_url+'/rest/api/2/search?maxResults='+total+'&fields=issuetype,summary,assignee&jql=project+%3D+yourproject+AND+resolution+%3D+Unresolved+ORDER+BY+updated+DESC'
result =requests.get(searchUrl, headers=auth_header)
result =result.json()
issues=result['issues']
#出力
with open('example.csv', 'w') as f:
f.write("Type,URL,Summary,Assignee,Reporter,Duedate,Updated\n")
for issue in issues:
if issue['fields']['assignee'] is None:
assignee=""
else:
assignee=issue['fields']['assignee']['displayName']
if issue['fields']['duedate'] is None:
duedate=""
else:
duedate=issue['fields']['duedate']
f.write(issue['fields']['issuetype']['name']+',https://jira.yourjira.com/browse/'+issue['key']+',"'+issue['fields']['summary']+'",'+assignee+','+issue['fields']['reporter']['displayName']+','+duedate+','+issue['fields']['updated']+'\n')
#CSVで落とす場合
#files.download('example.csv')
#スプレッドシートに書き出す場合
df = pd.read_csv('example.csv')
gs_df.set_with_dataframe(worksheet, df)
JIRA는 페이지 열고 검색하는 것보다 API가 더 빠릅니다. 페이지 불러오기·표시로 몇 초도 걸리는 이라붙기를 누르는 관점에서도 좋았을지도입니다.
Reference
이 문제에 관하여(JIRA의 Open 프로젝트를 Google spreadsheet에 자동 전기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shiro0507/items/09e8739ab5721a40c01b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)