Ken Muse
The Many SHAs of a GitHub Pull Request

The Many SHAs of a GitHub Pull Request

Most people don't realize that the humble pull request orchestrates surprisingly complex activities behind the scene. GitHub creates test merges and simulated merge branches to test and validate what would happen if the changes were merged into the target branch. This is more complex than most people realize, and it leads to a number of different SHAs being provided to the GitHub workflow. It's time to understand these SHAs, their purpose, and how to find them.

Read more

Why You Should (Not) Prefer Monorepos For Git

Why You Should (Not) Prefer Monorepos For Git

Monorepos are often seen as the simple solution to complex collaboration and code management problems. Companies like Google and Facebook frequently mention their use of the pattern for their most important codebases, so clearly they have found ways to make these solutions scale to support large teams. What is their secret to being able to successfully use a monorepo, and how do they make it work where so many others fail? More importantly, should you be considering the approach?

Read more

That Template Repository Trick

That Template Repository Trick

GitHub supports defining a repository as a template. This enables you to configure a repository, its contents, and its branches quickly. But it can do moreā€¦

Read more

GitHub Actions Workflow Permissions

GitHub Actions Workflow Permissions

GitHub Actions Workflows can provide a great abstraction layer for creating or orchestrating build and release processes. Since we're running code -- in some cases, from third-parties -- it's important to understand how to secure the environment from malicious Actions. This is where permissions can help.

Read more

Improving Dev Container Feature Performance

Improving Dev Container Feature Performance

The support for custom features in Dev Containers is a huge improvement to the process of customizing images quickly and easily. The convenience and simplicity can have a cost -- performance. Trying to customize a container using a feature recently, I struggled with an incredibly long build time. This is how I improved the process.

Read more