TL; DR: Solucionou problemas com o git push via cron usando SSH em vez de HTTPS.
Graças à equipe de suporte do GitHub, consegui resolver isso.
O primeiro problema foi que git-credential-osxkeychain
não estava no meu caminho quando o cron job foi executado. Para mim, git
e git-credential-osxkeychain
estavam sendo executados fora do diretório de ferramentas de linha de comando do Xcode:
$ which git
/Applications/Xcode.app/Contents/Developer/usr/bin/git
$ which git-credential-osxkeychain
/Applications/Xcode.app/Contents/Developer/usr/bin/git-credential-osxkeychain
Ao executar which git
do cron, o cron estava executando git
de /usr/bin
.
Eu adicionei o diretório apropriado ao meu PATH
no topo da tarefa do cron com:
export PATH=$PATH:/Applications/Xcode.app/Contents/Developer/usr/bin
Isso resolveu o erro git: 'credential-osxkeychain' is not a git command
, mas recebi outro erro:
fatal: could not read Username for 'https://github.com': Device not configured
Por sugestão da equipe de suporte do GitHub, resolvi o problema (sem a necessidade de git-credential-osxkeychain
) autenticando via SSH em vez de https:
git remote set-url origin [email protected]:username/repo.git