Jagster
(Jakke Flemming)
02.Ноябрь.2022 11:44:36
1
Продолжение обсуждения из Галерея изображений Masonry :
Название говорит само за себя, полагаю.
После пересборки из версии 2.9.0.beta11 (208d22cfc2 ) любая тема или компонент из GitLab выдают ошибку 500 при попытке установки или обновления.
Это баг или какая-то проблема безопасности? Моя конфигурация ничем необычным не отличается и довольно проста.
Это может быть связано. Проблема возникла, когда я тестировал установку одной из тем:
Сообщение (2 копии)
Не удалось корректно обработать перехваченный ответ: RemoteTheme::ImportError : Ошибка клонирования репозитория Git: доступ запрещён или репозиторий не найден
Стек вызовов
/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'
Окружение
HTTP HOSTS: foorumi.katiska.eu
4 лайка
pfaffman
(Jay Pfaffman)
02.Ноябрь.2022 21:08:30
2
Вы имеете в виду GitLab или GitHub? Эти компоненты тем работали раньше? Возможно, это временная проблема с сетью. Не могли ли темы, к которым вы обращаетесь, быть удалены или защищены?
Если они общедоступны, вы можете поделиться их URL-адресами, чтобы другие могли попытаться получить к ним доступ.
Jagster
(Jakke Flemming)
02.Ноябрь.2022 21:13:03
3
GitLab. Версии на базе GitHub работают отлично.
Да. И они всё ещё работают при установке из ZIP-архива. Проблема сейчас в подключении к GitLab из Discourse.
Нет и нет.
Конечно. Вы можете попробовать «Галерея изображений Masonry» — ссылка находится в первом сообщении.
Я ничего не знаю, но у меня есть предчувствие, что нормализация URL (или что-то подобное) меняет GitLab на GitHub, и поэтому репозиторий не найден.
2 лайка
RGJ
(Richard - Communiteq)
02.Ноябрь.2022 23:00:21
5
Почти наверняка из-за исправлений защиты от SSRF .
Gitlab перенаправляет с помощью 301 команду git clone для https://gitlab.com/silentboatman/discourse-masonry-image-gallery на https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git/ (sic, заканчивается на .git/), но git вызывается с флагом -c http.followRedirects=false, поэтому операция завершается ошибкой.
Ввод https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git/ в качестве URL репозитория напрямую не работает, так как FinalDestination.resolve(@uri.to_s) возвращает его обратно к https://gitlab.com/silentboatman/discourse-masonry-image-gallery . Не поверите, но при запросе вне контекста git перенаправление происходит в обратном направлении! Gitlab перенаправляет с помощью 302 https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git/ на https://gitlab.com/silentboatman/discourse-masonry-image-gallery .
РЕДАКТИРОВАНИЕ: Используя GIT_CURL_VERBOSE=1, я смог увидеть, что при клонировании Git добавляет info/refs?service=git-upload-pack, поэтому
GET /silentboatman/discourse-masonry-image-gallery/info/refs?service=git-upload-pack HTTP/2
перенаправляется на
location: https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git/info/refs?service=git-upload-pack
5 лайков
Jagster
(Jakke Flemming)
02.Ноябрь.2022 23:11:49
6
Итак, главный вопрос ™: что изменилось недавно? И как мы (под «мы» я подразумеваю всех, кроме меня) можем это исправить?
1 лайк
RGJ
(Richard - Communiteq)
03.Ноябрь.2022 07:31:41
8
(Кроме того, похоже, что большинство действий, вызывающих ошибку при добавлении репозитория, теперь отображают всплывающее окно с текстом «500 Server Error» вместо настоящего сообщения об ошибке)
1 лайк
Я думал, что это исправление (ниже) решит проблему, но я всё ещё получаю ту же ошибку.
Сейчас у меня версия 2.9.0.beta11 +143 (795687160d ).
main ← gitlab-fetch-fix
merged 08:19PM - 03 Nov 22 UTC
This should fix fetching from gitlab.
@daniel , связано ли это исправление с проблемой в этой теме?
1 лайк
daniel
(Daniel Waterworth)
14.Ноябрь.2022 22:10:12
11
Да, этот коммит был направлен на исправление работы с GitLab. Я только что проверил, и теперь я могу клонировать репозитории GitLab как через SSH, так и через HTTP. Не могли бы вы подробнее описать, что именно у вас не работает?
@Jagster , для вас это всё ещё актуально?
4 лайка
RGJ
(Richard - Communiteq)
14.Ноябрь.2022 22:35:32
12
Я тоже наблюдал эту проблему после обновления до beta12.
Кажется, важен формат URL.
https://gitlab.com/silentboatman/discourse-masonry-image-gallery/ — ошибка
https://gitlab.com/silentboatman/discourse-masonry-image-gallery — ошибка
https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git — работает
Это означает, что вам нужно удалить и снова добавить компоненты темы, использующие один из первых двух форматов, и скопировать конфигурацию. Но было бы здорово, если бы эти два формата поддерживались из коробки.
6 лайков
Да, добавление .git в конец URL-адреса, похоже, работает. Отлично подмечено!
Вот дополнительная информация. Я установил discourse-masonry-image-gallery , и после обновления Discourse получил следующее сообщение об ошибке.
Помню, что устанавливал его по URL-адресу без .git в конце, так как в примере URL-адреса .git отсутствует.
Я также попытался установить другую тему с GitLab (без .git ) и получил следующее сообщение.
В тесте выше я пытался установить discourse-agora-theme , это также публичный репозиторий GitLab.
3 лайка
Jagster
(Jakke Flemming)
15.Ноябрь.2022 09:14:33
14
После beta12 и использования .git всё работает отлично. Однако я не пробовал без .git.
2 лайка
daniel
(Daniel Waterworth)
05.Декабрь.2022 17:53:32
18
Похоже, что важен формат URL.
https://gitlab.com/silentboatman/discourse-masonry-image-gallery/ → ошибка
https://gitlab.com/silentboatman/discourse-masonry-image-gallery → ошибка
https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git → работает
Этот коммит должен исправить проблему:
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 лайков
Heddson
05.Декабрь.2022 20:01:44
19
Да, это решает проблему. Спасибо!
2 лайка