è possibile utilizzare un Git pre commettere gancio per Fai questo. Ho impostato i ganci di preavviamento per verificare le dichiarazioni di debug, ecc.
I ganci lato client come questo appartengono alla cartella .git/hooks. Ma dal momento che non puoi trasferire nulla nel repository .git nel controllo della versione sei bloccato.
Quello che devi fare è mantenere il comando della shell che controlla la correttezza in alcune cartelle del tuo repository git, ad esempio una directory di livello superiore tools
.
Poi "solo" dire alla gente di installarlo tramite:
chmod u+x tools/precommit-checks.sh
ln -s $PWD/tools/precommit-checks.sh .git/hooks/pre-commit
e, partendo dal presupposto che tutti lo installa, si può avere il controllo come si chiede.
Probabilmente un modo migliore è catturare solo questo lato server: disporre di una sorta di server di integrazione continua che estrae gli ultimi commit dal repository Github e controlla il codebase.
No, non ti darà la possibilità di "negare una spinta" che desideri.
Supponendo che tu stessi ospitando il tuo repository git, c'è anche un'altra ruga: pensavo che i ganci di pre-ricezione sul server avrebbero bloccato i client per tutto il tempo necessario. (Questo è documentato come vero per i ganci post-ricezione, quindi suppongo che sia vero anche qui). Quindi, se i test CI richiedono 2 minuti, alcuni sviluppatori stanno scrivendo git push
e aspettano 2 minuti perché la loro console esegua nuovamente qualcosa.
Quindi, probabilmente, è meglio eseguire l'analisi push post utilizzando un server CI o altri test di qualità.
Github (il servizio di hosting git) non consente di aggiungere hook arbitrari alle copie ospitate dei repository. Impostazione ganci sulla versione * locali * di repository è certamente possibile, ma allora la questione non è Github specifico :) – Gareth
Così, l'unico modo per aggiungere un gancio è con quelli pre-definito da [GitHub] (http : //developer.github.com/v3/repos/hooks/#create-a-hook)? –
Prima di tutto, tieni presente che il pre-push viene eseguito sulla macchina che esegue la spinta e che non sarà mai Github. L'evento "push" che Github offre per Web Hook è in realtà attivato come post-ricezione, come indicato nella parte superiore della pagina a cui sei collegato. Quindi, può essere utilizzato solo per le notifiche – Gareth