Maison >développement back-end >Tutoriel Python >Python - Gestion des tickets Jira
Bonjour, je viens de découvrir Jira Lib, et j'ai décidé de le tester afin de trouver les personnes qui font le plus de tickets.
Code dans mon github : https://github.com/victordalet/Jira_python_test
Il vous suffit de python et d'installer jira lib.
pip install jira
Déclarez les 3 variables avec vos informations et rendez-vous sur https://id.atlassian.com/manage-profile/profile-and-visibility en sécurité pour générer votre token (mot de passe).
JIRA_URL = "" # https://name.alassian.net JIRA_USER = "" # me@name.fr JIRA_PASSWORD = "" # token
Je crée une classe pour récupérer les informations JIRA, qui peut créer une sorte de requête mysql comme la méthode get_tickets pour trouver des ressources ou des tickets, des projets...
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"
Je parcours le projet pour retrouver tous les tickets et ajouter les bonnes statues à un dictionnaire utilisateur.
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')
Maintenant, je trie les utilisateurs selon le nombre de tickets créés et utilisés.
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')
Résultat :
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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!