Golang

gitlab-mcp: drive GitLab from Claude Code without leaving the terminal

An MCP server that exposes GitLab issues, labels, epics, and CI/CD pipelines as tools Claude Code can call directly

I spend a lot of time in Claude Code, and a lot of time in GitLab. The constant tab-switching between the two — copy an issue ID, paste it into a prompt, jump back to read a job log, paste that too — got tiresome. So I wrote gitlab-mcp, a Model Context Protocol server that lets Claude Code talk to GitLab directly.

Tools AI gitlab mcp claude-code

gitlab-token-expiration: stop getting surprised by expiring GitLab tokens

A CLI that lists every expirable token across your GitLab projects, groups, and personal account so you can plan rotations

GitLab access tokens expire. Project tokens, group tokens, personal access tokens — all of them. The trouble is that the expiration dates live in different corners of the UI, and you usually find out one expired the morning a CI pipeline mysteriously starts failing.

gitlab-token-expiration is the small tool I wrote to never have that morning again.

Tools gitlab security cli

gobadger: SVG badges for private GitLab repositories

A small Go CLI that generates SVG badges as artifacts, designed for private GitLab projects where shields.io can't reach

You know the colourful little badges on the top of every README — coverage, build status, version, all of that? Most of them come from shields.io, which works beautifully when your repo is public. The moment your project is private and lives on a self-hosted GitLab, those services can’t reach in. gobadger is the tool I wrote to solve that.

Tools golang gitlab ci

gocrypt: a tiny AES-GCM file encryption CLI

A small Go command-line tool to encrypt and decrypt files with AES-128 or AES-256 in GCM mode

Sometimes you just need to encrypt a file. Not set up a key management system, not learn the gpg command line again, not pull a heavy dependency — just turn secrets.txt into secrets.bin with a key you control. That’s the niche gocrypt fills for me.

Tools golang encryption aes

How Go Channels Work: The Behavior Matrix

A practical guide to Go channels — receive, send, and close behavior across nil, unbuffered, buffered, and closed states

Channels are Go’s primary tool for coordinating goroutines, but their behavior changes drastically depending on their state. A channel can be nil, unbuffered, buffered, or closed — and the same operation (send, receive, close) does something different in each case. Getting this matrix wrong is how deadlocks and panics happen.

Golang golang channels concurrency