Temas/componentes do GitLab dão erro 500 ao instalar/atualizar

Continuando a discussão de Masonry Image Gallery:

O título diz tudo, eu acho.

Depois de reconstruir de 2.9.0.beta11 (208d22cfc2), todos os temas ou componentes do GitLab dão erro 500 ao tentar instalar ou atualizar.

Isso é um bug ou algum tipo de problema de segurança? Minha configuração não tem nada de estranho e é bastante básica.

Isso pode estar relacionado. Veio quando testei a instalação de um tema:

Mensagem (2 cópias relatadas)

Falha ao processar a resposta sequestrada corretamente: RemoteTheme::ImportError: Erro ao clonar o repositório git, acesso negado ou repositório não encontrado.

Backtrace

/var/www/discourse/lib/theme_store/git_importer.rb:81:in `raise_import_error!'
/var/www/discourse/lib/theme_store/git_importer.rb:148:in `rescue in clone_http!'
/var/www/discourse/lib/theme_store/git_importer.rb:145:in `clone_http!'
/var/www/discourse/lib/theme_store/git_importer.rb:93:in `clone!'
/var/www/discourse/lib/theme_store/git_importer.rb:18:in `import!'
/var/www/discourse/app/models/remote_theme.rb:82:in `import_theme'
/var/www/discourse/app/controllers/admin/themes_controller.rb:106:in `block in import'
/var/www/discourse/lib/hijack.rb:56:in `instance_eval'
/var/www/discourse/lib/hijack.rb:56:in `block in hijack'
/var/www/discourse/lib/scheduler/defer.rb:94:in `block in do_work'

Env

HTTP HOSTS: foorumi.katiska.eu
4 curtidas

Você quer dizer GitLab ou GitHub? São componentes de tema que funcionavam antes? Pode ser um problema de rede intermitente. Os temas aos quais você está acessando podem ter sido excluídos ou protegidos?

Se forem públicos, você pode compartilhar seus URLs para que outros possam tentar acessá-los.

GitLab. Os baseados em GitHub estão ótimos.

Sim. E ainda funcionam se instalados a partir de um zip. Conectar-se ao Gitlab a partir do Discourse é o problema agora.

Não e não.

Claro. Você pode tentar o Masonry Image Gallery — o link está na primeira postagem.

Não sei nada, mas tenho a sensação de que a normalização de URL (ou algo semelhante) mudará gitlab para github e é por isso que o repositório está faltando.

2 curtidas

Quase certamente devido às correções de proteções SSRF.

O Gitlab está redirecionando 301 um git clone para https://gitlab.com/silentboatman/discourse-masonry-image-gallery para https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git/ (sic, termina com .git/) mas o git é chamado com -c http.followRedirects=false então falha.

Inserir https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git/ como URL do repositório diretamente não funciona porque isso é revertido para https://gitlab.com/silentboatman/discourse-masonry-image-gallery por FinalDestination.resolve(@uri.to_s) porque, você não vai acreditar, quando solicitado fora do git, o redirecionamento vai na outra direção! O Gitlab redireciona 302 https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git/ para https://gitlab.com/silentboatman/discourse-masonry-image-gallery

EDIT usando GIT_CURL_VERBOSE=1 eu consegui ver que o Git anexa info/refs?service=git-upload-pack ao clonar, então

GET /silentboatman/discourse-masonry-image-gallery/info/refs?service=git-upload-pack HTTP/2

vai para

location: https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git/info/refs?service=git-upload-pack
5 curtidas

Então - a Grande Questão™ é: o que mudou recentemente? E como nós (e com nós quero dizer todo mundo, exceto eu) podemos consertar isso?

1 curtida

Alguém está dando uma olhada. :slight_smile: :+1:

5 curtidas

(Além disso, parece que a maioria das ações que causam um erro ao adicionar um repositório agora exibem um pop-up apenas com o texto “500 Server Error” em vez de uma mensagem de erro real)

1 curtida

Pensei que este conserto (abaixo) resolveria este problema, mas ainda recebo o mesmo erro.

Atualmente estou na versão 2.9.0.beta11 +143 (795687160d).

@daniel Este conserto está relacionado ao problema neste tópico?

1 curtida

Sim, esse commit foi feito para corrigir a busca no gitlab. Acabei de tentar e agora consigo clonar de repositórios do gitlab, tanto via SSH quanto via HTTP. Você poderia dar mais detalhes sobre o que exatamente você está fazendo que não está funcionando?

@Jagster, isso ainda é um problema para você?

4 curtidas

Eu também vi isso falhando após a atualização para beta12.

Parece que o formato do URL importa.

https://gitlab.com/silentboatman/discourse-masonry-image-gallery/ –\u003e erro
https://gitlab.com/silentboatman/discourse-masonry-image-gallery –\u003e erro
https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git –\u003e funciona

Isso significa que você precisará remover e readicionar componentes de tema que tenham um dos dois primeiros formatos e copiar a configuração. Mas seria muito legal se esses dois formatos também fossem suportados nativamente.

6 curtidas

Sim, adicionar .git ao final da URL parece funcionar. Ótima observação!

Aqui estão mais detalhes. Instalei o discourse-masonry-image-gallery e, após atualizar o Discourse, recebi a seguinte mensagem de erro.

Lembro-me de tê-lo instalado a partir da URL sem o .git no final, já que a URL de exemplo não termina com .git.

Também tentei instalar outro tema do gitlab (sem .git) e recebi a seguinte mensagem.

No teste acima, tentei instalar o discourse-agora-theme, também um repositório público do gitlab.

3 curtidas

Após o beta12 e usando .git, funciona perfeitamente. Eu não tentei sem .git, no entanto.

2 curtidas

Este commit deve corrigir isso:

7 curtidas

Sim, isso resolve este problema. Obrigado!

2 curtidas