<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/rss-style.xsl" type="text/xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	     xmlns:dc="http://purl.org/dc/elements/1.1/"
	   xmlns:atom="http://www.w3.org/2005/Atom"
	     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>git &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/git/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Wed, 19 Nov 2025 09:29:56 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>git &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[Some thoughts on personal git hosting]]></title>
		<link>https://shkspr.mobi/blog/2025/09/some-thoughts-on-personal-git-hosting/</link>
					<comments>https://shkspr.mobi/blog/2025/09/some-thoughts-on-personal-git-hosting/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 07 Sep 2025 11:34:46 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[ReDeCentralize]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=62821</guid>

					<description><![CDATA[As part of my ongoing (and somewhat futile) efforts to ReDeCentralise, I&#039;m looking at moving my personal projects away from GitHub.  I already have accounts with GitLab and CodeBerg - but both of those sites are run by someone else. While they&#039;re lovely now, there&#039;s nothing stopping them becoming as slow or AI-infested as GitHub.  So I want to host my own Git instance for my personal projects. …]]></description>
										<content:encoded><![CDATA[<p>As part of my ongoing (and somewhat futile) efforts to ReDeCentralise, I'm looking at moving my personal projects away from GitHub.  I already have accounts with <a href="https://gitlab.com/edent/">GitLab</a> and <a href="https://codeberg.org/edent">CodeBerg</a> - but both of those sites are run by someone else. While they're lovely now, there's nothing stopping them becoming as slow or AI-infested as GitHub.</p>

<p>So I want to host my own Git instance for my personal projects.  I'm experimenting with <a href="https://git.edent.tel/">https://git.edent.tel/</a></p>

<p>It isn't <em>quite</em> self-hosted; I'm paying <a href="http://pikapod.net/">PikaPod</a> €2/month to deal with the hassle of hosting and updating the software. I get to point my domain name at it which means I can always change the underlying service if I want. For example, it uses Gitea and I might want to switch to Forgejo later.</p>

<p>So far, it works. But there are a few significant drawbacks.</p>

<h2 id="network-effects"><a href="https://shkspr.mobi/blog/2025/09/some-thoughts-on-personal-git-hosting/#network-effects">Network Effects</a></h2>

<p>A large service like GitHub has network effects which are incredible. It feels like 90%+ of all developers have an account there. That means if someone wants to leave a comment or send a PR there is no barrier to entry.  That's huge! There are a bunch of popular FOSS projects which make me sign up for <em>yet another</em> service when all I want to do is send a simple bug report which I find deeply annoying.</p>

<p>Luckily, Gitea has built in support for various OAuth providers. So I've set up single-sign-on with Gits Hub and Lab.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/08/sign-in.webp" alt="An SSO screen with buttons for GitHub and GitLab." width="588" class="aligncenter size-full wp-image-62822">

<p>I <a href="https://mastodon.social/@Edent/115066706121512523">asked people how easy it was to use</a> - most people were able to use it, although a few people wanted a local-only account.</p>

<p>But is is still a bit of a faff. Even a little bit of hassle turns people away.</p>

<h2 id="forking-isnt-federated"><a href="https://shkspr.mobi/blog/2025/09/some-thoughts-on-personal-git-hosting/#forking-isnt-federated">Forking isn't Federated</a></h2>

<p>Suppose you want to make a Pull Request or just take a copy of the code. At the moment, you have to create a fork on <em>my</em> server. There's no way to easily fork something to your GitHub or personal server.</p>

<p>You can <code>git clone</code> the repo to your local machine, and you can manually move it elsewhere, but there's no way to send a PR from your repo to mine.</p>

<p>There's also no way for users to find other forks. Perhaps the <a href="https://forgefed.org/">upcoming ForgeFed proposals</a> will fix things - but it doesn't exist yet.</p>

<p>As pointed out in "<a href="https://blog.edwardloveall.com/lets-make-sure-github-doesnt-become-the-only-option">Let's Make Sure Github Doesn't Become the only Option</a>" - most of the tooling of git hosting platforms isn't adequate for modern needs.</p>

<h2 id="discoverability"><a href="https://shkspr.mobi/blog/2025/09/some-thoughts-on-personal-git-hosting/#discoverability">Discoverability</a></h2>

<p>The easiest way to find code at the moment is to search GitHub. Moving my stuff to a different site means it will only be discovered by a general search engine.</p>

<p>I want people to find and use my code. If that's hard, they won't. I can point existing users to the repo - but it still cuts down on discovery.</p>

<h2 id="admin-hassles"><a href="https://shkspr.mobi/blog/2025/09/some-thoughts-on-personal-git-hosting/#admin-hassles">Admin Hassles</a></h2>

<p>Although PikaPods takes care of all the hosting administration, there's still the faff of setting up all of Gitea's options.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/08/gitea-config.webp" alt="Long list of config options." width="801" height="800" class="aligncenter size-full wp-image-62823">

<p>If I get hit by <a href="https://shkspr.mobi/blog/2025/07/grinding-down-open-source-maintainers-with-ai/">an automated spam attack</a>, it'll be up to me to clean it up.</p>

<p>I'm not sure if I have the time, patience, or expertise to correctly and safely configure everything.  Time spent administrating is time not spent coding.</p>

<h2 id="sponsorship"><a href="https://shkspr.mobi/blog/2025/09/some-thoughts-on-personal-git-hosting/#sponsorship">Sponsorship</a></h2>

<p>I get a little bit of money when people <a href="https://github.com/sponsors/edent">sponsor me on GitHub</a>. There's no "sponsor" option on Gitea and, even if there was, the network effects of GitHub are substantial. Getting people to enter their credit card info into a random site isn't as convenient as clicking a button in GitHub.</p>

<h2 id="now-what"><a href="https://shkspr.mobi/blog/2025/09/some-thoughts-on-personal-git-hosting/#now-what">Now What?</a></h2>

<p>My <a href="https://github.com/edent/SuperTinyIcons">most popular Github repo</a> has around 140 contributors. I genuinely don't think I could attract that many people to OAuth onto my personal git hosting service.</p>

<p>Gitea seems to have a mixed reputation. But it's the only one offered by PikaPods.</p>

<p>There are <a href="https://github.workshops.petrichor.me/">interesting discussions about how to replace GitHub</a> but they're only in the early stages.</p>

<p>Although €2/mo isn't a huge amount, I've gotten used to having free services on GitHub / GitLab / CodeBerg.</p>

<p>So this, I think, is my plan:</p>

<ol>
<li>Leave my popular / sponsored repos on GitHub</li>
<li>Move my smaller repos to <a href="https://git.edent.tel/">https://git.edent.tel/</a></li>
<li>Create new repos in there as well</li>
</ol>

<p>I'm also going to look for a hosted Forgejo instance which lets me use my own subdomain - hopefully at a cheaper or comparable price. If you have any recommendations - please let me know!</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=62821&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/09/some-thoughts-on-personal-git-hosting/feed/</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Grinding down open source maintainers with AI]]></title>
		<link>https://shkspr.mobi/blog/2025/07/grinding-down-open-source-maintainers-with-ai/</link>
					<comments>https://shkspr.mobi/blog/2025/07/grinding-down-open-source-maintainers-with-ai/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Mon, 07 Jul 2025 11:34:09 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[spam]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=61265</guid>

					<description><![CDATA[Early one morning I received an email notification about a bug report to one of my open source projects. I like to be helpful and I want people who use my stuff to have a good time, so I gave it my attention.  Here&#039;s what it said:   😱 I Can&#039;t Use On This Day 😭 Seriously, What’s Going On?! 🔍 I’ve been trying to use the On This Day feature, but it’s just not working for me! 😩 Every time I input my d…]]></description>
										<content:encoded><![CDATA[<p>Early one morning I received an email notification about a bug report to one of my open source projects. I like to be helpful and I want people who use my stuff to have a good time, so I gave it my attention.  Here's what it said:</p>

<blockquote>
<h2 id="%f0%9f%98%b1-i-cant-use-on-this-day-%f0%9f%98%ad"><a href="https://shkspr.mobi/blog/2025/07/grinding-down-open-source-maintainers-with-ai/#%f0%9f%98%b1-i-cant-use-on-this-day-%f0%9f%98%ad">😱 I Can't Use On This Day 😭</a></h2>
Seriously, What’s Going On?! 🔍<br>
I’ve been trying to use the On This Day feature, but it’s just not working for me! 😩<br>
Every time I input my details, it says I have no posts for today, even though I know I’ve posted stuff! 🧐

<h3 id="heres-my-setup-%e2%9a%99%ef%b8%8f"><a href="https://shkspr.mobi/blog/2025/07/grinding-down-open-source-maintainers-with-ai/#heres-my-setup-%e2%9a%99%ef%b8%8f">Here’s My Setup: ⚙️</a></h3>

<ul>
        <li>Python 3.x 🐍</li>
    <li>Access token fully generated (I triple-checked!) 🔑</li>
        <li>Attempted on multiple instances but still nothing! 😩😩</li>
</ul>

<h3 id="could-it-be-a-bug-%f0%9f%a4%94"><a href="https://shkspr.mobi/blog/2025/07/grinding-down-open-source-maintainers-with-ai/#could-it-be-a-bug-%f0%9f%a4%94">Could It Be a Bug? 🤔</a></h3>

I’m really starting to doubt my posting history! 😳<br>
Is it supposed to show only specific types of posts?<br>
I’ve made some pretty epic posts before! 💥💬<br>

<h3 id="documentation-confusion-%f0%9f%93%9a"><a href="https://shkspr.mobi/blog/2025/07/grinding-down-open-source-maintainers-with-ai/#documentation-confusion-%f0%9f%93%9a">Documentation Confusion 📚</a></h3>

The README says to register for an access token but doesn’t clarify if it factors into this feature! 🤔❓<br>
Did I miss something REALLY important?!<br>
Help me figure this out, please!!! 😱<br>

<h3 id="feature-suggestion-%f0%9f%92%ad"><a href="https://shkspr.mobi/blog/2025/07/grinding-down-open-source-maintainers-with-ai/#feature-suggestion-%f0%9f%92%ad">Feature Suggestion 💭</a></h3>

If this is broken, can we at least have a debug mode to log what’s happening! 😬<br>
I need to know if it’s truly my fault or the code’s! 🔍🛠<br>
Thanks for looking into this TRAGIC situation!!! 😭💔<br>
<br>
P.S. My friends ARE posting on this day and their instances work!! 😤<br>
I feel so left out!! 😟<br>
<p>Let’s get this sorted ASAP! ⚡
</p></blockquote>

<p>OK, that's a <em>lot</em> of Emoji - too much even for me! But if one of my users needs help, I'm there for them!  As the feature works for me, I decided I'd ask for the output of the app. Maybe there'd be a clue in the minimal debugging output it had.</p>

<p>I clicked on the link to the Codeberg repository and was hit be a 404! What? I clicked on the link to the user "simpleseaport2" but that was also broken.</p>

<p>"Seriously, What’s Going On?! 🔍"</p>

<p>It looks like Codeberg has been hit by a wave of spam bug reports.  I read through the bug report again, slightly more awake, and saw just how content free it was. Yes, it is superficially well structured, the Emoji are a bit over-the-top but not the worst I've seen, and the emotional manipulation is quite insidious.</p>

<p>A few weeks later, I got a bug report to a different repo. This one was also deleted before I could reply to it, see if you can spot that it is AI generated:</p>

<blockquote><p>I've been trying to use the Threads tool to visualize some conversations but I'm running into a serious problem, and it's really frustrating!
</p><p>When I input the URL for a post with a substantial number of replies, the script seems to hang indefinitely. I've waited more than 15 minutes on a couple of occasions, and nothing seems to happen. This is not what I expected, especially since the README mentions large conversations may take a long time, but doesn’t specify any limits or give guidance on what users should do if it doesn’t respond at all!
</p><p>It's unclear what's actually happening here. Is the script failing silently? Is it the API timing out? Why isn’t there any sort of progress notification built into the tool? It feels like a complete dead end.
</p><p>Can you please add some kind of error handling or logging feature to the Threads script? It would be helpful if it could at least inform the user when a timeout occurs or if the API response is simply taking too long. Additionally, could you clarify the maximum number of replies that can be handled? It’s really inconvenient to have no idea if the script is still processing or if it’s just broken.
</p><p>Thanks for addressing this. I hope to see improvements soon.</p></blockquote>

<ul>
<li>The emotional manipulation starts in the first line - telling me how frustrated the user is.</li>
<li>It turns the blame on me for providing poor guidance.</li>
<li>Then the criticism of the tool.</li>
<li>Next, a request that I do work.</li>
<li>Finally some more emotional baggage for me to carry.</li>
</ul>

<p>I'm not alone in getting these - <a href="https://merveilles.town/@raboof/114589918314200123">other people have also received similar spam</a></p>

<p>To be fair to Codeberg, they are under attack and are trying to stop these specious complaints reaching maintainers.</p>

<blockquote class="mastodon-embed" data-embed-url="https://social.anoxinon.de/@Codeberg/114592518436361178/embed" style="background: #FCF8FF; border-radius: 8px; border: 1px solid #C9C4DA; margin: 0; max-width: 540px; min-width: 270px; overflow: hidden; padding: 0;"> <a href="https://social.anoxinon.de/@Codeberg/114592518436361178" target="_blank" style="align-items: center; color: #1C1A25; display: flex; flex-direction: column; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', Roboto, sans-serif; font-size: 14px; justify-content: center; letter-spacing: 0.25px; line-height: 20px; padding: 24px; text-decoration: none;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="0 0 79 75"><path d="M74.7135 16.6043C73.6199 8.54587 66.5351 2.19527 58.1366 0.964691C56.7196 0.756754 51.351 0 38.9148 0H38.822C26.3824 0 23.7135 0.756754 22.2966 0.964691C14.1319 2.16118 6.67571 7.86752 4.86669 16.0214C3.99657 20.0369 3.90371 24.4888 4.06535 28.5726C4.29578 34.4289 4.34049 40.275 4.877 46.1075C5.24791 49.9817 5.89495 53.8251 6.81328 57.6088C8.53288 64.5968 15.4938 70.4122 22.3138 72.7848C29.6155 75.259 37.468 75.6697 44.9919 73.971C45.8196 73.7801 46.6381 73.5586 47.4475 73.3063C49.2737 72.7302 51.4164 72.086 52.9915 70.9542C53.0131 70.9384 53.0308 70.9178 53.0433 70.8942C53.0558 70.8706 53.0628 70.8445 53.0637 70.8179V65.1661C53.0634 65.1412 53.0574 65.1167 53.0462 65.0944C53.035 65.0721 53.0189 65.0525 52.9992 65.0371C52.9794 65.0218 52.9564 65.011 52.9318 65.0056C52.9073 65.0002 52.8819 65.0003 52.8574 65.0059C48.0369 66.1472 43.0971 66.7193 38.141 66.7103C29.6118 66.7103 27.3178 62.6981 26.6609 61.0278C26.1329 59.5842 25.7976 58.0784 25.6636 56.5486C25.6622 56.5229 25.667 56.4973 25.6775 56.4738C25.688 56.4502 25.7039 56.4295 25.724 56.4132C25.7441 56.397 25.7678 56.3856 25.7931 56.3801C25.8185 56.3746 25.8448 56.3751 25.8699 56.3816C30.6101 57.5151 35.4693 58.0873 40.3455 58.086C41.5183 58.086 42.6876 58.086 43.8604 58.0553C48.7647 57.919 53.9339 57.6701 58.7591 56.7361C58.8794 56.7123 58.9998 56.6918 59.103 56.6611C66.7139 55.2124 73.9569 50.665 74.6929 39.1501C74.7204 38.6967 74.7892 34.4016 74.7892 33.9312C74.7926 32.3325 75.3085 22.5901 74.7135 16.6043ZM62.9996 45.3371H54.9966V25.9069C54.9966 21.8163 53.277 19.7302 49.7793 19.7302C45.9343 19.7302 44.0083 22.1981 44.0083 27.0727V37.7082H36.0534V27.0727C36.0534 22.1981 34.124 19.7302 30.279 19.7302C26.8019 19.7302 25.0651 21.8163 25.0617 25.9069V45.3371H17.0656V25.3172C17.0656 21.2266 18.1191 17.9769 20.2262 15.568C22.3998 13.1648 25.2509 11.9308 28.7898 11.9308C32.8859 11.9308 35.9812 13.492 38.0447 16.6111L40.036 19.9245L42.0308 16.6111C44.0943 13.492 47.1896 11.9308 51.2788 11.9308C54.8143 11.9308 57.6654 13.1648 59.8459 15.568C61.9529 17.9746 63.0065 21.2243 63.0065 25.3172L62.9996 45.3371Z" fill="currentColor"></path></svg> <div style="color: #787588; margin-top: 16px;">Post by @Codeberg@social.anoxinon.de</div> <div style="font-weight: 500;">View on Mastodon</div> </a> </blockquote>

<script data-allowed-prefixes="https://social.anoxinon.de/" async="" src="https://social.anoxinon.de/embed.js"></script>

<p>But, still, search the socials and you'll find a stream of frustrated developers.</p>

<blockquote class="bluesky-embed" data-bluesky-uri="at://did:plc:i7qrqashiejmsuo4hbvovw6l/app.bsky.feed.post/3lnkpto5rpdd2" data-bluesky-cid="bafyreigm2vqlybmy5dhawigjqzwhz2p2w3o4gatpykxkurwrzzmtbfif6a" data-bluesky-embed-color-mode="system"><p lang="en">Woke this morning to my first ever AI generated spam issue on a repo. Got it via email. When I went to check it out at Codeberg, it had already been moderated. Wonder how many others were affected.

I immediately knew it was AI spam due to the overuse of emojis…🎉<br><br><a href="https://bsky.app/profile/did:plc:i7qrqashiejmsuo4hbvovw6l/post/3lnkpto5rpdd2?ref_src=embed">[image or embed]</a></p>— Jeff Sikes (<a href="https://bsky.app/profile/did:plc:i7qrqashiejmsuo4hbvovw6l?ref_src=embed">@bsky.box464.social</a>) <a href="https://bsky.app/profile/did:plc:i7qrqashiejmsuo4hbvovw6l/post/3lnkpto5rpdd2?ref_src=embed">24 April 2025 at 15:07</a></blockquote>

<script async="" src="https://embed.bsky.app/static/embed.js" charset="utf-8"></script>

<h2 id="whats-going-on%e2%81%89%ef%b8%8f"><a href="https://shkspr.mobi/blog/2025/07/grinding-down-open-source-maintainers-with-ai/#whats-going-on%e2%81%89%ef%b8%8f">What's Going On⁉️</a></h2>

<p>I can only think of a few possibilities - none of them particularly positive.</p>

<ul>
<li>Attacking the viability of CodeBerg - make users abandon it for a different platform.</li>
<li>Attacking the attention of developers - make them unwilling to give attention where it is actually needed.</li>
<li>Attacking the integrity of users - make them less likely to receive help because they are mistaken for AI.</li>
<li>Maybe it is just a bored kid or an unethical researcher. Trying to find the limits of what a maintainer will recognise as spam?</li>
</ul>

<p>Either way, AI bug reports like this are about as welcome as a haemorrhage in a jacuzzi.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=61265&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/07/grinding-down-open-source-maintainers-with-ai/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
