[Automatisation] Utilisez GitLab avec Python pour faciliter la gestion des requêtes

L'incident se passe sur place!

Je développe un logiciel dans une entreprise, mais sur le site de développement, je reçois beaucoup de demandes de vendeurs qui me disent: «Le problème ne se produit pas sur le site d'évaluation! Cela se passe sur le site!

La recherche et les réponses à cette enquête épuiseront davantage les membres du développement qui sont déjà épuisés.

Il est inévitable de recevoir des demandes de renseignements sur le terrain, mais le problème est que ce ** processus d'interrogation-réponse est analogique **.

  1. ** Le courrier de demande ** provient du secrétariat du site
  2. La fenêtre de développement reçoit l'e-mail et ** remplit le tableau de gestion des requêtes **
  3. Demander une réponse par ** e-mail au membre de développement approprié **

Cependant, il est gênant car il est fondamentalement tout échangé par e-mail, et il est difficile de comprendre l'état actuel de chaque demande **, ce qui est la pire situation.

toiawase_before.png

Automatisons le processus

J'ai essayé d'améliorer ce pire processus comme suit.

  1. ** Le courrier de demande ** provient du secrétariat du site
  2. Utilisez ** Power Automate ** de Microsoft pour ** ajouter automatiquement ** à la table de gestion des requêtes dans Excel Online
  3. Utilisez Python pour rechercher la table de gestion des requêtes, et si une nouvelle requête est ajoutée, ** enregistrez automatiquement un problème dans GitLab **
  4. Les membres du développement recevront automatiquement un e-mail de demande d'enquête de GitLab

toiawase_after.png

Cela rend la gestion beaucoup plus facile.

Dans cet article

** 3. Utilisez Python pour rechercher dans la table de gestion des requêtes, et si une nouvelle requête est ajoutée, enregistrez automatiquement un problème dans GitLab **

À cet égard, nous allons vous montrer comment ** gérer les problèmes Gitlab en Python **.

Travailler avec GitLab en Python

Vous pouvez utiliser GitLab avec Python en utilisant un package appelé ** python-gitlab **.

Installation

Tout d'abord, installons python-gitlab avec la commande pip install.

pip install python-gitlab

Connectez-vous à GitLab

Il s'agit de se connecter à GitLab depuis Python, mais GitLab est géré par l'utilisateur et inaccessible à quiconque. Par conséquent, je vais émettre mon propre ** jeton d'accès ** et l'utiliser pour accéder à GitLab en Python.

Émission de jetons d'accès GitLab

Tout d'abord, émettez votre propre «jeton d'accès» à partir de l'écran des paramètres GitLab.

1. Connectez-vous à GitLab et sélectionnez "Paramètres" dans l'image de l'avatar en haut à droite.

gitlab_token.png

2. Sélectionnez "Access Token" dans le menu de gauche.

gitlab_token2.png

3. Émettez un jeton pour accéder à GitLab.

--Nom: donnez-lui un nom approprié pour une compréhension facile.

Appuyez sur le bouton intitulé «Créer un jeton d'accès personnel» pour émettre le jeton.

gitlab_token3.png

4. La chaîne du jeton d'accès émis s'affiche.

** Sauvegardons ** la chaîne de caractères de ce jeton dans un bloc-notes, etc. Si vous quittez cette page, vous ne pourrez jamais la confirmer.

gitlab_token4.png

python-Create gitlab config file

Dans python-gitlab, définissez les informations nécessaires dans le fichier de configuration et utilisez ces informations pour accéder à GitLab. Le jeton d'accès émis ci-dessus est également défini dans ce fichier de configuration.

Écrivez le contenu suivant dans un éditeur de texte et enregistrez-le sous ".python-gitlab.cfg" dans le dossier utilisateur (C: \ Users \ XXXX (nom d'utilisateur)).

:.python-gitlab.cfg


[global]
default = gitlab
ssl_verify = true
timeout = 5

[gitlab]
url =URL GitLab
private_token =Jeton d'accès personnel

Merci pour votre soutien. Maintenant, vous êtes prêt à partir. Accédons enfin à GitLab avec Python.

Opération GitLab

Bien que python-gitlab puisse également gérer les utilisateurs et les jalons, cet article explique le fonctionnement des problèmes (également appelés «problèmes» ou «tickets»).

Consultez également la documentation officielle (https://python-gitlab.readthedocs.io/en/stable/gl_objects/issues.html) si nécessaire.

Accédez au projet

Utilisez le fichier de configuration précédent pour accéder à GitLab.

Python



import gitlab

gl = gitlab.Gitlab.from_config()

Ensuite, utilisez gl.projects.get () pour spécifier l'ID de projet de GitLab et accéder au projet. Connectez-vous à GitLab pour vérifier votre ID de projet.

Python



project_id = 1234567 #ID du projet
project = gl.projects.get(project_id)

Vous avez maintenant un objet pour ce projet.

Maintenant que vous êtes prêt, c'est un peu effrayant d'enregistrer un problème soudainement. Alors d'abord, voyons si nous pouvons faire référence au problème.

Se référer au problème

J'ai enregistré un tel problème dans GitLab. Obtenons ces problèmes en Python.

gitlab_issue.png

Utilisez project.issues.list () pour obtenir une liste des problèmes enregistrés dans le projet. Ensuite, utilisez l'instruction for pour récupérer les objets de problème un par un.

Python



issues = project.issues.list()

for issue in issues:
    print("-------------------")
    print("【Titre】", issue.title)
    print("【Description】", issue.description)
    print("【Statut】", issue.state)
    print("【Assignee】", issue.assignee["name"])
    print("【Due date】", issue.due_date)
    print("【Labels】", issue.labels)

Veuillez vous référer à ici pour les attributs des problèmes.

Les principaux attributs sont listés ci-dessous.

Attribut d'émission sens
id ID
title Titre
description Description
state État (ouvert/proche)
assignee Assignee
due_date Date limite
labels étiquette

Résultat d'exécution


-------------------
[Titre] Visitez la boutique de M. Seki!
[Description] C'est dur!
La prochaine fois, M. Seki veut parler avec Majolica du magasin!
Je dois faire quelque chose!
[Condition] fermé
【Assignee】 Doremi
【Due date】 2020-09-13
【Labels】 []
-------------------
[Titre] Montée en flèche du prix d'achat
[Description] Ce mois-ci, le prix d'achat a plus que doublé par rapport au mois dernier.

J'ai l'impression que Dela est folle, mais ... Il y a une histoire selon laquelle les prix de la société magique montent en flèche récemment.
Permettez-moi d'examiner les mesures à partir du mois prochain en vue de changer de fournisseur.
[Condition] ouvert
【Assignee】 Doremi
【Due date】 2020-09-18
【Labels】 ['la gestion']
-------------------
[Title] Personne suspecte
[Description] Récemment, j'ai entendu une rumeur selon laquelle une personne suspecte qui semble être un vieil homme se promenait dans le hall MAHO.
Souhaitez-vous prendre des mesures?
[Condition] ouvert
【Assignee】 Doremi
【Due date】 2020-09-25
【Labels】 []

Vous avez réussi à l'obtenir.

Enregistrer un problème

Ensuite, il s'agit de l'enregistrement de l'émission du sujet principal. Utilisez project.issues.create () pour enregistrer un problème.

Python



#Enregistrement des billets
new_issue = project.issues.create({"title":"Voyage d'automne à Tohoku(Ventes de voyages d'affaires)",
                                    "description":"Cette année aussi, je participerai à une vente de voyage d'affaires appelée Autumn Trip.",
                                    "due_date":"2020-10-20"})

print(new_issue.id)

Résultat d'exécution


71385002

gitlab_issue_create.png

Vous vous êtes inscrit avec succès!

Laisser la machine faire ce qu'elle peut faire

Les machines sont meilleures que les humains pour surveiller les e-mails entrants, écrire dans les tables de gestion et gérer l'état. Tant que le programme est correct, la machine est plus rapide et plus précise et ne se plaindra pas même si vous travaillez 24 heures sur 24.

Je pense que nous sommes très heureux de vivre à une époque où nous pouvons travailler avec une machine aussi pratique. Utilisons la machine (programme) pour vous libérer, vous et vos amis, du travail ennuyeux!

Recommended Posts

[Automatisation] Utilisez GitLab avec Python pour faciliter la gestion des requêtes
Essayez d'exploiter Facebook avec Python
Utiliser Kinesis avec Python
Faire fonctionner Blender avec Python
Utiliser Excel avec Python (1)
Utiliser Excel avec Python (2)
Essayez le fonctionnement de la base de données avec Python et visualisez avec d3
Comment faire fonctionner l'API Discord avec Python (enregistrement de bot)
Exploitez Excel avec Python open pyxl
Connectez-vous à BigQuery avec Python
Exploitez TwitterBot avec Lambda, Python
Connectez-vous à Wikipedia avec Python
Publiez sur Slack avec Python 3
[Note] Faites fonctionner MongoDB avec Python
[GUI en Python] PyQt5-Layout management-
[Python] [SQLite3] Exploiter SQLite avec Python (basique)
Gestion des mots de passe avec python: trousseau de clés
Introduction à elle faite avec Python ~ Projet d'automatisation Tinder ~ Épisode 6
Introduction à elle faite avec Python ~ Projet d'automatisation Tinder ~ Épisode 5
Faites fonctionner Jupyter avec l'API REST pour extraire et enregistrer le code Python
Python: comment utiliser async avec
Faites fonctionner l'imprimante de reçus avec python
Lien pour commencer avec python
[Python] Ecrire dans un fichier csv avec Python
[Automatisé avec python! ] Partie 1: fichier de configuration
Sortie vers un fichier csv avec Python
[Automation] Envoyer des e-mails Outlook avec Python
[Python] Un mémo pour faire fonctionner une ROM créée avec GBDK avec PyBoy
Convertir la liste en DataFrame avec python
Conversion MP3 → WAV avec Python
Pour faire une récursion avec Python2
Comment démarrer avec Python
Que faire avec la sortie de PYTHON?
Publiez facilement sur Twitter avec Python 3
[Automatisé avec python! ] Partie 2: Fonctionnement des fichiers
Je veux déboguer avec Python
Essayez de reproduire un film couleur avec Python
Essayez de vous connecter à qiita avec Python
Changer l'environnement Python 64 bits en environnement 32 bits avec Anaconda
Tester les programmes non fonctionnalisés Python avec GitLab CI
Reconnaissance vocale en anglais avec python [speech to text]
mail html avec image à envoyer avec python
Mémo pour demander des KPI avec python
[Automation] Manipulez la souris et le clavier avec Python
python à retenir uniquement avec bonjour, mondes
Sortir les caractères de couleur en joli avec python
Introduction au remplissage d'image Python Remplissage d'image à l'aide d'ImageDataGenerator
Sortie du journal Python vers la console avec GAE
Convertir des données Excel en JSON avec python
Convertir Hiragana en Romaji avec Python (bêta)
Fractal pour faire et jouer avec Python
Je voulais résoudre ABC160 avec Python
Connectez-vous à MySQL avec Python dans Docker
Caméra à pixel unique à expérimenter avec Python
Convertissez des données FX 1 minute en données 5 minutes avec Python
Je veux analyser les journaux avec Python
Comment faire un test de sac avec python