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