From 53bbb6de91608e0e21b6268fde0dd5177337008b Mon Sep 17 00:00:00 2001 From: Daniel Sy Date: Mon, 17 Nov 2025 14:21:25 +0100 Subject: [PATCH] =?UTF-8?q?docs(forgejo):=20=F0=9F=93=9DAdd=20Forgejo=20an?= =?UTF-8?q?d=20collaboration=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/en/docs/documentation/forgejo.md | 30 ++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 content/en/docs/documentation/forgejo.md diff --git a/content/en/docs/documentation/forgejo.md b/content/en/docs/documentation/forgejo.md new file mode 100644 index 0000000..a833268 --- /dev/null +++ b/content/en/docs/documentation/forgejo.md @@ -0,0 +1,30 @@ +--- +title: "Forgejo Integration, Extension, and Community Collaboration" +date: "2025-11-17" +description: "Summary of the project's work integrating GARM with Forgejo and contributing key features back to the community." +tags: ["Forgejo", "GARM", "CI/CD", "OSS", "Community", "Project Report"] +categories: ["Workpackage Results"] +--- + +## ๐Ÿงพ Result short description / cognitions + +Here is the management summary of the work package results: + +* **๐Ÿ“ˆ Strategic Selection:** We chose **Forgejo** as the project's self-hosted Git service. This decision was based on several key strategic factors: + * **EU-Based & Data Sovereignty:** The project is stewarded by **Codeberg e.V.**, a non-profit based in Berlin, Germany. This is a massive win for our "funding agency" stakeholders, as it aligns with **GDPR, compliance, and data sovereignty goals**. It's governed by EU laws, not a US tech entity. + * **True Open Source (GPL v3+):** Forgejo is a community-driven fork of Gitea, created to *guarantee* it stays 100% free and open-source (FOSS). + * **License Protects Our Contributions:** It uses the **GPL v3+ "copyleft" license**. This is *perfect* for our collaboration goal. It legally ensures that the features we contribute back (like GARM support) can **never be taken and locked into a proprietary, closed-source product by anyone**. It protects our work and keeps the community open. + +* **โš™๏ธ Core Use Case:** Forgejo is used for all project source code **versioning** and as the backbone for our **CI/CD (Continuous Integration/Continuous Deployment)** pipelines. + +* **๐Ÿ› ๏ธ Key Extension (GARM Support):** The main technical achievement was integrating **GARM (Git-based Actions Runner Manager)**. This was *not* supported by Forgejo out-of-the-box. + +* **โœจ Required Enhancements:** To make GARM work, our team developed and implemented several critical features: + * Webhook support for workflow events (to tell runners when to start). + * Support for ephemeral runners (for secure, clean-slate builds every time). + * GitHub API-compatible endpoints (to allow the runners to register themselves correctly). + +* **๐Ÿ’– Community Contribution:** We didn't just keep this for ourselves! We contributed all these features **directly back to the upstream Forgejo community**. This wasn't just a code-dump; we actively collaborated via **issues**, **feature requests**, and **pull requests (PRs) on codeberg.org**. + +* **๐Ÿš€ Bonus Functionality:** We also implemented **artifact caching**. This configures Forgejo to act as a **pull-through proxy** for remote container registries (like Docker Hub), which seriously speeds up our build times and saves bandwidth. +