Hi there 👋

Welcome to my blog

Signing GitHub commits on Mac OS

Use homebrew to install the tools brew install gnupg pinentry-mac Configure gpg Start by creating configuration files for gpg and pinentry-mac. These files will be used to configure gpg and pinentry-mac to use the same keychain as your Mac OS keychain. mkdir ~/.gnupg touch ~/.gnupg/gpg-agent.conf touch ~/.gnupg/gpg.conf Add the following to ~/.gnupg/gpg-agent.conf: default-cache-ttl 34560000 max-cache-ttl 34560000 pinentry-program /opt/homebrew/bin/pinentry-mac The TTL values above are set to 400 days. You can set them to whatever you want, but you will be prompted for your passphrase based on your configured TTL values....

January 15, 2023 · 2 min · Me

Quick git rebase

Using git from the command line has always been a bit intimidating, with git rebase being the most challenging for me. I’ve typically put off learning how to do it properly and just relied on git merge to bring feature branches up to date with main and resolve merge conflicts. I finally had some time to sit down and learn it, and of course it’s really not that bad! I created this quick demo to show how simple it can be....

January 17, 2022 · 2 min · Me

Revert Azure Virtual Machine with Snapshots

I recently prepared a Lightning Demo for the 2021 PowerShell + DevOps Global Summit, which thankfully was a pre-recorded session and not live. This gave me the chance to practice, and rehearse, and fine tune my content. I used a virtual machine in Azure to perform the demo which gave me two great benefits. One: I was preparing the demo from a base Windows 10 machine (or pretty close to it), so I was pretty confident that my material would work for anyone else....

April 26, 2021 · 2 min · Me

Serverless tagging with Event Grid and Azure Functions

Azure AutoTagger is a lightweight, low-cost serverless solution that can easily be deployed to an Azure subscription. Once deployed Azure AutoTagger monitors for ResourceWriteSucess events within the subscription and triggers an Azure Function to automatically apply a LastModifiedTimestamp and LastModifiedBy tag. Any organization should develop and implement it’s own tagging strategy (Azure’s Cloud Adoption Framework is a great start). This solution can be a complimentary piece to a more comprehensive tagging strategy, and can be useful when deployed to test/development/sandbox subscriptions where resources sometimes have a habit of sticking around longer than they were intended....

March 1, 2021 · 7 min · Me

GitHub Actions now with Manual Approvals

I’ve loved GitHub Actions since they were released, but the one piece I always felt was missing was some kind of gating or more control around deployments. Now we can add manual approval requirements to our workflows through GitHub’s new Environments configurations. Environments also support environment specific secrets in additional to repository-wide secrets. Create Environments To demo environments and approvals I’ve created a simple .net web app, along with two Azure Web Apps (dev and prod)....

January 6, 2021 · 6 min · Me

PowerUp your PowerShell prompt

One of the great things about PowerShell is that is so extensible and customizable. When sharing my screen with co-workers and customers a frequent exchange happens: “Oh, what shell are you using?” “PowerShell.” “How do you make it look like that? Mine is just blue.” So let’s go through the different items I’m using to build this PowerShell experience. PowerShell 7.1 Windows Terminal NerdFonts PowerShell Modules poshgit PSReadLine beta Az.Tools.Predictor oh-my-posh TerminalIcons Install a better shell I’m a big fan of utilizing Chocolatey to install and update Windows applications....

December 19, 2020 · 6 min · Me

Azure DevOps PowerShell code analysis with Pull Request comments

If you are using PowerShell you should be storing your code in a code repository. GitHub and Azure DevOps are great choices, but really any git repo will do. This isn’t an article about why you should be using version control, I feel that’s been covered at great length in the community already. This article is going to walk through leveraging Azure DevOps to perform static code analysis using PSScriptAnalyzer as part of a Pull Request workflow....

November 1, 2020 · 8 min · Me

Setup GitHub verified commits for VSCode

Want to see that sweet :heavy_check_mark: Verified status on your GitHub commit history? This guide walks through how to setup and configure everything needed on a Windows system! Install GnuPG (GPG) I’m a big fan of leveraging Chocolatey for package management on Windows. It makes things really easy to find and install software, and keep things up to date. If you dont have Chocolatey already installed, head over to https://chocolatey.org/install and follow the instructions....

October 25, 2020 · 4 min · Me

Start with why

Nearly a year ago I read Don Jones’ book “Be the Master”. It’s not available any longer as he’s combining two of his books into a larger narrative. There was an excerpt in the book that really struck me as such a poignant explanation of teaching and helping others in our technical community. We can all point to a guru who helped us through a difficult time or gave us insight that – even years after the fact – proved to be a turning point in our careers and lives....

October 24, 2020 · 2 min · Me