Discourse Code Review

:discourse2: Zusammenfassung Discourse Code Review ermöglicht die Überprüfung von GitHub-Commits auf 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, Flüstern, 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, was bedeutet, dass Sie in Discourse kommentieren und die Kommentare in GitHub sehen können oder umgekehrt in GitHub kommentieren und die Kommentare in Discourse sehen können.

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 Repositories informiert sind. Sie können Commits zur Nachverfolgung markieren, Überprüfungsarbeiten zuweisen und mehr.

Hinweis: Beim Anzeigen eines Themas, 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-Anmeldedaten registrieren. Die Seite zeigt Nicht-Mitarbeitern nur eine Teilmenge der Funktionen an. Ein vollständigeres Beispiel könnte so aussehen:

Auf GitHub sieht dasselbe Thema so aus:

Konfiguration

Das Plugin ist auf GitHub-Webhooks angewiesen, um Repositories und Änderungen an Repositories zu erkennen. Für eine minimale Konfiguration müssen Sie folgende Einstellung auf einen geheimen String setzen.

code review github webhook secret

Sobald dies in Ihrem GitHub-Repository eingestellt ist, richten Sie einen Webhook mit folgenden Parametern ein:

Payload-URL: https://IHRE_DISCOURSE/code-review/webhook
Inhaltstyp: application/json
Geheimnis: Der Wert von code review github webhook secret
Ereignistypen:

  • Commit-Kommentare
  • Issue-Kommentare
  • Pull Requests
  • Pull-Request-Überprüfungen
  • Pull-Request-Überprüfungskommentare
  • Pushes

Das Plugin bietet folgende zusätzliche Site-Einstellungen:

code review api username: GitHub ist sehr restriktiv bezüglich der Anzahl der anonymen API-Anfragen, die es zulässt. Diese Einstellung ermöglicht es Ihnen, die Account-Schlüssel eines Discourse-Benutzers für /comments- und /commit-Anfragen zu verwenden. Dies verringert die Wahrscheinlichkeit, auf Geschwindigkeitsbegrenzungen zu stoßen, erheblich.

code review catch up commits: Anzahl der Commits, die beim Erkennen eines neuen Repositories „nachgeholt" und für die Themen erstellt werden sollen.

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

code review pending tag: Tag, der auf alle nicht überprüften Commits angewendet wird, standardmäßig pending.

code review approved tag: Tag, der auf genehmigte Commits angewendet wird, standardmäßig approved.

code_review_followup_tag: Tag, der auf Commits zur Nachverfolgung angewendet 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: Das Klicken auf die Überspringen-Taste bei einem Commit verhindert, dass dieser Commit für die durch diese Einstellung festgelegte Anzahl von Minuten erneut angezeigt wird.

ÄNDERUNGSVERZEICHNIS

ZU TUN

Extras

Wie Discourse dieses Plugin verwendet

TL;DR – Dieses Plugin wurde entwickelt, um die Nutzung von GitHub für Code-Reviews durch das Discourse-Team zu ergänzen.

Weitere Informationen

Von @sam:

  • Wir verwenden weiterhin PRs über die GitHub-Oberflä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 übernommen wurden. Allerdings…

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

  • Review füllt eine Lücke, die heute einfach nicht mit GitHub gefüllt werden kann. Wir möchten, dass mindestens ein Teammitglied jede Änderung an unseren verschiedenen von Discourse verwalteten Git-Repositories überprüft. Wenn wir die von GitHub bereitgestellte UI verwenden würden, dürfte niemand jemals etwas anderes als Pull Requests durchführen. Das würde uns enorm verlangsamen.

  • Wir benötigen die Möglichkeit, privat zu kommunizieren, ohne dass die ganze Welt von bestimmten Änderungen erfährt. Zum Beispiel: Wir müssen dieses großartige Fix ASAP bei <fügen Sie hier den Namen eines großen Unternehmens ein> bereitstellen, @sam, kannst du dich darum kümmern?

  • Wir benötigen die Möglichkeit, Änderungen zu genehmigen oder Nachverfolgung anzufordern; dies bietet die GitHub-Oberfläche nicht.

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

  • Discourse ist bei diesem ganzen Gesprächsthema ziemlich fantastisch, und die kleinen Funktionen machen einen großen Unterschied. Ich kann sehen, wenn Leute tippen. Ich muss Seiten nie aktualisieren, damit Änderungen erscheinen. Zitieren ist wirklich nett, Bild-Uploads sind nett und so weiter.

  • Discourse ist wirklich gut im Lesestatus; 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, um mit dem Informationsstrom umzugehen.

Und die Liste geht weiter…

Review fungiert also als Ergänzung zu GitHub. Wir verwenden GitHub derzeit, um mit Änderungen umzugehen, die noch nicht übernommen wurden. Und wir verwenden Review, um Änderungen, die bereits übernommen wurden, ordnungsgemäß zu behandeln.

70 „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“