<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>GitHub Actions on Chris Reddington</title><link>https://chrisreddington.com/tags/github-actions/</link><description>Recent content in GitHub Actions on Chris Reddington</description><generator>Hugo</generator><language>en-gb</language><lastBuildDate>Thu, 08 Jan 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://chrisreddington.com/tags/github-actions/index.xml" rel="self" type="application/rss+xml"/><item><title>Rubber Duck Thursdays - It's time to build!</title><link>https://chrisreddington.com/video/2026-01-08-rubber-duck-thursdays/</link><pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2026-01-08-rubber-duck-thursdays/</guid><description>&lt;p&gt;Chris showcases Timestamp (gh.io/timestamp), an open-source countdown timer app that evolved from the 2025 holiday streams into a fully extensible project with multiple themes, comprehensive testing, and GitHub automation.&lt;/p&gt;
&lt;h2 id="timestamp--open-source-countdown-timer"&gt;Timestamp — Open Source Countdown Timer&lt;/h2&gt;
&lt;p&gt;The app is built with vanilla TypeScript and Vite, featuring:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multiple themes&lt;/strong&gt; — contribution graph (GitHub-style squares that fill as midnight approaches), fireworks celebration (powered by fireworks.js), and a scaffoldable ring theme&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;World map wall clock&lt;/strong&gt; — an interactive SVG map using Natural Earth public domain data with day/night visualization&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Time zone support&lt;/strong&gt; — countdown to midnight in any city worldwide with a drop-down and map selector&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Light/dark mode&lt;/strong&gt; — system-aware theme switching with per-theme styling&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Accessibility&lt;/strong&gt; — built-in reduced motion support, keyboard navigation, and WCAG considerations&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="copilot-custom-instructions-vs-agents-vs-prompt-files"&gt;Copilot Custom Instructions vs Agents vs Prompt Files&lt;/h2&gt;
&lt;p&gt;Chris shares key lessons learned from structuring his Copilot configuration:&lt;/p&gt;</description></item><item><title>Rubber Duck Thursdays - Let's build with custom agents (again!)</title><link>https://chrisreddington.com/video/2025-12-04-rubber-duck-thursdays/</link><pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-12-04-rubber-duck-thursdays/</guid><description>&lt;p&gt;Chris continues building custom agents for the SDLC, exploring the awesome-copilot repository for inspiration and live-building a GitHub Actions workflow agent with plan mode.&lt;/p&gt;
&lt;h2 id="topics-covered"&gt;Topics Covered&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GitHub Changelog Roundup&lt;/strong&gt; — Blocking repo admins from installing GitHub Apps now GA, Copilot Spaces with public spaces and code view support, secret scanning updates for November 2025, GitHub Enterprise Server 3.19 RC, assigning issues to Copilot via GraphQL and REST APIs, and Claude Opus 4.5 availability across more IDEs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agent Inspiration from awesome-copilot&lt;/strong&gt; — Reviewing partner-built agents and the awesome-copilot repository for ideas including test writers, security reviewers, tech debt analyzers, documentation generators, PR review assistants, and onboarding guides.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agent Consolidation&lt;/strong&gt; — Discussing whether to keep agents separate or consolidate them based on shared tool access, output formats, and domain overlap.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Building a GitHub Actions Agent&lt;/strong&gt; — Using plan mode to design a custom agent for authoring and updating GitHub Actions workflows, including monorepo build order awareness and minimal permissions guidance.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub Actions Instructions File&lt;/strong&gt; — Creating a companion instructions file with repository-specific CI/CD conventions, build order, environment variables, and recommended practices for workflow definitions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Plan Mode Workflow&lt;/strong&gt; — Demonstrating the iterative plan-then-implement workflow where Copilot asks clarifying questions before generating code, and switching between plan and agent modes.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Rubber Duck Thursdays - Let's build</title><link>https://chrisreddington.com/video/2025-11-20-rubber-duck-thursdays/</link><pubDate>Thu, 20 Nov 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-11-20-rubber-duck-thursdays/</guid><description>&lt;p&gt;Chris catches up on several weeks of GitHub releases and then returns to the turn-based game MCP server project to fix a dependency upgrade issue.&lt;/p&gt;
&lt;h2 id="topics-covered"&gt;Topics Covered&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GitHub Changelog Roundup&lt;/strong&gt; — Managing Copilot coding agent tasks in VS Code, new OIDC token claims for GitHub Actions, GPT-5.1 and Codex models, configuring the coding agent as a bypass actor for rulesets, MCP registry and allowlist controls in VS Code Stable, plan mode and isolated sub-agents in public preview, Gemini 3 Pro, and CodeQL updates.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MCP Server for Games&lt;/strong&gt; — Revisiting the tic-tac-toe MCP server project and demonstrating how tool calls allow natural language game interaction with a backend API.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fixing Dependency Upgrades with Copilot&lt;/strong&gt; — Using agent mode across multiple models (Codex, Gemini 3 Pro) to diagnose and resolve a type check failure caused by a Dependabot SDK version bump.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Rubber Duck Thursdays - Time to build!</title><link>https://chrisreddington.com/video/2025-09-04-rubber-duck-thursdays/</link><pubDate>Thu, 04 Sep 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-09-04-rubber-duck-thursdays/</guid><description>&lt;p&gt;Join us for Rubber Duck Thursdays! A lighthearted and informal stream where we live code on some projects.&lt;/p&gt;
&lt;p&gt;In this stream, we explore adding a 3D visualization to the turn-based game MCP server using Three.js, built with help from Copilot coding agent. We demo switching between 2D and 3D views of tic-tac-toe games while playing against the MCP server, and discuss the iterative process of prompting Copilot — including the importance of specifying requirements like piece orientation and camera controls.&lt;/p&gt;</description></item><item><title>Rubber Duck Thursdays - Let's keep building!</title><link>https://chrisreddington.com/video/2025-08-28-rubber-duck-thursdays/</link><pubDate>Thu, 28 Aug 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-08-28-rubber-duck-thursdays/</guid><description>&lt;p&gt;Join us for Rubber Duck Thursdays! A lighthearted and informal stream where we live code on some projects.&lt;/p&gt;
&lt;p&gt;In this stream, we recap the turn-based game MCP server and demo the elicitation feature for gathering user preferences, then shift gears into a deep dive on GitHub Actions. Starting from an empty repository, we build workflows from scratch — covering YAML structure, event triggers (issues, issue_comment, push, pull_request, workflow_dispatch), jobs running in parallel, job dependencies using the &lt;code&gt;needs&lt;/code&gt; property, conditional steps with &lt;code&gt;if&lt;/code&gt;, and matrix strategies for cross-platform builds across multiple OS and Node.js versions.&lt;/p&gt;</description></item><item><title>Rubber Duck Thursdays - Building a turn-based-game MCP server</title><link>https://chrisreddington.com/video/2025-08-07-rubber-duck-thursdays/</link><pubDate>Thu, 07 Aug 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-08-07-rubber-duck-thursdays/</guid><description>&lt;p&gt;Join us for Rubber Duck Thursdays! A lighthearted and informal stream where we live code on some projects.&lt;/p&gt;
&lt;p&gt;In this stream, we continue building our turn-based game MCP server, focusing on implementing elicitation — a Model Context Protocol feature for gathering additional user input when creating games. We consolidate duplicate tool calls (create game, play game) into generic handlers, reducing code duplication and improving maintainability. The session also covers using Copilot coding agent to automate refactoring tasks like extracting shared constants and removing duplicated difficulty badge logic.&lt;/p&gt;</description></item><item><title>Rubber Duck Thursdays - Build for the love of code</title><link>https://chrisreddington.com/video/2025-07-24-rubber-duck-thursdays/</link><pubDate>Thu, 24 Jul 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-07-24-rubber-duck-thursdays/</guid><description>&lt;p&gt;In this episode, we recap the latest GitHub changelog including GitHub Spark entering public preview and coding agent support for instructions.md files. We introduce the &lt;a href="https://gh.io/love-of-code"&gt;Build for the love of code&lt;/a&gt; hackathon, prototype a rubber duck debugging app with GitHub Spark, and build an MCP server from scratch using TypeScript while exploring tools, prompts, and resources.&lt;/p&gt;
&lt;h2 id="topics-covered"&gt;Topics covered&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GitHub changelog recap&lt;/strong&gt; — M2 Pro hosted runners, GitHub Issues quality-of-life updates, Azure endpoint deprecation for GitHub Models, PR files changed improvements, Copilot code review policy changes, GitHub Spark public preview for Copilot Pro Plus, coding agent support for instructions.md custom instructions, and base branch selection for coding agent tasks.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Build for the love of code hackathon&lt;/strong&gt; — Introduced the &lt;a href="https://gh.io/love-of-code"&gt;gh.io/love-of-code&lt;/a&gt; hackathon running July 16 to September 22 with six categories: hardware projects, AI agents, terminal tools, games, web apps, and wildcard entries. Brainstormed duck-themed project ideas with Copilot.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub Spark prototyping&lt;/strong&gt; — Used GitHub Spark (now in public preview) to rapidly prototype a rubber duck debugging web app with animated duck companions and different debugging personalities.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Building an MCP server from scratch&lt;/strong&gt; — Scaffolded a TypeScript MCP server project from an empty repository, covering server initialization with the MCP SDK, registering tools with Zod schema validation, defining prompts and resources, and setting up repository foundations including dev containers, Dependabot configuration, and GitHub Actions CI workflows.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Rubber Duck Thursdays - Copilot agent mode, coding agent and MCP servers</title><link>https://chrisreddington.com/video/2025-07-10-rubber-duck-thursdays/</link><pubDate>Thu, 10 Jul 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-07-10-rubber-duck-thursdays/</guid><description>&lt;p&gt;In this episode, we review the latest GitHub changelog including remote MCP server support for coding agent and Copilot code review on mobile. We use the Playwright MCP server with Copilot agent mode to debug and fix UI issues in the Octo Arcade project, discuss the differences between ask, edit, and agent modes in VS Code, and explore MCP server concepts like tools, prompts, and resources.&lt;/p&gt;
&lt;h2 id="topics-covered"&gt;Topics covered&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GitHub changelog recap&lt;/strong&gt; — Agents page for Copilot coding agent, CodeQL Rust support, improved repository creation experience, dependency auto-submission for Python, Copilot code review on GitHub Mobile, remote MCP server support for coding agent, and delegating tasks via the GitHub MCP server.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Playwright MCP server for UI debugging&lt;/strong&gt; — Used Copilot agent mode with the Playwright MCP server to debug and fix game sizing issues in the Octo Arcade project, including viewport overflow, header overlap, and mobile responsiveness for pong, brick breaker, and matching games.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ask vs Edit vs Agent mode&lt;/strong&gt; — Walked through the practical differences between VS Code Copilot modes: ask for conversational code suggestions that must be manually applied, edit for targeted file changes, and agent mode for autonomous multi-step workflows that can run builds, tests, and use MCP tools.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MCP server concepts&lt;/strong&gt; — Explored MCP server fundamentals including the three main primitives: tools (executable functions), prompts (predefined conversation templates), and resources (contextual data for the AI).&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Rubber Duck Thursdays - Let's build</title><link>https://chrisreddington.com/video/2025-07-03-rubber-duck-thursdays/</link><pubDate>Thu, 03 Jul 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-07-03-rubber-duck-thursdays/</guid><description>&lt;p&gt;In this stream, Chris returns from vacation to catch up on weeks of GitHub updates and demonstrates adding internationalization to apps using Copilot coding agent, custom VS Code chat modes, and agent mode in Xcode.&lt;/p&gt;
&lt;h2 id="topics-covered"&gt;Topics Covered&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GitHub Changelog Review&lt;/strong&gt; — Updates including model evaluations CLI for GitHub Models, remote GitHub MCP server in public preview, Copilot coding agent now available for business users, GitHub Models pay-as-you-go billing, Claude Sonnet 4 and Opus 4 GA, CodeQL updates for Go and Swift, Actions Runner Controller release, and Copilot code review with custom instructions support&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom Chat Modes in VS Code&lt;/strong&gt; — Creating a custom planning mode in VS Code Insiders to generate implementation plans and create GitHub issues, integrating the GitHub MCP server as a tool within the chat mode&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Remote GitHub MCP Server&lt;/strong&gt; — Setting up and authenticating with the new remote GitHub MCP server, eliminating the need for local Docker containers and personal access tokens via OAuth&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot Coding Agent for Internationalization&lt;/strong&gt; — Assigning a GitHub issue to Copilot to add English, French, and Spanish language support to the Copilot Airways Next.js web app, reviewing the AI-generated pull request&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Xcode Agent Mode&lt;/strong&gt; — Demonstrating agent mode in Xcode to add internationalization to a Swift iOS version of the Copilot Airways app with a language selector&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Issue Creation with Copilot&lt;/strong&gt; — Using Copilot on github.com to draft well-structured GitHub issues from natural language descriptions&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Rubber Duck Thursdays - Let's build with agents</title><link>https://chrisreddington.com/video/2025-06-19-rubber-duck-thursdays/</link><pubDate>Thu, 19 Jun 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-06-19-rubber-duck-thursdays/</guid><description>&lt;p&gt;In this episode, we recap the latest GitHub changelog updates including Copilot coding agent availability for pro users and the new Playwright MCP browser capability. We update Copilot custom instructions and setup steps for a GitHub Action project, use the Playwright MCP server to build interactive UI features on a trend radar app, and leverage Copilot coding agent to identify and fix technical debt.&lt;/p&gt;
&lt;h2 id="topics-covered"&gt;Topics covered&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GitHub changelog recap&lt;/strong&gt; — Copilot coding agent for Copilot Pro users, GitHub Actions fine-grain permissions, upgraded Llama models, improved PR file experience, Dependabot minimum package age configuration, and Copilot coding agent Playwright MCP browser support.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot custom instructions and setup steps&lt;/strong&gt; — Updated custom instructions for a validate-file-exists GitHub Action project and created a Copilot setup steps YAML to configure the coding agent environment with Node.js and dependencies.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Playwright MCP server for UI development&lt;/strong&gt; — Used the Playwright MCP server with Copilot coding agent to build drag-and-drop functionality and point editing on a trend radar web app, demonstrating how the agent can interact with a running application.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Technical debt with Copilot coding agent&lt;/strong&gt; — Prompted Copilot to identify technical debt in the project, then created GitHub issues for package metadata fixes, documentation inconsistencies, and input validation improvements. Copilot coding agent autonomously submitted a PR addressing all three items with new tests.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Rubber Duck Thursdays - Copilot coding agent and Copilot agent mode</title><link>https://chrisreddington.com/video/2025-06-05-rubber-duck-thursdays/</link><pubDate>Thu, 05 Jun 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-06-05-rubber-duck-thursdays/</guid><description>&lt;p&gt;In this stream, Chris returns after Microsoft Build to dive deep into Copilot coding agent, demonstrating how to assign GitHub issues to Copilot and review the resulting pull requests.&lt;/p&gt;
&lt;h2 id="topics-covered"&gt;Topics Covered&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Microsoft Build Recap&lt;/strong&gt; — Highlights from the event including Copilot coding agent announcements, agent mode availability in Eclipse, Xcode, and IntelliJ editors, and GitHub Models updates&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub Changelog Review&lt;/strong&gt; — Three weeks of updates including Claude Sonnet 4 and Opus 4 in GitHub Copilot, Copilot Spaces, GPT-4o Copilot model update, coding agent on GitHub Mobile, secret scanning pattern expansions, and GitHub Enterprise Server 3.17&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot Coding Agent Deep Dive&lt;/strong&gt; — Live demo with Copilot Airways app showing how to assign issues to Copilot, review AI-generated pull requests for refactoring and CI/CD deployment, and iterate through code review comments&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MCP Integration with Notion&lt;/strong&gt; — Demonstrating Model Context Protocol by connecting Copilot coding agent to a Notion MCP server to pull requirements from external tools and implement features automatically&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Issue Scoping Best Practices&lt;/strong&gt; — Structuring GitHub issues with overview, problem statement, acceptance criteria, implementation details, and file pointers for optimal Copilot coding agent results&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot Code Review&lt;/strong&gt; — Using automated code review on pull requests with actionable suggestions for code quality&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Extend GitHub Copilot coding agent with custom MCP tools</title><link>https://chrisreddington.com/video/2025-06-01-copilot-coding-agent-mcp/</link><pubDate>Sun, 01 Jun 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-06-01-copilot-coding-agent-mcp/</guid><description>&lt;p&gt;This video demonstrates an end-to-end MCP-powered workflow with the GitHub Copilot coding agent, using the &amp;lsquo;Copilot Airways&amp;rsquo; travel guide as the demo application.&lt;/p&gt;
&lt;p&gt;Key topics covered:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Creating a GitHub Issue from Copilot Chat&lt;/strong&gt; on GitHub.com: asking Copilot to formulate a structured issue from a verbal description, including a link to the Notion document for traceability between the product team&amp;rsquo;s requirements and the engineering backlog&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Assigning the issue to Copilot coding agent&lt;/strong&gt; directly from the Copilot Chat interface—no need to navigate away to the Issues tab&lt;/li&gt;
&lt;li&gt;How the &lt;strong&gt;Notion MCP server&lt;/strong&gt; is configured to give Copilot access to external product documentation, bridging the gap between the product team&amp;rsquo;s tools and the engineering workflow&lt;/li&gt;
&lt;li&gt;Inspecting the &lt;strong&gt;session view&lt;/strong&gt; to see multiple MCP tool calls used to fetch information from Notion, which were then incorporated into Copilot&amp;rsquo;s implementation plan and code changes&lt;/li&gt;
&lt;li&gt;How &lt;strong&gt;MCP servers and their associated tools are provisioned within GitHub Actions&lt;/strong&gt; when Copilot is being set up for a coding agent task—visible in the workflow run logs&lt;/li&gt;
&lt;li&gt;Navigating a large pull request using &lt;strong&gt;Copilot&amp;rsquo;s PR change summary&lt;/strong&gt; to gain the right context before diving into a detailed code review&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Assign issues to GitHub Copilot from the GitHub mobile app</title><link>https://chrisreddington.com/video/2025-05-27-copilot-coding-agent-mobile/</link><pubDate>Tue, 27 May 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-05-27-copilot-coding-agent-mobile/</guid><description>&lt;p&gt;The GitHub Copilot coding agent isn&amp;rsquo;t just a desktop experience—you can assign issues and track Copilot&amp;rsquo;s progress directly from the GitHub Mobile app or a mobile browser, making it useful during a commute or whenever you&amp;rsquo;re away from your laptop.&lt;/p&gt;
&lt;p&gt;The video demonstrates the following mobile-first workflow using the &amp;lsquo;Copilot Airways&amp;rsquo; demo repository:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Navigating the &lt;strong&gt;issues backlog&lt;/strong&gt; and assigning a GitHub Pages deployment task to Copilot directly from the &lt;strong&gt;GitHub Mobile app&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Copilot acknowledging the assignment with the 👀 emoji reaction and immediately creating a pull request&lt;/li&gt;
&lt;li&gt;Switching to &lt;strong&gt;github.com in a mobile browser&lt;/strong&gt; to open the pull request and tap &amp;lsquo;View session&amp;rsquo;&lt;/li&gt;
&lt;li&gt;Reviewing how Copilot explored existing CI workflow files, formed a plan, updated configuration files, and modified the existing workflow to add the GitHub Pages deployment step&lt;/li&gt;
&lt;li&gt;Copilot running &lt;strong&gt;linters, builds, and tests&lt;/strong&gt; as quality checks during the agentic loop to ensure the CI pipeline remains healthy&lt;/li&gt;
&lt;li&gt;Using the &lt;strong&gt;&amp;lsquo;Approve and Run&amp;rsquo;&lt;/strong&gt; button on mobile to authorize GitHub Actions execution against the AI-generated changes&lt;/li&gt;
&lt;li&gt;Marking the pull request as ready for review and merging once checks pass—all without touching a laptop&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Assigning Copilot ad-hoc tasks through Copilot chat</title><link>https://chrisreddington.com/video/2025-05-22-copilot-coding-agent-adhoc-tasks/</link><pubDate>Thu, 22 May 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-05-22-copilot-coding-agent-adhoc-tasks/</guid><description>&lt;p&gt;The GitHub Copilot coding agent isn&amp;rsquo;t limited to work assigned from GitHub Issues—you can also delegate tasks directly from a Copilot Chat session in Visual Studio Code while actively working in the codebase.&lt;/p&gt;
&lt;p&gt;The video walks through the following workflow on the &amp;lsquo;Copilot Airways&amp;rsquo; demo app:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Opening Copilot Chat in &lt;strong&gt;ask mode&lt;/strong&gt; in Visual Studio Code and invoking the &lt;code&gt;@github&lt;/code&gt; chat participant&lt;/li&gt;
&lt;li&gt;Describing naming inconsistencies found across the codebase and asking Copilot to raise a pull request that standardizes the naming conventions across all implementations&lt;/li&gt;
&lt;li&gt;Reviewing Copilot&amp;rsquo;s proposed plan (including documentation improvements to make conventions explicit) and confirming before it proceeds&lt;/li&gt;
&lt;li&gt;Copilot creating the pull request and returning a direct link within the chat session&lt;/li&gt;
&lt;li&gt;Viewing the &lt;strong&gt;session log&lt;/strong&gt; to see how Copilot mapped out the refactoring approach&lt;/li&gt;
&lt;li&gt;Letting Copilot work asynchronously in the background—running lint and build steps to verify code quality—while continuing with other work&lt;/li&gt;
&lt;li&gt;Returning to the pull request, using the &lt;strong&gt;&amp;lsquo;Approve and Run&amp;rsquo;&lt;/strong&gt; button to trigger GitHub Actions checks, and progressing to merge once all checks pass&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>How to get the most out of the Copilot coding agent</title><link>https://chrisreddington.com/video/2025-05-21-copilot-coding-agent-tips-tricks/</link><pubDate>Wed, 21 May 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-05-21-copilot-coding-agent-tips-tricks/</guid><description>&lt;p&gt;The GitHub Copilot coding agent works best when given rich context and a consistent environment. This video breaks down four concrete practices that help set Copilot up for success before a single line of code is written.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Write well-scoped GitHub Issues&lt;/strong&gt; — Can the issue be resolved in a single pull request? Does it include a clear problem description, acceptance criteria, pointers to the relevant files, and a loose implementation plan to follow?&lt;/p&gt;</description></item><item><title>The GitHub Copilot coding agent *NEW*</title><link>https://chrisreddington.com/video/2025-05-19-coding-agent-overview/</link><pubDate>Mon, 19 May 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-05-19-coding-agent-overview/</guid><description>&lt;p&gt;GitHub Copilot coding agent lets you assign GitHub Issues to Copilot, which works asynchronously in the background while you continue with other tasks. This overview video uses the &amp;lsquo;Copilot Airways&amp;rsquo; flight booking app to demonstrate the full workflow from issue assignment to merged pull request.&lt;/p&gt;
&lt;p&gt;The video covers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Assigning a GitHub Issue (adding form input validation) to Copilot with a single click&lt;/li&gt;
&lt;li&gt;How Copilot acknowledges the assignment, creates a pull request, and keeps the PR description updated as it progresses&lt;/li&gt;
&lt;li&gt;Viewing the Copilot session to understand how it explored the repository, formed a plan, and created a new GitHub Actions workflow file&lt;/li&gt;
&lt;li&gt;How Copilot runs tools such as linters, builds, and tests to self-verify code quality during the agentic loop&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;&amp;lsquo;Approve and Run&amp;rsquo; safety gate&lt;/strong&gt;, which requires explicit human approval before any GitHub Actions workflow executes against AI-generated code&lt;/li&gt;
&lt;li&gt;Adding review comments to the PR (requesting a CI workflow) and watching Copilot acknowledge and act on the feedback&lt;/li&gt;
&lt;li&gt;The final result: a form updated with real-time validation and an improved user experience, ready to merge&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Rubber Duck Thursdays - Building from requirements with Agent Mode</title><link>https://chrisreddington.com/video/2025-05-15-rubber-duck-thursdays/</link><pubDate>Thu, 15 May 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-05-15-rubber-duck-thursdays/</guid><description>&lt;p&gt;In this stream, Chris walks through building a GitHub CLI extension in Go from scratch, taking a spec-driven and test-driven development approach powered by Copilot Agent Mode.&lt;/p&gt;
&lt;h2 id="topics-covered"&gt;Topics Covered&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GitHub Changelog Review&lt;/strong&gt; — Model updates in GitHub Models (Mistral, Cohere, Llama), GPT-4.1 as the new default Copilot model, updated rate limits for unauthenticated requests, and the VS Code April release with MCP support and prompt files&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Microsoft Build Preview&lt;/strong&gt; — A look ahead at sessions and events for the following week&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Building gh-demo from Scratch&lt;/strong&gt; — Bootstrapping a new Go-based GitHub CLI extension using VS Code&amp;rsquo;s new workspace creation with Copilot, the Cobra library, and a spec-driven approach starting from a product requirements document&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Test-Driven Development with Copilot&lt;/strong&gt; — Writing tests first for a hydrate subcommand that reads JSON files to create GitHub issues, discussions, and pull requests, with content type filtering and label collection&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub Actions CI&lt;/strong&gt; — Creating a build, test, and lint workflow for the new CLI extension&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom Instructions&lt;/strong&gt; — Setting up a copilot-instructions.md file to guide Copilot&amp;rsquo;s behavior around path handling and project conventions&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Rubber Duck Thursdays - Back to building GitHub CLI Extensions</title><link>https://chrisreddington.com/video/2025-04-24-rubber-duck-thursdays/</link><pubDate>Thu, 24 Apr 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-04-24-rubber-duck-thursdays/</guid><description>&lt;p&gt;In this episode, Chris reviews the GitHub Changelog covering organization-level Copilot custom instructions, CodeQL for Actions workflow security analysis, Copilot Code Review language expansion, secret scanning alert dismissals, and GitHub Mobile updates. The coding segment tackles theme switching for the Copilot Airways web app and a Tailwind CSS upgrade using GitHub Codespaces and Copilot Agent Mode.&lt;/p&gt;
&lt;h2 id="changelog-highlights"&gt;Changelog Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Organization custom instructions&lt;/strong&gt; for Copilot enterprise customers&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MAI-DSR1&lt;/strong&gt; — Microsoft AI-refined version of DeepSeek R1 available in GitHub Models&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot Code Review&lt;/strong&gt; now supports C, C++, Kotlin, and Swift — covering over 90% of file types&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CodeQL for GitHub Actions&lt;/strong&gt; workflow security analysis is now generally available&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Secret scanning alert dismissal requests&lt;/strong&gt; with REST API support&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot for Xcode&lt;/strong&gt; adds @workspace context, Claude 3.7 Sonnet, and GPT-4.5&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub Mobile&lt;/strong&gt; updates including multi-model Copilot Chat and sub-issues&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dependabot&lt;/strong&gt; scheduling with cron expressions&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="live-coding"&gt;Live Coding&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fixed dark mode and light mode theme switching on the &lt;strong&gt;Copilot Airways&lt;/strong&gt; web app&lt;/li&gt;
&lt;li&gt;Attempted a &lt;strong&gt;Tailwind CSS upgrade&lt;/strong&gt; in a fresh GitHub Codespace&lt;/li&gt;
&lt;li&gt;Discussion of Copilot Agent Mode workflows and custom instructions for guiding AI-assisted development&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Rubber Duck Thursdays - Building with Agent Mode and MCP</title><link>https://chrisreddington.com/video/2025-04-17-rubber-duck-thursdays/</link><pubDate>Thu, 17 Apr 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-04-17-rubber-duck-thursdays/</guid><description>&lt;p&gt;An especially announcement-heavy week focused on new AI model availability across GitHub Copilot and GitHub Models, plus hands-on experiments with those models in agent mode and GitHub Actions workflows.&lt;/p&gt;
&lt;p&gt;The extensive changelog review covers GPT-4.1 rolling out to all Copilot plans, Gemini 2.5 Pro entering public preview, O3 and O4 mini availability, Meta Llama 4 Scout and Maverick models in GitHub Models, macOS 15 and Windows 2025 GA for Actions runners, Windows ARM64 hosted runners in preview, expanded vision support beyond GPT-4o to Claude and Gemini models, CodeQL 2.21.0 with TypeScript 5.8 support, Copilot Chat for Eclipse GA, secret scanning pattern expansions, and the new Codespaces agent mode button on pull requests.&lt;/p&gt;</description></item><item><title>Rubber Duck Thursdays - Sshh, let's talk about secrets.</title><link>https://chrisreddington.com/video/2025-04-03-rubber-duck-thursdays/</link><pubDate>Thu, 03 Apr 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-04-03-rubber-duck-thursdays/</guid><description>&lt;p&gt;This episode focuses on why secrets should never exist in source code and how GitHub&amp;rsquo;s newly unbundled security products help prevent and detect secret leaks.&lt;/p&gt;
&lt;p&gt;After the weekly GitHub Changelog review — covering the new GPT-4o Copilot completions model, repository ownership limits, GitHub Desktop updates, Copilot mobile multi-model support, and GitHub Issues dashboard improvements — Chris dives into the headline topic: GitHub Advanced Security splitting into two standalone products, Secret Protection ($19/month) and Code Security ($30/month), now available for GitHub Team plans without requiring Enterprise.&lt;/p&gt;</description></item><item><title>Rubber Duck Thursdays - Lizard, Spock</title><link>https://chrisreddington.com/video/2025-02-27-rubber-duck-thursdays/</link><pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-02-27-rubber-duck-thursdays/</guid><description>&lt;p&gt;In this episode, the team extends the Rock Paper Scissors game to include Lizard and Spock using GitHub Copilot Vision — feeding an image of the game&amp;rsquo;s relationship diagram directly into Copilot, which interprets it and generates the extended game logic without explicitly naming the game. The stream also adds a hidden flag for the extended mode, demonstrating prompt engineering with Copilot&amp;rsquo;s multimodal capabilities.&lt;/p&gt;
&lt;p&gt;The GitHub changelog review covers Copilot autofix expansion for CodeQL alerts, Claude 3.7 Sonnet availability in Copilot, Docker Compose support in Dependabot, Copilot code review in public preview, and Copilot in Windows Terminal Canary. The latter portion demonstrates Dependabot version updates configured for Go modules and GitHub Actions ecosystems, with a live review of a dependency update pull request. A GitHub Codespaces session is used to verify the gh-skyline CLI extension still works after a dependency bump, and repository settings for auto-deleting branches and auto-merging pull requests are configured.&lt;/p&gt;</description></item><item><title>Rubber Duck Thursdays - Rock, Paper, Scissors</title><link>https://chrisreddington.com/video/2025-02-20-rubber-duck-thursdays/</link><pubDate>Thu, 20 Feb 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-02-20-rubber-duck-thursdays/</guid><description>&lt;p&gt;In this episode, I add a Rock Paper Scissors game to the gh-game GitHub CLI extension. The stream begins with a comprehensive GitHub changelog review covering the new GPT-4o Copilot code completion model, Copilot availability in Eclipse and Xcode, repository ruleset enhancements, secret scanning improvements, Copilot Workspace updates, and GitHub Issues and Projects feature updates.&lt;/p&gt;
&lt;p&gt;The coding session uses GitHub Copilot Agent Mode to build the Rock Paper Scissors game in Go, taking advantage of Next Edit Suggestions and the new GPT-4o code completion model. A significant portion of the stream focuses on improving test coverage using Copilot&amp;rsquo;s inline chat in the terminal, progressing from 42.6% to 100% statement coverage by generating targeted test cases for uncovered functions. The episode also covers merging the Tic Tac Toe pull request from the previous week and shipping a new release of the CLI extension.&lt;/p&gt;</description></item><item><title>Rubber Duck Thursdays - Tic, Tac, Toe</title><link>https://chrisreddington.com/video/2025-02-13-rubber-duck-thursdays/</link><pubDate>Thu, 13 Feb 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-02-13-rubber-duck-thursdays/</guid><description>&lt;p&gt;In this episode, the team continues building the gh-game GitHub CLI extension by adding a Tic Tac Toe game written in Go. The stream kicks off with a demo of GitHub Spark, a GitHub Next experiment for creating micro apps from natural language prompts, followed by a walkthrough of the latest GitHub changelog updates including Gemini 2.0 Flash availability, Copilot Vision, and Agent Mode in VS Code Insiders.&lt;/p&gt;
&lt;p&gt;The main coding session uses GitHub Copilot Agent Mode, Copilot Chat, and Copilot Edits to scaffold and iterate on the Tic Tac Toe implementation. Along the way, CodeQL code scanning is enabled on the repository, catching issues with missing workflow permissions and unpinned GitHub Actions versions. The episode also covers the CI/CD pipeline setup with build and test steps in GitHub Actions, and improving code readability through Copilot-assisted refactoring.&lt;/p&gt;</description></item><item><title>Rubber Duck Thursdays - Actions, Codespaces and Coin Toss</title><link>https://chrisreddington.com/video/2025-02-06-rubber-duck-thursdays/</link><pubDate>Thu, 06 Feb 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-02-06-rubber-duck-thursdays/</guid><description>&lt;p&gt;Continuing the gh-game CLI extension project, this episode covers setting up a complete development workflow. Chris creates a GitHub Codespace with a dev container configuration, installs Go and the GitHub CLI as features, and demonstrates how Codespaces provide a consistent environment for contributors.&lt;/p&gt;
&lt;p&gt;The stream then covers creating a CI workflow using GitHub Actions with build and test steps, followed by writing Go tests for the coin toss game. A key segment focuses on refactoring the coin toss input from manual text entry to interactive selection menus using the &lt;code&gt;go-gh&lt;/code&gt; prompter package, demonstrating how context and accurate prompting is essential when working with GitHub Copilot. Chris uses multiple Copilot models including Gemini 2.0 Flash and O3 Mini throughout the session.&lt;/p&gt;</description></item><item><title>Rubber Duck Thursdays - Creating gh-game CLI extension</title><link>https://chrisreddington.com/video/2025-01-30-rubber-duck-thursdays/</link><pubDate>Thu, 30 Jan 2025 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2025-01-30-rubber-duck-thursdays/</guid><description>&lt;p&gt;This episode dives into GitHub Actions, starting with a walkthrough of the build, linter, and release workflows configured for the GitHub Skyline CLI extension. Chris explains workflow triggers, permissions, and demonstrates cutting a live release using semantic versioning and the &lt;code&gt;cli/gh-extension-precompile&lt;/code&gt; action to generate cross-platform binaries.&lt;/p&gt;
&lt;p&gt;The second half focuses on creating a brand new GitHub CLI extension from scratch. Using &lt;code&gt;gh extension create&lt;/code&gt;, Chris bootstraps the gh-game project and builds a coin toss game in Go with the Cobra package. GitHub Copilot assists with scaffolding the command structure, applying code changes, and generating commit messages. The stream also covers publishing the repository using &lt;code&gt;gh repo create&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Build Conway's Game of Life with GitHub Copilot Free</title><link>https://chrisreddington.com/video/2024-12-18-copilot-conways-game-of-life/</link><pubDate>Mon, 16 Dec 2024 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2024-12-18-copilot-conways-game-of-life/</guid><description>&lt;p&gt;This is a demo video showing GitHub Copilot in an end-to-end scenario, by building Conway&amp;rsquo;s Game of Life. The video covers the following specific topics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Selecting the Claude Sonnet 3.5 model in the GitHub Copilot Chat model picker in Visual Studio Code&lt;/li&gt;
&lt;li&gt;Writing specific, clear prompts: requesting a single-file implementation with a responsive layout and configurable cell size&lt;/li&gt;
&lt;li&gt;Tips on effective prompt engineering: keeping prompts simple and specific to reduce ambiguous output&lt;/li&gt;
&lt;li&gt;Reviewing generated code before inserting it, then customising the colour scheme to match the GitHub contribution graph&lt;/li&gt;
&lt;li&gt;Using the &amp;ldquo;Apply in Editor&amp;rdquo; button with speculative decoding to apply targeted diffs across an existing file&lt;/li&gt;
&lt;li&gt;Refactoring from a single HTML/CSS/JS file to separate files using Copilot Edits for multi-file changes&lt;/li&gt;
&lt;li&gt;Reviewing multi-file diffs in the Copilot Edits view and accepting changes per file&lt;/li&gt;
&lt;li&gt;Using drag-and-drop to add files as context to Copilot Chat and Copilot Edits sessions&lt;/li&gt;
&lt;li&gt;Improving readability with Copilot Edits: grouping variables, adding a new class, and nesting methods&lt;/li&gt;
&lt;li&gt;Using a Copilot instructions file to enforce team coding standards (HTML5 meta tags, JSDoc comments) in subsequent edits&lt;/li&gt;
&lt;li&gt;Inline chat slash commands: &lt;code&gt;/doc&lt;/code&gt; to generate documentation for a function and &lt;code&gt;/explain&lt;/code&gt; to learn about an unfamiliar concept (torus topology)&lt;/li&gt;
&lt;li&gt;Using Copilot Extensions to integrate Copilot&amp;rsquo;s natural language interface with external tools and services&lt;/li&gt;
&lt;li&gt;Generating a project README with Copilot Edits, summarising the app, implementation, and contribution guidelines&lt;/li&gt;
&lt;li&gt;Writing a GitHub Actions deployment workflow to publish the static site to GitHub Pages&lt;/li&gt;
&lt;li&gt;Using Copilot to suggest a commit message, committing, pushing, and verifying the live GitHub Pages deployment&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Govern your repositories with push rulesets</title><link>https://chrisreddington.com/video/2024-12-14-push-rulesets/</link><pubDate>Sat, 14 Dec 2024 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2024-12-14-push-rulesets/</guid><description>&lt;p&gt;This is a demo video showcasing repository push rulesets. The video covers the following specific topics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use cases for push rulesets: protecting sensitive files like GitHub Actions workflow YAML files, and enforcing code hygiene by blocking large or unwanted file types&lt;/li&gt;
&lt;li&gt;Configuring push rules based on file path patterns, file extensions, and file sizes&lt;/li&gt;
&lt;li&gt;How a blocked push appears to the developer (clear rejection message in the terminal)&lt;/li&gt;
&lt;li&gt;Adding bypass rules to allow specific individuals or roles to override the rule when authorised&lt;/li&gt;
&lt;li&gt;Viewing the push insights dashboard to audit blocked push attempts and any bypass activity&lt;/li&gt;
&lt;li&gt;Scope of push rulesets: rules apply to the entire fork network of a repository, protecting all entry points&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>How to use Copilot Workspace for inspiration</title><link>https://chrisreddington.com/video/2024-05-01-copilot-workspace-template-repo/</link><pubDate>Wed, 01 May 2024 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/2024-05-01-copilot-workspace-template-repo/</guid><description>&lt;p&gt;This is a demo video for the technical preview of GitHub Copilot Workspace. The video covers the following specific topics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Starting Copilot Workspace from a GitHub template repository as a creative springboard&lt;/li&gt;
&lt;li&gt;Generating a specification that outlines the current state (template) and proposed state (customised to-do app)&lt;/li&gt;
&lt;li&gt;Progressing from specification to a step-by-step implementation plan&lt;/li&gt;
&lt;li&gt;Using the live app preview pane alongside the plan and code for in-flow iteration&lt;/li&gt;
&lt;li&gt;Streaming code changes into the environment and installing new npm dependencies via the integrated terminal&lt;/li&gt;
&lt;li&gt;Using undo/redo to navigate through Copilot Workspace change history while the live preview updates in sync&lt;/li&gt;
&lt;li&gt;Switching to GitHub Codespaces to make direct code edits (layout, styling, form) that sync back into Copilot Workspace&lt;/li&gt;
&lt;li&gt;Sharing the in-progress workspace with collaborators via the share button&lt;/li&gt;
&lt;li&gt;Creating the repository from Copilot Workspace, which triggers a GitHub Actions build and deployment to production automatically&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Beyond version control: Using GitHub throughout your development lifecycle</title><link>https://chrisreddington.com/talk/ddd-north-beyond-version-control/</link><pubDate>Sat, 02 Mar 2024 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/ddd-north-beyond-version-control/</guid><description>&lt;p&gt;GitHub is well-known for version control, and its work with the open source community. But did you know you can use GitHub throughout your development lifecycle?&lt;/p&gt;
&lt;p&gt;Join Chris Reddington from GitHub&amp;rsquo;s Developer Relations team as he explores how you can use GitHub to plan, code, build, and deploy your work. Learn how the platform comes together in GitHub Issues, Projects, Codespaces, Actions, Copilot and Advanced Security!&lt;/p&gt;</description></item><item><title>Automate Azure infrastructure change reviews by using Bicep and GitHub</title><link>https://chrisreddington.com/video/automate-azure-infrastructure-change-reviews-by-using-bicep-and-github/</link><pubDate>Wed, 25 Jan 2023 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/automate-azure-infrastructure-change-reviews-by-using-bicep-and-github/</guid><description>&lt;p&gt;Add checks to pull requests that run automatically during your code reviews. Run the Bicep linter on your code, and deploy the resources to a temporary environment to enable further automated and manual testing.&lt;/p&gt;</description></item><item><title>Test your Bicep code by using GitHub Actions</title><link>https://chrisreddington.com/video/test-your-bicep-code-by-using-github-actions/</link><pubDate>Wed, 14 Dec 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/test-your-bicep-code-by-using-github-actions/</guid><description>&lt;p&gt;Validate and test your Bicep code in your deployment workflow. You&amp;rsquo;ll use linting, preflight validation, and the what-if operation to validate your Azure changes before you deploy, and you&amp;rsquo;ll test your resources after each deployment.&lt;/p&gt;</description></item><item><title>Passwordless deployments to Microsoft Azure with GitHub Actions</title><link>https://chrisreddington.com/talk/southcoast-passwordless-deployments-to-azure/</link><pubDate>Sat, 15 Oct 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/southcoast-passwordless-deployments-to-azure/</guid><description/></item><item><title>End-to-end InnerSourcing and Secure Development with GitHub</title><link>https://chrisreddington.com/talk/devoxx-belgium-2022-end-to-end-innersourcing/</link><pubDate>Thu, 13 Oct 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/devoxx-belgium-2022-end-to-end-innersourcing/</guid><description/></item><item><title>ToolUp Days #14</title><link>https://chrisreddington.com/video/toolup-days-14/</link><pubDate>Fri, 07 Oct 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/toolup-days-14/</guid><description>&lt;p&gt;ToolUp Days is all about showing the thought process and decisions made when creating an application from scratch. In this episode, Chris and Matt tackle the messy reality of developer environment drift — different machines, multiple WSL variants, forgotten installs — and make the case for a Codespaces-first workflow backed by a declarative dev container.&lt;/p&gt;
&lt;h2 id="the-problem-environment-drift"&gt;The Problem: Environment Drift&lt;/h2&gt;
&lt;p&gt;After several sessions where progress stalled because neither host could reproduce their earlier setup, the team decides to invest time in a reproducible development environment. Chris has also recently migrated the project&amp;rsquo;s Azure resources to a new tenant, which becomes an unexpected validation of the earlier OpenID Connect and GitHub Actions work: apart from updating a single OIDC connection, the entire deployment pipeline continued working across a new subscription and tenant.&lt;/p&gt;</description></item><item><title>ToolUp Days #13</title><link>https://chrisreddington.com/video/toolup-days-13/</link><pubDate>Tue, 20 Sep 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/toolup-days-13/</guid><description>&lt;p&gt;Coming off a session where the World Events Engine was &amp;ldquo;deployed but not quite working,&amp;rdquo; Chris and Matt open this episode by pulling up the Azure Container Apps logs and working methodically through the failure chain. What follows is a live debugging session that touches container image authentication, GitHub Actions permission models, Dapr component configuration, and storage queue message formatting.&lt;/p&gt;
&lt;h2 id="tracing-the-container-startup-failure"&gt;Tracing the container startup failure&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Container image pull failure&lt;/strong&gt; — logs show the engine container failing with an image pull error against the GitHub Container Registry. Comparing the IaC for the working Player State container app against the World Events Engine IaC reveals the root cause: a registry credentials block (&lt;code&gt;loginServer&lt;/code&gt;, &lt;code&gt;username&lt;/code&gt;, &lt;code&gt;password&lt;/code&gt;) was never added when the World Events Engine IaC was created — a copy-paste omission that had gone unnoticed.&lt;/p&gt;</description></item><item><title>ToolUp Days #12</title><link>https://chrisreddington.com/video/toolup-days-12/</link><pubDate>Tue, 06 Sep 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/toolup-days-12/</guid><description>&lt;p&gt;With the game&amp;rsquo;s microservices architecture designed and a clear definition of done in hand, Chris and Matt turn their attention to getting the &lt;strong&gt;World Events Engine&lt;/strong&gt; working end-to-end. The session opens with an unexpected obstacle: Chris had inadvertently broken all the GitHub Actions builds in the run-up to the stream.&lt;/p&gt;
&lt;h2 id="diagnosing-the-github-actions-deployment-bug"&gt;Diagnosing the GitHub Actions deployment bug&lt;/h2&gt;
&lt;p&gt;Two workflows were triggered simultaneously, both defaulting to the same container name (derived from the workflow filename). Deploying two Azure Container App revisions with identical names into the same resource group created a race condition — one deployment could not start because the other was already in progress under the same name.&lt;/p&gt;</description></item><item><title>Automate Azure Role Based Access Control (RBAC) using Github</title><link>https://chrisreddington.com/video/automate-azure-rbac-using-github/</link><pubDate>Thu, 25 Aug 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/automate-azure-rbac-using-github/</guid><description>&lt;p&gt;Managing Azure Role-Based Access Control (RBAC) manually is one of those governance problems that scales badly — custom role definitions drift, changes lack audit trails, and there is no systematic way to review or approve modifications. In this episode, Chris is joined by Marcel Lupo, DevOps MVP and Solutions Architect at Avanade, who demonstrates a practical approach to automating the entire RBAC role definition lifecycle using GitHub Actions.&lt;/p&gt;
&lt;p&gt;This is not a typical &amp;ldquo;developers building applications&amp;rdquo; GitHub story. Marcel focuses on the operational and governance angle: treating Azure RBAC definitions as code, version-controlled in a GitHub repository, with automated CI/CD pipelines to deploy and maintain them. The same composable, public reusability that makes GitHub Actions powerful for application development makes it equally powerful for infrastructure governance.&lt;/p&gt;</description></item><item><title>ToolUp Days #11</title><link>https://chrisreddington.com/video/toolup-days-11/</link><pubDate>Tue, 23 Aug 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/toolup-days-11/</guid><description>&lt;p&gt;This episode marks the official rebrand from &lt;strong&gt;ToolUp Tuesday&lt;/strong&gt; to &lt;strong&gt;ToolUp Days&lt;/strong&gt; — giving Chris and Matt the scheduling flexibility they need to maintain a consistent cadence. After recapping progress (multiple microservices built, GitHub Actions CI/CD in place, container images published, and Infrastructure as Code deployed), the pair set a concrete goal: reach a point where two players can independently make a decision, a &amp;ldquo;tick&amp;rdquo; happens, and there is a winner and a loser.&lt;/p&gt;</description></item><item><title>GitHub Projects is now GA! Automation Updates</title><link>https://chrisreddington.com/blog/github-projects-ga-automation-updates/</link><pubDate>Sun, 31 Jul 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/blog/github-projects-ga-automation-updates/</guid><description>&lt;p&gt;In a couple of previous blog posts, I provided a writeup on the GitHub Projects Beta. I wrote two posts on automation within GitHub Projects (&lt;a href="https://chrisreddington.com/blog/automate-adding-gh-issues-projects-beta-users"&gt;Adding Issues to GitHub Projects with GitHub Actions for a user profile&lt;/a&gt; and &lt;a href="https://chrisreddington.com/blog/automate-adding-gh-issues-projects-beta"&gt;Adding Issues to GitHub Projects with GitHub Actions for an Organization profile&lt;/a&gt;). I&amp;rsquo;m pleased to say that the capabilities went Generally Available last week! As a result of the GA announcement and resulting changes, I need to post updates to my older samples.&lt;/p&gt;</description></item><item><title>ToolUp Day #10</title><link>https://chrisreddington.com/video/toolup-tuesday-10/</link><pubDate>Tue, 26 Jul 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/toolup-tuesday-10/</guid><description>&lt;p&gt;In this episode, Chris and Matt implement federated identity credentials (OIDC) to enable passwordless authentication from GitHub Actions to Azure — eliminating the need for stored secrets. They configure the two-way trust between an Azure App Registration and GitHub, set up OIDC token permissions in their workflow, and successfully deploy Bicep infrastructure as code through their CI/CD pipeline. The pair also plan the transition from deploying infrastructure manually to a fully automated pipeline. The episode ends with a discussion about rebranding the series from &amp;ldquo;ToolUp Tuesday&amp;rdquo; to accommodate flexible scheduling.&lt;/p&gt;</description></item><item><title>GitHub - More than just a Git repository</title><link>https://chrisreddington.com/talk/southcoast-ug-github/</link><pubDate>Tue, 07 Jun 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/southcoast-ug-github/</guid><description/></item><item><title>ToolUp Tuesday - #7</title><link>https://chrisreddington.com/video/toolup-tuesday-7/</link><pubDate>Tue, 17 May 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/toolup-tuesday-7/</guid><description>&lt;p&gt;In this episode of ToolUp Tuesday, Chris and Matt take their Go-based microservices and package them as Docker container images for the first time. They walk through creating Dockerfiles, setting up GitHub Actions workflows to build and push images, and publishing to GitHub Packages container registry using the built-in GITHUB_TOKEN for authentication. Along the way they discuss container fundamentals — the difference between images and containers, why containers solve the &amp;ldquo;works on my machine&amp;rdquo; problem, and how to use environment variables in workflows for clean, maintainable CI/CD pipelines. The episode also covers managing container image versions and permissions within a GitHub organization.&lt;/p&gt;</description></item><item><title>Using GitHub Actions to summarise your Go tests</title><link>https://chrisreddington.com/blog/githubactions-testsummary-go/</link><pubDate>Mon, 16 May 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/blog/githubactions-testsummary-go/</guid><description>&lt;p&gt;GitHub recently posted about a new GitHub Action that can be used to summarise your test results. The action is called &lt;code&gt;test-summary/action&lt;/code&gt;, available at &lt;a href="https://github.com/test-summary/action"&gt;github.com/test-summary/action&lt;/a&gt;. There are several examples on how to use the action at &lt;a href="https://github.com/test-summary/examples"&gt;github.com/test-summary/examples&lt;/a&gt;. However, there were no examples on how to use this with Go. I &lt;a href="https://github.com/test-summary/examples/pull/1"&gt;contributed a pull request&lt;/a&gt; which showed how to achieve this. In this post, I will show how to use the action with Go.&lt;/p&gt;</description></item><item><title>Creating a Portfolio Using Azure Static Web Apps</title><link>https://chrisreddington.com/talk/learn-ambassadors-swa/</link><pubDate>Wed, 20 Apr 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/learn-ambassadors-swa/</guid><description/></item><item><title>Deploying Static sites to Azure the cheap and performant way</title><link>https://chrisreddington.com/talk/azure-ug-sweden-static/</link><pubDate>Sat, 02 Apr 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/azure-ug-sweden-static/</guid><description/></item><item><title>Deploying Static sites to Azure the cheap and performant way</title><link>https://chrisreddington.com/talk/melbourne-azure-ug-static-content/</link><pubDate>Tue, 22 Mar 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/melbourne-azure-ug-static-content/</guid><description/></item><item><title>Using GitHub Actions, Azure Functions, Azure API Management and Google Analytics to display top posts on a Hugo Static Site</title><link>https://chrisreddington.com/blog/top-posts-google-analytics-hugo-azure-functions-apim/</link><pubDate>Sun, 13 Mar 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/blog/top-posts-google-analytics-hugo-azure-functions-apim/</guid><description>&lt;p&gt;In this post, I show how I use GitHub Actions to call an Azure Function (through Azure API Management) which interacts with Google Analytics as part of the process to build my Hugo Static Site. The end result is that top posts are pulled into the Static Site Generation build process, rather than calling the Google Analytics API through JavaScript at runtime.&lt;/p&gt;
&lt;p&gt;&lt;img src="images/example-website-ui.png" alt="Example of the Cloud With Chris Landing page showing the top posts populated through the Google Analytics API" title="Example of the Cloud With Chris Landing page showing the top posts populated through the Google Analytics API"&gt;&lt;/p&gt;</description></item><item><title>GitHub - More than a Git repo</title><link>https://chrisreddington.com/talk/maug-github-more-than-just-a-git-repo/</link><pubDate>Wed, 09 Mar 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/maug-github-more-than-just-a-git-repo/</guid><description/></item><item><title>ToolUp Tuesday - #3</title><link>https://chrisreddington.com/video/toolup-tuesday-3/</link><pubDate>Tue, 08 Mar 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/toolup-tuesday-3/</guid><description>&lt;p&gt;Chris and Matt tackle the world events engine, opening the project in Visual Studio for its stronger .NET development experience compared to VS Code. They connect the engine to the Player State models using .NET project references — acknowledging it as a pragmatic but temporary shortcut that will need refactoring into proper NuGet packages later.&lt;/p&gt;
&lt;p&gt;The episode dives into game design architecture, conceptualizing the engine as a state machine that loads current world state, applies player inputs and world events, and produces updated state. They design an action points system where players spend points to make decisions each turn, with costs varying by action type. The discussion also covers github.dev for browser-based editing, and they plan to build the player decisions API in Go for the next episode.&lt;/p&gt;</description></item><item><title>Tech Roundup - February 2022</title><link>https://chrisreddington.com/video/tech-roundup-2202/</link><pubDate>Sun, 27 Feb 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/tech-roundup-2202/</guid><description>&lt;p&gt;Stay up to date with everything that happened across Azure, GitHub, and Azure DevOps in February 2022. Chris walks through the month&amp;rsquo;s most important announcements and shares what he&amp;rsquo;s been building at Cloud With Chris.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GitHub highlights&lt;/strong&gt; include GitHub Actions now supporting OpenID Connect (OIDC) for deploying Azure Static Web Apps without long-lived secrets, GitHub Projects beta updates (flexible iterations and insights filtering), Codespaces and CLI improvements, and the GitHub App for Microsoft Teams and Slack for faster PR reviews.&lt;/p&gt;</description></item><item><title>ToolUp Tuesday #2</title><link>https://chrisreddington.com/video/toolup-tuesday-2/</link><pubDate>Tue, 22 Feb 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/toolup-tuesday-2/</guid><description>&lt;p&gt;Chris and Matt move from planning to coding, creating the Player State API as a .NET Web API project. They define data models representing player state for the SpaceBar management sim, debating how deep and detailed the models should go. The episode covers practical .NET development decisions, including the trade-offs between minimal API patterns and traditional controller-based approaches, with a preference for controllers for better logical grouping.&lt;/p&gt;
&lt;p&gt;The pair also set up their first GitHub Actions CI workflow, walking through YAML syntax for building the .NET project on push to main. They troubleshoot the workflow live — discovering they forgot the checkout step — and iterate until the build succeeds. GitHub Copilot makes a brief appearance as a code suggestion tool during API scaffolding.&lt;/p&gt;</description></item><item><title>Using GitHub Actions and OpenID Connect to deploy Static Web Apps to Azure</title><link>https://chrisreddington.com/blog/using-oidc-github-actions-azure-swa/</link><pubDate>Tue, 22 Feb 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/blog/using-oidc-github-actions-azure-swa/</guid><description>&lt;p&gt;Back in November, &lt;a href="https://github.blog/changelog/2021-11-23-secure-cloud-deployments-with-oidc-is-now-ga/"&gt;GitHub announced its OpenID Connect capability for cloud deployments was generally available&lt;/a&gt;. This has been on my list to try out, and I finally managed to get around to it! With scenarios like this, I prefer to do something real and hands-on, rather than mocked, or a proof of concept. I decided to refactor my GitHub Action workflows for &lt;a href="https://www.cloudwithchris.com"&gt;cloudwithchris.com&lt;/a&gt;, removing the need for secrets stored in GitHub. In this post, I outline my journey through this.&lt;/p&gt;</description></item><item><title>Automate adding GitHub Issues to GitHub Projects (Beta) in a repository owned by a user</title><link>https://chrisreddington.com/blog/automate-adding-gh-issues-projects-beta-users/</link><pubDate>Thu, 10 Feb 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/blog/automate-adding-gh-issues-projects-beta-users/</guid><description>&lt;p&gt;&lt;strong&gt;Update: This information is now outdated. Please see my post since &lt;a href="https://chrisreddington.com/blog/github-projects-ga-automation-updates"&gt;GitHub Projects Went Generally Available&lt;/a&gt;, as there are some APIs used in this example which &lt;a href="https://github.blog/changelog/2022-06-23-the-new-github-issues-june-23rd-update/#%F0%9F%A4%96-graphql-api-improvements"&gt;will be deprecated in October 2022&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I recently &lt;a href="https://chrisreddington.com/blog/automate-adding-gh-issues-projects-beta"&gt;wrote a blog post&lt;/a&gt; on using GitHub Actions to automatically add a GitHub Issue to a &lt;a href="https://github.com/features/issues"&gt;GitHub Projects (beta)&lt;/a&gt; when an issue is opened. I received a question from my colleague and maintainer of the &lt;a href="https://promitor.io/"&gt;promitor&lt;/a&gt; and &lt;a href="https://keda.sh/"&gt;KEDA&lt;/a&gt; Open Source (OSS) Projects, &lt;a href="https://twitter.com/TomKerkhove"&gt;Tom Kerkhove&lt;/a&gt; on using the sample with a user-owned GitHub repository, rather than an organisation-owned one.&lt;/p&gt;</description></item><item><title>Automate adding GitHub Issues to GitHub Projects (Beta) in a GitHub organisation</title><link>https://chrisreddington.com/blog/automate-adding-gh-issues-projects-beta/</link><pubDate>Sat, 05 Feb 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/blog/automate-adding-gh-issues-projects-beta/</guid><description>&lt;p&gt;&lt;strong&gt;Update: This information is now outdated. Please see my post since &lt;a href="https://chrisreddington.com/blog/github-projects-ga-automation-updates"&gt;GitHub Projects Went Generally Available&lt;/a&gt;, as there are some APIs used in this example which &lt;a href="https://github.blog/changelog/2022-06-23-the-new-github-issues-june-23rd-update/#%F0%9F%A4%96-graphql-api-improvements"&gt;will be deprecated in October 2022&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been following the &lt;a href="https://github.com/features/issues"&gt;GitHub Projects beta&lt;/a&gt; for a while now, and have been fortunate to be accepted as an early adopter. I&amp;rsquo;m a big fan of the direction, and the flexibility that it provides. One of the limitations I&amp;rsquo;ve noticed is that there&amp;rsquo;s currently no built-in way to automatically add an issue to a project board (and &lt;a href="https://github.com/github/feedback/discussions/5378"&gt;I&amp;rsquo;m not the only one!&lt;/a&gt;). It&amp;rsquo;s &lt;a href="https://github.com/github/roadmap/issues/286"&gt;on the backlog&lt;/a&gt; but not yet available. Fortunately, GitHub Actions has us sorted. I&amp;rsquo;ll walk you through a sample that I put together to do exactly that.&lt;/p&gt;</description></item><item><title>Tech Roundup - January 2022</title><link>https://chrisreddington.com/video/tech-roundup-2201/</link><pubDate>Sun, 30 Jan 2022 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/tech-roundup-2201/</guid><description>&lt;p&gt;Your monthly digest covering Azure, GitHub, and Azure DevOps updates — so you don&amp;rsquo;t have to keep up with it all yourself!&lt;/p&gt;
&lt;p&gt;In this January 2022 edition, Chris returns to Cloud With Chris after a break and opens with an honest account of his mental health journey — including depression, anxiety, and the importance of asking for support. He then covers:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cloud With Chris Updates&lt;/strong&gt;
A retrospective on 2021 content performance, the shift from weekly to monthly roundups, and upcoming changes to the channel format and content cadence.&lt;/p&gt;</description></item><item><title>Deploying Static Sites to Azure the cheap and performant way</title><link>https://chrisreddington.com/talk/southcoast-deploying-static-sites/</link><pubDate>Sat, 16 Oct 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/southcoast-deploying-static-sites/</guid><description/></item><item><title>V038 / V039 - Weekly Technology Vlog #38 and #39</title><link>https://chrisreddington.com/video/weekly-vlog-039/</link><pubDate>Sun, 26 Sep 2021 09:30:00 +0000</pubDate><guid>https://chrisreddington.com/video/weekly-vlog-039/</guid><description>&lt;p&gt;A bumper double episode covering two weeks of cloud updates after Chris returns from vacation. On the Azure side, highlights include AKS scale down modes for faster node scaling, custom policy definitions for AKS clusters, Cosmos DB Azure Functions extension v4 with managed identity support, Azure Functions runtime 4.0 with .NET 6, and SQL Managed Instance arriving in the Terraform registry.&lt;/p&gt;
&lt;p&gt;The Azure DevOps blog roundup features programming for accessibility with Rory Preddy, leveling up with Bicep alongside April Edwards and John Downs, Azure DevOps audit streaming, and secretless application patterns using managed identities. GitHub updates include CLI 2.0, Advanced Security secret scanning REST API, audit log streaming in public beta, advisory database support for Rust, and new npm access token formats. Chris also previews upcoming community talks on Azure Arc for applications, static web app deployments, and the Cloud Adoption Framework.&lt;/p&gt;</description></item><item><title>Tales from the Real World on DevOps</title><link>https://chrisreddington.com/video/devops-tales-from-the-real-world/</link><pubDate>Fri, 17 Sep 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/devops-tales-from-the-real-world/</guid><description>&lt;p&gt;In this episode Chris is joined by &lt;a href="https://thomasthornton.cloud"&gt;Thomas Thornton&lt;/a&gt;, a DevOps specialist at Kainos in Belfast, for a grounded, real-world discussion on what DevOps actually looks like at scale.&lt;/p&gt;
&lt;h2 id="whats-covered"&gt;What&amp;rsquo;s covered&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DevOps as culture&lt;/strong&gt; — why DevOps is far more than a buzzword, and how to bring stakeholders beyond dev and ops into the conversation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Version control fundamentals&lt;/strong&gt; — why getting Git right is the prerequisite to everything else in a CI/CD workflow&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Branching strategies&lt;/strong&gt; — trunk-based development vs. feature branches, managing environment drift, and when fewer branches is better&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CI/CD pipeline design&lt;/strong&gt; — starting simple, avoiding over-engineering, and incrementally adding checks and quality gates&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Infrastructure as Code&lt;/strong&gt; — using Terraform modules vs. copy-paste resources, and the long-term payoff of DRY pipelines&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kubernetes and GitOps&lt;/strong&gt; — how pull-based GitOps (e.g. Flux/ArgoCD) enables scalable, consistent deployments across 120+ applications and multiple clusters&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Practical advice for all levels&lt;/strong&gt; — tips for those just starting out, those mid-journey, and those looking to take a mature DevOps practice further&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thomas brings examples from a real environment spanning 83 Azure subscriptions, making this one of the most grounded DevOps conversations on the channel.&lt;/p&gt;</description></item><item><title>Getting into DevRel</title><link>https://chrisreddington.com/video/tales-from-real-world-get-into-devrel/</link><pubDate>Fri, 27 Aug 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/tales-from-real-world-get-into-devrel/</guid><description>&lt;p&gt;What is Developer Relations (DevRel), and how do you build a career in it? Chris is joined by Martin Woodward — Director of Developer Relations at GitHub, and the person who brought Git into Microsoft — who shares his journey from developer at banks and insurance firms, through building and selling an open source project to Microsoft, to leading developer community work at scale.&lt;/p&gt;
&lt;p&gt;Topics covered include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The open source contribution funnel&lt;/strong&gt; — from passive consumer to active contributor to project co-maintainer, and how to optimise each stage&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Community leadership vs DevRel&lt;/strong&gt; — the difference between volunteering for community and being paid to do it as your job&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Giving vs taking&lt;/strong&gt; — why it is okay to contribute to open source for selfish reasons, and when it is right to walk away to avoid burnout&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub Actions as a community case study&lt;/strong&gt; — how a simple, composable automation concept grew to over 9,000 marketplace actions and outpaced older CI/CD ecosystems&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Building a DevRel profile&lt;/strong&gt; — content creation, presenting at meetups and conferences, podcasting, and streaming as ways to practise and demonstrate skills&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Handling feedback and trolls&lt;/strong&gt; — assuming best intent, recognising deliberate emotional DDoS tactics, and the accountability that comes with a large community&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Positioning yourself for rare DevRel roles&lt;/strong&gt; — building your network, specialising in a domain, and creating a body of work before the opportunity arises&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Discussing the Cloud with Chris Integration Platform</title><link>https://chrisreddington.com/video/discussing-cloud-with-chris-integration/</link><pubDate>Thu, 19 Aug 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/discussing-cloud-with-chris-integration/</guid><description>&lt;p&gt;Chris is joined by Karl Cooke (&lt;a href="https://irishtechie.com"&gt;IrishTechie.com&lt;/a&gt;) for a deep dive into the CloudWithChris.com integration platform — a real-world Azure integration architecture built to automate content distribution across social platforms and amplify updates from the Azure, GitHub, and Azure DevOps blogs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What&amp;rsquo;s covered:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Architecture overview: Azure Functions, Azure Service Bus topics and queues, Azure Table Storage, and Azure Logic Apps&lt;/li&gt;
&lt;li&gt;A Vue.js management UI for approving and scheduling posts before they go out&lt;/li&gt;
&lt;li&gt;Automated posting to Twitter, LinkedIn, Facebook, and Reddit — including amplification of third-party content&lt;/li&gt;
&lt;li&gt;Custom URL shortening via an Azure Function to track per-platform traffic in Google Analytics&lt;/li&gt;
&lt;li&gt;Integration with Buffer for time-slot scheduling, with plans to replace it with a native solution&lt;/li&gt;
&lt;li&gt;Security considerations for Azure Functions (access tokens, JWT roadmap)&lt;/li&gt;
&lt;li&gt;How Google Analytics revealed that Reddit and Twitter drive the most referral traffic&lt;/li&gt;
&lt;li&gt;Open-source plans and community contribution opportunities&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Whether you&amp;rsquo;re a developer, blogger, or content creator, this session is packed with practical ideas for applying Azure integration services to automate the repetitive parts of your workflow.&lt;/p&gt;</description></item><item><title>V030 - Sailing the Sea of Thieves while talking Cloud</title><link>https://chrisreddington.com/video/weekly-vlog-030/</link><pubDate>Sun, 25 Jul 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/weekly-vlog-030/</guid><description>&lt;p&gt;Chris and Simon team up for a Sea of Thieves gaming session while diving into the week&amp;rsquo;s cloud news and community updates. The episode covers Azure Firewall Premium and its next-gen capabilities including TLS inspection, IDPS, URL filtering, and web category filtering — along with the pricing differences compared to Firewall Standard. Chris also discusses how 5G and cloud computing intersect for IoT and edge device scenarios.&lt;/p&gt;
&lt;p&gt;On the community side, the episode highlights a Cloud With Chris session on using GitHub Actions to build and deploy static websites, plus a conversation with JJ Asghar about lessons learned from cultivating open source projects and communities. Simon shares his progress studying for the AZ-900 certification using Pluralsight and Whizlabs practice exams, touching on how community involvement and osmosis learning contribute to cloud knowledge.&lt;/p&gt;</description></item><item><title>Cloud Drops - What is Continuous Integration (CI)?</title><link>https://chrisreddington.com/video/cloud-drops-what-is-continuous-integration/</link><pubDate>Tue, 20 Jul 2021 00:01:00 +0000</pubDate><guid>https://chrisreddington.com/video/cloud-drops-what-is-continuous-integration/</guid><description>&lt;p&gt;Modern software teams use version control branches so engineers can develop independently without blocking each other. Continuous Integration formalises the step of merging those branches back into the main codebase by requiring every change to pass an automated build and test suite before it can be accepted. Tools like GitHub Actions and Azure Pipelines automate compilation, unit tests, integration tests, and other quality checks triggered on every pull request, providing rapid feedback — if a build breaks or tests fail, the engineer knows immediately rather than discovering hard-to-trace bugs later in production.&lt;/p&gt;</description></item><item><title>How GitHub Actions can help in building and deploying a static website and more</title><link>https://chrisreddington.com/talk/azure-thames-github-deploying-static-content/</link><pubDate>Tue, 20 Jul 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/azure-thames-github-deploying-static-content/</guid><description/></item><item><title>V029 - Sailing the Sea of Thieves while talking Cloud</title><link>https://chrisreddington.com/video/weekly-vlog-029/</link><pubDate>Sun, 18 Jul 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/weekly-vlog-029/</guid><description>&lt;p&gt;In this combined gaming and tech update session, Chris is joined by community members James Cook, Simon, and Dean for a Sea of Thieves adventure while weaving in weekly cloud news and updates.&lt;/p&gt;
&lt;h2 id="azure-blogs"&gt;Azure Blogs&lt;/h2&gt;
&lt;p&gt;Chris covers three Azure blog posts focused on optimizing cloud spend with cost management tools (Azure Advisor, pricing calculator, and consistent dollar-based pricing across regions), a recap of July cost management updates including App Service Environment v3 savings and new free services, and the growing importance of sustainability and carbon footprint reduction through cloud adoption.&lt;/p&gt;</description></item><item><title>Using the GitHub self-hosted runner and Azure Virtual Machines to login with a System Assigned Managed Identity</title><link>https://chrisreddington.com/blog/github-selfhosted-runner-on-azure/</link><pubDate>Mon, 14 Jun 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/blog/github-selfhosted-runner-on-azure/</guid><description>&lt;p&gt;I recently started thinking about the typical setup process for a GitHub Action Workflow which will requires access to Azure. Typically, the process is to use the &lt;code&gt;Azure/login&lt;/code&gt; GitHub Action, and then use the &lt;code&gt;azure/cli&lt;/code&gt; or another Azure GitHub Action to deploy into GitHub. This is a nice approach. However, from my initial research - I wasn&amp;rsquo;t able to see a way use the &lt;code&gt;Azure/login&lt;/code&gt; GitHub Action to deploy into Azure using a System Assigned Managed Identity. This got me wondering&amp;hellip; Is this possible?&lt;/p&gt;</description></item><item><title>V024 - Weekly Technology Vlog #24</title><link>https://chrisreddington.com/video/weekly-vlog-024/</link><pubDate>Mon, 14 Jun 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/weekly-vlog-024/</guid><description>&lt;p&gt;Vlog #24 came to you on a Monday morning — a sunny weekend meant Sunday&amp;rsquo;s scheduled recording was skipped in favour of family celebrations. Same great content, one day later.&lt;/p&gt;
&lt;h2 id="azure-news"&gt;Azure News&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Azure Virtual Desktop&lt;/strong&gt; (the newly rebranded Windows Virtual Desktop) continued to generate buzz, with Azure Active Directory support, multi-session Windows 10 Enterprise VM management, and expanded enterprise scenarios all now available.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Azure API for FHIR&lt;/strong&gt; update highlighted compliance deadlines relevant to healthcare organisations using the CMS Patient Access and Provider Directory APIs.&lt;/p&gt;</description></item><item><title>Static Web Apps in Azure | DEVREAL.io</title><link>https://chrisreddington.com/talk/devreal-static-webapps/</link><pubDate>Wed, 09 Jun 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/devreal-static-webapps/</guid><description/></item><item><title>Discussing the Cloud with Chris GitHub Actions Usage</title><link>https://chrisreddington.com/video/discussing-cloud-with-chris-github-action-usage/</link><pubDate>Mon, 07 Jun 2021 20:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/discussing-cloud-with-chris-github-action-usage/</guid><description>&lt;p&gt;Chris is joined by Karl Cooke (IrishTechie) for a live deep-dive into the GitHub Actions workflows powering CloudWithChris.com. They explore why GitHub was chosen over Azure DevOps, walk through a real-world CI/CD pipeline for a Hugo static site deployed to Azure Blob Storage with CDN purging, and examine how to manage secrets and approvals using GitHub Environments. The session also covers linting Markdown with GitHub Super Linter, early thinking on Playwright-based UI tests, the security considerations around third-party actions from the marketplace, and building a custom .NET GitHub Action for content cross-posting.&lt;/p&gt;</description></item><item><title>V023 - Weekly Technology Vlog #23</title><link>https://chrisreddington.com/video/weekly-vlog-023/</link><pubDate>Sun, 06 Jun 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/weekly-vlog-023/</guid><description>&lt;p&gt;In weekly vlog #23, Chris covers a packed week of Azure, Azure DevOps, and GitHub news alongside a series of Cloud with Chris episode recaps.&lt;/p&gt;
&lt;h2 id="azure-news"&gt;Azure News&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Azure Virtual Desktop&lt;/strong&gt; (formerly Windows Virtual Desktop) received a full rebrand and platform update, adding Azure Active Directory support, multi-session Windows 10 Enterprise VM management, and quick-start application scenarios — a timely evolution for a service that kept organisations productive throughout the pandemic.&lt;/p&gt;</description></item><item><title>V022 - Weekly Technology Vlog #22</title><link>https://chrisreddington.com/video/weekly-vlog-022/</link><pubDate>Sun, 30 May 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/weekly-vlog-022/</guid><description>&lt;p&gt;Welcome to Weekly Vlog #22! This episode is a dedicated Microsoft Build 2021 recap — Chris not only walks through the headline announcements but also shares his experience presenting at the conference and reflects on the week&amp;rsquo;s standout moments.&lt;/p&gt;
&lt;h2 id="chris-at-microsoft-build"&gt;Chris at Microsoft Build&lt;/h2&gt;
&lt;p&gt;Chris presented &lt;em&gt;Creating Friction-Free Code Across All Tools and Frameworks&lt;/em&gt; alongside Dean Brian and Carol Logan, showcasing an end-to-end workflow with &lt;strong&gt;Blazor&lt;/strong&gt;, &lt;strong&gt;GitHub Codespaces&lt;/strong&gt;, &lt;strong&gt;GitHub Actions&lt;/strong&gt;, and &lt;strong&gt;Azure Static Web Apps&lt;/strong&gt; — recovering live demo issues on-stage in true developer fashion. The session also spotlighted UK developer communities (Thames Valley Azure, Cloud Security London, and carol&amp;rsquo;s Glasgow groups) to encourage broader community engagement.&lt;/p&gt;</description></item><item><title>UK Community Session: Create friction-free code across all tools and frameworks</title><link>https://chrisreddington.com/talk/build-2021-uk-community/</link><pubDate>Wed, 26 May 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/build-2021-uk-community/</guid><description/></item><item><title>How GitHub Actions can help in building and deploying a static website and more</title><link>https://chrisreddington.com/talk/devops-notts-github-deploying-static-content/</link><pubDate>Tue, 25 May 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/devops-notts-github-deploying-static-content/</guid><description/></item><item><title>V021 - Weekly Technology Vlog #21</title><link>https://chrisreddington.com/video/weekly-vlog-021/</link><pubDate>Sun, 23 May 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/weekly-vlog-021/</guid><description>&lt;p&gt;Welcome to Weekly Vlog #21! This week is a focused build-up episode ahead of Microsoft Build, with Chris previewing his upcoming conference presentation and covering a compact but impactful set of Azure and GitHub updates alongside a hands-on Application Insights deep dive.&lt;/p&gt;
&lt;h2 id="upcoming-chris-at-microsoft-build"&gt;Upcoming: Chris at Microsoft Build&lt;/h2&gt;
&lt;p&gt;Chris will be presenting at &lt;strong&gt;Microsoft Build on Wednesday 26th May at 14:30 UTC&lt;/strong&gt; alongside Dean Brian and Carol Logan. The session — &lt;em&gt;Creating Friction-Free Code Across All Tools and Frameworks&lt;/em&gt; — demonstrates an end-to-end developer workflow using &lt;strong&gt;GitHub Codespaces&lt;/strong&gt;, &lt;strong&gt;GitHub Actions&lt;/strong&gt;, and &lt;strong&gt;Azure Static Web Apps&lt;/strong&gt;, with a spotlight on UK developer communities and meetup groups.&lt;/p&gt;</description></item><item><title>V020 - Weekly Technology Vlog #20</title><link>https://chrisreddington.com/video/weekly-vlog-020/</link><pubDate>Sun, 16 May 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/weekly-vlog-020/</guid><description>&lt;p&gt;Welcome to Weekly Vlog #20 — a celebration episode! Chris hits his 2021 goal of 500 YouTube subscribers way ahead of schedule (now at 506), then recaps one of the most content-rich weeks on the channel to date before diving into a bumper set of Azure and GitHub updates.&lt;/p&gt;
&lt;h2 id="cloud-with-chris--a-record-week-of-content"&gt;Cloud with Chris — A Record Week of Content&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Azure Pipelines as Code&lt;/strong&gt;: A detailed blog post and companion Cloud Drop walking through YAML pipeline best practices — branch policies, test stage separation, and the tangible benefits of treating CI/CD configuration as versioned code.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure in a Nutshell&lt;/strong&gt; (devriel.io): A live session covering core Azure concepts aligned to the AZ-900 fundamentals syllabus.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Event-Driven Architecture with Azure Event Grid&lt;/strong&gt;: A blog post and Cloud Drop exploring how to chain Azure Event Grid, Blob Storage, Storage Queues, and Azure Functions to build a reliable, event-driven file processing workflow — including a discussion on the difference between messages and events.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloud Lunch and Learn Marathon&lt;/strong&gt;: Three pre-recorded sessions: &lt;em&gt;Requirements, Design Patterns &amp;amp; Cloud Architecture Oh My&lt;/em&gt;, &lt;em&gt;GitHub Actions for Static Sites&lt;/em&gt;, and &lt;em&gt;Hugo + Azure Storage + Azure CDN for a cheap and performant site&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mental Health Live Stream&lt;/strong&gt; with Andrew Nathan and Will Owen: A candid, non-clinical conversation sharing personal experiences to encourage open dialogue around mental health in the tech community.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloud Drop with Jamie McGuire&lt;/strong&gt;: Social Opinion — a SaaS platform for social media analytics and tweet scheduling — and Jamie&amp;rsquo;s journey from data science research into building a production service.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="azure-highlights"&gt;Azure Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Azure Static Web Apps is now GA&lt;/strong&gt;: The headline announcement of the week. Features include globally distributed CDN, built-in CI/CD workflows from GitHub, serverless API integration via Azure Functions, custom domains with free SSL certificates, OAuth authentication providers, role-based routing, and a VS Code extension for local development.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure Health Bot&lt;/strong&gt;: Extended to additional regions and languages for pandemic response symptom checking.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure IoT Central GA&lt;/strong&gt;: API improvements, dashboard updates, IoT Edge enhancements, and device connectivity events.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure API Management GA&lt;/strong&gt;: New certificate validation policy, VS Code extension support for self-hosted gateway debugging, Dapr and validation policy support, and availability zone configuration in the portal.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="github-highlights"&gt;GitHub Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Security Keys for SSH Git Operations&lt;/strong&gt;: Hardware security keys (e.g. YubiKey) can now authenticate SSH-based git operations on GitHub, extending the platform&amp;rsquo;s strong authentication story.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Video Uploads on GitHub&lt;/strong&gt;: Attach MP4 or GIF videos directly to issues, pull requests, and comments from both desktop and mobile — a practical quality-of-life improvement for bug reproduction and open source collaboration.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Cloud Lunch and Learn Marathon 2021 - How GitHub Actions can help in building and deploying a static site and more</title><link>https://chrisreddington.com/talk/cllm-github-deploying-static-content/</link><pubDate>Thu, 13 May 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/cllm-github-deploying-static-content/</guid><description/></item><item><title>Cloud Lunch and Learn Marathon 2021 - Requirements, Design Patterns, Cloud Architecture Oh My</title><link>https://chrisreddington.com/talk/cllm-requirements-design-patterns-oh-my/</link><pubDate>Thu, 13 May 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/cllm-requirements-design-patterns-oh-my/</guid><description/></item><item><title>Cloud Lunch and Learn Marathon 2021 - Using Hugo, Azure Storage and Azure CDN for a cheap &amp; performant site on Azure</title><link>https://chrisreddington.com/talk/cllm-azure-hugo-storage-cdn/</link><pubDate>Thu, 13 May 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/cllm-azure-hugo-storage-cdn/</guid><description/></item><item><title>V019 - Weekly Technology Vlog #19</title><link>https://chrisreddington.com/video/weekly-vlog-019/</link><pubDate>Sun, 09 May 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/weekly-vlog-019/</guid><description>&lt;p&gt;Welcome to Weekly Vlog #19, broadcast live! This week leads with Azure&amp;rsquo;s visual rebrand and covers a wide range of security, platform, and community updates across Azure, GitHub, and Cloud with Chris.&lt;/p&gt;
&lt;h2 id="azure-highlights"&gt;Azure Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New Azure Fluent Design Icon&lt;/strong&gt;: Microsoft&amp;rsquo;s Fluent Design language arrives in Azure with a refreshed icon — widely celebrated across the developer community on social media.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AKS Secret Store CSI Driver Add-on&lt;/strong&gt;: The open-source Secret Store CSI driver is now a managed AKS add-on (alongside App Gateway Ingress Controller and Pod Identity), making Kubernetes secret management significantly simpler.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure Security Center Updates&lt;/strong&gt;: New hybrid and multi-cloud Kubernetes protection via Microsoft Defender for Kubernetes; recommendations for Defender for DNS and Resource Manager; Windows Server 2019 and Windows 10 Virtual Desktop now supported in Defender for Endpoint integration.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure VPN Gateway Enhancements&lt;/strong&gt;: Multi-authentication type support (Azure AD, certificate, RADIUS) on a single gateway, BGP diagnostics, VPN packet capture in the Azure portal, and per-connection reset support.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure Backup for Blobs (GA)&lt;/strong&gt;: Operational backup for block blobs is now generally available.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prevent Shared Key Authorization&lt;/strong&gt;: New control to disable shared key authorization for Azure Storage accounts, improving security posture for teams moving to identity-based access.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="github-highlights"&gt;GitHub Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GitHub Enterprise Server 3.1&lt;/strong&gt;: Now available, adding GitHub Actions visualisations, pull request auto-merge, Advanced Security improvements, and the mono-repo performance enhancements discussed in a prior week&amp;rsquo;s engineering post.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub Release Radar&lt;/strong&gt;: Pulumi 3.0 highlighted — a compelling cross-cloud infrastructure-as-code framework supporting multiple languages; distinct from Terraform&amp;rsquo;s approach.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub Web Components&lt;/strong&gt;: Engineering insight into how GitHub builds and maintains its own open-source UI component library.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Availability Report&lt;/strong&gt;: Transparent post-incident analysis covering a DNS resolution failure affecting GitHub Packages and an elevated API error rate impacting repository creation, with clear remediation steps.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="cloud-with-chris"&gt;Cloud with Chris&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Schema.org SEO blog post&lt;/strong&gt;: How structured data — breadcrumbs, video previews, speaker cards — influences search engine result rendering.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hugo CrossPoster open-source project post&lt;/strong&gt;: Introducing the cross-posting automation tool for Dev.to and Medium, complete with GitHub Actions integration plans.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloud Gaming Notes Episode 4&lt;/strong&gt; with Dominic Williamson: &lt;em&gt;Sudoku Social&lt;/em&gt; — a social sudoku game built with Unity and Azure PlayFab, now in beta on iOS and Android at &lt;a href="https://sudoku.social"&gt;sudoku.social&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloud Drop with Carol de Winter&lt;/strong&gt;: A beginner&amp;rsquo;s guide to PowerShell in Azure Functions — the first Cloud Drop featuring a guest.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub Actions + Azure Environments session&lt;/strong&gt;: A focused walkthrough of environment-based deployment gates and approvals in GitHub Actions.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>GitHub Actions and Azure - Using Environments with GitHub Actions</title><link>https://chrisreddington.com/video/github-actions-multiple-environments/</link><pubDate>Fri, 07 May 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/github-actions-multiple-environments/</guid><description>&lt;p&gt;Once you have a working GitHub Actions workflow, the next challenge is safely deploying across dev, staging, and production with the right secrets in the right places. This episode deep-dives into GitHub Actions Environments: how to scope secrets per environment to enforce the principle of least privilege, configure required reviewers and wait timers as production gates, and assign service principals with minimal Azure RBAC permissions. A live demo deploys the cloudwithchris.com Hugo site to Azure Storage, making every concept concrete.&lt;/p&gt;</description></item><item><title>V018 - Weekly Technology Vlog #18</title><link>https://chrisreddington.com/video/weekly-vlog-018/</link><pubDate>Sun, 02 May 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/weekly-vlog-018/</guid><description>&lt;p&gt;Welcome to Weekly Vlog #18, recorded on a UK Bank Holiday! This week&amp;rsquo;s episode covers an action-packed set of updates across Azure, Azure DevOps, and GitHub, plus a detailed engineering update on the Hugo CrossPoster open-source project.&lt;/p&gt;
&lt;h2 id="azure-highlights"&gt;Azure Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Microsoft acquires Kinvolk&lt;/strong&gt;: A significant cloud-native investment — Kinvolk are contributors to Flatcar Container Linux and CoreOS, reinforcing Azure&amp;rsquo;s commitment to containers and the Kubernetes ecosystem.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure Web PubSub (Preview)&lt;/strong&gt;: A new fully managed WebSocket service enabling real-time applications such as live chat, bidding platforms, and gaming backends, priced per connection unit similarly to Event Hubs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure Site Recovery + Azure Policy (Preview)&lt;/strong&gt;: Enables onboarding VMs into Azure Site Recovery at scale via Azure Policy — a key governance unlock for enterprise disaster recovery.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Delivery Plans 2.0 GA&lt;/strong&gt;: Azure DevOps now offers improved portfolio-level planning with higher team limits, start/target dates, dependency tracking, and richer roll-up visualisations.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Red Hat Summit recap&lt;/strong&gt;: JBoss EAP preview on App Service, RHEL Reserved Instance hybrid benefits, Azure Arc-enabled OpenShift cluster onboarding, and upcoming Ansible integration enhancements.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="github-highlights"&gt;GitHub Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Feature flags engineering post&lt;/strong&gt;: How GitHub decouples deployments from releases using feature flags at scale.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mono-repo optimisation deep dive&lt;/strong&gt;: Bitmaps, pack files, and multi-pack indexes — how GitHub engineers tackle maintenance costs on large repositories.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dependabot Preview retirement&lt;/strong&gt;: The legacy Dependabot Preview and &lt;code&gt;dependabot.com&lt;/code&gt; will be shut down on &lt;strong&gt;August 3rd&lt;/strong&gt; — migrate to native GitHub Dependabot now and review the feature parity roadmap.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub Desktop 2.8&lt;/strong&gt;: Whitespace hiding, diff expansion, and repository aliases.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hugo-crossposter-update"&gt;Hugo CrossPoster Update&lt;/h2&gt;
&lt;p&gt;Chris&amp;rsquo;s Hugo CrossPoster open-source project is progressing with several new engineering practices in place:&lt;/p&gt;</description></item><item><title>Using Hugo, Azure Storage and Azure CDN for a cheap &amp; performant site on Azure</title><link>https://chrisreddington.com/talk/gaug-hugo-storage-cdn/</link><pubDate>Wed, 28 Apr 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/gaug-hugo-storage-cdn/</guid><description/></item><item><title>V017 - Weekly Technology Vlog #17</title><link>https://chrisreddington.com/video/weekly-vlog-017/</link><pubDate>Mon, 26 Apr 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/weekly-vlog-017/</guid><description>&lt;p&gt;Weekly Vlog #17 opens with Azure&amp;rsquo;s UK Met Office supercomputer partnership announcement and a brisk pass through this week&amp;rsquo;s Azure updates: new M-series memory-optimised VMs, Application Gateway URL rewrite now GA (finally allowing base URL rewriting), Azure Data Factory data flow GA in two new US government regions, Azure Purview availability in UK South and Australia East, and a heads-up to upgrade AML clusters from Ubuntu 16.04 before end-of-April community support expiry.&lt;/p&gt;</description></item><item><title>#LeedsAzure - vMeetup #9 - How GitHub Actions can help in building and deploying a static site and more</title><link>https://chrisreddington.com/talk/leeds-azure-github-deploying-static-content/</link><pubDate>Wed, 21 Apr 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/leeds-azure-github-deploying-static-content/</guid><description/></item><item><title>Discussing the Cloud with Chris GitHub Architecture and GitHub setup</title><link>https://chrisreddington.com/video/discussing-cloud-with-chris-architecture-and-github/</link><pubDate>Tue, 20 Apr 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/discussing-cloud-with-chris-architecture-and-github/</guid><description>&lt;p&gt;Karl Cooke (Implementation Specialist at Action Point Technology Group, blogger at &lt;a href="https://irishtechie.com"&gt;irishtechie.com&lt;/a&gt;) turns the tables on Chris Reddington, interviewing him about the architecture and GitHub workflow behind CloudWithChris.com.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Platform Architecture&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The site is a three-layer stack:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Azure DNS&lt;/strong&gt; — public DNS zone with an apex domain redirect to &lt;code&gt;www&lt;/code&gt;, plus separate subdomains for preview, staging, and the podcast feed (&lt;code&gt;podcasts.cloudwithchris.com&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure CDN&lt;/strong&gt; — global edge caching with a rules engine for HTTP→HTTPS redirects and security header injection&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure Storage&lt;/strong&gt; — static website hosting for all HTML, CSS, JS, and media assets; chosen for its low cost, simplicity, and natural fit with static content&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Security Hardening&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>GitHub actions and static content</title><link>https://chrisreddington.com/talk/azure-podcast-github-actions/</link><pubDate>Mon, 19 Apr 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/azure-podcast-github-actions/</guid><description/></item><item><title>V016 - Weekly Technology Vlog #16</title><link>https://chrisreddington.com/video/weekly-vlog-016/</link><pubDate>Mon, 19 Apr 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/weekly-vlog-016/</guid><description>&lt;p&gt;Weekly Vlog #16 dives into a busy Azure week centred on IoT: nested IoT Edge device hierarchies are now generally available (enabling secure network-segregated IoT topologies), Azure IoT Edge 1.2 lands with MQTT broker public preview and on-premises PKI integration, and a new zero-touch provisioning blueprint uses the Device Provisioning Service with PKI certificate hierarchies for IoT at scale. Azure Maps weather services and the Log Analytics agent for Windows also hit GA. Other notable updates: Azure API Management support for availability zones is now GA, encryption at host for AKS is GA, and an open-source API portal (based on the API Management developer portal technology) is now generally available as a standalone project.&lt;/p&gt;</description></item><item><title>#GlobalAzure 2021 - How GitHub Actions can help in building and deploying a static site and more</title><link>https://chrisreddington.com/talk/global-azure-github-deploying-static-content/</link><pubDate>Sat, 17 Apr 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/global-azure-github-deploying-static-content/</guid><description/></item><item><title>#GlobalAzure​ 2021 - Using Hugo, Azure Storage and Azure CDN for a cheap &amp; performant site on Azure</title><link>https://chrisreddington.com/talk/global-azure-hugo-storage-cdn/</link><pubDate>Fri, 16 Apr 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/global-azure-hugo-storage-cdn/</guid><description/></item><item><title>V015 - Weekly Technology Vlog #15</title><link>https://chrisreddington.com/video/weekly-vlog-015/</link><pubDate>Mon, 12 Apr 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/weekly-vlog-015/</guid><description>&lt;p&gt;Weekly Vlog #15 arrives a little off-schedule — recorded as a live stream at the start of the week after a hectic weekend. Azure blog highlights include the GA of Cloud Services extended support (with a migration tool preview), an update on Azure Orbital&amp;rsquo;s ground station-as-a-service partnerships, an IoT industry series on lessons learned from manufacturers, and a webinar series on running business-critical applications on Azure. The Azure update round-up is brief: Cloud Services deployment model preview, Azure Monitor Container Insights support for Azure Arc-enabled Kubernetes, Start VM on Connect for Windows Virtual Desktop, and Azure Purview regional expansions.&lt;/p&gt;</description></item><item><title>How GitHub Actions can help in building and deploying a static website and more</title><link>https://chrisreddington.com/talk/naug-github-deploying-static-content/</link><pubDate>Tue, 06 Apr 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/naug-github-deploying-static-content/</guid><description/></item><item><title>V014 - Tech Roundup #14 Azure, DevOps &amp; GitHub Blogs, Azure Updates &amp; New CloudWithChris content</title><link>https://chrisreddington.com/video/weekly-vlog-014/</link><pubDate>Sun, 04 Apr 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/weekly-vlog-014/</guid><description>&lt;p&gt;In this Easter Sunday livestream, Chris rounds up a bumper week of tech news. Azure highlights include Microsoft being named a Forrester Wave leader in Function-as-a-Service platforms — validating the Azure Functions investment — a Cost Management recap for March, and enterprise-scale landing zone guidance from Sarah Lean. A rapid-fire Azure update pass-through covers the new AKS &lt;code&gt;run command&lt;/code&gt; feature (enabling ad-hoc commands through the Azure API plane on private clusters while respecting RBAC), AKS node image auto-upgrade, Open Service Mesh add-on for AKS, GA of Kubernetes 1.20 in AKS, and Azure Static Web Apps deployment without a DevOps pipeline.&lt;/p&gt;</description></item><item><title>V013 - Weekly Technology Vlog #13 (Lots of Azure, DevOps &amp; GitHub) Blogs, Quick-fire Azure Updates</title><link>https://chrisreddington.com/video/weekly-vlog-013/</link><pubDate>Sun, 28 Mar 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/weekly-vlog-013/</guid><description>&lt;p&gt;Weekly Vlog #13 covers an action-packed Azure week, with standout blog posts including Mark Russinovich&amp;rsquo;s Ignite session on Azure innovation, enterprise landing zones with modular designs, zonal disaster recovery enhancements via Azure Site Recovery, Security Center compliance updates, and Azure Databricks on Azure. On the Azure DevOps side, Chris highlights &amp;ldquo;DevOps-ing everything as code&amp;rdquo; and community stories touching on Terraform, Bicep, and policy-gated release pipelines.&lt;/p&gt;
&lt;p&gt;The GitHub roundup digs into the GitHub Actions capture-the-flag writeup — revealing how an overly permissive workflow can expose repository secrets — and a fascinating multi-stage exploit chain from the GitHub Security Lab, both underscoring the growing importance of DevSecOps practices with GitHub Advanced Security.&lt;/p&gt;</description></item><item><title>32 - Accelerate .NET to Azure with GitHub Actions</title><link>https://chrisreddington.com/video/accelerate-dotnet-to-azure-with-github-actions/</link><pubDate>Fri, 26 Mar 2021 15:30:00 +0000</pubDate><guid>https://chrisreddington.com/video/accelerate-dotnet-to-azure-with-github-actions/</guid><description>&lt;p&gt;GitHub Actions makes it easy to automate your entire .NET software delivery pipeline — from build and test through to deployment on Azure. In this episode, Chris Reddington is joined by Isaac Levin, Senior Product Marketing Manager at Microsoft and a lifelong .NET developer, to walk through how GitHub Actions YAML workflows streamline deploying .NET and ASP.NET Core applications to Azure App Service, Azure Functions, and Azure Static Web Apps (including Blazor WebAssembly). Isaac traces the evolution of CI/CD tooling from FTP and CruiseControl.NET through to modern GitHub Actions, demonstrates how Azure and Visual Studio integrate to auto-generate workflows, and shares practical tips for getting started quickly.&lt;/p&gt;</description></item><item><title>Using Git LFS to version Podcast Audio files and trigger releases to production with GitHub Actions</title><link>https://chrisreddington.com/blog/git-lfs-for-podcast-audio/</link><pubDate>Wed, 24 Mar 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/blog/git-lfs-for-podcast-audio/</guid><description>&lt;p&gt;For some time, I&amp;rsquo;ve been using GitHub actions to update the content of my site (i.e. pages, descriptions, metadata, etc.). Through Hugo, these content updates automatically update the RSS feeds. This then makes the episodes appear in podcast services such as Apple Podcasts, Google Podcasts and Spotify. However, throughout that time I have been manually uploading the podcast files to my storage account. It wasn&amp;rsquo;t a significant overhead, but I kept thinking that there must be a better way to do this. And, there is - I&amp;rsquo;ve implemented it! This blog post will walk you through why I&amp;rsquo;ve made these changes, how I made them and what the result is.&lt;/p&gt;</description></item><item><title>V012 - Weekly Technology Vlog #12 (Busy week, and quite a few blog posts to cover!)</title><link>https://chrisreddington.com/video/weekly-vlog-012/</link><pubDate>Mon, 22 Mar 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/weekly-vlog-012/</guid><description>&lt;p&gt;In this episode, Chris marks three months of weekly vlogging, celebrates crossing 350 subscribers, and recaps a week where content shipped every single day.&lt;/p&gt;
&lt;h2 id="three-months-in"&gt;Three Months In&lt;/h2&gt;
&lt;p&gt;Analytics show a clear correlation between increased publishing frequency and subscriber growth. The channel is approaching the 500-subscriber target for end of 2021.&lt;/p&gt;
&lt;h2 id="last-weeks-content-something-every-day"&gt;Last Week&amp;rsquo;s Content (Something Every Day)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Monday — Weekly Vlog #11:&lt;/strong&gt; DevSecOps-heavy, covering Cache Aside Pattern, GPG Keys Part 3, and a strong Azure security news cycle.&lt;/p&gt;</description></item><item><title>31 - Deploying to Azure through Terraform Cloud</title><link>https://chrisreddington.com/video/deploy-using-terraform-cloud/</link><pubDate>Fri, 19 Mar 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/deploy-using-terraform-cloud/</guid><description>&lt;p&gt;You may have heard of Terraform, but are you aware of Terraform Cloud or Terraform Enterprise? In this session, Chris gives a practical walkthrough of how he uses Terraform Cloud as the underlying engine to deploy some of his own projects onto Azure.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is Terraform?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Terraform is an open-source Infrastructure as Code (IaC) framework from HashiCorp that uses HCL (HashiCorp Configuration Language) to define cloud resources declaratively. Unlike ARM templates, Terraform is cloud-agnostic and has a rich provider ecosystem — including the Azure RM provider used throughout this session.&lt;/p&gt;</description></item><item><title>How GitHub can help in planning, building and deploying a Podcast/Blog site</title><link>https://chrisreddington.com/talk/waug-lightning-github-deploying-static-content/</link><pubDate>Thu, 18 Mar 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/waug-lightning-github-deploying-static-content/</guid><description/></item><item><title>V010 - Weekly Technology Vlog #10 (Episode backlog until Mid-July! New Microphone, Ignite Content!)</title><link>https://chrisreddington.com/video/weekly-vlog-010/</link><pubDate>Mon, 08 Mar 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/weekly-vlog-010/</guid><description>&lt;p&gt;In this milestone tenth episode, Chris marks a birthday and a one-year podcast anniversary, picks up a new microphone, then spends the majority of the runtime covering the best of Microsoft Ignite.&lt;/p&gt;
&lt;h2 id="personal-milestones"&gt;Personal Milestones&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vlog #10 &amp;amp; Birthday:&lt;/strong&gt; A new Shure SM7B microphone arrives — a noticeable audio quality upgrade. Episodes are now booked through to mid-July with more guests lined up into August.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;One Year of Cloud With Chris:&lt;/strong&gt; The podcast launched on 1 March 2020.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recent-content"&gt;Recent Content&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GPG Keys Part 2:&lt;/strong&gt; Hands-on guide to generating GPG keys; Part 3 (linking keys to Git commits and uploading to GitHub) is coming this week.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloud Gaming Notes Ep. 2:&lt;/strong&gt; Chris and Lee discuss matchmaking in cloud gaming-as-a-service — how cloud infrastructure shapes the player experience when joining sessions dynamically rather than connecting to a fixed server. Next episode covers Sea of Thieves, inventory systems, and in-game economies.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sidecar &amp;amp; Ambassador Patterns&lt;/strong&gt; with Peter Piper: Another co-hosted patterns episode with a bingo card of API buzzwords.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DotNet Limerick Azure User Group:&lt;/strong&gt; A live presentation on using GitHub Actions to build and deploy a static podcast/blog site. Recording available on cloudwithchris.com.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="upcoming"&gt;Upcoming&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Welsh Azure User Group&lt;/strong&gt; (18 March): Lightning talk — GitHub for podcast/blog deployment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MSHowTo Live with Mert&lt;/strong&gt; (25 March): DevOps discussion.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Northern Azure User Group&lt;/strong&gt; (6 April): Sharing the bill with Scott Hanselman.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cache Aside Pattern&lt;/strong&gt; episode (this Friday).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPG Keys Part 3&lt;/strong&gt; (this Wednesday).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="microsoft-ignite-highlights"&gt;Microsoft Ignite Highlights&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Azure Cognitive Search — Semantic Search:&lt;/strong&gt; Results ranked by user intent rather than keyword frequency, powered by Microsoft Research models.&lt;/p&gt;</description></item><item><title>How GitHub Actions can help in building and deploying a static website and more</title><link>https://chrisreddington.com/talk/ldna-github-deploying-static-content/</link><pubDate>Sat, 06 Mar 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/talk/ldna-github-deploying-static-content/</guid><description/></item><item><title>V007 - Weekly Technology Vlog #7 (Recap, NEW SITE, NEWS!)</title><link>https://chrisreddington.com/video/weekly-vlog-007/</link><pubDate>Mon, 15 Feb 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/weekly-vlog-007/</guid><description>&lt;p&gt;The Cloud with Chris v2 website takes centre stage this week — a Hugo-powered redesign featuring a unified content hub for episodes, blogs, and guest pages with Podscribe AI-generated transcripts embedded directly on episode pages for accessibility. Chris invites community feedback at v2.cloudwithchris.com before the official launch, and the site reflects his ongoing commitment to making all content accessible.&lt;/p&gt;
&lt;p&gt;On the security front, the most actionable update covers the npm dependency confusion (package substitution) attack, where an attacker publishes a public package matching an organisation&amp;rsquo;s internal private package name to exploit upstream registry resolution and infiltrate the software supply chain — a technique that successfully targeted several large companies in security research testing. The Azure DevOps blog covers upstream behaviour changes in Azure Artifacts to address this, and GitHub&amp;rsquo;s post recommends using scoped packages and project-level &lt;code&gt;.npmrc&lt;/code&gt; files to pin registries. Azure DevOps also introduces continuous monitoring for web performance and accessibility using the Lighthouse API and axe-core as part of CI/CD pipelines — a workflow Chris plans to adopt for the v2 site. The Azure DevOps demo generator gets a refreshed blog from Damian Brady covering pre-configured project templates including Cloud Adoption Framework migration scenarios.&lt;/p&gt;</description></item><item><title>Contributing towards Azure GitHub Actions</title><link>https://chrisreddington.com/blog/azure-github-actions-workflow-samples/</link><pubDate>Wed, 10 Feb 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/blog/azure-github-actions-workflow-samples/</guid><description>&lt;p&gt;I&amp;rsquo;ve talked in the past about my Open Source journey, and some of the contributions that I have made in the community. In my current role, I&amp;rsquo;ve been leading on the global strategy for my team&amp;rsquo;s DevOps practice, defining the areas of focus and initiatives that may be beneficial for the team. In this post, I&amp;rsquo;m going to talk through one of these initiatives, and how you can contribute towards the Azure GitHub Actions experience!&lt;/p&gt;</description></item><item><title>22 - Static Content Hosting Pattern (Save cost and gain performance for static websites!)</title><link>https://chrisreddington.com/video/static-content-hosting-pattern/</link><pubDate>Fri, 15 Jan 2021 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/static-content-hosting-pattern/</guid><description>&lt;p&gt;Serving static HTML, CSS, images, and JavaScript from a general-purpose web server wastes compute and money. The Static Content Hosting pattern offloads these assets to purpose-built cloud storage for both cost savings and performance gains.&lt;/p&gt;
&lt;h2 id="what-youll-learn"&gt;What You&amp;rsquo;ll Learn&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;Static Content Hosting pattern&lt;/strong&gt; from the Azure Architecture Center and when to apply it&lt;/li&gt;
&lt;li&gt;Why compute platforms (App Service, VMs, Kubernetes) are the wrong tool for serving static assets&lt;/li&gt;
&lt;li&gt;How &lt;strong&gt;Azure Blob Storage&lt;/strong&gt; (and equivalent AWS S3 / GCP Cloud Storage) can serve static sites directly over HTTP/HTTPS&lt;/li&gt;
&lt;li&gt;The role of a &lt;strong&gt;CDN (Content Delivery Network)&lt;/strong&gt; in addressing two key challenges:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Geographic latency&lt;/strong&gt;: serving content from Points of Presence close to end users&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage throughput limits&lt;/strong&gt;: the 20,000 requests/second cap on Azure Storage accounts&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Geo-redundancy&lt;/strong&gt; considerations for resilience against data centre failures&lt;/li&gt;
&lt;li&gt;When to use the &lt;strong&gt;Valet Key pattern&lt;/strong&gt; for securing access to private static content&lt;/li&gt;
&lt;li&gt;Real-world walkthrough of cloudwithchris.com: &lt;strong&gt;Hugo&lt;/strong&gt; static site generation → GitHub Actions build → Azure Blob Storage → Azure CDN&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="limitations"&gt;Limitations&lt;/h2&gt;
&lt;p&gt;This pattern suits truly static content. Dynamic content requiring server-side rendering or complex routing is not a good fit—though JavaScript-driven API calls can bridge many of those gaps.&lt;/p&gt;</description></item><item><title>GitHub Issues and GitHub Discussions</title><link>https://chrisreddington.com/video/github-issues-github-discussions/</link><pubDate>Wed, 16 Dec 2020 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/github-issues-github-discussions/</guid><description>&lt;p&gt;&lt;strong&gt;GitHub Issues&lt;/strong&gt; act as the project backlog: each issue can carry labels (e.g., mini-series groupings), milestones (e.g., December 2020 release target), and assignees. Issues feed directly into &lt;strong&gt;GitHub Projects&lt;/strong&gt; kanban boards, where you can drag cards between columns (To Do / In Progress / Done) and configure automation rules so that opening or closing an issue, or merging a pull request, automatically moves the card to the correct column.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GitHub Discussions&lt;/strong&gt; (launched at GitHub Universe) are enabled per-repository in Settings and complement Issues by providing an open community space. Default categories include Q&amp;amp;A, Show and Tell, and Announcements; these can be customised — for example adding &amp;ldquo;Episode Ideas&amp;rdquo; and &amp;ldquo;Guest Introductions&amp;rdquo; categories so community members can pitch content publicly rather than via closed forms. An issue can be converted directly to a Discussion when the thread is better suited to open dialogue than to tracked work.&lt;/p&gt;</description></item><item><title>GitHub Universe and GitHub Actions Deployments</title><link>https://chrisreddington.com/video/github-universe-roundup/</link><pubDate>Tue, 15 Dec 2020 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/github-universe-roundup/</guid><description>&lt;p&gt;In this episode, we&amp;rsquo;re going to be taking a slight detour away from GitHub actions and focus on some of the announcements from GitHub universe last week. We&amp;rsquo;re going to explore them both from the announcements, and also take a look at some of those features that have already been released. Stay tuned!&lt;/p&gt;</description></item><item><title>GitHub Actions and Azure - Deploying .NET Core code to Azure App Service</title><link>https://chrisreddington.com/video/github-actions-deploy-to-appservice/</link><pubDate>Wed, 02 Dec 2020 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/github-actions-deploy-to-appservice/</guid><description>&lt;p&gt;You have your .NET Core application code and your Azure App Service infrastructure is ready. Now it&amp;rsquo;s time to wire them together with a fully automated GitHub Actions deployment pipeline.&lt;/p&gt;
&lt;h2 id="what-youll-learn"&gt;What You&amp;rsquo;ll Learn&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;How to structure a &lt;strong&gt;multi-job GitHub Actions workflow&lt;/strong&gt; that separates infrastructure deployment from application deployment&lt;/li&gt;
&lt;li&gt;Setting up the &lt;strong&gt;Azure Web App Deploy&lt;/strong&gt; action for .NET Core applications&lt;/li&gt;
&lt;li&gt;Using &lt;strong&gt;GitHub Secrets&lt;/strong&gt; to securely store Azure publish profiles&lt;/li&gt;
&lt;li&gt;Configuring &lt;code&gt;dotnet build&lt;/code&gt; and &lt;code&gt;dotnet publish&lt;/code&gt; steps within a workflow job&lt;/li&gt;
&lt;li&gt;Troubleshooting common YAML indentation and path errors in GitHub Actions pipelines&lt;/li&gt;
&lt;li&gt;How ARM template &lt;strong&gt;idempotency&lt;/strong&gt; means the infrastructure job runs safely on every commit with no unintended changes&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="workflow-structure"&gt;Workflow Structure&lt;/h2&gt;
&lt;p&gt;The pipeline demonstrated here follows a two-stage pattern:&lt;/p&gt;</description></item><item><title>GitHub Actions and Azure - Deploying ARM templates with GitHub Actions</title><link>https://chrisreddington.com/video/github-actions-deploying-infrastructure/</link><pubDate>Wed, 02 Dec 2020 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/github-actions-deploying-infrastructure/</guid><description>&lt;p&gt;Before deploying application code, you need cloud infrastructure in place. This episode demonstrates automating Azure infrastructure provisioning using ARM templates and GitHub Actions.&lt;/p&gt;
&lt;h2 id="what-youll-learn"&gt;What You&amp;rsquo;ll Learn&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;What &lt;strong&gt;ARM templates&lt;/strong&gt; (Azure Resource Manager templates) are and why they&amp;rsquo;re &lt;strong&gt;declarative&lt;/strong&gt;, &lt;strong&gt;deterministic&lt;/strong&gt;, and &lt;strong&gt;idempotent&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;How ARM templates differ from imperative approaches like Azure CLI or PowerShell scripts&lt;/li&gt;
&lt;li&gt;ARM template structure: &lt;code&gt;schema&lt;/code&gt;, &lt;code&gt;contentVersion&lt;/code&gt;, &lt;code&gt;parameters&lt;/code&gt;, &lt;code&gt;variables&lt;/code&gt;, &lt;code&gt;resources&lt;/code&gt;, and &lt;code&gt;outputs&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Using the &lt;strong&gt;&lt;code&gt;azure/arm-deploy&lt;/code&gt;&lt;/strong&gt; GitHub Action to deploy ARM templates from a workflow&lt;/li&gt;
&lt;li&gt;Repository organisation: separating &lt;code&gt;source/&lt;/code&gt; (application code) from &lt;code&gt;templates/&lt;/code&gt; (ARM templates)&lt;/li&gt;
&lt;li&gt;Adding the &lt;strong&gt;&lt;code&gt;actions/checkout&lt;/code&gt;&lt;/strong&gt; step—and why forgetting it causes cryptic &amp;ldquo;file not found&amp;rdquo; workflow failures&lt;/li&gt;
&lt;li&gt;Using &lt;strong&gt;&lt;code&gt;secureString&lt;/code&gt;&lt;/strong&gt; parameter types to protect secrets in ARM template inputs and outputs&lt;/li&gt;
&lt;li&gt;Browsing the &lt;strong&gt;Azure Quickstart Templates&lt;/strong&gt; gallery for production-ready ARM template samples&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="series-context"&gt;Series Context&lt;/h2&gt;
&lt;p&gt;This is the second episode in the GitHub Actions and Azure series. The infrastructure deployment workflow built here becomes the first job in the multi-job pipeline extended in the next episode to also compile and deploy application code.&lt;/p&gt;</description></item><item><title>GitHub Actions and Azure - Getting started with GitHub Actions and Azure Login</title><link>https://chrisreddington.com/video/github-actions-getting-started/</link><pubDate>Sun, 29 Nov 2020 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/github-actions-getting-started/</guid><description>&lt;p&gt;New to GitHub Actions? This episode is your starting point for automating Azure deployments with GitHub&amp;rsquo;s built-in CI/CD platform.&lt;/p&gt;
&lt;h2 id="what-youll-learn"&gt;What You&amp;rsquo;ll Learn&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The difference between &lt;strong&gt;Git&lt;/strong&gt; and &lt;strong&gt;GitHub&lt;/strong&gt;, and how GitHub Actions fits into your development workflow alongside alternatives like Azure DevOps, GitLab, and Bitbucket&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub Actions workflow YAML structure&lt;/strong&gt;: &lt;code&gt;on&lt;/code&gt; triggers, &lt;code&gt;jobs&lt;/code&gt;, &lt;code&gt;steps&lt;/code&gt;, &lt;code&gt;runs-on&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;How &lt;strong&gt;GitHub-hosted runners&lt;/strong&gt; (Ubuntu, Windows, macOS) work and when to use self-hosted alternatives&lt;/li&gt;
&lt;li&gt;Using the &lt;strong&gt;Azure Login&lt;/strong&gt; action to authenticate against Azure from a workflow&lt;/li&gt;
&lt;li&gt;Creating an &lt;strong&gt;Azure Service Principal&lt;/strong&gt; with the &lt;code&gt;az ad sp create-for-rbac&lt;/code&gt; command and storing credentials as &lt;strong&gt;GitHub Secrets&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Running &lt;strong&gt;Azure CLI&lt;/strong&gt; commands as workflow steps after authentication&lt;/li&gt;
&lt;li&gt;Pinning GitHub Actions to specific versions (e.g., &lt;code&gt;azure/login@v1&lt;/code&gt;) for reproducible, auditable pipelines&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="key-concept-actions-as-repositories"&gt;Key Concept: Actions as Repositories&lt;/h2&gt;
&lt;p&gt;GitHub Actions are themselves open-source repositories. When you reference &lt;code&gt;azure/login@v1&lt;/code&gt;, you&amp;rsquo;re pinning to a specific release tag of the &lt;code&gt;azure/login&lt;/code&gt; GitHub repository. This makes the GitHub Actions ecosystem composable, auditable, and extensible—anyone can submit a pull request to add new capabilities.&lt;/p&gt;</description></item><item><title>GitHub Actions and Azure - Source Controlling our Code using Git</title><link>https://chrisreddington.com/video/github-actions-git/</link><pubDate>Sun, 29 Nov 2020 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/github-actions-git/</guid><description>&lt;p&gt;Before writing a single GitHub Actions workflow, you need a version-controlled project on GitHub. This episode scaffolds a .NET MVC web application with &lt;code&gt;dotnet new mvc&lt;/code&gt; inside a WSL Ubuntu environment, then uses VS Code&amp;rsquo;s Source Control panel to stage the generated files, write an initial commit, and push to a freshly created public GitHub repository — equivalent to running &lt;code&gt;git remote add origin&lt;/code&gt;, &lt;code&gt;git branch -M main&lt;/code&gt;, and &lt;code&gt;git push -u origin main&lt;/code&gt; from the command line.&lt;/p&gt;</description></item><item><title>Deploying Azure Functions and Static Sites with GitHub Actions | Cloud with Chris</title><link>https://chrisreddington.com/video/azure-github-actions/</link><pubDate>Fri, 02 Oct 2020 00:00:00 +0000</pubDate><guid>https://chrisreddington.com/video/azure-github-actions/</guid><description>&lt;p&gt;Chris uses a real side-project — a multi-tenant card inventory app — to demonstrate GitHub Actions from first principles through to a working CI/CD pipeline.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GitHub Actions Fundamentals&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The session opens with a clear explanation of what GitHub Actions are and why they are called &lt;em&gt;workflows&lt;/em&gt; rather than pipelines: Actions are not limited to CI/CD and can respond to any GitHub event, including issue comments, new contributors, and dependency alerts. Core concepts covered include:&lt;/p&gt;</description></item></channel></rss>