Heim  >  Artikel  >  Backend-Entwicklung  >  Python – Jira-Ticketverwaltung

Python – Jira-Ticketverwaltung

WBOY
WBOYOriginal
2024-08-28 18:31:36270Durchsuche

Python - Jira ticket management

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


I - Installation

Sie müssen nur Python verwenden und die Jira-Bibliothek installieren.

pip install jira

II – Anmelden

Deklarieren Sie die 3 Variablen mit Ihren Informationen und gehen Sie in Sicherheit zu https://id.atlassian.com/manage-profile/profile-and-visibility, um Ihr Token (Passwort) zu generieren.

JIRA_URL = "" # https://name.alassian.net
JIRA_USER = "" # me@name.fr
JIRA_PASSWORD = "" # token

III – Lib-Funktion

Ich erstelle eine Klasse zum Abrufen von JIRA-Informationen, die eine Art MySQL-Abfrage wie die get_tickets-Methode 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"

IV – Benutzeraktivität anzeigen

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

V - Ergebnis sortieren und anzeigen

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

Das obige ist der detaillierte Inhalt vonPython – Jira-Ticketverwaltung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn