Inhaltsverzeichnis
Loslegen Sie
Folgeanfragen umsetzen
发送提醒电子邮件
总结
Heim Backend-Entwicklung Python-Tutorial Erstellen eines Python-Code-Überprüfungsplaners: Nachbereitung der Überprüfung

Erstellen eines Python-Code-Überprüfungsplaners: Nachbereitung der Überprüfung

Aug 30, 2023 pm 08:09 PM
代码审查 调度程序 审查跟进

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
Nach dem Login kopieren

Ändern config.json 文件以包含一些相关的电子邮件地址,并保留 royagasthyan@gmail.com 电子邮件地址。这是因为 git 具有与此特定电子邮件地址相关的提交,这是代码按预期执行所必需的。修改 schedule.py 文件中的 SMTP Anmeldeinformationen:

FROM_EMAIL      = "your_email_address@gmail.com"
FROM_PWD        = "your_password"
Nach dem Login kopieren

Navigieren Sie zum Projektverzeichnis CodeReviewer und versuchen Sie, den folgenden Befehl im Terminal auszuführen.

python scheduler.py -n 20 -p "project_x"
Nach dem Login kopieren

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

-Methode die

-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)
Nach dem Login kopieren

Als nächstes extrahieren Sie die E-Mail-Informationen mit der

-Methode, die Sie im vorherigen Tutorial implementiert haben. Re:

email_info = read_email(no_days)
Nach dem Login kopieren

Wenn der Rezensent auf die Bewertungsanfrage geantwortet hat, sollte eine E-Mail mit demselben Betreff und einem

-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;
Nach dem Login kopieren

Wie im Code oben gezeigt, durchlaufen Sie die

-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

Sobald ein Prüfer auf eine Codeüberprüfungsanfrage antwortet, müssen Sie keine spezifischen Überprüfungsinformationen mehr in der

-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
Nach dem Login kopieren

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

Wenn Sie auf eine Kommentarnachricht antworten, müssen Sie die Methode

aufrufen. Wenn Sie die Methode Delete_Info aufrufen, müssen Sie eine Kopie von

übergeben, um die ursprüngliche Nachrichtenliste nicht zu ändern. Für einen späteren Vergleich benötigen Sie die Original-Rezensionsinformationsliste. Importieren Sie also das Python-Modul copy, um eine Kopie der ursprünglichen Liste der Kommentarnachrichten zu erstellen.

from copy import copy
Nach dem Login kopieren
followup_requestErstellen Sie eine Kopie der

-Liste.

review_info_copy = copy(review_info)
Nach dem Login kopieren
review_info 列表被迭代,您需要检查 reviewer.json 文件中是否有任何更改。如果任何现有评论信息已被删除,您需要相应更新 reviewer.json 文件。因此,检查 review_info_copyreview_info 是否相同,并更新 reviewer.jsonWenn 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'])
Nach dem Login kopieren
followup_requestDas 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;
Nach dem Login kopieren
followup_requestSobald 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

identisch sind, und aktualisieren Sie die

-Datei. reviewer.json

if review_info_copy != review_info:
    with open('reviewer.json','w') as outfile:
        json.dump(review_info_copy,outfile)
Nach dem Login kopieren

Das ist die vollständige 🎜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;

    if review_info_copy != review_info:
        with open('reviewer.json','w') as outfile:
            json.dump(review_info_copy,outfile)
Nach dem Login kopieren
🎜Rufen Sie die Methode 🎜 auf, um eine gesendete Bewertungsanfrage weiterzuverfolgen. 🎜
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))
Nach dem Login kopieren
🎜Speichern Sie die oben genannten Änderungen. Um die spätere Funktionalität zu testen, löschen Sie bitte die 🎜-Datei aus dem Projektverzeichnis. Führen Sie nun den Planer aus, um Codeüberprüfungsanfragen an zufällige Entwickler zu senden. Überprüfen Sie, ob die Informationen in der 🎜-Datei gespeichert wurden. 🎜 🎜Fordern Sie bestimmte Entwickler auf, auf Anfragen zur Codeüberprüfung zu reagieren, indem sie auf E-Mails antworten. Führen Sie nun den Planer erneut aus und dieses Mal sollte der Planer in der Lage sein, die Antwort zu finden und sie aus der 🎜-Datei zu entfernen. 🎜

发送提醒电子邮件

审核者回复代码审核请求电子邮件后,需要从 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"
    ]
}
Nach dem Login kopieren

因此,当审阅者在 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
Nach dem Login kopieren

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
Nach dem Login kopieren

如果天数大于配置中的后续频率日期,请发送提醒电子邮件。

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')
Nach dem Login kopieren

这是完整的 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)
Nach dem Login kopieren

总结

在本教程中,您了解了如何实现跟进代码审核请求的逻辑。您还添加了如果审阅者在一定天数内没有回复电子邮件的情况下发送提醒电子邮件的功能。

这个 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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie die Go-Sprache für die Codeüberprüfungspraxis So verwenden Sie die Go-Sprache für die Codeüberprüfungspraxis Aug 02, 2023 pm 11:10 PM

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 Erfahrungsaustausch in der Python-Entwicklung: So führen Sie eine Codeüberprüfung und Qualitätssicherung durch Nov 22, 2023 am 08:18 AM

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

So führen Sie eine Codeüberprüfung und Leistungsoptimierung in der Java-Entwicklung durch So führen Sie eine Codeüberprüfung und Leistungsoptimierung in der Java-Entwicklung durch Oct 10, 2023 pm 03:05 PM

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

Überprüfung des PHP-Codes und kontinuierliche Integration Überprüfung des PHP-Codes und kontinuierliche Integration May 06, 2024 pm 03:00 PM

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.

C#-Entwicklungshinweise: Codeüberprüfung und Qualitätssicherung C#-Entwicklungshinweise: Codeüberprüfung und Qualitätssicherung Nov 22, 2023 pm 05:00 PM

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

Leitfaden zur React-Codeüberprüfung: So stellen Sie die Qualität und Wartbarkeit Ihres Front-End-Codes sicher Leitfaden zur React-Codeüberprüfung: So stellen Sie die Qualität und Wartbarkeit Ihres Front-End-Codes sicher Sep 27, 2023 pm 02:45 PM

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 So führen Sie Codeüberprüfungen und Zusammenführungsanfragen in GitLab durch Oct 20, 2023 pm 04:03 PM

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? Wie führt man eine Codeüberprüfung von C++-Code durch? Nov 02, 2023 am 09:12 AM

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.

See all articles