Tutti i casi d'uso

Merge automatico delle PR di release secondo una pianificazione

Dì a Zero quando rilasciare le PR di release e quali saltare. Esegue i controlli al tuo ritmo, salta le modifiche rischiose e fa il merge del resto automaticamente.

Zero connette:GitHubSlack

Cosa offre Zero

Qual è il problema

Una nuova PR di release si apre ogni volta che il tuo branch main accumula abbastanza commit - nella maggior parte dei team succede una o due volte al giorno. Qualcuno deve dare un'occhiata al diff, confermare che la CI sia verde, decidere se il changelog contiene qualcosa di preoccupante, cliccare Merge e poi vegliare sul deploy. Se è in riunione, dorme o si trova in un altro continente, la release resta ferma. I commit continuano ad accumularsi sopra, il changelog cresce e il merge diventa più rischioso. Lo dici a Zero una volta - esegui il controllo della release una volta al giorno lavorativo, salta quelle rischiose, fai il merge durante l'orario di lavoro, pubblica nel canale delle release - e da allora in poi, i rilasci avvengono da soli, secondo l'orologio del tuo team.

Come Zero lo risolve

Passo 1: Connetti i tuoi strumenti

GitHub
GitHub
Obbligatorio
GitHub - Zero elenca le PR di release, ispeziona le modifiche ai file, conferma lo stato della CI e abilita l'auto-merge. È richiesto l'accesso in scrittura al repository così Zero può attivare il merge.
Connetti
Slack
Slack
Obbligatorio
Slack - Zero usa la tua connessione Slack per annunciare i merge, segnalare le PR saltate ed escalare quelle rischiose. Senza Slack, Zero può comunque fare il merge ma non ha dove riportarlo.
Connetti

Passo 2: Chiedi a Zero

@Zero ogni giorno feriale alle 15:00, controlla il nostro repo per una PR di release aperta. Se non ha file di migrazione del DB, abilita l'auto-merge con squash così viene rilasciata nel momento in cui la CI passa - poi pubblica un aggiornamento in #release-notify.
Zero controlla le PR di release al tuo ritmo
Zero gira secondo la pianificazione che imposti - una volta al giorno lavorativo per la maggior parte dei team, ogni ora per quelli ad alta velocità - e interroga GitHub per le PR di release aperte sul tuo branch di default. Fuori da quella finestra, non fa nulla. Nessun merge fuori orario, nessuna sorpresa nel weekend.
Zero valuta ogni PR rispetto alle tue regole di sicurezza
Zero legge l'elenco dei file della PR. Se un qualsiasi file corrisponde a un percorso sensibile che hai segnalato (migrazioni, infra, fatturazione), salta il merge e avvisa il canale così decide una persona. Altrimenti conferma che i controlli CI richiesti stiano passando.
Zero abilita l'auto-merge e riporta l'esito
Per le PR che superano la policy, Zero esegue `gh pr merge --auto --squash` così la PR viene rilasciata nel momento in cui la CI diventa verde. Quando il merge avviene, Zero pubblica una riga di stato compatta nel tuo canale delle release.

Passo 3: Vai oltre

Affina la policy al volo
Aggiungi nuove regole senza toccare il codice.
@Zero d'ora in poi, salta qualsiasi PR di release il cui changelog menziona `infra` o `billing`.
Escala quelle rischiose
Fai segnalare a Zero - non fare il merge - le PR che altrimenti salterebbe.
@Zero quando trovi una PR di release con un file di migrazione, apri un thread in #dev taggando @oncall con il link al diff.
Aumenta il ritmo quando sei pronto
Passa da una volta al giorno a più volte al giorno una volta che la policy ha dimostrato il suo valore.
@Zero dalla prossima settimana, esegui il controllo di auto-merge delle release due volte al giorno - una al mattino, una dopo pranzo - invece che solo alle 15:00.

Suggerimenti per risultati migliori

Inizia con un controllo al giorno e aumenta il ritmo solo dopo che la policy si è guadagnata la fiducia. Una volta al giorno dà al team un ritmo di rilascio prevedibile senza farlo sentire sorvegliato.
Codifica nel prompt le tue regole di rilascio non scritte. 'Salta le migrazioni' è ovvio; 'metti in pausa i merge durante le finestre di demo' o 'non rilasciare mai il venerdì pomeriggio' sono le regole silenziose che Zero dovrebbe conoscere.
Concatenalo con un brief quotidiano di ingegneria così il tuo report mattutino si apre con 'la release di ieri è stata rilasciata, N commit dentro, M PR ancora in coda'. Abbina il rilascio autonomo a un reporting visibile.