RSSAmplifier

Blog

Jon Gallant

A tech, career, & life blog from a developer focused on Azure developer experience at Microsoft.

blog.jongallant.comRSS feed ↗587 posts

Latest posts

Make a Copilot Canvas Multiplayer with a GitHub Repo

githubStore backs a Copilot canvas with a JSON file in a GitHub repo, so everyone editing the same board sees each other's changes. One file, many writers.

Deploy Containers to Azure App Service with azd

azd 1.27.0 deploys container images to Azure App Service. Set language: docker with host: appservice and azd builds the image, pushes it to ACR, and updates the site.

I Put an AI Pit Master Inside a GitHub Copilot Canvas

I built a Copilot canvas that watches my live BBQ cook, then added Smokey - an AI pit master grounded in my real pit and probe temps. Here's how it works.

I Built a Skill to Scaffold GitHub Pages Sites for Any Repo

I've got a pile of repos that each need a GitHub Pages site, so I built create-gh-pages-site - a skill that scaffolds one and writes it from your repo.

I Built a Skill to Bootstrap Copilot Canvas Extensions

I kept rebuilding the same plumbing for every Copilot canvas, so I built create-canvas-app - a skill that stamps a working canvas from one prompt.

I Built a Copilot CLI Statusline for My Thermometer

I connected my ThermoWorks thermometer to the GitHub Copilot CLI so I can see grill temps while I code. Here's the project.

azd exec Is Now an Official azd Command

The azd exec extension I built has been merged into the Azure Developer CLI. Run any script with full Azure context - env vars, Key Vault secrets, zero setup.

Why I Rewrote azd-app's Transport Layer with Connect-RPC

How I replaced 28 REST endpoints and 5 WebSocket streams with a single gRPC-compatible schema that serves CLI, browser, MCP, and future TUI from one source of truth.

azd Now Runs Provisioning and Deployment in Parallel

azd 1.25.0 ships a DAG execution engine. Provisioning layers run concurrently automatically. Services need a 'uses' field to opt in.

azd Hooks in Python, JavaScript, and TypeScript

azd hooks are no longer limited to Bash and PowerShell. Write hooks in Python, JS, or TypeScript with auto dependency management.

Custom Parameters in azd up

Three ways to add custom prompts to your azd up flow - from @allowed pick lists to free-text input to full hook scripts.

azd update - Stop Juggling Package Managers

The Azure Developer CLI now has a built-in update command. One command, any platform, done.

Announcing grüt - A Terminal File Explorer with Git, GitHub, and AI Integration

I built a terminal-based file explorer with deep Git, GitHub, and AI integration. Here's why and how you can try it.

My C: Drive Hit 70 MB Free. Here's What I Did About It.

I used GitHub Copilot CLI to set up a Windows Dev Drive, move all my package caches off C:, and get noticeably faster builds. Took about 2 minutes.

Dispatch - A GitHub Copilot CLI Session Explorer for Your Terminal

Announcing dispatch, a terminal UI to search, browse, and relaunch your GitHub Copilot CLI sessions. Find any past session instantly and get back to work.

Azure Developer CLI - Origin Story

How I built the Azure Developer CLI from a personal pain point into a platform used by thousands.

Building the Azure MCP Server: From Prototype to Platform

The story of how a quick prototype to help GitHub Copilot connect to Azure evolved into the Azure MCP Server and the foundation for Microsoft's MCP platform.

Solution to 'TypeError: Failed to fetch' with ReactJS and Azure Functions

I got this error while calling an Azure Function from a ReactJS app. Here's how I fixed the CORS issue causing the TypeError.

Solution: GitHub Actions Failing with Unexpected value 'branches'

Fix for GitHub Actions error: Unexpected value 'branches' in workflow_dispatch. Learn why workflow_dispatch doesn't support branches filter.

We're Hiring Developers for Microsoft Azure Developer Experience Team!

Let me cut right to the chase and let the below job description speak for itself. The Azure Developer Experience Team in the Developer Division at Microsoft,...

Moon Palace Cancun: The Ultimate All-Inclusive Resort Guide

Everything you need to know about Moon Palace Cancun - from booking strategies and the best restaurants to hidden gems and insider tips for an unforgettable ...

How to delete a GitHub Codespace when you've reached the max of 20

You are on a repo that you love and you see that you have maxed out your allowed 20 Codespaces!!! You’ll see this: But there’s no link to delete a Codespace....

Azure Identity 301 - ChainedTokenCredential

Azure Identity is an Azure SDK library that abstracts all the authentication complexities so you can get back to building your Azure solutions. In Azure Iden...

Solution to SignalR error 'Unexpected token in JSON' when parsing event data

I’ve been writing some UI automation tests with Playwright and was trying to parse a SignalR event. Like so: const imageEvent = JSON.parse(event.payload.toSt...

Azure Identity 202 - Environment Variables

Azure Identity is a library that abstracts away all of the Azure authentication complexities so you can focus on building your solutions. In Azure Identity 1...

How to run Playwright codegen in a devcontainer - Solution to 'Unable to open X display'

I started playing with Playwright (the browser test automation tool) yesterday and discovered that the codegen feature doesn’t work in a devcontainer out of...

Azure Identity 201 - DefaultAzureCredential Options

Azure Identity is a fundamental building block of the new Azure SDKs. We wanted to make it brain-dead simple for you to authenticate your apps with Azure. Au...

Solution to Visual Studio 'Re-enter Credentials' and multiple authentication prompts

I’m using Visual Studio 2021 Preview 2.1 and I was constantly getting prompted to re-enter my credentials multiple times. I would have to 2FA 3-4 times ever...

Azure SDK for Python - Introducing the new CloudEvent.from_json method to convert messages from Service Bus, Event Hubs, and Storage Queues to CloudEvent

We recently added native CloudEvent support to our Event Grid libraries. I created an app for my Intro to the new Azure SDK Python video and discovered that...

Create a Golang CLI in Minutes with Cobra

I’m new to Golang and yesterday I attempted to create a Golang CLI. Here’s what I learned while getting it up and running on WSL. This took me a while. Hopef...

Azure Identity 101 - DefaultAzureCredential

Azure Identity is a library that simplifies how applications authenticate with Azure services. The following code news up a KeyVault SecretClient and passes...

Power BI - Solution to 'This dataset includes a dynamic data source ... this dataset won't be refreshed.'

I’m pulling data from GitHub Codeowners into a Power BI report. All was dandy locally, but refresh failed on the PBI service with this: This dataset includes...

How to Update GitHub Topic Icon and Description

GitHub has Topics. For example, when you search for “Azure” on GitHub it displays the Azure topic: And when you click on “See topic” you can view the details...

Microsoft Teams - Invite All Team Members to Meeting

You’ve created your Microsoft Teams Team and you want to send an invite to all of the Team members. You create an invite and see the following, but you aren’...

GitHub - Open in Visual Studio Code Insiders

VS Code just released an update that lets you embed an “Open in Visual Studio Code” button in your GitHub readme. It uses the Remote Repositories VS Code ext...

Microsoft Teams - How to Get a Link to a Private Channel

I just created a Microsoft Teams private channel and noticed that it doesn’t have “Get link to channel” option like other channels. Here, you can see it does...

A Barebones Azure Event Grid to Azure Relay Listener

Let’s say that you are developing with Azure Event Grid and you simply want to see the messages that it is generating to observe the schema or debug it. To d...

Adobe Lightroom Import - How to change dash in folder name to underscore

I just organized all my old photos into this folder format YYYY/YYYY_MM/YYYY_MM_DD - see this blog for more info: How to Organize Photos by EXIF Date Taken w...

Using GitHub CLI and Git in GitHub Codespaces

Update - New GitHub CLI Extension GitHub CLI 2.0 introduced CLI Extensions. I took a few minutes and threw all of the fixes below into a new extension called...

Solution: CS1061: 'AsyncPageable<GenericResourceExpanded>' does not contain a definition for 'GetAwaiter'

I’ve been coding in .NET for a very-long-time, but this tripped me up. Run the following code: var resources = await client.Resources.ListByResourceGroupAsyn...

Azure REST APIs in VS Code with Thunder Client

Thunder Client is a new REST client VS Code extension. It’s like Postman, but integrated into VS Code. I’d consider it an early preview and far from the feat...

How to Disable VS Code / GitLens Current Line Blame - 'You, seconds ago - Uncommitted Changes'

You’re using VS Code with the GitLens extension and you see this: Or maybe you noticed that sometimes that text is inserted into the middle of what you are t...

This is Not A Toy - Mandalorian + Grogu Puzzle Added to Puzzle Wall

A tech, career, & life blog from a developer focused on Azure developer experience at Microsoft.

This is Not A Toy - Mandalorian + Grogu Puzzle Added to Puzzle Wall

We are a puzzle family and a few years ago started hanging them up around the house. We are also a Star Wars family and started doing Star Wars themed puzzle...

Solution: The subscription does not have QuotaId/Feature required by SKU 'S0'.

Fix subscription does not have QuotaId feature error in Azure. Solution for Azure SKU quota limitations.

Azure REST APIs with Postman's OAuth 2.0 Provider

I’ve been blogging and vlogging about Azure REST APIs with Postman for a while now and often get asked why I don’t use Postman’s built in OAuth 2.0 provider....

McDonald's No Salt

I don’t eat at McDonald’s often, but when I do it’s sodium overload because me and my kid are use to a very low-sodium diet. While on a recent roadtrip we wa...

The Case of the Last T: A behind the scenes look at how we decided to capitalize the T in Azure.IoT

This is a story of how much effort and care we put into Azure SDK naming guidelines and consistency - even for the casing of a single letter…the last T in Io...

Solution to Could not locate the included file jekyll-theme-primer

Solution to Jekyll theme primer file not found error. Fix missing include file issues in Jekyll.

How to Organize Photos by EXIF Date Taken with PowerShell

I recently decided to organize all of my photos from the last 20 years. Photos from various phones and cameras - all with many different formats, JPEG, RAW,...