Generating a Renovate Report from someone else's repo (1 mins read).

How to get a Renovate Report - with full metadata - from any arbitrary repository.
Generating a Renovate Report from someone else's repo (1 mins read).

How to get a Renovate Report - with full metadata - from any arbitrary repository.
Accessing your Renovate Dependency Dashboard, without GitHub/GitLab Issues enabled (3 mins read).

Releasing a proof-of-concept to render Dependency Dashboards for repositories that don't have issues enabled, as long as you have a Renovate Report.
Checking the digest for a Docker image, using crane (2 mins read).
How to get a Docker image digest, using the crane CLI tool.
What's the difference between Renovate's depName and packageName? (3 mins read).

What the differences are, and where you may want to use one or the other.
My experience as a maintainer (8 mins read).
A guest post for opensource.org, about my experience as a maintainer, as part of 2025's Maintainer Month.
Taking more control over your Cobra CLI documentation (2 mins read).

Releasing a library to manage the generation of Cobra CLI documentation using text/templates.
Creating nested fenced code blocks with Hugo (1 mins read).

How to write a Markdown file with a fenced code block, which includes another code block inside it.
Setting up SSH key signing with Git (1 mins read).

How to sign your Git commits, using SSH keys.
Improving the experience of browsing Renovate debug logs (5 mins read).

Creating a Terminal User Interface (TUI) application to improve the debugging experience with Renovate's debug logs.
Looking back at oapi-codegen's last year (6 mins read).

A recap of oapi-codegen's last year, in light of it being Maintainer Month, and continuing to ask for sponsorship.
Overriding a Gradle project property which has . and _ characters, without modifying the buildscript (4 mins read).

How to use GRADLE_OPTS to safely override a Gradle property (with special characters in its name) without modifying the buildscript.
How to set up the 'Follow' button on LinkedIn (1 mins read).
How to allow others to follow you on LinkedIn.
Migrating secrets between two Vault instances (1 mins read).

How to copy secrets from one Vault instance to another, reducing the risk of the secrets being stored on disk for too long.
Using type assertions in Go with concrete types (2 mins read).

How to perform a type assertion on a type in Go that isn't an interface.
Getting Renovate to provide a changelog for digest updates to packages (on GitHub.com) (2 mins read).

How to use the new templated changelogUrl functionality to provide more actionable changelogs for digest updates to i.e. GitHub Actions and other digest-pinned dependencies (in this example, on GitHub.com).
Tricking oapi-codegen into working with OpenAPI 3.1 specs (7 mins read).

How to get oapi-codegen to interact with OpenAPI 3.1 specs, until it supports OpenAPI 3.1.