<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Martin Tan</title>
    <description>The latest articles on DEV Community by Martin Tan (@okoddcat).</description>
    <link>https://dev.to/okoddcat</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4016942%2Fa68606be-2213-46ff-99a6-4f099728eb4e.jpg</url>
      <title>DEV Community: Martin Tan</title>
      <link>https://dev.to/okoddcat</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/okoddcat"/>
    <language>en</language>
    <item>
      <title>Gisia 1.5.0: Group Labels, Better Diffs, and Smoother Reviews</title>
      <dc:creator>Martin Tan</dc:creator>
      <pubDate>Mon, 20 Jul 2026 07:14:01 +0000</pubDate>
      <link>https://dev.to/okoddcat/gisia-150-group-labels-better-diffs-and-smoother-reviews-n01</link>
      <guid>https://dev.to/okoddcat/gisia-150-group-labels-better-diffs-and-smoother-reviews-n01</guid>
      <description>&lt;p&gt;Gisia 1.5.0 is here 🎉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F03v54bmxqs69rt9mo7c2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F03v54bmxqs69rt9mo7c2.png" alt=" " width="800" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another release for Gisia, the self-hosted Git platform. This one focuses on making code&lt;br&gt;
  review feel better — from labeling work across a whole group to reading diffs and leaving&lt;br&gt;
  comments. Here's what's new.&lt;/p&gt;

&lt;p&gt;🏷️ &lt;strong&gt;Group labels&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Labels are no longer tied to a single project. You can now define labels at the group level&lt;br&gt;
  and reuse them across every project inside that group. Create a bug, needs-review, or&lt;br&gt;
  priority::high label once, and it's available everywhere it matters.&lt;/p&gt;

&lt;p&gt;↕️ &lt;strong&gt;Expandable diff context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reviewing a diff and want to see what's just above or below a hunk? You can now expand the&lt;br&gt;
  surrounding context directly on the diff page without jumping to the full file.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Review checkboxes on diffs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each file in a diff gets a review checkbox — tick off files as you go and see at a glance how&lt;br&gt;
  much is left to review.&lt;/p&gt;

&lt;p&gt;💬 &lt;strong&gt;A refreshed comment form&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The comment form on discussions got a visual restyle — cleaner and nicer to write in.&lt;/p&gt;

&lt;p&gt;🐛 &lt;strong&gt;Bug fixes&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed group members not showing in merge requests.
⬆️ Upgrading&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Update &lt;code&gt;image: gisia/gisia:1.5.0&lt;/code&gt; in your &lt;code&gt;docker-compose.yml&lt;/code&gt;, then run &lt;code&gt;docker compose up -d&lt;/code&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>gisia</category>
      <category>codereview</category>
    </item>
    <item>
      <title>Released Gisia v1.4.1 Your Opensource DevOps Tool</title>
      <dc:creator>Martin Tan</dc:creator>
      <pubDate>Thu, 09 Jul 2026 15:06:18 +0000</pubDate>
      <link>https://dev.to/okoddcat/released-gisia-v141-8a1</link>
      <guid>https://dev.to/okoddcat/released-gisia-v141-8a1</guid>
      <description>&lt;p&gt;Gisia is a free and opensource tool for small teams, check it out on &lt;a href="https://gisia.dev/" rel="noopener noreferrer"&gt;https://gisia.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3p0479h8n7r5l3v97lbv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3p0479h8n7r5l3v97lbv.png" alt=" " width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What's new
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Add frontend translation support with gettext generation&lt;/li&gt;
&lt;li&gt;Run pipelines on merge requests&lt;/li&gt;
&lt;li&gt;Fix reset jobs&lt;/li&gt;
&lt;li&gt;Fix retry jobs&lt;/li&gt;
&lt;li&gt;Fix translations&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Actions
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Change the gisia version to &lt;code&gt;image: gisia/gisia:1.4.1&lt;/code&gt; in your &lt;code&gt;docker-compose.yml&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;docker compose up -d&lt;/code&gt; to update the web service&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>git</category>
      <category>devops</category>
      <category>gisia</category>
      <category>hotwire</category>
    </item>
    <item>
      <title>I built an open-source, self-hosted Git + DevOps tool — Gisia</title>
      <dc:creator>Martin Tan</dc:creator>
      <pubDate>Mon, 06 Jul 2026 04:06:50 +0000</pubDate>
      <link>https://dev.to/okoddcat/i-built-an-open-source-self-hosted-git-devops-tool-gisia-12l1</link>
      <guid>https://dev.to/okoddcat/i-built-an-open-source-self-hosted-git-devops-tool-gisia-12l1</guid>
      <description>&lt;p&gt;Hey folks 👋&lt;/p&gt;

&lt;p&gt;I've been building an open-source DevOps tool called &lt;strong&gt;Gisia&lt;/strong&gt; for a while now, and I figured it was time to actually share it with people instead of quietly tinkering on it.&lt;/p&gt;

&lt;p&gt;It's a &lt;strong&gt;lightweight, self-hosted Git platform&lt;/strong&gt; for personal and small-team use. The short pitch: I wanted somewhere to host my repos, run pipelines, and track issues — without spinning up a heavy setup that eats a whole server for what's basically a few people writing code.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr498wj5449tx0la5pj0o.png" alt=" " width="800" height="440"&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6vhg3l6foowbcxd947am.png" alt=" " width="800" height="441"&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🗂️ Git hosting over SSH and HTTP(S)&lt;/li&gt;
&lt;li&gt;⚙️ CI/CD pipelines defined in YAML&lt;/li&gt;
&lt;li&gt;📝 Issues and merge requests with inline diffs&lt;/li&gt;
&lt;li&gt;👥 Groups, subgroups, and members for organizing access&lt;/li&gt;
&lt;li&gt;🏃 Namespace runners — share or isolate CI runners per project or group&lt;/li&gt;
&lt;li&gt;🔗 Webhooks for hooking into other services&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The whole thing runs from a &lt;strong&gt;single Docker image&lt;/strong&gt;, so getting started is basically &lt;code&gt;docker compose up&lt;/code&gt; and you've got a Git platform. Upgrading is just bumping the image tag.&lt;/p&gt;

&lt;p&gt;Repo's here if you want to check it out: &lt;a href="https://github.com/gisiahq/gisia" rel="noopener noreferrer"&gt;https://github.com/gisiahq/gisia&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's still evolving, so genuinely — the rougher the feedback, the better. 🙏&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>selfhosted</category>
      <category>devops</category>
      <category>git</category>
    </item>
  </channel>
</rss>
