J'utilise JIRA pour la gestion côté client, mais j'utilise Backlog en interne. Il y a plusieurs raisons à cela.
――Je veux gérer le montant des ventes et les commentaires que je ne veux pas montrer au client (cette merde) etc. en association avec le projet
Donc, après tout, je me suis demandé s'il serait correct de publier le contenu de JIRA dans quelque chose comme une table sans omissions ni erreurs.
Le travail stérile de recherche et de copie avec JIRA, qui est lourd et lourd, n'est plus nécessaire. Des améliorations opérationnelles mineures sont encore à venir.
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())
#Feuille de calcul Spécifiez le nom du fichier pour ouvrir la feuille
worksheet = gc.open('nom de fichier').worksheet('Nom de la feuille')
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)}
#Voir le nombre total
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('Nombre total de projets:'+total+'Cas')
#Contenu de l'acquisition(Fields)Obtenez tous les enregistrements en spécifiant
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']
#production
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')
#Lors de la suppression avec CSV
#files.download('example.csv')
#Lors de l'exportation vers une feuille de calcul
df = pd.read_csv('example.csv')
gs_df.set_with_dataframe(worksheet, df)
C'est fait.
JIRA a une API plus rapide que l'ouverture d'une page et la recherche. Cela a peut-être été bon du point de vue de la suppression de la frustration qui prend quelques secondes pour charger et afficher la page.