<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Latest commits for branch codeberg-14</title>
    <link>https://codeberg.org/Codeberg-Infrastructure/forgejo/branch/codeberg-14</link>
    <description>The code deployed to Codeberg. If you want to deploy Forgejo yourself or work on the code, check out:</description>
    <pubDate>Wed, 04 Mar 2026 02:27:25 +0100</pubDate>
    <item>
      <title>CB/bp: fix: allow Actions runner to recover tasks lost during fetching from intermittent errors (#11401)</title>
      <link>https://codeberg.org/Codeberg-Infrastructure/forgejo/commit/5e0b41b3cba6ffc5df1c5d3f05e8fa5f65737ab3</link>
      <description>CB/bp: fix: allow Actions runner to recover tasks lost during fetching from intermittent errors (#11401)&#xA;&#xA;Probably fixes (or improves, at least) https://code.forgejo.org/forgejo/runner/issues/1391, paired with the runner implementation https://code.forgejo.org/forgejo/runner/pulls/1393.&#xA;&#xA;When the FetchTask() API is invoked to create a task, unpreventable environmental errors may occur; for example, network disconnects and timeouts. It&#39;s possible that these errors occur after the server-side has assigned a task to the runner during the API call, in which case the error would cause that task to be lost between the two systems -- the server will think it&#39;s assigned to the runner, and the runner never received it.  This can cause jobs to appear stuck at &#34;Set up job&#34;.&#xA;&#xA;The solution implemented here is idempotency in the FetchTask() API call, which means that the &#34;same&#34; FetchTask() API call is expected to return the same values. Specifically, the runner creates a unique identifier which is transmitted to the server as a header `x-runner-request-key` with each FetchTask() invocation which defines the sameness of the call, and the runner retains the value until the API call receives a successful response. The server implementation returns the same tasks back if a second (or Nth) call is received with the same `x-runner-request-key` header.  In order to accomplish this is records the `x-runner-request-key` value that is used with each request that assigns tasks.&#xA;&#xA;As a complication, the Forgejo server is unable to return the same `${{ secrets.forgejo_token }}` for the task because the server stores that value in a one-way hash in the database.  To resolve this, the server regenerates the token when retrieving tasks for a second time.&#xA;&#xA;Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11401&#xA;Reviewed-by: Andreas Ahlenstorf &lt;aahlenst@noreply.codeberg.org&gt;&#xA;Co-authored-by: Mathieu Fenniak &lt;mathieu@fenniak.net&gt;&#xA;Co-committed-by: Mathieu Fenniak &lt;mathieu@fenniak.net&gt;&#xA;&#xA;(cherry picked from commit 0ae62353862472ebd6bb2bdb44a8cc8354e89c27)&#xA;</description>
      <content:encoded><![CDATA[CB/bp: fix: allow Actions runner to recover tasks lost during fetching from intermittent errors (#11401)

Probably fixes (or improves, at least) https://code.forgejo.org/forgejo/runner/issues/1391, paired with the runner implementation https://code.forgejo.org/forgejo/runner/pulls/1393.

When the FetchTask() API is invoked to create a task, unpreventable environmental errors may occur; for example, network disconnects and timeouts. It's possible that these errors occur after the server-side has assigned a task to the runner during the API call, in which case the error would cause that task to be lost between the two systems -- the server will think it's assigned to the runner, and the runner never received it.  This can cause jobs to appear stuck at "Set up job".

The solution implemented here is idempotency in the FetchTask() API call, which means that the "same" FetchTask() API call is expected to return the same values. Specifically, the runner creates a unique identifier which is transmitted to the server as a header `x-runner-request-key` with each FetchTask() invocation which defines the sameness of the call, and the runner retains the value until the API call receives a successful response. The server implementation returns the same tasks back if a second (or Nth) call is received with the same `x-runner-request-key` header.  In order to accomplish this is records the `x-runner-request-key` value that is used with each request that assigns tasks.

As a complication, the Forgejo server is unable to return the same `${{ secrets.forgejo_token }}` for the task because the server stores that value in a one-way hash in the database.  To resolve this, the server regenerates the token when retrieving tasks for a second time.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11401
Reviewed-by: Andreas Ahlenstorf <aahlenst@noreply.codeberg.org>
Co-authored-by: Mathieu Fenniak <mathieu@fenniak.net>
Co-committed-by: Mathieu Fenniak <mathieu@fenniak.net>

(cherry picked from commit 0ae62353862472ebd6bb2bdb44a8cc8354e89c27)
]]></content:encoded>
      <author>Mathieu Fenniak</author>
      <guid>5e0b41b3cba6ffc5df1c5d3f05e8fa5f65737ab3</guid>
      <pubDate>Fri, 27 Feb 2026 03:00:04 +0100</pubDate>
    </item>
    <item>
      <title>CB/fix: patch out retry button</title>
      <link>https://codeberg.org/Codeberg-Infrastructure/forgejo/commit/5f22465b9361b77c3e3fc77ed93a29df256610f4</link>
      <description>CB/fix: patch out retry button&#xA;&#xA;This feature never should have landed in Gitea, it&#39;s utterly broken&#xA;because it only works where migration failed before any data was&#xA;migrated. Which for Codeberg&#39;s use case is almost never the case and&#xA;leads to retrying a migration that&#39;s bound to fail.&#xA;&#xA;This forces people to delete repository and fill out migration details,&#xA;this is inconvenient but it&#39;s arguably more inconvenient seeing that&#xA;retry button does not work.&#xA;</description>
      <content:encoded><![CDATA[CB/fix: patch out retry button

This feature never should have landed in Gitea, it's utterly broken
because it only works where migration failed before any data was
migrated. Which for Codeberg's use case is almost never the case and
leads to retrying a migration that's bound to fail.

This forces people to delete repository and fill out migration details,
this is inconvenient but it's arguably more inconvenient seeing that
retry button does not work.
]]></content:encoded>
      <author>Gusted</author>
      <guid>5f22465b9361b77c3e3fc77ed93a29df256610f4</guid>
      <pubDate>Fri, 27 Feb 2026 02:46:02 +0100</pubDate>
    </item>
    <item>
      <title>CB/fix: continue on error for avatar strip exif</title>
      <link>https://codeberg.org/Codeberg-Infrastructure/forgejo/commit/306c73276318fde2908d6a3849f0e0a692304012</link>
      <description>CB/fix: continue on error for avatar strip exif&#xA;&#xA;https://codeberg.org/superseriousbusiness/exif-terminator/issues/16&#xA;&#xA;Avatars might get changed, deleted during this doctor run.&#xA;</description>
      <content:encoded><![CDATA[CB/fix: continue on error for avatar strip exif

https://codeberg.org/superseriousbusiness/exif-terminator/issues/16

Avatars might get changed, deleted during this doctor run.
]]></content:encoded>
      <author>Gusted</author>
      <guid>306c73276318fde2908d6a3849f0e0a692304012</guid>
      <pubDate>Wed, 25 Feb 2026 01:34:59 +0100</pubDate>
    </item>
    <item>
      <title>CB/fix(footer): use &lt;li&gt; for blog link (!126)</title>
      <link>https://codeberg.org/Codeberg-Infrastructure/forgejo/commit/774f579f67b2604ff8b30b9d8e14c7e630fbf55e</link>
      <description>CB/fix(footer): use &lt;li&gt; for blog link (!126)&#xA;&#xA;Reviewed-on: https://codeberg.org/Codeberg-Infrastructure/forgejo/pulls/126&#xA;Reviewed-by: Gusted &lt;gusted@noreply.codeberg.org&gt;&#xA;Co-authored-by: 0ko &lt;0ko@noreply.codeberg.org&gt;&#xA;Co-committed-by: 0ko &lt;0ko@noreply.codeberg.org&gt;&#xA;</description>
      <content:encoded><![CDATA[CB/fix(footer): use <li> for blog link (!126)

Reviewed-on: https://codeberg.org/Codeberg-Infrastructure/forgejo/pulls/126
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: 0ko <0ko@noreply.codeberg.org>
Co-committed-by: 0ko <0ko@noreply.codeberg.org>
]]></content:encoded>
      <author>0ko</author>
      <guid>774f579f67b2604ff8b30b9d8e14c7e630fbf55e</guid>
      <pubDate>Wed, 25 Feb 2026 01:03:24 +0100</pubDate>
    </item>
    <item>
      <title>CB/fix: reduce deadlocks for commenting</title>
      <link>https://codeberg.org/Codeberg-Infrastructure/forgejo/commit/1ba5d46763e06c9f109174475153c96052e8bd9d</link>
      <description>CB/fix: reduce deadlocks for commenting&#xA;&#xA;This is a try to avoid a long-running UPDATE query and instead opt it to&#xA;be a long-running SELECT query that collects potential IDs and then have&#xA;a fast UPDATE query.&#xA;&#xA;It is possible it will still lead to deadlocks, but we&#39;ll see.&#xA;&#xA;Most recent deadlocks was with commenting on issues (updating the num of&#xA;comments count of the issue)&#xA;</description>
      <content:encoded><![CDATA[CB/fix: reduce deadlocks for commenting

This is a try to avoid a long-running UPDATE query and instead opt it to
be a long-running SELECT query that collects potential IDs and then have
a fast UPDATE query.

It is possible it will still lead to deadlocks, but we'll see.

Most recent deadlocks was with commenting on issues (updating the num of
comments count of the issue)
]]></content:encoded>
      <author>Gusted</author>
      <guid>1ba5d46763e06c9f109174475153c96052e8bd9d</guid>
      <pubDate>Wed, 25 Feb 2026 01:03:24 +0100</pubDate>
    </item>
    <item>
      <title>CB/ui: Update link color in homepage about box (!125)</title>
      <link>https://codeberg.org/Codeberg-Infrastructure/forgejo/commit/5fbf49bce4a81ee97e1f62c89ad8225589a3fbff</link>
      <description>CB/ui: Update link color in homepage about box (!125)&#xA;&#xA;Reviewed-on: https://codeberg.org/Codeberg-Infrastructure/forgejo/pulls/125&#xA;Reviewed-by: Gusted &lt;gusted@noreply.codeberg.org&gt;&#xA;Co-authored-by: Martijn Verkleij &lt;mail@mverkleij.nl&gt;&#xA;Co-committed-by: Martijn Verkleij &lt;mail@mverkleij.nl&gt;&#xA;</description>
      <content:encoded><![CDATA[CB/ui: Update link color in homepage about box (!125)

Reviewed-on: https://codeberg.org/Codeberg-Infrastructure/forgejo/pulls/125
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: Martijn Verkleij <mail@mverkleij.nl>
Co-committed-by: Martijn Verkleij <mail@mverkleij.nl>
]]></content:encoded>
      <author>Martijn Verkleij</author>
      <guid>5fbf49bce4a81ee97e1f62c89ad8225589a3fbff</guid>
      <pubDate>Wed, 25 Feb 2026 01:03:24 +0100</pubDate>
    </item>
    <item>
      <title>CB/meta: Improve custom theme explanation in README (!123)</title>
      <link>https://codeberg.org/Codeberg-Infrastructure/forgejo/commit/669366ee14810313b779342b753e2f7972b6cc84</link>
      <description>CB/meta: Improve custom theme explanation in README (!123)&#xA;&#xA;Reviewed-on: https://codeberg.org/Codeberg-Infrastructure/forgejo/pulls/123&#xA;Co-authored-by: Panagiotis &#34;Ivory&#34; Vasilopoulos &lt;git@n0toose.net&gt;&#xA;Co-committed-by: Panagiotis &#34;Ivory&#34; Vasilopoulos &lt;git@n0toose.net&gt;&#xA;</description>
      <content:encoded><![CDATA[CB/meta: Improve custom theme explanation in README (!123)

Reviewed-on: https://codeberg.org/Codeberg-Infrastructure/forgejo/pulls/123
Co-authored-by: Panagiotis "Ivory" Vasilopoulos <git@n0toose.net>
Co-committed-by: Panagiotis "Ivory" Vasilopoulos <git@n0toose.net>
]]></content:encoded>
      <author>Panagiotis &#34;Ivory&#34; Vasilopoulos</author>
      <guid>669366ee14810313b779342b753e2f7972b6cc84</guid>
      <pubDate>Wed, 25 Feb 2026 01:03:24 +0100</pubDate>
    </item>
    <item>
      <title>CB/ui: Make &#39;Forgejo&#39; on homepage link to forgejo.org (!124)</title>
      <link>https://codeberg.org/Codeberg-Infrastructure/forgejo/commit/a29634240db67cd5f544e8233aed9a5a56828e1d</link>
      <description>CB/ui: Make &#39;Forgejo&#39; on homepage link to forgejo.org (!124)&#xA;&#xA;- Consistent with link in footer&#xA;- Forgejo&#39;s homepage says that it&#39;s under the Codeberg e. V. umbrella&#xA;- People that don&#39;t know what Forgejo is might not want to get the source&#xA;  code directly&#xA;&#xA;This change was made based on feedback I received on the homepage.&#xA;&#xA;Reviewed-on: https://codeberg.org/Codeberg-Infrastructure/forgejo/pulls/124&#xA;Co-authored-by: Panagiotis &#34;Ivory&#34; Vasilopoulos &lt;git@n0toose.net&gt;&#xA;Co-committed-by: Panagiotis &#34;Ivory&#34; Vasilopoulos &lt;git@n0toose.net&gt;&#xA;</description>
      <content:encoded><![CDATA[CB/ui: Make 'Forgejo' on homepage link to forgejo.org (!124)

- Consistent with link in footer
- Forgejo's homepage says that it's under the Codeberg e. V. umbrella
- People that don't know what Forgejo is might not want to get the source
  code directly

This change was made based on feedback I received on the homepage.

Reviewed-on: https://codeberg.org/Codeberg-Infrastructure/forgejo/pulls/124
Co-authored-by: Panagiotis "Ivory" Vasilopoulos <git@n0toose.net>
Co-committed-by: Panagiotis "Ivory" Vasilopoulos <git@n0toose.net>
]]></content:encoded>
      <author>Panagiotis &#34;Ivory&#34; Vasilopoulos</author>
      <guid>a29634240db67cd5f544e8233aed9a5a56828e1d</guid>
      <pubDate>Wed, 25 Feb 2026 01:03:24 +0100</pubDate>
    </item>
    <item>
      <title>CB/tmpl: update funding URL on the homepage</title>
      <link>https://codeberg.org/Codeberg-Infrastructure/forgejo/commit/5195e13d53faf0b03a8355d90e57c024f3f80805</link>
      <description>CB/tmpl: update funding URL on the homepage&#xA;</description>
      <content:encoded><![CDATA[CB/tmpl: update funding URL on the homepage
]]></content:encoded>
      <author>Hugo Peixoto</author>
      <guid>5195e13d53faf0b03a8355d90e57c024f3f80805</guid>
      <pubDate>Wed, 25 Feb 2026 01:03:24 +0100</pubDate>
    </item>
    <item>
      <title>CB/tmpl: Point to our documentation about licenses (!122)</title>
      <link>https://codeberg.org/Codeberg-Infrastructure/forgejo/commit/783bf8ab32c1f19804f8d7029e4ba090c16b6d34</link>
      <description>CB/tmpl: Point to our documentation about licenses (!122)&#xA;&#xA;cherry-picked from 1509e29d94b4a6a8696879d1a5f6f0f7c7b24e5a&#xA;&#xA;Related: Codeberg/Community#1214&#xA;Co-authored-by: Otto Richter &lt;git@otto.splvs.net&gt;&#xA;Reviewed-on: https://codeberg.org/Codeberg-Infrastructure/forgejo/pulls/122&#xA;Reviewed-by: Gusted &lt;gusted@noreply.codeberg.org&gt;&#xA;Co-authored-by: Robert Wolff &lt;mahlzahn@posteo.de&gt;&#xA;Co-committed-by: Robert Wolff &lt;mahlzahn@posteo.de&gt;&#xA;</description>
      <content:encoded><![CDATA[CB/tmpl: Point to our documentation about licenses (!122)

cherry-picked from 1509e29d94b4a6a8696879d1a5f6f0f7c7b24e5a

Related: Codeberg/Community#1214
Co-authored-by: Otto Richter <git@otto.splvs.net>
Reviewed-on: https://codeberg.org/Codeberg-Infrastructure/forgejo/pulls/122
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: Robert Wolff <mahlzahn@posteo.de>
Co-committed-by: Robert Wolff <mahlzahn@posteo.de>
]]></content:encoded>
      <author>Robert Wolff</author>
      <guid>783bf8ab32c1f19804f8d7029e4ba090c16b6d34</guid>
      <pubDate>Wed, 25 Feb 2026 01:03:24 +0100</pubDate>
    </item>
  </channel>
</rss>