Gitea: Os ganchos de atualização são quebrados quando você move o gitea para outra pasta

Criado em 7 jan. 2017  ·  3Comentários  ·  Fonte: go-gitea/gitea

  • Versão Gitea: 1.0.1
  • Versão do Git: ?
  • Sistema operacional: Arch Linux ARM, atualizado
  • Banco de dados (use [x] ):

    • [ ] PostgreSQL

    • [ ] MySQL

    • [x] SQLite

  • Você pode reproduzir o bug em https://try.gitea.io :

    • [ ] Sim (forneça URL de exemplo)

    • [ ] Não

    • [x] Não relevante

Descrição

Descrição do problema/mensagem de erro

  1. Você pode clonar, puxar o que for. SSH configurado corretamente e blabla.
  2. A mensagem de erro no push é a seguinte (onde 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

  1. Instalou o gitea em /home/alarm para experimentar, iniciá-lo e configurá-lo.
  2. Configure a conta de usuário git correta.
  3. Mais tarde, mudei as coisas para /opt/gitea porque eu tenho uma montagem de HDD externa lá (executando em um Raspberry Pi 2).
  4. Tudo era configurável e modificável no custom/conf/app.ini
  5. EXCETO os ganchos de atualização. Esses contêm caminhos estáticos para o binário antigo.

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.

revieweinvalid

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).

Todos 3 comentários

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ê.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

internalfx picture internalfx  ·  3Comentários

thehowl picture thehowl  ·  3Comentários

haytona picture haytona  ·  3Comentários

adpande picture adpande  ·  3Comentários

jakimfett picture jakimfett  ·  3Comentários