<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Gitea on 0xMax42 - Flatfile-Purist. Autodidakt. Systemdenker.</title><link>https://0xMax42.io/categories/gitea/</link><description>Recent content in Gitea on 0xMax42 - Flatfile-Purist. Autodidakt. Systemdenker.</description><generator>Hugo -- gohugo.io</generator><language>de-de</language><lastBuildDate>Mon, 26 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://0xMax42.io/categories/gitea/index.xml" rel="self" type="application/rss+xml"/><item><title>OIDC für Gitea Actions – nach über drei Jahren endlich upstream</title><link>https://0xMax42.io/p/oidc-f%C3%BCr-gitea-actions-nach-%C3%BCber-drei-jahren-endlich-upstream/</link><pubDate>Mon, 26 Oct 2026 00:00:00 +0000</pubDate><guid>https://0xMax42.io/p/oidc-f%C3%BCr-gitea-actions-nach-%C3%BCber-drei-jahren-endlich-upstream/</guid><description>&lt;img src="https://0xMax42.io/p/oidc-f%C3%BCr-gitea-actions-nach-%C3%BCber-drei-jahren-endlich-upstream/cover.webp" alt="Featured image of post OIDC für Gitea Actions – nach über drei Jahren endlich upstream" /&gt;&lt;p&gt;Am &lt;strong&gt;18. Oktober 2026&lt;/strong&gt; wurde &lt;a class="link" href="https://github.com/go-gitea/gitea/pull/39052" target="_blank" rel="noopener"
&gt;PR #39052&lt;/a&gt; gemergt. Damit ist &lt;strong&gt;OIDC Workload Identity für Gitea Actions&lt;/strong&gt; endlich upstream. Der erste PR dazu stammt bereits aus dem Jahr 2023.&lt;/p&gt;
&lt;h2 id="warum-oidc"&gt;Warum OIDC?
&lt;/h2&gt;&lt;p&gt;CI/CD-Jobs brauchen häufig Zugriff auf externe Dienste. Klassisch hinterlegt man dafür Tokens oder andere Zugangsdaten als Secrets. Die bleiben mitunter lange gültig und müssen verwaltet und rotiert werden.&lt;/p&gt;
&lt;p&gt;Mit &lt;strong&gt;OpenID Connect (OIDC)&lt;/strong&gt; können Workflows stattdessen kurzlebige, signierte Identitätstoken anfordern. Externe Dienste prüfen die enthaltenen Claims anhand ihrer eigenen Vertrauensrichtlinien und können daraufhin temporäre Zugangsdaten ausstellen. Langlebige Cloud-Credentials im CI-System werden damit für entsprechend konfigurierte Integrationen überflüssig.&lt;/p&gt;
&lt;p&gt;In Gitea Actions wird der Zugriff über die Workflow-Berechtigungen freigegeben:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;permissions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;contents&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;read&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id-token&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;write&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="die-vorgeschichte"&gt;Die Vorgeschichte
&lt;/h2&gt;&lt;p&gt;Der &lt;a class="link" href="https://github.com/go-gitea/gitea/pull/25664" target="_blank" rel="noopener"
&gt;erste PR #25664&lt;/a&gt; wurde im Juli 2023 eröffnet. Im März 2025 folgte &lt;a class="link" href="https://github.com/go-gitea/gitea/pull/33945" target="_blank" rel="noopener"
&gt;#33945&lt;/a&gt;, im März 2026 dann &lt;a class="link" href="https://github.com/go-gitea/gitea/pull/36988" target="_blank" rel="noopener"
&gt;#36988&lt;/a&gt;. Alle drei wurden ohne Merge geschlossen.&lt;/p&gt;
&lt;p&gt;Im August 2026 habe ich den Stand aus #36988 aufgegriffen und in &lt;a class="link" href="https://github.com/go-gitea/gitea/pull/39052" target="_blank" rel="noopener"
&gt;#39052&lt;/a&gt; weiterentwickelt. Unter anderem habe ich die Prüfungen der effektiven Token-Berechtigungen und die Ermittlung der Workflow-Herkunft überarbeitet sowie die Tests ausgebaut.&lt;/p&gt;
&lt;p&gt;Nach der manuellen Validierung habe ich die Implementierung direkt in meinen eigenen &lt;strong&gt;Gitea-Patch-Stack&lt;/strong&gt; übernommen. OIDC lief damit bereits auf meiner Instanz, während der PR upstream noch offen war.&lt;/p&gt;
&lt;h2 id="endlich-upstream"&gt;Endlich upstream
&lt;/h2&gt;&lt;p&gt;Die Maintainer haben den Code im Review weiterbearbeitet, unter anderem das Claim-Format stärker an GitHub angepasst und die interne Struktur verändert. Am &lt;strong&gt;18. Oktober 2026&lt;/strong&gt; wurde der PR schließlich in &lt;code&gt;main&lt;/code&gt; gemergt und dem Meilenstein &lt;strong&gt;Gitea 29.0.0&lt;/strong&gt; zugeordnet.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nach über drei Jahren und mehreren Anläufen war das Ding endlich drin.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sobald ich auf eine Version mit OIDC-Unterstützung aktualisiere, kann der entsprechende Patch aus meinem Stack verschwinden. &lt;strong&gt;Ein Patch weniger, den ich selbst pflegen muss.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Den vollständigen Verlauf gibt es in &lt;a class="link" href="https://github.com/go-gitea/gitea/pull/39052" target="_blank" rel="noopener"
&gt;go-gitea/gitea#39052&lt;/a&gt;.&lt;/p&gt;</description></item></channel></rss>