


Construire un planificateur de révision de code Python : suivi des révisions
Dans la troisième partie de cette série, vous avez appris à enregistrer les informations de demande de révision de code pour un traitement ultérieur. Vous créez une méthode appelée read_email
pour recevoir un e-mail de la boîte de réception afin de vérifier si le réviseur a répondu à la demande de révision du code. Vous avez également implémenté la gestion des erreurs dans le code du planificateur de révision de code.
Dans cette partie de la série, vous utiliserez les informations de révision de code enregistrées et les informations de votre courrier électronique pour vérifier si le réviseur a répondu à la demande de révision. Si la demande n’a pas reçu de réponse, vous enverrez un e-mail de suivi au réviseur.
Commencer
Commencez par cloner le code source de la troisième partie de cette série de didacticiels.
git clone https://github.com/royagasthyan/CodeReviewer-Part3 CodeReviewer
Modifier config.json
文件以包含一些相关的电子邮件地址,并保留 royagasthyan@gmail.com
电子邮件地址。这是因为 git 具有与此特定电子邮件地址相关的提交,这是代码按预期执行所必需的。修改 schedule.py
文件中的 SMTP
Identifiants :
FROM_EMAIL = "your_email_address@gmail.com" FROM_PWD = "your_password"
Accédez au répertoire du projet CodeReviewer
et essayez d'exécuter la commande suivante dans le terminal.
python scheduler.py -n 20 -p "project_x"
Il doit envoyer la demande de révision du code à un développeur aléatoire pour examen et créer un fichier reviewer.json
contenant les informations de révision.
Mettre en œuvre les demandes de suivi
Nous commençons par créer une méthode de demande de suivi nommée followup_request
的后续请求方法。在 followup_request
方法内,读取 reviewer.json
. Dans la méthode
et enregistrez le contenu dans une liste. Le code est le suivant : read_email
with open('reviewer.json','r') as jfile: review_info = json.load(jfile)
que vous avez implémentée dans le didacticiel précédent. Re:
email_info = read_email(no_days)
devant. Alors, parcourez la liste des messages d'avis et comparez le sujet de l'avis au sujet de l'e-mail pour voir si le réviseur a répondu à la demande. review_info
for review in review_info: review_replied = false expected_subject = 'RE: ' + review['subject'] for email in email_info: if expected_subject == email['subject']: review_replied = True print 'Reviewer has responded' break;
et vérifiez le sujet du message de commentaire par rapport au sujet de l'e-mail pour voir si le commentateur a répondu. reviewer.json
文件中保留特定的审阅信息。因此,创建一个名为 Delete_Info
的 Python 方法,以从 reviewer.json
文件中删除特定评论信息。以下是 Delete_Info
. Par conséquent, créez une méthode Python nommée
pour supprimer les informations de commentaire spécifiques du fichier. Voici à quoi ressemble Delete_Info
方法。调用 Delete_Info
方法时,需要传递 review_info
的副本,以免更改原始信息列表。您将需要原始评论信息列表以供稍后比较。因此导入 copy
:
def Delete_Info(info, id): for i in xrange(len(info)): if info[i]['id'] == id: info.pop(i) break return info
Comme le montre le code ci-dessus, vous avez parcouru la liste des informations de commentaire et supprimé les entrées correspondant à l'ID. Après avoir supprimé les informations du fichier, revenez à la liste. review_info
. Lors de l'appel de la méthode Delete_Info
, vous devez transmettre une copie de
copy
pour créer une copie de la liste originale des messages de commentaires.
from copy import copy
followup_request
Créez une copie de la liste.
review_info_copy = copy(review_info)
review_info
列表被迭代,您需要检查 reviewer.json
文件中是否有任何更改。如果任何现有评论信息已被删除,您需要相应更新 reviewer.json
文件。因此,检查 review_info_copy
和 review_info
是否相同,并更新 reviewer.json
Lors de la suppression des informations sur les commentaires répondus de la liste d'origine, transmettez la liste copiée à la méthode .
review_info_copy = Delete_Info(review_info_copy,review['id'])
followup_request
Voici la méthode :
def followup_request(): with open('reviewer.json','r') as jfile: review_info = json.load(jfile) review_info_copy = copy(review_info) email_info = read_email(no_days) for review in review_info: review_replied = False expected_subject = 'Re: ' + review['subject'] for email in email_info: if expected_subject == email['Subject']: review_replied = True review_info_copy = Delete_Info(review_info_copy,review['id']) break;
followup_request
Maintenant, une fois la liste itérée, vous devez vérifier s'il y a des changements dans le fichier . Si des informations de commentaire existantes ont été supprimées, vous devrez mettre à jour votre fichier reviewer.json
文件。现在运行调度程序,以便将代码审查请求发送给随机开发人员。检查该信息是否已保存在 reviewer.json
en conséquence. Alors, vérifiez si review_info_copy
et
. reviewer.json
if review_info_copy != review_info: with open('reviewer.json','w') as outfile: json.dump(review_info_copy,outfile)
def followup_request(): with open('reviewer.json','r') as jfile: review_info = json.load(jfile) review_info_copy = copy(review_info) email_info = read_email(no_days) for review in review_info: review_replied = False expected_subject = 'Re: ' + review['subject'] for email in email_info: if expected_subject == email['Subject']: review_replied = True review_info_copy = Delete_Info(review_info_copy,review['id']) break; if review_info_copy != review_info: with open('reviewer.json','w') as outfile: json.dump(review_info_copy,outfile)
try: commits = process_commits() # Added the follow Up Method followup_request() if len(commits) == 0: print 'No commits found ' else: schedule_review_request(commits) except Exception,e: print 'Error occurred. Check log for details.' logger.error(str(datetime.datetime.now()) + " - Error occurred : " + str(e) + "\n") logger.exception(str(e))
发送提醒电子邮件
审核者回复代码审核请求电子邮件后,需要从 reviewer.json
文件中删除该信息,因为您不需要进一步跟踪它。如果审核者尚未回复代码审核请求,您需要发送后续邮件提醒他或她审核请求。
代码审查调度程序将每天运行。当它运行时,您首先需要检查开发人员响应审核请求是否已经过去了一定时间。在项目配置中,您可以设置一个审核周期,在此期间,如果审核者没有回复,调度程序将发送提醒电子邮件。
让我们首先在项目配置中添加配置。在配置文件中添加一个名为 followup_Frequency
的新配置。
{ "name": "project_x", "git_url": "https://github.com/royagasthyan/project_x", "followup_frequency":2, "members": [ "royagasthyan@gmail.com", "samon@gmail.com", "sualonni@gmail.com", "restuni@gmail.com" ] }
因此,当审阅者在 followup_Frequency
天数内没有回复时,您将发送一封提醒电子邮件。读取配置的同时将配置读入全局变量:
for p in main_config: if p['name'] == project: project_url = p['git_url'] project_members = p['members'] followup_frequency = p['followup_frequency'] break
在 followup_request
方法内部,当审稿人在 followup_frequest
天数内没有回复后续请求时,发送提醒邮件。计算自评论发送以来的天数。
review_date = datetime.datetime.strptime(review['sendDate'],'%Y-%m-%d') today = datetime.datetime.today() days_since_review = (today - review_date).days
如果天数大于配置中的后续频率日期,请发送提醒电子邮件。
if not review_replied: if days_since_review > followup_frequency: send_email(review['reviewer'],'Reminder: ' + review['subject'],'\nYou have not responded to the review request\n')
这是完整的 followup_request
方法:
def followup_request(): with open('reviewer.json','r') as jfile: review_info = json.load(jfile) review_info_copy = copy(review_info) email_info = read_email(no_days) for review in review_info: review_date = datetime.datetime.strptime(review['sendDate'],'%Y-%m-%d') today = datetime.datetime.today() days_since_review = (today - review_date).days review_replied = False expected_subject = 'Re: ' + review['subject'] for email in email_info: if expected_subject == email['Subject']: review_replied = True review_info_copy = Delete_Info(review_info_copy,review['id']) break; if not review_replied: if days_since_review > followup_frequency: send_email(review['reviewer'],'Reminder: ' + review['subject'],'\nYou have not responded to the review request\n') if review_info_copy != review_info: with open('reviewer.json','w') as outfile: json.dump(review_info_copy,outfile)
总结
在本教程中,您了解了如何实现跟进代码审核请求的逻辑。您还添加了如果审阅者在一定天数内没有回复电子邮件的情况下发送提醒电子邮件的功能。
这个 Python 代码审查器可以进一步增强以满足您的需求。请分叉存储库并添加新功能,并在下面的评论中告诉我们。
本教程的源代码可在 GitHub 上获取。
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser le langage Go pour la pratique de révision de code Introduction : Dans le processus de développement logiciel, la révision de code (CodeReview) est une pratique importante. En examinant et en analysant le code de chacun, les membres de l'équipe peuvent identifier les problèmes potentiels, améliorer la qualité du code, accroître le travail d'équipe et partager leurs connaissances. Cet article expliquera comment utiliser le langage Go pour les pratiques de révision de code et joindra des exemples de code. 1. L'importance de la révision du code La révision du code est une bonne pratique pour promouvoir la qualité du code. Il peut trouver et corriger les erreurs potentielles dans le code, améliorer le code

Partage d'expériences de développement Python : Comment effectuer la révision du code et l'assurance qualité Introduction : Dans le processus de développement logiciel, la révision du code et l'assurance qualité sont des liens cruciaux. Une bonne révision du code peut améliorer la qualité du code, réduire les erreurs et les défauts, et améliorer la maintenabilité et l’évolutivité du programme. Cet article partagera l'expérience de la révision du code et de l'assurance qualité dans le développement Python sous les aspects suivants. 1. Élaborer des spécifications de révision du code La révision du code est une activité systématique qui nécessite une inspection et une évaluation complètes du code. Afin de normaliser la révision du code

Comment effectuer la révision du code et l'optimisation des performances dans le développement Java nécessite des exemples de code spécifiques. Dans le processus de développement Java quotidien, la révision du code et l'optimisation des performances sont des liens très importants. La révision du code peut garantir la qualité et la maintenabilité du code, tandis que l'optimisation des performances peut améliorer l'efficacité opérationnelle et la vitesse de réponse du système. Cet article explique comment procéder à la révision du code Java et à l'optimisation des performances, et donne des exemples de code spécifiques. Révision du code La révision du code est le processus de vérification du code ligne par ligne au fur et à mesure de son écriture et de résolution des problèmes et erreurs potentiels. ce qui suit

Oui, combiner les révisions de code avec l’intégration continue peut améliorer la qualité du code et l’efficacité de sa livraison. Les outils spécifiques incluent : PHP_CodeSniffer : vérifiez le style de codage et les meilleures pratiques. PHPStan : Détectez les erreurs et les variables inutilisées. Psaume : fournit une vérification de type et une analyse avancée du code.

Guide de révision du code React : Comment garantir la qualité et la maintenabilité du code front-end Introduction : Dans le développement logiciel actuel, le code front-end est de plus en plus important. En tant que framework de développement front-end populaire, React est largement utilisé dans divers types d'applications. Cependant, en raison de la flexibilité et de la puissance de React, écrire du code de haute qualité et maintenable peut devenir un défi. Pour résoudre ce problème, cet article présentera quelques bonnes pratiques pour la révision du code React et fournira quelques exemples de code concrets. 1. Style de code

Dans le processus de développement C#, l’assurance qualité du code est cruciale. La qualité du code affecte directement la stabilité, la maintenabilité et l'évolutivité du logiciel. En tant que méthode importante d’assurance qualité, la révision du code joue un rôle qui ne peut être ignoré dans le développement de logiciels. Cet article se concentrera sur les considérations relatives à la révision du code dans le développement C# pour aider les développeurs à améliorer la qualité du code. 1. Le but et l'importance de la révision La révision du code fait référence au processus de découverte et de correction des problèmes et des erreurs existants en lisant et en inspectant attentivement le code. Son objectif principal est d'améliorer

Comment effectuer des révisions de code et des demandes de fusion dans GitLab La révision de code est une pratique de développement importante qui peut aider les équipes à identifier les problèmes potentiels et à améliorer la qualité du code. Dans GitLab, grâce à la fonction de demande de fusion (MergeRequest), nous pouvons facilement effectuer une révision de code et fusionner des travaux. Cet article explique comment effectuer des révisions de code et des demandes de fusion dans GitLab, tout en fournissant des exemples de code spécifiques. Préparation : assurez-vous d'avoir créé un projet GitLab et de disposer des informations nécessaires.

Comment effectuer une révision de code du code C++ ? La révision du code est une partie très importante du processus de développement logiciel. Elle peut aider l'équipe de développement à identifier et à corriger les erreurs potentielles, à améliorer la qualité du code et à réduire la charge de travail de maintenance et de débogage ultérieurs. Pour les langages statiques fortement typés comme le C++, la révision du code est particulièrement importante. Voici quelques étapes et considérations clés pour vous aider à effectuer une révision efficace du code C++. Définir des normes de révision du code : avant de procéder à une révision du code, l’équipe doit développer conjointement une norme de révision du code pour se mettre d’accord sur diverses erreurs et violations.
