Sto provando a far diventare il mio server personale il mio git primario remoto e rispecchiarlo automaticamente su github. Ho trovato this article che funziona principalmente con uno script post-receive
che fa git push --mirror
(essenzialmente).mirroring di un repository git self-hosted su github.com (errori di autenticazione)
Il mio approccio è diverso in quanto vorrei evitare di dover creare e proteggere una chiave di distribuzione e quindi configurarla su ogni repository.
Il mio script di post-ricezione funziona correttamente con la maggior parte delle varianti seguenti come indicato nei commenti tranne quando eseguo il reindirizzamento completo nohup + stdio + backgrounding come nell'articolo del blog sopra, l'autenticazione smette di funzionare.
GITHUB_USERNAME=focusaurus
BARE_PATH=$(pwd -P)
REPO_NAME=$(basename "${BARE_PATH}")
REPO_URL="ssh://[email protected]/${GITHUB_USERNAME}/${REPO_NAME}"
echo "About to mirror to ${REPO_URL}"
#hmm, this works
#git push --mirror "${REPO_URL}"
#this works, too
#nohup git push --mirror "${REPO_URL}"
#and this also works OK
nohup git push --mirror "${REPO_URL}" &
#but this fails with
#Permission denied (publickey).
#fatal: The remote end hung up unexpectedly
#Somehow ssh agent forwarding must get screwed up? Help me, Internet.
#nohup git push --mirror "${REPO_URL}" &>>/tmp/mirror_to_github.log &
#this is the one used in the blog post above but it also fails
# nohup git push --mirror "${REPO_URL}" &>/dev/null &
Ho ssh agent forwarding che credo sia il modo in cui funzionano le versioni di lavoro. Quindi la mia domanda è perché queste ultime 2 variazioni falliscono con errori di autenticazione?
Sei sicuro che l'errore sia causato da queste modifiche e non da qualcos'altro? –
Sì. Ho testato tutti questi aromi sopra e secondo i commenti, quelli che sono contrassegnati come "funziona OK" funzionano in modo affidabile, e quindi semplicemente cambiando il modo in cui lo stdio viene gestito in modo coerente causa un errore. –
Quindi sembra che il problema potrebbe essere qualcosa nella mia configurazione ssh. Indagare. –