articles on Jamie Tanna | Software Engineer
I'm on Fallthrough: Why You're Wrong About REST
Week Notes 25#28
A few tips for optimising Renovate for multi-team monorepos
Week Notes 25#27
Week Notes 25#26
Checking out the branch from a fork in GitHub Actions, when using `pull_request_target`
Disabling zsh history for a given shell session
Week Notes 25#25
Week Notes 25#24
Week Notes 25#23
Generating Go code from JSON Schema documents
Creating cross-compiled Docker images from Go binaries
Week Notes 25#22
Accessing your Renovate Dependency Dashboard, without GitHub/GitLab Issues enabled
Generating a Renovate Report from someone else's repo
Checking the digest for a Docker image, using `crane`
Week Notes 25#21
What's the difference between Renovate's `depName` and `packageName`?
My experience as a maintainer
Creating nested fenced code blocks with Hugo
Taking more control over your Cobra CLI documentation
Setting up SSH key signing with Git
Week Notes 25#20
Improving the experience of browsing Renovate debug logs
Looking back at `oapi-codegen`'s last year
Overriding a Gradle project property which has `.` and `_` characters, without modifying the buildscript
How to set up the 'Follow' button on LinkedIn
Migrating secrets between two Vault instances
Week Notes 25#19
Using type assertions in Go with concrete types
Getting Renovate to provide a changelog for digest updates to packages (on GitHub.com)
Week Notes 25#18
Tricking `oapi-codegen` into working with OpenAPI 3.1 specs
Week Notes 25#17
Gotcha: `docker inspect` can lie about the architecture of an image
Rendering diffs for Go's testable examples
Week Notes 25#16
Authoring Markdown externally and pasting the 'pretty' output into Slack (on Linux)
Things I've learned about building + delivering software for other engineers while working in Engineering Productivity
Week Notes 25#15
Properly patching packages: persistently producing patches for published projects, particularly practically prevented by `patch-package` policy
Automagically migrating `golangci-lint` configuration to v2 with Renovate
I'm on Fallthrough: APIs: Design Imperfectly, Improve Relentlessly
Week Notes 25#14
Week Notes 25#13
Logging into Hashicorp Vault via a GitHub token in the environment
Performing `group_concat` queries over distinct values, with a custom delimiter, with SQLite
Updating `apk add` definitions in Dockerfiles
Week Notes 25#12
Week Notes 25#11
I'm on Fallthrough: An Exploration of APIs, Versioning, & HTTP
Week Notes 25#10
Week Notes 25#09
Creating single-purpose RSS feeds with Hugo
Creating a test harness for validating Renovate Custom Datasource configuration
Week Notes 25#08
Product requirements for a "fund your dependency tree" service
I'm on Fallthrough: Patching Problems with Persnickety Proxies Purveyed by Paternalistic Princes
Week Notes 25#07
Go 1.24's `omitzero` is another one of the best additions to the ecosystem in years
Week Notes 25#06
Celebrating dependency-management-data's second birthday
Week Notes 25#05
Go 1.24's `go tool` is one of the best additions to the ecosystem in years
Week Notes 25#04
Getting access to rich-text data from the clipboard (on Linux)
Why is zsh no longer storing history?
Week Notes 25#03
Accessing private Go modules in a Docker container
Week Notes 25#02
Getting all comments from a given user on a GitHub Discussion
Week Notes 25#02
2024's Music In Review
What level of access do I have on that GitHub repository?
2024's Site In Review
Week Notes 24#52
Week Notes 24#51
Blocking 'Similar' and 'Because you like ...' suggestions on reddit with uBlock Origin
Week Notes 24#50
You can now resolve remote presets when using Renovate's `local` platform in `renovate-graph`
Some mixed thoughts on The Changelog Podcast Universe
Week Notes 24#49
Creating `renovate-packagedata-diff` to diff Renovate package data dumps