Jagster
(Jakke Flemming)
2 Novembro , 2022 11:44
1
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 Curtiram
pfaffman
(Jay Pfaffman)
2 Novembro , 2022 21:08
2
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.
Jagster
(Jakke Flemming)
2 Novembro , 2022 21:13
3
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 Curtiram
RGJ
(Richard - Communiteq)
2 Novembro , 2022 23:00
5
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 Curtiram
Jagster
(Jakke Flemming)
2 Novembro , 2022 23:11
6
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 Curtiu
Alguém está dando uma olhada.
5 Curtiram
RGJ
(Richard - Communiteq)
3 Novembro , 2022 07:31
8
(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 Curtiu
Heddson
11 Novembro , 2022 13:01
10
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 ).
main ← gitlab-fetch-fix
opened 07:45PM - 03 Nov 22 UTC
This should fix fetching from gitlab.
@daniel Este conserto está relacionado ao problema neste tópico?
1 Curtiu
daniel
(Daniel Waterworth)
14 Novembro , 2022 22:10
11
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 Curtiram
RGJ
(Richard - Communiteq)
14 Novembro , 2022 22:35
12
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 Curtiram
Heddson
14 Novembro , 2022 23:02
13
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 Curtiram
Jagster
(Jakke Flemming)
15 Novembro , 2022 09:14
14
Após o beta12 e usando .git, funciona perfeitamente. Eu não tentei sem .git, no entanto.
2 Curtiram
daniel
(Daniel Waterworth)
5 Dezembro , 2022 17:53
18
Richard - Communiteq:
Parece que o formato do URL importa.
https://gitlab.com/silentboatman/discourse-masonry-image-gallery/ → erro
https://gitlab.com/silentboatman/discourse-masonry-image-gallery → erro
https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git → funciona
Este commit deve corrigir isso:
committed 08:21PM - 30 Nov 22 UTC
This is closer to git's redirect following behaviour. We prevented git
followin… g redirects when we clone in order to prevent SSRF attacks.
Follow-up-to: 291bbc4fb966165c9f7bbc7af6bea705b8c09a7d
7 Curtiram
Sim, isso resolve este problema. Obrigado!
2 Curtiram