Discourse Code Review

:discourse2: Zusammenfassung Discourse Code Review ermöglicht die Überprüfung von GitHub-Commits in Discourse.
:hammer_and_wrench: Repository-Link https://github.com/discourse/discourse-code-review
:open_book: Installationsanleitung So installieren Sie Plugins in Discourse

Funktionen

Was ist das?

Das Discourse Code Review-Plugin bietet eine bidirektionale Integration mit GitHub-Code-Repositories. Es ermöglicht Ihrem Team, Commits in einem Repository unter Nutzung von Discourse-Funktionen und Plugins wie Zuweisung, Whispers, Benachrichtigungen, benutzerdefinierte Workflows usw. zu überprüfen. Jeder Commit in einem Repository wird zu einem Thema. Antworten auf das Thema werden auf GitHub gespiegelt. Die Integration ist bidirektional, das bedeutet, Sie können in Discourse kommentieren und dies in GitHub sehen oder in GitHub kommentieren und dies in Discourse sehen.

Es bietet einen sehr leistungsstarken Workflow für Teams, die alle Commits in einer beliebigen Anzahl von Repositories überprüfen müssen.

Es ermöglicht Ihnen sicherzustellen, dass mehrere Teammitglieder über alle Änderungen an den Repositories informiert sind. Sie können Commits zur Nachverfolgung markieren, Review-Arbeiten zuweisen und mehr.

Hinweis: Wenn Sie ein Thema anzeigen, das genehmigt werden kann, können Sie die Taste y auf Ihrer Tastatur verwenden, um Commits schneller zu genehmigen.

Kann ich es in Aktion sehen?

Discourse betreibt https://review.discourse.org/ Diese Seite ist öffentlich und jeder kann sich mit GitHub-Anmeldeinformationen anmelden. Die Seite zeigt nicht-Mitarbeitern nur eine Teilmenge der Funktionen an. Ein vollständigeres Beispiel könnte sein:

Auf GitHub sieht dasselbe Thema so aus:

Konfiguration

Das Plugin stützt sich auf GitHub-Webhooks, um Repositories und Änderungen an Repositories zu entdecken. Für eine minimale Konfiguration müssen Sie die folgende Einstellung auf einen geheimen String setzen.

code review github webhook secret

Sobald dies in Ihrem GitHub-Repository-Setup festgelegt ist, richten Sie einen Webhook mit folgenden Einstellungen ein:

Payload-URL: https://IHRE_DISCOURSE/code-review/webhook
Content-Type: application/json
Geheimnis: der Wert von code review github webhook secret
Ereignistypen:

  • Commit-Kommentare
  • Issue-Kommentare
  • Pull Requests
  • Pull Request-Bewertungen
  • Pull Request-Bewertungskommentare
  • Pushes

Das Plugin bietet die folgenden zusätzlichen Site-Einstellungen:

code review api username : GitHub ist sehr restriktiv hinsichtlich der Anzahl der anonymen API-Anfragen, die es zulässt. Diese Einstellung ermöglicht es Ihnen, die Kontoschlüssel eines Discourse-Benutzers für /comments- und /commit-Anfragen zu verwenden. Dies reduziert die Wahrscheinlichkeit, gegen Rate-Limits zu verstoßen, erheblich.

code review catch up commits : Anzahl der Commits, die „nachgeholt“ und für die Themen erstellt werden sollen, wenn Sie auf ein neues Repo stoßen.

code review default parent category: Wählen Sie eine Standard-Elternkategorie für Kategorien, die vom Plugin erstellt werden

code review pending tag: Tag, das allen nicht überprüften Commits zugewiesen wird, standardmäßig pending

code review approved tag: Tag, das genehmigten Commits zugewiesen wird, standardmäßig approved

code_review_followup_tag: Tag, das Nachverfolgungs-Commits zugewiesen wird, standardmäßig follow-up

code review allow self approval: Dürfen Mitarbeiter ihre eigenen Commits genehmigen?

code review default mute new categories: Neue Kategorien, die von Code Review erstellt werden, sind für Benutzer standardmäßig stummgeschaltet

code review skip duration minutes: Wenn Sie auf die Überspringen-Taste bei einem Commit klicken, wird verhindert, dass dieser Commit für die in dieser Einstellung festgelegte Anzahl von Minuten erneut angezeigt wird.

ÄNDERUNGSLOG

TODO

Extras

Wie Discourse dieses Plugin verwendet

TL;DR - Dieses Plugin wurde entwickelt, um die Nutzung von GitHub durch das Discourse-Team zur Code-Überprüfung zu ergänzen.

Mehr Informationen

Von @sam:

  • Wir verwenden weiterhin PRs über die GitHub-Benutzeroberfläche und lieben es, PRs für viele Änderungen zu erstellen. Hier hat sich nichts geändert. GitHub ist fantastisch, wir lieben GitHub. Sie haben einen hervorragenden Workflow für Änderungen, die noch nicht eingeflossen sind. Allerdings…

  • Der Workflow von GitHub für Änderungen, die direkt in das Repository committet wurden, ist schrecklich.

  • Review schließt eine Lücke, die mit GitHub heute einfach nicht geschlossen werden kann. Wir möchten, dass mindestens ein Teammitglied jede Änderung an unseren verschiedenen, zu Discourse gehörenden Git-Repos überprüft. Wenn wir die von GitHub bereitgestellte Benutzeroberfläche verwenden würden, dürfte niemand jemals etwas anderes als Pull Requests tun. Dies würde uns enorm verlangsamen.

  • Wir benötigen die Möglichkeit, privat zu kommunizieren, ohne dass die ganze Welt davon erfährt, was bestimmte Änderungen betrifft. Zum Beispiel: Wir sollten diese großartige Korrektur so schnell wie möglich nach <fügen Sie hier den Namen eines großen Unternehmens ein> bereitstellen, @sam, kannst du das übernehmen?

  • Wir benötigen die Möglichkeit, vorgenommene Änderungen zu genehmigen oder Nachverfolgung anzufordern, was die GitHub-Benutzeroberfläche nicht bietet.

  • Wir benötigen die Möglichkeit, bestimmte Commits einem Benutzer zuzuweisen. Nehmen wir an, @sam macht einen Commit der einige Fehler enthält Es ist schön, dass wir ihm diesen bestimmten Commit direkt zuweisen, ihn zur Nachverfolgung markieren und dann verfolgen können, dass er nachverfolgt wird.

  • Discourse ist in der gesamten Konversation ziemlich fantastisch, und die kleinen Funktionen machen einen großen Unterschied. Ich kann sehen, wenn Leute tippen. Ich muss Seiten nie aktualisieren, damit Änderungen angezeigt werden. Zitatfunktionen sind wirklich schön, Bilduploads sind nett, und so weiter.

  • Discourse ist wirklich gut im Lesen-Status, Sie erhalten sehr starke Garantien, dass Sie jedes einzelne Ding einmal gelesen haben. Bei GitHub habe ich keine Ahnung, welche Commits ich gelesen habe und welche nicht. Wir haben eine unglaublich effiziente Methode, mit dem Informations-Feuerwerk umzugehen.

Und die Liste geht weiter…

Also wirkt Review als Ergänzung zu GitHub. Wir verwenden GitHub derzeit, um mit Änderungen umzugehen, die noch nicht eingeflossen sind. Und wir verwenden Review, um Änderungen, die bereits eingeflossen sind, ordnungsgemäß zu handhaben.

71 „Gefällt mir“

Ich versuche, den Zweck dieses Plugins zu verstehen. Ich habe eine Ahnung, dass ich so etwas brauche, aber ich kann nicht erkennen, wie es zur Effizienz beiträgt. Wenn jemand eine Pull-Anfrage genehmigt und sie in einen Branch merged, was ist es an Ihrem Prozess, das diese Genehmigung eine weitere Genehmigung für den zugehörigen Commit erfordert?

[Zitat=“Discourse, Beitrag:1, Thema:103142”]
Wir benötigen die Möglichkeit, vorgenommene Änderungen zu genehmigen oder Nachverfolgungen anzufordern, dies bietet die GitHub-Benutzeroberfläche nicht.
[/Zitat]

GitHub bietet das in Bezug auf Commits nicht an, weil davon ausgegangen wird, dass dies bereits in der Pull-Anfrage behandelt wurde. Was übersehe ich?

Liegt es daran, dass es in Ihrem Team Personen gibt, die Pull-Anfragen genehmigen dürfen, aber nicht qualifiziert sind, die endgültige Entscheidung über diesen Commit in Bezug auf eine tatsächliche Veröffentlichung zu treffen? Ist der Zweck, dass Pull-Anfragen schnell zusammengeführt und überprüft werden können, ohne auf jemanden zu warten, der das letzte Wort hat, mit der Zusicherung, dass diese Person oder dieses Team den Commit vor der Erstellung einer Version überprüft?

Oder dient es hauptsächlich der Unterstützung privater Diskussionen in öffentlichen Repos?

Ich würde gerne mehr Einblick in die Vorteile der Verwendung dieses Plugins in Ihrem Workflow erhalten. Danke!

Es war hauptsächlich ein Relikt früherer Arbeitsabläufe bei Discourse.

Früher haben wir es für die nachträgliche Genehmigung von Änderungssätzen verwendet.

Heutzutage laufen die Dinge über PR-Kanäle, sodass wir das Plugin nicht mehr so oft verwenden.

1 „Gefällt mir“