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

Python – Jira-Ticketverwaltung

WBOY
Freigeben: 2024-08-28 18:31:36
Original
299 Leute haben es durchsucht

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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"
Nach dem Login kopieren

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')
Nach dem Login kopieren

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')
Nach dem Login kopieren

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
Nach dem Login kopieren

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

Quelle:dev.to
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage