Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. Python
Code

Création d'un planificateur de révision du code Python: journal de traitement

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called Building a Python Code Review Scheduler.
Building a Python Code Review Scheduler: Sending Review Requests

French (Français) translation by New Lune (you can also view the original English article)

Dans cette série de tutoriels, vous verrez comment créer un planificateur d'évaluation de code à l'aide de Python. Tout au long de cette série, vous vous lèverez à certains concepts de base, comme la lecture d'emails, l'envoi d'un courrier électronique, l'exécution de commandes de terminal depuis le programme Python, le traitement des journaux git, etc.

Dans la première partie, vous commencez par configurer les fichiers de configuration de base, lire les journaux git et les traiter pour envoyer la demande de révision du code.

Commençons

Commencez par créer un dossier de projet appelé CodeReviewer. Dans le dossier CodeReviewer, créez un fichier appelé scheduler.py.

En supposant que le planificateur d'examen de code sera exécuté contre plusieurs projets, vous devrez spécifier le nom du projet sur lequel le planificateur fonctionnera et le nombre de jours pendant lesquels le journal doit être traité. Alors, lisez d'abord ces deux paramètres comme arguments du programme de révision du code.

Utilisons le module Python argparse pour lire les paramètres du programme. Importez la bibliothèque et ajoutez les arguments du programme. Vous pouvez utiliser la méthode ArgumentParser du module argparse pour lancer l'analyseur. Une fois il est lancé, vous pouvez vous ajouter les arguments à l'analyseur. Voici le code pour lire les arguments du programme:

Configuration des configurations de projet

Gardons un fichier de configuration séparé qui sera traité par l'éditeur de code. Créez un fichier appelé config.json dans le répertoire du projet CodeReviewer. Dans le fichier de configuration, il y aura des informations sur chaque projet qui sera traité. Voici comment apparaitrait le fichier de configuration du projet:

Quelques options supplémentaires seraient ajoutées aux configurations du projet dans les dernières parties.

Lisez le fichier JSON de configuration dans le programme Python. Importez le module JSON et chargez les données JSON lues à partir du fichier de configuration.

Lisez Commit Info du référentiel

Lorsque le script critique est exécuté, le nom du projet est spécifié comme paramètre. Sur la base du nom du projet spécifié, vérifiez si ses configurations sont disponibles et clonez le référentiel.

D'abord, vous devez trouver l'URL du projet à partir des configurations. Répétez les données du projet et trouvez l'URL du projet comme indiqué:

Une fois que vous avez l'URL du projet, vérifiez si le projet est déjà cloné. Sinon, clonez l'URL du projet. S'il existe déjà, accédez au répertoire de projet existant et tirez les dernières modifications.

Pour exécuter des commandes système, vous utiliserez le module Python os. Créez une méthode pour exécuter des commandes système car vous l'utiliserez fréquemment. Voici la méthode execute_cmd:

Traitement du journal Git

Après avoir récupéré le journal de validation du dépôt Git, vous analyserez le journal. Créez une nouvelle méthode Python appelée process_commits pour traiter les journaux Git.

Git nous fournit les commandes pour obtenir le journal de validation. Pour obtenir tous les journaux à partir d'un dépôt, la commande serait:

La réponse serait:

Vous pouvez également obtenir des journaux spécifiques au nombre de jours à partir du moment où la commande est exécutée. Pour obtenir des journaux depuis n nombre de jours, la commande serait:

Vous pouvez le réduire davantage pour voir si un commit particulier était une addition, une modification ou une suppression. Exécutez la commande ci-dessus avec --name-status:

La commande ci-dessus aurait la sortie suivante:

La lettre A sur le côté gauche du fichier README.md indique l'addition. De même, M indiquerait une modification et D indiquerait une suppression.

Dans la méthode process_commits, définissons la commande Git à exécuter pour obtenir l'historique du journal.

Passez la commande cmd ci-dessus à la méthode execute_cmd.

Lisez la réponse, itérez chaque ligne et imprimez la même chose.

Appelez la méthode process_commits une fois que les configurations ont été lues.

Enregistrez les modifications ci-dessus et essayez d'exécuter l'examinateur de code à l'aide de la commande suivante:

Comme vous pouvez le constater, nous avons commencé l'éditeur de code avec le nombre de jours et le nom du projet à traiter. Vous devriez pouvoir voir la sortie suivante:

Donc, lorsque vous exécutez l'examinateur de code, vous pouvez voir que le référentiel est créé s'il n'existe pas déjà, sinon il est mis à jour. Après cela, en fonction du nombre de jours fournis, il récupère l'historique des journaux de validation pour traiter.

Maintenant, analysons le journal de validation pour découvrir l'ID de validation, la date de validation et l'auteur de validation.

Comme on l'a vu dans les journaux, l'identifiant de validation commence par le mot-clé commit, l'auteur commence par le mot-clé Author:, et la date commence par le mot-clé Date:. Vous utiliserez les mots-clés suivants pour identifier l'identifiant Id, l'auteur et la date d'un commit.

Essayons d'obtenir l'ID de validation à partir des lignes de journal Git. C'est très simple. Il suffit de vérifier si la ligne commence avec le mot clé commit.

Enregistrez les modifications et exécutez le planificateur et vous devriez pouvoir obtenir l'identifiant de validation.

La prochaine tâche consiste à extraire le nom de l'auteur. Pour vérifier si la ligne contient les informations de l'auteur, vous verrez d'abord si la ligne commence avec le mot-clé Author. Si c'est le cas, vous utiliserez une expression régulière pour obtenir l'utilisateur.

Comme vous pouvez le voir, l'adresse électronique de l'utilisateur se trouve dans les panneaux "inférieurs à plus de". Nous utiliserons une expression régulière pour lire l'adresse e-mail entre <>. L'expression régulière sera comme ceci:

Importez le module Python re pour utiliser des expressions régulières dans Python.

Vérifiez maintenant si la ligne commence avec le mot-clé Author. Si c'est le cas, extrayez l'adresse électronique de l'utilisateur en utilisant l'expression régulière ci-dessus. Voici comment cela se passerait:

Pour extraire la date de validation du journal, vous devez vérifier si la ligne commence avec le mot-clé Date. Voici comment cela se passerait:

Voici la méthode finale de process_commits:

Enregistrez les modifications ci-dessus et démarrez l'éditeur de code.

Vous devriez avoir chaque détail de validation avec l'identifiant de validation, l'auteur et la date de validation imprimés sur le terminal.

Finissons-en

Dans cette première partie du Python Code Review Scheduler, vous avez vu comment configurer le projet. Vous lisez les paramètres d'entrée requis par le planificateur pour traiter le projet. Dans la partie suivante de cette série de tutoriels, nous recueillons les détails de validation à partir de la méthode process_commits et envoyons le commit à des développeurs aléatoires pour l'examen du code.

N'hésitez pas à voir ce que nous avons à la vente et à étudier sur Envato Market, et n'hésitez pas à poser des questions et à fournir de précieux commentaires en utilisant le flux ci-dessous.

J'espère que vous avez apprécié la première partie. Faites-nous savoir vos idées ou suggestions dans les commentaires ci-dessous.

Le code source de ce tutoriel est disponible sur GitHub.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.