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.
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.
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.
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.