Ken Muse
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 this article

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 this article

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 this article

Dynamic Build Matrices in GitHub Actions

Dynamic Build Matrices in GitHub Actions

GitHub Actions allows you to create matrix builds to execute steps multiple times with different parameters. Fun tip – those parameters can be dynamic. You can define them programmatically!

Read this article

GitHub, Maven, and Packages
Java makes it surprisingly easy to manage and package complex projects using Apache Maven. One question I’m frequently asked – how does this integrate with GitHub Actions? Turns out that the answer is “surprisingly well!”

Read this article

Preventing GitHub Actions Injection Attacks
If you can code it, someone will find a way to exploit it ( accidentally or intentionally). Anytime development efforts are involved, it’s important to minimize security risks and bugs. This is also true with GitHub Actions, which allows you to script advanced automation solutions. Because of this, it’s important to understand where injection can occur and how to avoid it.

Read this article

The Life of a Commit After Git Squash
Git has some interesting behaviors built into it. For example, it makes it easy to squash a set of commits into a single commit. This creates a very simple history. But what happens if that history that you’re eliminating has a tag applied to it? Does that tag get eliminated? Does it point to the newly squashed commit? Today’s article explores what to expect in that situation … and why.

Read this article

Understanding Push Triggers and Branches in GitHub
It can sometimes be challenging to understand how branches work with the process of triggering Actions workflows in GitHub. Can you have a workflow per-branch? What about child branches? Plan your strategy with confidence by learning when the Actions workflow will run.

Read this article

Using New GitHub APIs With Probot
Probot makes it simple to create GitHub Apps, but sometimes the APIs update faster than Probot does. Learn how you can implement unsupported web hooks and APIs.

Read this article

Implementing Docker Layer Caching in GitHub Actions
BuildKit provides native support for caching layers to improve build times. In this post, we’ll explore implementing gha, inline, and registry caches with GHCR and GitHub Actions.

Read this article