<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Git on Miek Gieben</title>
    <link>https://miek.nl/tags/git/</link>
    <description>Recent content in Git on Miek Gieben</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>© Copyright 2007-2024 Miek Gieben</copyright>
    <lastBuildDate>Fri, 30 Jan 2026 17:53:04 +0100</lastBuildDate>
    <atom:link href="https://miek.nl/tags/git/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Forgejo Go Benchstat</title>
      <link>https://miek.nl/2026/january/30/forgejo-go-benchstat/</link>
      <pubDate>Fri, 30 Jan 2026 17:53:04 +0100</pubDate>
      <guid>https://miek.nl/2026/january/30/forgejo-go-benchstat/</guid>
      <description>&lt;p&gt;For the longest time I wanted to see the performance impact of my changes. This desire goes back years, back&#xA;to the early days of &lt;a href=&#34;https://miek.nl/2016/march/18/announcing-coredns/&#34;&gt;CoreDNS&lt;/a&gt;. And now I finally have it.&lt;/p&gt;&#xA;&lt;p&gt;It does require running your own forgejo-runner on your own hardware to have any meaningful data. Without&#xA;further adu:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# On https://codeberg.org/miekg/dns/actions you can see the run and copy and paste a new.txt if performance is&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# better. Put this contents in old.txt&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;on&lt;/span&gt;: [&lt;span style=&#34;color:#ae81ff&#34;&gt;push, pull_request]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;jobs&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;test&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;runs-on&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;atoom-tiny&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;steps&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#f92672&#34;&gt;uses&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;actions/checkout@v6&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#f92672&#34;&gt;uses&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;actions/setup-go@v6&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;with&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#f92672&#34;&gt;go-version&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;${{ vars.GOVERSION }}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#f92672&#34;&gt;run&lt;/span&gt;: |&lt;span style=&#34;color:#e6db74&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          apt-get update&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          apt-get -y install dnsperf jq&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          go install golang.org/x/perf/cmd/benchstat@latest&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          (cd cmd/reflect; go build)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          HOSTNAME=atoom-tiny&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          # Sleep here so we have the machine to ourselves.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          sleep 60&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          (cd cmd/reflect; make new.txt)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          REF=$(echo ${{ forgejo.ref }} | cut -d/ -f3)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          echo ${{ forgejo.api_url}}/repos/${{ forgejo.repository }}/issues/${REF}/comments&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          echo &amp;#34;{\&amp;#34;body\&amp;#34;: $(cd cmd/reflect; make stat | jq -sR .)}&amp;#34; | \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;                          curl --json @- \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;                          -H &amp;#39;Authorization: token ${{ forgejo.token }}&amp;#39; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;                          ${{ forgejo.api_url}}/repos/${{ forgejo.repository }}/issues/${REF}/comments&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;See &lt;a href=&#34;https://codeberg.org/miekg/dns&#34;&gt;https://codeberg.org/miekg/dns&lt;/a&gt; for all other bits that are needed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Create a Pull Request from Git in Forgejo</title>
      <link>https://miek.nl/2026/january/28/create-a-pull-request-from-git-in-forgejo/</link>
      <pubDate>Wed, 28 Jan 2026 06:50:48 +0100</pubDate>
      <guid>https://miek.nl/2026/january/28/create-a-pull-request-from-git-in-forgejo/</guid>
      <description>&lt;p&gt;Recently I&amp;rsquo;ve started to move all my project to &lt;a href=&#34;https://codeberg.org/miekg&#34;&gt;Codeberg&lt;/a&gt;. This is working great,&#xA;but one of the things I really missed where the git-push options from GitLab where you can create a PR just by&#xA;pushing a branch upstream.&lt;/p&gt;&#xA;&lt;p&gt;Thanks to my whining about this on Mastodon I got &lt;a href=&#34;https://infosec.exchange/@x_cli/115967604917936736&#34;&gt;this&#xA;reply&lt;/a&gt; about an&#xA;&lt;a href=&#34;https://github.com/maxking/forgejo-create-pr&#34;&gt;create-pr-action&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Well, putting this all together, I right now have this script (with little, or no error checking) that does the&#xA;heavy lifting of creating a PR using Forgejo&amp;rsquo;s API. This needs an API token with read/write rights on your&#xA;repo (and only that):&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
