Code Review di Discourse

:discourse2: Riepilogo Discourse Code Review consente di rivedere i commit di GitHub su Discourse.
:hammer_and_wrench: Link al repository https://github.com/discourse/discourse-code-review
:open_book: Guida all’installazione Come installare i plugin su Discourse

Funzionalità

Cos’è?

Il plugin Discourse Code Review fornisce un’integrazione bidirezionale con i repository di codice di GitHub. Consente al tuo team di rivedere i commit di un repository sfruttando le funzionalità e i plugin di Discourse come assegnazione, sussurri, notifiche, flussi di lavoro personalizzati e così via. Ogni commit di un repository diventa un argomento. Le risposte all’argomento vengono replicate su GitHub. L’integrazione è bidirezionale, il che significa che puoi commentare su Discourse e vedere il commento su GitHub, oppure commentare su GitHub e vedere il commento su Discourse.

Fornisce un flusso di lavoro molto potente per i team che devono rivedere tutti i commit di un numero qualsiasi di repository.

Ti permette di assicurarti che più membri del team siano a conoscenza di tutti i cambiamenti applicati ai repository. Puoi marcare i commit per il follow-up, assegnare il lavoro di revisione e altro ancora.

Nota: Quando visualizzi un argomento che può essere approvato, puoi usare il tasto y sulla tastiera per approvare i commit più rapidamente.

Posso vederlo in azione?

Discourse utilizza questo plugin internamente per tenere traccia dei repository. Puoi vedere un esempio del lato Discourse qui:

Su GitHub lo stesso argomento sembra questo:

Configurazione

Il plugin si affida ai webhook di GitHub per rilevare i repository e i cambiamenti sui repository. Per una configurazione minima, è necessario impostare la seguente impostazione con una stringa segreta.

code review github webhook secret

Una volta impostato sul tuo repository GitHub, configura un webhook con:

Payload URL: https://YOUR_DISCOURSE/code-review/webhook
Content Type: application/json
Secret: il valore di code review github webhook secret
Event Types:

  • Commit comments
  • Issue comments
  • Pull requests
  • Pull request reviews
  • Pull request review comments
  • Pushes

Il plugin fornisce le seguenti impostazioni aggiuntive del sito:

code review api username : GitHub è molto restrittivo con il numero di richieste API anonime consentite; questa impostazione ti consente di utilizzare le chiavi dell’account di un utente di Discourse per le richieste /comments e /commit. Questo riduce notevolmente la probabilità di raggiungere i limiti di frequenza.

code review catch up commits : numero di commit da “recuperare” e per i quali creare argomenti quando si incontra un nuovo repository.

code review default parent category: scegli una categoria genitore predefinita per le categorie create dal plugin

code review pending tag: Tag da applicare a tutti i commit non revisionati, pending per impostazione predefinita

code review approved tag: Tag da applicare ai commit approvati, approved per impostazione predefinita

code_review_followup_tag: Tag da applicare ai commit di follow-up, follow-up per impostazione predefinita

code review allow self approval: Il personale è autorizzato ad approvare i propri commit?

code review default mute new categories: Le nuove categorie create da code review sono disattivate (mute) per gli utenti per impostazione predefinita

code review skip duration minutes: Cliccare sul pulsante di salto su un commit impedirà a quel commit di essere mostrato di nuovo per il numero di minuti impostato da questa configurazione.

CHANGELOG

TODO

Extra

Come Discourse Utilizza Questo Plugin

In breve - Questo plugin è stato progettato per integrare l’uso di GitHub da parte del team di Discourse per la revisione del codice.

Maggiori Informazioni

Da @sam:

  • Utilizziamo ancora le PR utilizzando l’interfaccia di GitHub e ci piace fare PR per molti cambiamenti. Non è cambiato nulla qui. GitHub è fantastico, amiamo GitHub. Hanno un eccellente flusso di lavoro per i cambiamenti che non sono ancora stati effettuati. Tuttavia…

  • Il flusso di lavoro di GitHub per i cambiamenti che sono stati committati direttamente nel repository è terribile.

  • Review colma un vuoto che semplicemente non può essere colmato da GitHub oggi; vorremmo che almeno un membro del team rivedesse ogni cambiamento apportato ai nostri vari repository git di proprietà di Discourse. Se dovessimo utilizzare l’interfaccia fornita da GitHub, nessuno sarebbe mai autorizzato a fare altro che pull request. Questo ci rallenterebbe enormemente.

  • Abbiamo bisogno della possibilità di comunicare in privato senza che il mondo intero lo sappia riguardo a certi cambiamenti. Ad esempio: Dobbiamo distribuire questa fantastica correzione a <insert giant company name> il prima possibile, @sam puoi occupartene?

  • Abbiamo bisogno della possibilità di approvare i cambiamenti effettuati o richiedere un follow-up, qualcosa che l’interfaccia di GitHub non offre.

  • Abbiamo bisogno della possibilità di assegnare commit specifici a un utente. Diciamo che @sam effettua un commit contenendo alcuni errori. È comodo poter assegnargli direttamente quel commit specifico, marcarlo per il follow-up e poi tenerne traccia.

  • Discourse è piuttosto fantastico in tutta questa faccenda delle conversazioni, e le piccole funzionalità fanno una differenza piuttosto grande: posso vedere quando le persone stanno scrivendo. Non devo mai aggiornare le pagine perché i cambiamenti compaiano. Citare è davvero bello, il caricamento di immagini è bello, e così via.

  • Discourse è molto bravo con lo stato di lettura: si ottengono garanzie molto forti di aver letto ogni singola cosa una volta; con GitHub non ho idea di quali commit ho letto e quali no. Abbiamo un meccanismo incredibilmente efficiente per gestire il flusso ininterrotto di informazioni.

E l’elenco continua…

Quindi review agisce come un complemento a GitHub: al momento utilizziamo GitHub per gestire i cambiamenti che non sono ancora stati effettuati. E utilizziamo review per gestire adeguatamente i cambiamenti che sono già stati effettuati.

72 Mi Piace

Sto cercando di capire lo scopo di questo plugin. Ho il sospetto che mi serva qualcosa del genere, ma faccio fatica a capire come aiuti l’efficienza. Quando qualcuno approva una pull request e la unisce a un branch, cosa c’è nel tuo processo che rende quell’approvazione richiedere un’altra approvazione per il commit associato?

GitHub non offre questo in relazione ai commit perché si presume che sia già stato gestito nella pull request. Cosa mi sfugge?

È perché ci sono persone nel tuo team che sono autorizzate ad approvare le pull request ma non qualificate a prendere la decisione finale su quel commit in relazione a una release effettiva? Lo scopo è che le pull request possano essere unite e revisionate rapidamente senza aspettare qualcuno che abbia l’ultima parola, con la garanzia che quella persona o quel team esaminerà il commit prima che venga creata una release?

O serve principalmente a supportare discussioni private su repository pubblici?

Mi piacerebbe avere maggiori informazioni sui vantaggi dell’utilizzo di questo plugin nel tuo flusso di lavoro. Grazie!

Era principalmente una reliquia dei flussi di lavoro precedenti di Discourse.

Ai tempi lo usavamo per l’approvazione retroattiva dei set di modifiche.

Oggi le cose passano attraverso i canali PR, quindi non usiamo molto il plugin.

1 Mi Piace