Themes/Komponenten von GitLab geben bei Installation/Aktualisierung Fehler 500

Weiterführung der Diskussion von Masonry Image Gallery:

Der Titel sagt alles, schätze ich.

Nachdem ich von 2.9.0.beta11 (208d22cfc2) neu erstellt hatte, geben jedes Theme oder jede Komponente von GitLab den Fehler 500 aus, wenn ich versuche, sie zu installieren oder zu aktualisieren.

Ist das ein Fehler oder ein Sicherheitsproblem? Mein Setup hat nichts Seltsames und ist ziemlich einfach.

Das könnte damit zusammenhängen. Es kam, als ich versuchte, ein Theme zu installieren:

Nachricht (2 Kopien gemeldet)

Fehler bei der Verarbeitung der gekaperten Antwort: RemoteTheme::ImportError : Fehler beim Klonen des Git-Repositorys, Zugriff verweigert oder Repository nicht gefunden

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 „Gefällt mir“

Meinen Sie GitLab oder GitHub? Sind dies Themenkomponenten, die zuvor funktioniert haben? Es könnte sich um ein vorübergehendes Netzwerkproblem handeln. Könnten die Themen, auf die Sie zugreifen, gelöscht oder geschützt worden sein?

Wenn sie öffentlich sind, können Sie ihre URLs teilen, damit andere versuchen können, darauf zuzugreifen.

GitLab. GitHub-basierte sind in Ordnung.

Ja. Und sie funktionieren immer noch, wenn sie aus einer ZIP-Datei installiert werden. Die Verbindung zu Gitlab von Discourse aus ist jetzt das Problem.

Nein und nein.

Sicher. Sie können Masonry Image Gallery ausprobieren – der Link ist im ersten Beitrag.

Ich weiß nichts, aber ich habe das Bauchgefühl, dass die Normalisierung von URLs (oder etwas Ähnliches) Gitlab in Github ändern wird und deshalb das Repository fehlt.

2 „Gefällt mir“

Höchstwahrscheinlich wegen der SSRF-Schutzmaßnahmen.

Gitlab leitet einen git clone für https://gitlab.com/silentboatman/discourse-masonry-image-gallery mit 301 auf https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git/ (sic, endet mit .git/) um, aber git wird mit -c http.followRedirects=false aufgerufen, sodass es fehlschlägt.

Die Eingabe von https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git/ als Repository-URL direkt funktioniert nicht, da dies durch FinalDestination.resolve(@uri.to_s) zurück zu https://gitlab.com/silentboatman/discourse-masonry-image-gallery geändert wird, weil, Sie werden es nicht glauben, wenn es außerhalb von git angefordert wird, die Umleitung in die andere Richtung geht! Gitlab leitet https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git/ mit 302 auf https://gitlab.com/silentboatman/discourse-masonry-image-gallery um.

EDIT Mit GIT_CURL_VERBOSE=1 konnte ich sehen, dass Git info/refs?service=git-upload-pack beim Klonen anhängt, also

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

geht zu

location: https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git/info/refs?service=git-upload-pack
5 „Gefällt mir“

Die große Frage ist also: Was hat sich kürzlich geändert? Und wie können wir (und mit wir meine ich alle außer mir) das beheben?

1 „Gefällt mir“

Jemand schaut zu. :slight_smile: :+1:

5 „Gefällt mir“

(Zusätzlich scheint es, dass die meisten Aktionen, die jetzt beim Hinzufügen eines Repositorys einen Fehler verursachen, ein Popup mit dem Text „500 Serverfehler“ anstelle einer tatsächlichen Fehlermeldung anzeigen)

1 „Gefällt mir“

Ich dachte, diese Korrektur (unten) würde dieses Problem lösen, aber ich erhalte immer noch denselben Fehler.

Ich bin derzeit auf 2.9.0.beta11 +143 (795687160d).

@daniel Steht diese Korrektur im Zusammenhang mit dem Problem in diesem Thema?

1 „Gefällt mir“

Ja, dieser Commit sollte das Abrufen von GitLab beheben. Ich habe es gerade ausprobiert und kann jetzt von GitLab-Repos klonen, sowohl über SSH als auch über HTTP. Könnten Sie mehr Details dazu geben, was genau Sie tun, das nicht funktioniert?

@Jagster, ist das für Sie immer noch ein Problem?

4 „Gefällt mir“

Ich habe dies auch nach dem Update auf beta12 fehlschlagen sehen.

Es scheint, dass das URL-Format wichtig ist.

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

Das bedeutet, dass Sie Theme-Komponenten, die eines der ersten beiden Formate haben, entfernen und erneut hinzufügen und die Konfiguration kopieren müssen. Aber es wäre ziemlich cool, wenn diese beiden Formate auch out-of-the-box unterstützt würden.

6 „Gefällt mir“

Ja, das Hinzufügen von .git am Ende der URL scheint zu funktionieren. Gut erkannt!

Hier sind einige weitere Details. Ich habe discourse-masonry-image-gallery installiert und nach dem Update von Discourse erhielt ich die folgende Fehlermeldung.

Ich erinnere mich, es von der URL ohne .git am Ende installiert zu haben, da die Beispiel-URL nicht mit .git endet.

Ich habe auch versucht, ein anderes Theme von Gitlab zu installieren (ohne .git) und erhielt die folgende Meldung.

Im obigen Test habe ich versucht, discourse-agora-theme zu installieren, ebenfalls ein öffentliches Gitlab-Repo.

3 „Gefällt mir“

Nach beta12 und der Verwendung von .git funktioniert es einwandfrei. Ich habe es jedoch nicht ohne .git versucht.

2 „Gefällt mir“

Dieser Commit sollte das beheben:

7 „Gefällt mir“

Ja, das löst dieses Problem. Danke!

2 „Gefällt mir“