


Erstellen eines Python-Code-Überprüfungsplaners: Nachbereitung der Überprüfung
Im dritten Teil dieser Serie haben Sie gelernt, wie Sie Informationen zur Codeüberprüfungsanfrage für die spätere Verarbeitung speichern. Sie erstellen eine Methode namens read_email
, um eine E-Mail aus dem Posteingang zu erhalten und zu prüfen, ob der Prüfer auf die Codeüberprüfungsanfrage geantwortet hat. Sie haben auch die Fehlerbehandlung im Codeüberprüfungsplanercode implementiert.
In diesem Teil der Serie verwenden Sie Ihre gespeicherten Codeüberprüfungsinformationen und Informationen aus Ihrer E-Mail, um zu überprüfen, ob der Prüfer auf die Überprüfungsanfrage geantwortet hat. Wenn die Anfrage nicht beantwortet wurde, senden Sie eine Folge-E-Mail an den Prüfer.
Loslegen Sie
Klonen Sie zunächst den Quellcode für Teil drei dieser Tutorial-Reihe.
git clone https://github.com/royagasthyan/CodeReviewer-Part3 CodeReviewer
Ändern config.json
文件以包含一些相关的电子邮件地址,并保留 royagasthyan@gmail.com
电子邮件地址。这是因为 git 具有与此特定电子邮件地址相关的提交,这是代码按预期执行所必需的。修改 schedule.py
文件中的 SMTP
Anmeldeinformationen:
FROM_EMAIL = "your_email_address@gmail.com" FROM_PWD = "your_password"
Navigieren Sie zum Projektverzeichnis CodeReviewer
und versuchen Sie, den folgenden Befehl im Terminal auszuführen.
python scheduler.py -n 20 -p "project_x"
Es sollte die Codeüberprüfungsanfrage zur Überprüfung an einen zufälligen Entwickler senden und eine reviewer.json
Datei mit den Überprüfungsinformationen erstellen.
Folgeanfragen umsetzen
Wir beginnen mit der Erstellung einer Folgeanforderungsmethode namens followup_request
的后续请求方法。在 followup_request
方法内,读取 reviewer.json
. Lesen Sie innerhalb der
-Datei und speichern Sie den Inhalt in einer Liste. Der Code lautet wie folgt: read_email
with open('reviewer.json','r') as jfile: review_info = json.load(jfile)
-Methode, die Sie im vorherigen Tutorial implementiert haben. Re:
email_info = read_email(no_days)
-Zeichen davor stehen. Gehen Sie also die Liste der Bewertungsnachrichten durch und vergleichen Sie den Bewertungsbetreff mit dem E-Mail-Betreff, um festzustellen, ob der Prüfer auf die Anfrage geantwortet hat. 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;
-Liste und vergleichen das Thema der Kommentarnachricht mit dem Betreff der E-Mail, um zu sehen, ob der Kommentator geantwortet hat. reviewer.json
文件中保留特定的审阅信息。因此,创建一个名为 Delete_Info
的 Python 方法,以从 reviewer.json
文件中删除特定评论信息。以下是 Delete_Info
-Datei speichern. Erstellen Sie daher eine Python-Methode mit dem Namen
, um bestimmte Kommentarinformationen aus der-Datei zu entfernen. So sieht Delete_Info
方法。调用 Delete_Info
方法时,需要传递 review_info
的副本,以免更改原始信息列表。您将需要原始评论信息列表以供稍后比较。因此导入 copy
aus:
def Delete_Info(info, id): for i in xrange(len(info)): if info[i]['id'] == id: info.pop(i) break return info
Wie im Code oben gezeigt, haben Sie die Liste der Kommentarinformationen durchlaufen und die Einträge entfernt, die der ID entsprechen. Nachdem Sie die Informationen aus der Datei entfernt haben, kehren Sie zur Liste zurück. review_info
aufrufen. Wenn Sie die Methode Delete_Info
aufrufen, müssen Sie eine Kopie von
copy
, um eine Kopie der ursprünglichen Liste der Kommentarnachrichten zu erstellen.
from copy import copy
followup_request
Erstellen Sie eine Kopie der -Liste.
review_info_copy = copy(review_info)
review_info
列表被迭代,您需要检查 reviewer.json
文件中是否有任何更改。如果任何现有评论信息已被删除,您需要相应更新 reviewer.json
文件。因此,检查 review_info_copy
和 review_info
是否相同,并更新 reviewer.json
Wenn Sie die Informationen zu beantworteten Kommentaren aus der ursprünglichen Liste löschen, übergeben Sie die kopierte Liste an die Methode .
review_info_copy = Delete_Info(review_info_copy,review['id'])
followup_request
Das ist die Methode:
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
Sobald die -Liste iteriert ist, müssen Sie prüfen, ob es Änderungen in der -Datei gibt. Wenn vorhandene Kommentarinformationen entfernt wurden, müssen Sie Ihre reviewer.json
文件。现在运行调度程序,以便将代码审查请求发送给随机开发人员。检查该信息是否已保存在 reviewer.json
-Datei entsprechend aktualisieren. Überprüfen Sie also, ob review_info_copy
und
-Datei. 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 上获取。
Das obige ist der detaillierte Inhalt vonErstellen eines Python-Code-Überprüfungsplaners: Nachbereitung der Überprüfung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



So verwenden Sie die Go-Sprache für die Codeüberprüfungspraxis. Einführung: Im Softwareentwicklungsprozess ist die Codeüberprüfung (CodeReview) eine wichtige Praxis. Durch die gegenseitige Überprüfung und Analyse des Codes können Teammitglieder potenzielle Probleme identifizieren, die Codequalität verbessern, die Teamarbeit verbessern und Wissen austauschen. In diesem Artikel wird die Verwendung der Go-Sprache für Codeüberprüfungspraktiken vorgestellt und Codebeispiele angehängt. 1. Die Bedeutung der Codeüberprüfung Die Codeüberprüfung ist eine bewährte Methode zur Förderung der Codequalität. Es kann potenzielle Fehler im Code finden und korrigieren und den Code verbessern

Erfahrungsaustausch in der Python-Entwicklung: So führen Sie eine Codeüberprüfung und Qualitätssicherung durch. Einführung: Im Softwareentwicklungsprozess sind Codeüberprüfung und Qualitätssicherung wichtige Verbindungen. Eine gute Codeüberprüfung kann die Codequalität verbessern, Fehler und Mängel reduzieren sowie die Wartbarkeit und Skalierbarkeit von Programmen verbessern. In diesem Artikel werden die Erfahrungen der Codeüberprüfung und Qualitätssicherung in der Python-Entwicklung unter folgenden Aspekten geteilt. 1. Code-Review-Spezifikationen entwickeln Code-Review ist eine systematische Aktivität, die eine umfassende Inspektion und Bewertung des Codes erfordert. Um die Codeüberprüfung zu standardisieren

Für die Durchführung einer Codeüberprüfung und Leistungsoptimierung in der Java-Entwicklung sind spezifische Codebeispiele erforderlich. Im täglichen Java-Entwicklungsprozess sind Codeüberprüfung und Leistungsoptimierung sehr wichtige Verknüpfungen. Die Codeüberprüfung kann die Qualität und Wartbarkeit des Codes sicherstellen, während die Leistungsoptimierung die Betriebseffizienz und Reaktionsgeschwindigkeit des Systems verbessern kann. In diesem Artikel wird die Durchführung einer Java-Codeüberprüfung und Leistungsoptimierung vorgestellt und spezifische Codebeispiele gegeben. Codeüberprüfung Bei der Codeüberprüfung wird der Code Zeile für Zeile überprüft, während er geschrieben wird, und potenzielle Probleme und Fehler behoben. die folgende

Ja, die Kombination von Codeüberprüfungen mit kontinuierlicher Integration kann die Codequalität und die Liefereffizienz verbessern. Zu den spezifischen Tools gehören: PHP_CodeSniffer: Überprüfen Sie den Codierungsstil und Best Practices. PHPStan: Fehler und nicht verwendete Variablen erkennen. Psalm: Bietet Typprüfung und erweiterte Codeanalyse.

Im C#-Entwicklungsprozess ist die Qualitätssicherung des Codes von entscheidender Bedeutung. Die Qualität des Codes wirkt sich direkt auf die Stabilität, Wartbarkeit und Skalierbarkeit der Software aus. Als wichtige Qualitätssicherungsmethode spielt die Codeüberprüfung eine nicht zu vernachlässigende Rolle in der Softwareentwicklung. Dieser Artikel konzentriert sich auf Überlegungen zur Codeüberprüfung in der C#-Entwicklung, um Entwicklern dabei zu helfen, die Codequalität zu verbessern. 1. Der Zweck und die Bedeutung der Überprüfung. Die Codeüberprüfung bezieht sich auf den Prozess der Entdeckung und Korrektur vorhandener Probleme und Fehler durch sorgfältiges Lesen und Untersuchen des Codes. Sein Hauptzweck ist die Verbesserung der

React Code Review Guide: So stellen Sie die Qualität und Wartbarkeit von Front-End-Code sicher. Einführung: In der heutigen Softwareentwicklung wird Front-End-Code immer wichtiger. Als beliebtes Front-End-Entwicklungsframework wird React häufig in verschiedenen Arten von Anwendungen eingesetzt. Aufgrund der Flexibilität und Leistungsfähigkeit von React kann das Schreiben von qualitativ hochwertigem und wartbarem Code jedoch zu einer Herausforderung werden. Um dieses Problem zu beheben, werden in diesem Artikel einige Best Practices für die React-Codeüberprüfung vorgestellt und einige konkrete Codebeispiele bereitgestellt. 1. Codestil

So führen Sie Codeüberprüfungen und Zusammenführungsanfragen in GitLab durch. Die Codeüberprüfung ist eine wichtige Entwicklungspraxis, die Teams dabei helfen kann, potenzielle Probleme zu identifizieren und die Codequalität zu verbessern. In GitLab können wir über die Zusammenführungsanforderungsfunktion (MergeRequest) problemlos Codeüberprüfungen und Zusammenführungsarbeiten durchführen. In diesem Artikel wird erläutert, wie Sie Codeüberprüfungen und Zusammenführungsanforderungen in GitLab durchführen, und es werden konkrete Codebeispiele bereitgestellt. Vorbereitung: Bitte stellen Sie sicher, dass Sie ein GitLab-Projekt erstellt haben und über die entsprechenden verfügen

Wie führt man eine Codeüberprüfung von C++-Code durch? Die Codeüberprüfung ist ein sehr wichtiger Teil des Softwareentwicklungsprozesses. Sie kann dem Entwicklungsteam helfen, potenzielle Fehler zu identifizieren und zu korrigieren, die Codequalität zu verbessern und den Arbeitsaufwand für nachfolgende Wartung und Fehlerbehebung zu reduzieren. Bei stark typisierten statischen Sprachen wie C++ ist die Codeüberprüfung besonders wichtig. Hier sind einige wichtige Schritte und Überlegungen, die Ihnen bei der Durchführung einer effektiven C++-Codeüberprüfung helfen sollen. Legen Sie Standards für die Codeüberprüfung fest: Bevor Sie eine Codeüberprüfung durchführen, sollte das Team gemeinsam einen Codeüberprüfungsstandard entwickeln, um sich auf verschiedene Fehler und Verstöße zu einigen.
