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

**URL:** https://meta.discourse.org/t/themes-components-from-gitlab-gives-error-500-when-installing-updating/243971
**Category:** Bug
**Created:** [2. November 2022 um 11:44 UTC](https://meta.discourse.org/t/themes-components-from-gitlab-gives-error-500-when-installing-updating/243971 "2022-11-02T11:44:35Z")
**Posts on this page:** 15
**Page:** 1

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [2. November 2022 um 11:44 UTC](https://meta.discourse.org/t/themes-components-from-gitlab-gives-error-500-when-installing-updating/243971/1 "2022-11-02T11:44:36Z")

</div>

Weiterführung der Diskussion von [Masonry Image Gallery](https://meta.discourse.org/t/masonry-image-gallery/188315):

Der Titel sagt alles, schätze ich.

Nachdem ich von 2.9.0.beta11 ([208d22cfc2](https://github.com/discourse/discourse/commits/208d22cfc25223486331e4f3831d278be800d9f8)) 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:

```plaintext
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

```

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2. November 2022 um 21:08 UTC](https://meta.discourse.org/t/themes-components-from-gitlab-gives-error-500-when-installing-updating/243971/2 "2022-11-02T21:08:30Z")

</div>

> [@Jagster](#):
>
> Jedes Thema oder jede Komponente von GitLab gibt den Fehler 500 aus, wenn versucht wird, sie zu installieren oder zu aktualisieren.

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.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [2. November 2022 um 21:13 UTC](https://meta.discourse.org/t/themes-components-from-gitlab-gives-error-500-when-installing-updating/243971/3 "2022-11-02T21:13:03Z")

</div>

> [@pfaffman](#):
>
> Meinen Sie Gitlab oder Github?

GitLab. GitHub-basierte sind in Ordnung.

> [@pfaffman](#):
>
> Sind dies Theme-Komponenten, die vorher funktioniert haben?

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.

> [@pfaffman](#):
>
> Könnten die Themes, auf die Sie zugreifen, gelöscht oder geschützt worden sein?

Nein und nein.

> [@pfaffman](#):
>
> Wenn sie öffentlich sind, können Sie ihre URLs teilen, damit andere versuchen können, darauf zuzugreifen

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.

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [2. November 2022 um 23:00 UTC](https://meta.discourse.org/t/themes-components-from-gitlab-gives-error-500-when-installing-updating/243971/5 "2022-11-02T23:00:21Z")

</div>

Höchstwahrscheinlich wegen der [SSRF-Schutzmaßnahmen](https://github.com/discourse/discourse/commit/68b4fe4cf876ba4838dfc797655a038d34d2b27f).

Gitlab leitet einen `git clone` für [https://gitlab.com/silentboatman/discourse-masonry-image-gallery](https://gitlab.com/silentboatman/discourse-masonry-image-gallery) mit 301 auf [https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git/](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/](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](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/](https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git/) mit 302 auf [https://gitlab.com/silentboatman/discourse-masonry-image-gallery](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

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

```

geht zu

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

```

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [2. November 2022 um 23:11 UTC](https://meta.discourse.org/t/themes-components-from-gitlab-gives-error-500-when-installing-updating/243971/6 "2022-11-02T23:11:49Z")

</div>

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?

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [2. November 2022 um 23:21 UTC](https://meta.discourse.org/t/themes-components-from-gitlab-gives-error-500-when-installing-updating/243971/7 "2022-11-02T23:21:43Z")

</div>

Jemand schaut zu. 🙂 👍

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [3. November 2022 um 07:31 UTC](https://meta.discourse.org/t/themes-components-from-gitlab-gives-error-500-when-installing-updating/243971/8 "2022-11-03T07:31:41Z")

</div>

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

---

<div class="post-metadata">

### Author: ![Heddson](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heddson/32/96742_2.png) [@Heddson](https://meta.discourse.org/u/Heddson)
#### Post date: [11. November 2022 um 13:01 UTC](https://meta.discourse.org/t/themes-components-from-gitlab-gives-error-500-when-installing-updating/243971/10 "2022-11-11T13:01:36Z")

</div>

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](https://github.com/discourse/discourse/commits/795687160d2ea989788ea7df0b7db047dc09b376)).

> <https://github.com/discourse/discourse/pull/18870>
>
> This should fix fetching from gitlab.

# 

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

---

<div class="post-metadata">

### Author: ![daniel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/daniel/32/172786_2.png) [@daniel](https://meta.discourse.org/u/daniel)
#### Post date: [14. November 2022 um 22:10 UTC](https://meta.discourse.org/t/themes-components-from-gitlab-gives-error-500-when-installing-updating/243971/11 "2022-11-14T22:10:12Z")

</div>

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?

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [14. November 2022 um 22:35 UTC](https://meta.discourse.org/t/themes-components-from-gitlab-gives-error-500-when-installing-updating/243971/12 "2022-11-14T22:35:32Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Heddson](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heddson/32/96742_2.png) [@Heddson](https://meta.discourse.org/u/Heddson)
#### Post date: [14. November 2022 um 23:02 UTC](https://meta.discourse.org/t/themes-components-from-gitlab-gives-error-500-when-installing-updating/243971/13 "2022-11-14T23:02:25Z")

</div>

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

# 

> [@daniel](#):
>
> Könnten Sie mehr Details dazu geben, was genau Sie tun, das nicht funktioniert?

Hier sind einige weitere Details. Ich habe [discourse-masonry-image-gallery](https://gitlab.com/silentboatman/discourse-masonry-image-gallery) installiert und nach dem Update von Discourse erhielt ich die folgende Fehlermeldung.

 ![error cloning git](https://global.discourse-cdn.com/meta/original/4X/3/4/0/34026dc4809bf7f513c671b5238f34b7b653a650.jpeg)

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

 ![example url](https://global.discourse-cdn.com/meta/original/4X/b/f/6/bf6a7bfd0a799ea04a3cdc31e1027740c5c6033f.jpeg)

# 

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

 ![an error occurred](https://global.discourse-cdn.com/meta/original/4X/8/9/5/895111ad77c3f601a98af92e8fb09289204bcebd.jpeg)

Im obigen Test habe ich versucht, [discourse-agora-theme](https://gitlab.com/tezosagora/discourse-agora-theme) zu installieren, ebenfalls ein öffentliches Gitlab-Repo.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [15. November 2022 um 09:14 UTC](https://meta.discourse.org/t/themes-components-from-gitlab-gives-error-500-when-installing-updating/243971/14 "2022-11-15T09:14:33Z")

</div>

> [@daniel](#):
>
> ist das immer noch ein Problem für dich?

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

---

<div class="post-metadata">

### Author: ![daniel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/daniel/32/172786_2.png) [@daniel](https://meta.discourse.org/u/daniel)
#### Post date: [5. Dezember 2022 um 17:53 UTC](https://meta.discourse.org/t/themes-components-from-gitlab-gives-error-500-when-installing-updating/243971/18 "2022-12-05T17:53:32Z")

</div>

> [@Richard – Communiteq](#):
>
> Es scheint, dass das URL-Format wichtig ist.
> 
> `https://gitlab.com/silentboatman/discourse-masonry-image-gallery/` → Fehler  
> `https://gitlab.com/silentboatman/discourse-masonry-image-gallery` → Fehler  
> `https://gitlab.com/silentboatman/discourse-masonry-image-gallery.git` → funktioniert

Dieser Commit sollte das beheben:

> <https://github.com/discourse/discourse/commit/d9364a272e1b59b7d280d76898399ec14efec6f6>
>
> 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

---

<div class="post-metadata">

### Author: ![Heddson](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heddson/32/96742_2.png) [@Heddson](https://meta.discourse.org/u/Heddson)
#### Post date: [5. Dezember 2022 um 20:01 UTC](https://meta.discourse.org/t/themes-components-from-gitlab-gives-error-500-when-installing-updating/243971/19 "2022-12-05T20:01:44Z")

</div>

Ja, das löst dieses Problem. Danke!

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [6. Dezember 2022 um 21:45 UTC](https://meta.discourse.org/t/themes-components-from-gitlab-gives-error-500-when-installing-updating/243971/20 "2022-12-06T21:45:08Z")

</div>


