Revue de code Discourse

:discourse2: Résumé Discourse Code Review permet de passer en revue les commits GitHub sur Discourse.
:hammer_and_wrench: Lien du dépôt https://github.com/discourse/discourse-code-review
:open_book: Guide d’installation Comment installer des plugins dans Discourse

Fonctionnalités

Qu’est-ce que c’est ?

Le plugin Discourse Code Review offre une intégration bidirectionnelle avec les dépôts de code GitHub. Il permet à votre équipe de passer en revue les commits d’un dépôt en tirant parti des fonctionnalités et plugins de Discourse tels que l’assignation, les messages privés (whispers), les notifications, les workflows personnalisés, etc. Chaque commit dans un dépôt devient un sujet de discussion. Les réponses à ce sujet sont répercutées sur GitHub. L’intégration est bidirectionnelle, ce qui signifie que vous pouvez commenter sur Discourse et voir le commentaire sur GitHub, ou commenter sur GitHub et voir le commentaire sur Discourse.

Il offre un workflow très puissant pour les équipes qui doivent passer en revue tous les commits d’un nombre quelconque de dépôts.

Il vous permet de vous assurer que plusieurs membres de l’équipe sont informés de tous les changements appliqués aux dépôts. Vous pouvez marquer des commits pour un suivi, assigner du travail de revue et plus encore.

Remarque : Lorsque vous consultez un sujet qui peut être approuvé, vous pouvez utiliser le bouton y de votre clavier pour approuver les commits plus rapidement.

Puis-je le voir en action ?

Discourse maintient https://review.discourse.org/ ce site est public et tout le monde peut s’inscrire en utilisant ses identifiants GitHub. Le site ne présente qu’un sous-ensemble de fonctionnalités aux membres non-staff. Un exemple plus complet pourrait être :

Sur GitHub, le même sujet ressemble à ceci :

Configuration

Le plugin s’appuie sur les webhooks GitHub pour découvrir les dépôts et les changements dans les dépôts. Pour une configuration minimale, vous devrez définir le paramètre suivant avec une chaîne secrète.

code review github webhook secret

Une fois défini sur votre configuration de dépôt GitHub, configurez un webhook avec :

URL du payload : https://VOTRE_DISCOURSE/code-review/webhook
Type de contenu : application/json
Secret : la valeur de code review github webhook secret
Types d’événements :

  • Commentaires de commits
  • Commentaires d’issues
  • Pull requests
  • Reviews de pull requests
  • Commentaires de reviews de pull requests
  • Pushes

Le plugin fournit les paramètres de site supplémentaires suivants :

code review api username : GitHub est très restrictif quant au nombre de requêtes API anonymes autorisées. Ce paramètre vous permet d’utiliser les clés de compte d’un utilisateur Discourse pour les requêtes /comments et /commit. Cela réduit considérablement les risques de rencontrer des limites de taux (rate limits).

code review catch up commits : nombre de commits à “rattraper” et à créer en tant que sujets lorsque vous rencontrez un nouveau dépôt.

code review default parent category : choisissez une catégorie parente par défaut pour les catégories créées par le plugin

code review pending tag : Tag à appliquer à tous les commits non revus, pending par défaut

code review approved tag : Tag à appliquer aux commits approuvés, approved par défaut

code_review_followup_tag : Tag à appliquer aux commits à suivre, follow-up par défaut

code review allow self approval : Le staff est-il autorisé à approuver ses propres commits ?

code review default mute new categories : Les nouvelles catégories créées par code review sont muettes pour les utilisateurs par défaut

code review skip duration minutes : Cliquer sur le bouton “passer” sur un commit empêchera ce commit d’apparaître à nouveau pendant le nombre de minutes défini par ce paramètre.

JOURNAL DES MODIFICATIONS

À FAIRE

Extras

Comment Discourse utilise ce plugin

TL;DR - Ce plugin a été conçu pour compléter l’utilisation du plugin par l’équipe Discourse pour la revue de code sur GitHub.

Plus d'informations

De @sam :

  • Nous utilisons toujours les PRs via l’interface utilisateur de GitHub et adorons faire des PRs pour de nombreux changements. Rien n’a changé ici. GitHub est fantastique, nous aimons GitHub. Ils ont un excellent workflow pour les changements qui ne sont pas encore déployés. Cependant…

  • Le workflow de GitHub pour les changements qui ont été commités directement dans le dépôt est terrible.

  • La revue comble un vide qui ne peut tout simplement pas être comblé avec GitHub aujourd’hui. Nous souhaitons qu’au moins un membre de l’équipe passe en revue chaque changement apporté à nos divers dépôts git appartenant à Discourse. Si nous devions utiliser l’interface utilisateur fournie par GitHub, personne ne pourrait jamais faire quoi que ce soit d’autre que des pull requests. Cela nous ralentirait énormément.

  • Nous avons besoin de la capacité de communiquer en privé sans que tout le monde le sache concernant certains changements. Par exemple : Nous devons déployer cette correction géniale sur <insérer le nom d'une grande entreprise> ASAP, @sam peux-tu t’en charger ?

  • Nous avons besoin de la capacité d’approuver les changements effectués ou de demander un suivi, ce que l’interface utilisateur de GitHub n’offre pas.

  • Nous avons besoin de la capacité d’assigner des commits particuliers à un utilisateur. Disons que @sam fait un commit contenant quelques erreurs Il est agréable que nous puissions lui assigner directement ce commit particulier, le marquer pour suivi et ensuite suivre qu’il a bien été suivi.

  • Discourse est plutôt fantastique pour toute cette histoire de conversation, et les petites fonctionnalités font une grande différence. Je peux voir quand les gens tapent. Je n’ai jamais besoin d’actualiser les pages pour voir les changements apparaître. Le fait de citer est vraiment agréable, les téléchargements d’images aussi, etc.

  • Discourse est vraiment bon pour l’état de lecture, vous obtenez des garanties très fortes que vous avez lu chaque chose une fois. Avec GitHub, je ne sais pas quels commits j’ai lus et lesquels je n’ai pas lus. Nous avons un moyen incroyablement efficace de gérer le flot d’informations.

Et la liste continue…

Donc, review agit comme un complément à GitHub. Nous utilisons GitHub pour le moment pour gérer les changements qui ne sont pas encore déployés. Et nous utilisons review pour gérer correctement les changements qui ont déjà été déployés.

71 « J'aime »

J’essaie de comprendre le but de ce plugin. J’ai l’impression que j’ai besoin de quelque chose comme ça, mais j’ai du mal à voir comment cela améliore l’efficacité. Quand quelqu’un approuve une pull request et la fusionne dans une branche, qu’est-ce qui, dans votre processus, fait que cette approbation nécessite une autre approbation pour le commit associé ?

GitHub n’offre pas cela en relation avec les commits car on suppose que cela a déjà été géré dans la pull request. Qu’est-ce qui m’échappe ?

Est-ce parce qu’il y a des personnes dans votre équipe qui sont autorisées à approuver les pull requests mais qui ne sont pas qualifiées pour prendre la décision finale concernant ce commit par rapport à une version réelle ? Le but est-il que les pull requests puissent être fusionnées et examinées rapidement sans attendre quelqu’un qui a le dernier mot, avec l’assurance que cette personne ou cette équipe examinera le commit avant qu’une version ne soit créée ?

Ou est-ce principalement pour soutenir les discussions privées sur les dépôts publics ?

J’aimerais avoir plus d’informations sur les avantages de l’utilisation de ce plugin dans votre flux de travail. Merci !

C’était principalement une relique des anciens flux de travail chez Discourse.

À l’époque, nous l’utilisions pour l’approbation rétroactive des ensembles de modifications.

De nos jours, les choses passent par les canaux de PR (pull request) donc nous n’utilisons plus beaucoup le plugin.

1 « J'aime »