[x]
):Descrição do problema/mensagem de erro
git-mirror
é o host da máquina).[lycheejs] (development)$ git push mirror development
Counting objects: 80, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (76/76), done.
Writing objects: 100% (80/80), 15.28 KiB | 0 bytes/s, done.
Total 80 (delta 50), reused 0 (delta 0)
# XXX: Note this /home/alarm/gitea path, this is the outdated update hook path
remote: hooks/update: line 2: /home/alarm/gitea: Permission denied
remote: error: hook declined to update refs/heads/development
To git-mirror:Artificial-Engineering/lycheejs.git
! [remote rejected] development -> development (hook declined)
error: failed to push some refs to 'git@git-mirror:Artificial-Engineering/lycheejs.git'
Passos para reproduzir
/home/alarm
para experimentar, iniciá-lo e configurá-lo.git
correta./opt/gitea
porque eu tenho uma montagem de HDD externa lá (executando em um Raspberry Pi 2).custom/conf/app.ini
Correção rápida para outros
Eu fiz um pequeno script que assume que a pasta ./gitea-repositories
está na mesma pasta que o binário gitea e que corrige todos os ganchos de atualização uma vez executados. No meu caso está localizado em /opt/gitea/fix_repos.js
onde os repos estão em /opt/gitea/gitea-repositories
. Link para o script fix_repos.js .
Problemas causados
Eu vi alguns problemas em gogs upstream onde as pessoas tinham os mesmos problemas. Não está totalmente claro que você não pode se mover pelo gitea porque eu diria que um binário pode ser copiado/colado com seus arquivos de configuração e deve funcionar isolado nessa pasta.
Sugestão
Talvez faça sentido ter uma rotina de inicialização que faça uma verificação de sanidade para todos os ganchos de atualização quando o serviço da web gitea for iniciado. Para garantir que todos os caminhos estejam atualizados e apontem para o binário correto.
Entre no painel de administração do Gitea na interface do usuário, execute Rewrite '.ssh/authorized_keys' (cuidado: as chaves que não são do Gitea serão perdidas) e Rewrite todos os ganchos de atualização dos repositórios (necessário quando o caminho de configuração personalizado é alterado).
Como os dados são uma parte estática, eles devem ser reescritos na interface do administrador.
Primeiro eu tento empurrar o git, mas recebo esse erro.
[rejeitado remoto] master -> master (gancho de pré-recebimento recusado)
Eu corro Update the '.ssh/authorized_keys' file with Gitea SSH keys. (Not needed for the built-in SSH server.)
mas deu erro.
abra C:\Windows\system32\config\systemprofile.ssh\authorized_keys.tmp: O sistema não pode localizar o caminho especificado.
Então eu corro Resynchronize pre-receive, update and post-receive hooks of all repositories.
E eu tento empurrar novamente e tudo funciona bem.
Não tenho certeza se para isso ou atualizar .ssh/authorized_keys
funciona mesmo que exiba erro ou algo assim, mas funciona! Eu não sei por quê.
Comentários muito úteis
Entre no painel de administração do Gitea na interface do usuário, execute Rewrite '.ssh/authorized_keys' (cuidado: as chaves que não são do Gitea serão perdidas) e Rewrite todos os ganchos de atualização dos repositórios (necessário quando o caminho de configuração personalizado é alterado).