Hallo, ich habe gerade Jira Lib entdeckt und beschlossen, es zu testen, um die Leute zu finden, die die meisten Tickets machen.
Code in meinem Github: https://github.com/victordalet/Jira_python_test
Sie müssen lediglich Python verwenden und die Jira-Bibliothek installieren.
pip install jira
Deklarieren Sie die 3 Variablen mit Ihren Informationen und gehen Sie im Sicherheitsbereich zu https://id.atlassian.com/manage-profile/profile-and-visibility, um Ihr Token (Passwort) zu generieren.
JIRA_URL = "" # https://name.alassian.net JIRA_USER = "" # [email protected] JIRA_PASSWORD = "" # token
Ich erstelle eine Klasse zum Abrufen von JIRA-Informationen, die eine Art MySQL-Abfrage wie die Methode get_tickets erstellen kann, um Ressourcen oder Tickets, Projekte ... zu finden.
class TicketManager: def __init__(self): self.jira = JIRA(JIRA_URL, basic_auth=(JIRA_USER, JIRA_PASSWORD)) def get_projects(self): return self.jira.projects() def get_tickets(self, project_key: str): return self.jira.search_issues(f'project="{project_key}"') @staticmethod def ticket_status(ticket_): return ticket_.fields.status @staticmethod def ticket_reporter(ticket_): try: return ticket_.fields.reporter except AttributeError: return "Unknown" @staticmethod def ticket_assignee(ticket_): try: return ticket_.fields.assignee except AttributeError: return "Unknown"
Ich durchsuche das Projekt, um alle Tickets zu finden und füge die richtigen Statuen einem Benutzerwörterbuch hinzu.
if __name__ == '__main__': ticket_manager = TicketManager() projects = ticket_manager.get_projects() user = {} nb_total_tickets = 0 for project in projects: tickets = ticket_manager.get_tickets(project.key) nb_total_tickets = len(tickets) for ticket in tickets: reporter = ticket_manager.ticket_reporter(ticket) assignee = ticket_manager.ticket_assignee(ticket) if assignee not in user: user[assignee] = {'ticket_to_do': 0, 'ticket_reported': 0} if reporter not in user: user[reporter] = {'ticket_to_do': 0, 'ticket_reported': 0} user[assignee]['ticket_to_do'] = 1 user[reporter]['ticket_reported'] = 1 print(f'There are {nb_total_tickets} tickets in total')
Jetzt sortiere ich Benutzer nach der Anzahl der erstellten und verwendeten Tickets.
user = dict(sorted(user.items(), key=lambda x: (x[1]['ticket_to_do'], x[1]['ticket_reported']), reverse=True)) for name, value in user.items(): print(f'{name} : {value["ticket_to_do"]} tickets to do, {value["ticket_reported"]} tickets reported')
Ergebnis :
J.M. : 90 tickets to do, 60 tickets reported L.M : 75 tickets to do, 21 tickets reported J.M : 57 tickets to do, 76 tickets reported V.M : 50 tickets to do, 0 tickets reported
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3