Listing environment variables used to trigger a Buildkite pipeline (1 mins read).
How to use Buildkite's GraphQL API to list the environment variables provided to trigger a pipeline.
Listing environment variables used to trigger a Buildkite pipeline (1 mins read).
How to use Buildkite's GraphQL API to list the environment variables provided to trigger a pipeline.
Solving /usr/lib/Xorg.wrap: Only console users are allowed to run the X server
errors with tmux over SSH (1 mins read).
How to avoid Xorg errors when connecting to a Linux machine over SSH that tries to spawn startx
.
Reusing a browser session with Playwright (1 mins read).
How to re-use your existing browser sessions with Playwright.
Gotchas with pointing Go modules to a fork, when building an installable module (3 mins read).
A gotcha around how to pin a Go module to a fork, if you're building a module that should be go install
able.
Building dynamic jobs with BuildKite (2 mins read).
How to dynamically generate job configuration for BuildKite, while running inside a pipeline.
Setting up a matrix for GitHub Actions with Go's go.mod
and specific versions (2 mins read).
How to use a Go setup matrix in GitHub Actions that can target the go.mod
version and arbitrary other version(s).
Prefer using the GitHub Software Bill of Materials (SBOMs) API over the Dependency Graph GraphQL API (2 mins read).
Why you should use GitHub's Software Bill of Materials API instead of the Dependency Graph GraphQL API.
Setting up your Maven settings.xml
to release a Jenkins plugin (1 mins read).
How to set up your crdentials to release a Jenkins plugin via Maven.
Removing ANSI escape codes in Vim (1 mins read).
How to remove ANSI escape codes in (Neo)Vim.
Creating global middleware for net/http
servers in Go (1 mins read).
How to wrap net/http
servers in Go with middleware(s) on every request.
What Go versions are my modules and dependencies targeting? (1 mins read).
Without using go mod vendor
, how you can look at the version of Go that each of your modules and dependencies target.
Why is Go trying to upgrade my go.mod
to Go 1.21? (1 mins read).
Why you may be seeing Go trying to upgrade the Go version in your go.mod
to Go 1.21.
Creating a Zoho Mail alias using the API (2 mins read).
How to use the Zoho Mail API to add an alias to your account.
Setting up Mend Renovate Community Edition for GitLab.com on Fly.io (2 mins read).
How to set up Mend Renovate Community Edition on Fly.io, when integrating with GitLab.com.
Turning on Caps Lock when the Caps Lock key is bound to a different key (1 mins read).
How to trigger a Caps Lock event when you've rebound the key to a differnet key.
Setting up real-time Slack notifications for GitHub (1 mins read).
How to get Slack's real-time notifications integrated with GitHub.
Managing Buildkite Agent Images with Renovate (1 mins read).
How to use Renovate to manage Buildkite Agent Images.
Running commands against every module in a Go multi-module project (1 mins read).
How to run commands like go test
when using a multi-module Go project.
Resolving Timeout
s when generating entropy when generating a new GPG key (1 mins read).
How I resolved an issue with a Timeout
error when generating a new GPG key.
Resolving black screen display with SDDM and NVIDIA GPUs (1 mins read).
How I resolved an issue with a black screen displaying when SDDM is used with an NVIDIA driver.
Analysing GitHub Pull Request review times with SQLite and Go (3 mins read).
How measuring how long code review took as a team lead to being able to change our processes, and then deliver much more effectively.
Merging a branch in GitHub - the hard way (4 mins read).
How to (kinda) merge two branches in GitHub using the underlying Git database API.
Validating Renovate configuration changes before merging (2 mins read).
How to perform a dry run to validate your Renovate config before it's merged.
Sharing state between net/http
method calls in Go (1 mins read).
How to construct a struct
in Go that can have its state shared between HTTP server handler functions.
Who do these Google (JSON file) credentials belong to? (1 mins read).
Given a JSON credentials file for Google APIs, are they still valid?
Using go.mod
versions to go install
a binary (1 mins read).
How to use go install
to install a binary from the version tracked in go.mod
.
Checking the migration status with golang-migrate
(1 mins read).
How to check what version of the schema is curently applied when using golang-migrate
.
Introducing openapi-sorbet
, a command-line tool for generating Sorbet types from OpenAPI (2 mins read).
How to generate Sorbet type-checked models from OpenAPI specifications.
Getting a --version
flag for Cobra CLIs in Go (2 mins read).
How to get Cobra to provide a --version
flag.
Performing downtime-inducing AWS RDS changes with no downtime☆ (2 mins read).
How to limit your downtime to seconds, instead of minutes, when performing downtime-inducing changes with AWS RDS.
The Lazy engineer's guide to running your Go web application to AWS Lambda (4 mins read).
How to take a Go web application and move it to AWS Lambda with two lines of code.
Which OS and CPU architecture is this binary compiled for? (4 mins read).
How to use Go to parse an arbitrary executable to work out the Operating System and CPU architecture it's compiled for.
Creating an HTTP 404 handler for Go net/http
servers (2 mins read).
How to add a catch-all 404 handler when writing HTTP servers with Go's net/http
server.
Serving the current directory over HTTP with Go (1 mins read).
How to use Go's standard library to serve the current directory over HTTP.
Getting the commit author details for a GitHub App account (1 mins read).
How to retrieve the git commit author details for a given GitHub App.
Generating Equal
methods for Go structs with goderive
(3 mins read).
How to use goderive
to generate an Equal
method between structs, so you don't have to.
Checking if files are synced between repos with GitHub Actions (2 mins read).
Creating a GitHub Action workflow to indicate when vendored files are out-of-sync between GitHub repos.
Working out which Docker namespaces and images you most depend on (2 mins read).
How to use dependency-management-data to visualise the most popular Docker namespaces and images you depend on.
Querying JSON with SQLite (1 mins read).
How to use json_each
and json_extract
to query a JSON field in SQLite.
Dynamically retrieving the version of a Node.JS/Typescript dependency, at runtime (1 mins read).
How to retrieve metadata about packages that are depended on at runtime.
Automating boilerplate/scaffolding code with custom code generation in Go, with jen
(3 mins read).
How to generate Go code using github.com/dave/jennifer
.
Debugging HTTP Client requests with Go (2 mins read).
How to add debug logging to http.Client
in Go.
Who do these Twilio credentials belong to? (2 mins read).
How to work out whether arbitrary Twilio credentials are valid, and if so, what type they are.
Getting a --version
flag for Cobra CLIs in Go, built with GoReleaser (2 mins read).
How to get Cobra to provide a --version
flag when using GoReleaser.
Cross-compiling a CGO project using Goreleaser (2 mins read).
How to use goreleaser-cross
to cross-compile a Go command-line tool.
Getting a GitHub App installation token on the command-line (2 mins read).
How to get a GitHub App installation token (using Typescript) for a given installation.
Passing a private key as an environment variable (1 mins read).
How to convert a PEM-encoded private key in a form to be stored in an environment variable.
Listing the status of your branch protection in GitHub (1 mins read).
Creating a command-line Go tool to list the branch protection status of your repositories.
Determining missing translation keys from gettext .po
files (1 mins read).
Creating a Go command to check for missing translation keys across gettext .po
files.
Setting up default Renovate configuration while allowing overriding of that configuration (2 mins read).
How to run Renovate to provide some defaults for repos that aren't opted-in, as well as allowing repos to opt-in.