[PYTHON] Veröffentlichen Sie das Open-Projekt von JIRA automatisch in der Google-Tabelle

Unterschiede in der externen und internen Projektmanagementumgebung

Ich verwende JIRA für die Verwaltung auf der Clientseite, aber ich verwende Backlog intern. Dafür gibt es mehrere Gründe.

――Ich möchte den Verkaufsbetrag und die Kommentare verwalten, die ich dem Kunden (diese Scheiße) usw. im Zusammenhang mit dem Projekt nicht zeigen möchte

Schließlich fragte ich mich, ob es in Ordnung wäre, den Inhalt von JIRA ohne Auslassungen oder Fehler in einer Tabelle zu veröffentlichen.

Was ich getan habe

Die unfruchtbare Arbeit des Suchens und Kopierens mit JIRA, die schwer und schwer ist, ist nicht länger notwendig. Kleinere betriebliche Verbesserungen stehen noch aus.

Implementierung

jira.py


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())

#Tabellenkalkulation Geben Sie den Dateinamen an, um das Blatt zu öffnen
worksheet = gc.open('Dateiname').worksheet('Blattname')

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)}

#Siehe die Gesamtzahl
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('Gesamtzahl der Projekte:'+total+'Fall')

#Erfassungsinhalte(Fields)Holen Sie sich alle Datensätze durch Angabe
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']

#Ausgabe
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')

#Beim Ablegen mit CSV
#files.download('example.csv')

#Beim Exportieren in eine Tabelle
df = pd.read_csv('example.csv')
gs_df.set_with_dataframe(worksheet, df)

Es ist fertig. 2020-08-06_08h44_51.png

Zusammenfassung

JIRA hat eine schnellere API als das Öffnen einer Seite und das Suchen. Unter dem Gesichtspunkt der Unterdrückung der Frustration, die viele Sekunden zum Laden und Anzeigen der Seite benötigt, war dies möglicherweise gut.

Recommended Posts

Veröffentlichen Sie das Open-Projekt von JIRA automatisch in der Google-Tabelle
Selen und Python zum Öffnen von Google