41554 blogs · [ { "id": "01a0d470-6a46-7193-a1ae-6d886b87b2b6", "title": "How to update a pull request comment from GitHub Actions instead of creating duplicates", "url": "https://thomasthornton.cloud/how-to-update-a-pull-request-comment-from-github-actions-instead-of-creating-duplicates/", "published_at": "2026-09-15T15:07:02+00:00" }, { "id": "01a08c55-3f3e-70ca-b194-b341e9cee463", "title": "APIM Policy Patterns for AI Governance: Part 2 – Content Safety & Model Control", "url": "https://thomasthornton.cloud/apim-policy-patterns-for-ai-governance-part-2-content-safety-model-control/", "published_at": "2026-09-01T12:00:00+00:00" }, { "id": "01a08c55-3f3e-70ca-b194-b341eaa3513a", "title": "APIM Policy Patterns for AI Governance: Part 1 – Rate Limits, Token Quotas & Observability", "url": "https://thomasthornton.cloud/apim-policy-patterns-for-ai-governance-part-1-rate-limits-token-quotas-observability/", "published_at": "2026-08-24T12:20:27+00:00" }, { "id": "01a08c55-3f3e-70ca-b194-b341eb58b850", "title": "From Azure Policy to APIM: Implementing Azure AI Guardrails", "url": "https://thomasthornton.cloud/from-azure-policy-to-apim-implementing-azure-ai-guardrails/", "published_at": "2026-08-17T18:13:08+00:00" }, { "id": "01a08c55-3f3e-70ca-b194-b341ebc14f52", "title": "Building an Azure AI Landing Zone Without Slowing Teams Down", "url": "https://thomasthornton.cloud/building-an-azure-ai-landing-zone-without-slowing-teams-down/", "published_at": "2026-08-12T14:26:16+00:00" }, { "id": "01a08c55-3f3e-70ca-b194-b341ec61ec72", "title": "AI-Assisted Engineering: Measure Outcomes, Not Activity", "url": "https://thomasthornton.cloud/ai-assisted-engineering-measure-outcomes-not-activity/", "published_at": "2026-08-04T14:46:32+00:00" }, { "id": "01a08c55-3f3e-70ca-b194-b341ed27ac78", "title": "Drawio Agent Skill", "url": "https://thomasthornton.cloud/drawio-agent-skill/", "published_at": "2026-07-30T12:52:58+00:00" }, { "id": "01a08c55-3f3e-70ca-b194-b341ed6c696c", "title": "Why agent skills need good descriptions", "url": "https://thomasthornton.cloud/why-agent-skills-need-good-descriptions/", "published_at": "2026-07-21T13:00:00+00:00" }, { "id": "01a08c55-3f3e-70ca-b194-b341ee0d8b76", "title": "HolmesGPT + Azure AI Foundry: A Quick Kubernetes Troubleshooting Demo", "url": "https://thomasthornton.cloud/holmesgpt-azure-ai-foundry-a-quick-kubernetes-troubleshooting-demo/", "published_at": "2026-07-16T14:04:13+00:00" }, { "id": "01a08c55-3f3e-70ca-b194-b341ee7fef08", "title": "Securing AI skill repositories with Nvidia SkillSpector and GitHub Actions", "url": "https://thomasthornton.cloud/securing-ai-skill-repositories-with-nvidia-skillspector-and-github-actions/", "published_at": "2026-07-01T10:47:11+00:00" }, { "id": "01a08c55-3f3e-70ca-b194-b341ef7762f2", "title": "AI Engineering Needs Platform Controls", "url": "https://thomasthornton.cloud/ai-engineering-needs-platform-controls/", "published_at": "2026-06-23T12:30:49+00:00" }, { "id": "01a0deff-9ce2-7145-80a5-957ccf502824", "title": "AI-Assisted Engineering Is Becoming a Platform Capability", "url": "https://thomasthornton.cloud/ai-assisted-engineering-is-becoming-a-platform-capability/", "published_at": "2026-06-09T13:48:57+00:00" }, { "id": "01a0deff-9ce2-7145-80a5-957cd03d0faa", "title": "Adding Animated Traffic Flows to Draw.io Diagrams with GitHub Copilot Agent Skills", "url": "https://thomasthornton.cloud/adding-animated-traffic-flows-to-draw-io-diagrams-with-github-copilot-agent-skills/", "published_at": "2026-06-03T12:00:00+00:00" }, { "id": "01a0deff-9ce3-73f0-9e80-b27dcee047a2", "title": "Keep GitHub Copilot Agent Skills Small and Focused", "url": "https://thomasthornton.cloud/keep-github-copilot-agent-skills-small-and-focused/", "published_at": "2026-06-02T19:24:39+00:00" }, { "id": "01a0deff-9ce3-73f0-9e80-b27dcf0871ff", "title": "Terraform Module Design Is the Hard Part – So I Built an Agent Skill for It", "url": "https://thomasthornton.cloud/terraform-module-design-is-the-hard-part-so-i-built-an-agent-skill-for-it/", "published_at": "2026-04-23T10:00:56+00:00" }, { "id": "01a0deff-9ce3-73f0-9e80-b27dcf801128", "title": "The Real Value of GitHub Copilot Rubber Duck", "url": "https://thomasthornton.cloud/the-real-value-of-github-copilot-rubber-duck/", "published_at": "2026-04-16T10:30:00+00:00" }, { "id": "01a0deff-9ce4-71e3-823d-800aa6eb9711", "title": "What Makes a Good GitHub Copilot Agent Skill?", "url": "https://thomasthornton.cloud/what-makes-a-good-github-copilot-agent-skill/", "published_at": "2026-04-13T14:16:43+00:00" }, { "id": "01a0deff-9ce4-71e3-823d-800aa7e77c71", "title": "Packaging GitHub Copilot Agents and Skills with Agent Package Manager", "url": "https://thomasthornton.cloud/packaging-github-copilot-agents-and-skills-with-agent-package-manager/", "published_at": "2026-04-02T11:30:00+00:00" }, { "id": "01a0deff-9ce4-71e3-823d-800aa7fa2cc0", "title": "Creating Diagrams with an Excalidraw Agent Skill and Excalidraw MCP", "url": "https://thomasthornton.cloud/creating-diagrams-with-an-excalidraw-agent-skill-and-excalidraw-mcp/", "published_at": "2026-03-24T15:31:18+00:00" }, { "id": "01a0deff-9ce4-71e3-823d-800aa8256af4", "title": "Azure Pricing Skill for GitHub Copilot Using Azure MCP", "url": "https://thomasthornton.cloud/azure-pricing-skill-for-github-copilot-using-azure-mcp/", "published_at": "2026-03-19T12:30:00+00:00" }, { "id": "01a0df16-d620-70ae-841e-74222a9da881", "title": "AWS Diagram Agent Skill with Draw.io MCP ", "url": "https://thomasthornton.cloud/aws-diagram-agent-skill-with-draw-io-mcp/", "published_at": "2026-03-12T21:07:39+00:00" }, { "id": "01a0df16-d620-70ae-841e-74222af1fbeb", "title": "Automating Terraform provider upgrades with GitHub Agentic Workflows", "url": "https://thomasthornton.cloud/automating-terraform-provider-upgrades-with-github-agentic-workflows/", "published_at": "2026-03-10T13:55:21+00:00" }, { "id": "01a0df16-d620-70ae-841e-74222b207180", "title": "Azure Diagram Agent Skill with Draw.io MCP ", "url": "https://thomasthornton.cloud/azure-diagram-agent-skill-with-draw-io-mcp/", "published_at": "2026-03-05T15:44:45+00:00" }, { "id": "01a0df16-d620-70ae-841e-74222bd1ff2b", "title": "Draw.io MCP for Diagram Generation: Why It’s Worth Using", "url": "https://thomasthornton.cloud/draw-io-mcp-for-diagram-generation-why-its-worth-using/", "published_at": "2026-03-02T16:39:47+00:00" }, { "id": "01a0df16-d620-70ae-841e-74222c03f565", "title": "Why You Should Use GitHub Agentic Workflows", "url": "https://thomasthornton.cloud/why-you-should-use-github-agentic-workflows/", "published_at": "2026-02-24T16:40:57+00:00" }, { "id": "01a0df16-d620-70ae-841e-74222ce51fa6", "title": "Building Better Azure Terraform Modules with GitHub Copilot Agents and Skills", "url": "https://thomasthornton.cloud/building-better-azure-terraform-modules-with-github-copilot-agents-and-skills/", "published_at": "2026-02-17T14:52:28+00:00" }, { "id": "01a0df16-d620-70ae-841e-74222d8f4fd3", "title": "Running GitHub Copilot SDK Inside GitHub Actions", "url": "https://thomasthornton.cloud/running-github-copilot-sdk-inside-github-actions/", "published_at": "2026-02-12T13:00:00+00:00" }, { "id": "01a0df16-d620-70ae-841e-74222dc1344d", "title": "The Future of IaC: How AI Is Changing the Way We Build", "url": "https://thomasthornton.cloud/the-future-of-iac-how-ai-is-changing-the-way-we-build/", "published_at": "2026-01-29T12:30:00+00:00" }, { "id": "01a0df16-d620-70ae-841e-74222df15cb3", "title": "API Management – Disable Trusted Connectivity by March 2026", "url": "https://thomasthornton.cloud/api-management-disable-trusted-connectivity-by-march-2026/", "published_at": "2026-01-06T13:00:00+00:00" }, { "id": "01a0df16-d620-70ae-841e-74222ee76233", "title": "Git Rail Control: An Interactive Way To Learn Git", "url": "https://thomasthornton.cloud/git-rail-control-an-interactive-way-to-learn-git/", "published_at": "2025-12-17T15:52:03+00:00" }, { "id": "01a0df2b-4005-7259-bddc-be3444143fac", "title": "Running HashiCorp’s Terraform MCP Server in GitHub Actions", "url": "https://thomasthornton.cloud/running-hashicorps-terraform-mcp-server-in-github-actions/", "published_at": "2025-12-02T12:30:00+00:00" }, { "id": "01a0df2b-4005-7259-bddc-be344415d33e", "title": "GitHub Universe 2025: A Front-Row Seat to the Future of Coding", "url": "https://thomasthornton.cloud/github-universe-2025-a-front-row-seat-to-the-future-of-coding/", "published_at": "2025-11-10T13:30:00+00:00" }, { "id": "01a0df2b-4005-7259-bddc-be34444f29f9", "title": "My Experience with GitHub Agentic Workflows", "url": "https://thomasthornton.cloud/my-experience-with-github-agentic-workflows/", "published_at": "2025-11-04T18:45:11+00:00" }, { "id": "01a0df2b-4005-7259-bddc-be344516f26f", "title": "Cross-Tenant Azure API Management Authentication with Federated Credentials: A Complete Guide", "url": "https://thomasthornton.cloud/cross-tenant-azure-api-management-authentication-with-federated-credentials-a-complete-guide/", "published_at": "2025-10-22T13:00:00+00:00" }, { "id": "01a0df2b-4005-7259-bddc-be344558a687", "title": "Why You Should Use AI-Powered Terraform Plan Reviews in Your CI/CD Pipeline", "url": "https://thomasthornton.cloud/why-you-should-use-ai-powered-terraform-plan-reviews-in-your-ci-cd-pipeline/", "published_at": "2025-10-13T12:00:00+00:00" }, { "id": "01a0df2b-4005-7259-bddc-be34460df32d", "title": "Step‑by‑Step: Checking Out a Private Repository in GitHub Actions", "url": "https://thomasthornton.cloud/step%e2%80%91by%e2%80%91step-checking-out-a-private-repository-in-github-actions/", "published_at": "2025-10-03T12:00:00+00:00" }, { "id": "01a0df2b-4005-7259-bddc-be3446d11ece", "title": "GitHub Copilot Custom Chat Modes: AI Personas that Match Your Needs", "url": "https://thomasthornton.cloud/github-copilot-custom-chat-modes-ai-personas-that-match-your-needs/", "published_at": "2025-09-10T09:00:00+00:00" }, { "id": "01a0df2b-4005-7259-bddc-be3447aca94a", "title": "Using GitHub Models with your GitHub Workflows", "url": "https://thomasthornton.cloud/using-github-models-with-your-github-workflows/", "published_at": "2025-08-19T14:07:16+00:00" }, { "id": "01a0df2b-4005-7259-bddc-be3447e6a396", "title": "Docker MCP Toolkit: Hassle-Free Local Agentic AI with MCP Servers", "url": "https://thomasthornton.cloud/docker-mcp-toolkit-hassle-free-local-agentic-ai-with-mcp-servers/", "published_at": "2025-08-13T12:11:22+00:00" }, { "id": "01a0df2b-4005-7259-bddc-be344869bf0b", "title": "Getting Started with GitHub Spark: From Thought to App Creation", "url": "https://thomasthornton.cloud/getting-started-with-github-spark-from-thought-to-app/", "published_at": "2025-08-07T10:30:00+00:00" }, { "id": "01a0df42-1ff5-7137-8bb2-a5ab9c824594", "title": "Setting Up LiteLLM with Azure Databricks Serving Endpoints for Claude Code", "url": "https://thomasthornton.cloud/setting-up-litellm-with-azure-databricks-serving-endpoints-for-claude-code/", "published_at": "2025-07-30T13:20:04+00:00" }, { "id": "01a0df42-1ff5-7137-8bb2-a5ab9cab0edc", "title": "Why You Should Setup Terraform MCP Server with GitHub Copilot", "url": "https://thomasthornton.cloud/why-you-should-setup-terraform-mcp-server-with-github-copilot/", "published_at": "2025-07-10T13:00:00+00:00" }, { "id": "01a0df42-1ff5-7137-8bb2-a5ab9cf8913d", "title": "GitHub Copilot Premium Requests Usage Dashboard", "url": "https://thomasthornton.cloud/github-copilot-premium-requests-usage-dashboard/", "published_at": "2025-07-07T13:00:00+00:00" }, { "id": "01a0df42-1ff5-7137-8bb2-a5ab9d1d9603", "title": "Solving the GitHub 403 Error: Why Your Push may be Blocked (and How I Fixed It)", "url": "https://thomasthornton.cloud/solving-the-github-403-error-why-your-push-may-be-blocked-and-how-i-fixed-it/", "published_at": "2025-06-30T15:26:32+00:00" }, { "id": "01a0df42-1ff5-7137-8bb2-a5ab9e1b7e9e", "title": "Why You Should Consider Using MCP servers with GitHub Copilot", "url": "https://thomasthornton.cloud/why-you-should-consider-using-mcp-servers-with-github-copilot/", "published_at": "2025-06-19T13:00:00+00:00" }, { "id": "01a0df42-1ff5-7137-8bb2-a5ab9e3b95e6", "title": "GitHub Copilot Coding Agent: First Impressions", "url": "https://thomasthornton.cloud/github-copilot-coding-agent-first-impressions/", "published_at": "2025-06-12T09:00:00+00:00" }, { "id": "01a0df42-1ff5-7137-8bb2-a5ab9eb20f4e", "title": "Deploy Terraform to Azure with OIDC and GitHub Actions", "url": "https://thomasthornton.cloud/deploy-terraform-to-azure-with-oidc-and-github-actions/", "published_at": "2025-05-15T11:49:18+00:00" }, { "id": "01a0df42-1ff5-7137-8bb2-a5ab9f44ac9c", "title": "Ensuring Terraform State Security with Ephemeral Values and Write-Only Outputs", "url": "https://thomasthornton.cloud/ensuring-terraform-state-security-with-ephemeral-values-and-write-only-outputs/", "published_at": "2025-04-24T16:43:25+00:00" }, { "id": "01a0df42-1ff5-7137-8bb2-a5ab9f499d9d", "title": "Why GitHub Copilot custom instructions matter", "url": "https://thomasthornton.cloud/why-github-copilot-custom-instructions-matter/", "published_at": "2025-04-16T10:00:00+00:00" }, { "id": "01a0df42-1ff5-7137-8bb2-a5ab9fe23eb9", "title": "Backing Up Home Assistant to Azure Files", "url": "https://thomasthornton.cloud/backing-up-home-assistant-to-azure-files/", "published_at": "2025-03-25T14:00:00+00:00" }, { "id": "01a0df5a-4d45-72a3-aeef-ae0687dac748", "title": "Setting up Trivy in your GitHub Actions", "url": "https://thomasthornton.cloud/setting-up-trivy-in-your-github-actions/", "published_at": "2025-03-18T13:00:00+00:00" }, { "id": "01a0df5a-4d45-72a3-aeef-ae0688c6d6c0", "title": "GitHub Actions Fix ‘Resource Not Accessible by Integration’", "url": "https://thomasthornton.cloud/github-actions-fix-resource-not-accessible-by-integration/", "published_at": "2025-03-13T13:00:00+00:00" }, { "id": "01a0df5a-4d45-72a3-aeef-ae0689be0eda", "title": "Deploying to Azure: Secure Your GitHub Workflow with OIDC", "url": "https://thomasthornton.cloud/deploying-to-azure-secure-your-github-workflow-with-oidc/", "published_at": "2025-02-27T15:27:03+00:00" }, { "id": "01a0df5a-4d45-72a3-aeef-ae068aa622c9", "title": "Getting current date and time in Azure Logic Apps using utcnow()", "url": "https://thomasthornton.cloud/getting-current-date-and-time-in-azure-logic-apps-using-utcnow/", "published_at": "2025-02-21T11:30:00+00:00" }, { "id": "01a0df5a-4d45-72a3-aeef-ae068b94dfd2", "title": "Autogenerating Terraform Documentation with terraform-docs and GitHub Actions", "url": "https://thomasthornton.cloud/autogenerating-terraform-documentation-with-terraform-docs-and-github-actions/", "published_at": "2025-01-22T13:00:00+00:00" }, { "id": "01a0df5a-4d45-72a3-aeef-ae068befcaff", "title": "Getting Started Using Terraform Tests with Azure example", "url": "https://thomasthornton.cloud/getting-started-using-terraform-tests-with-azure-example/", "published_at": "2025-01-08T13:00:00+00:00" }, { "id": "01a0df5a-4d45-72a3-aeef-ae068c25a795", "title": "Summarising Teams Meeting Transcripts using Open AI and Python", "url": "https://thomasthornton.cloud/summarising-teams-meeting-transcripts-using-open-ai-and-python/", "published_at": "2024-12-23T08:00:00+00:00" }, { "id": "01a0df5a-4d45-72a3-aeef-ae068c3399fb", "title": "Getting Started with Terraform Preconditions", "url": "https://thomasthornton.cloud/getting-started-with-terraform-preconditions/", "published_at": "2024-12-03T11:00:00+00:00" }, { "id": "01a0df5a-4d45-72a3-aeef-ae068cc88198", "title": "Improve Terraform Configurations with Variable Validation", "url": "https://thomasthornton.cloud/improve-terraform-configurations-with-variable-validation/", "published_at": "2024-11-26T11:00:00+00:00" }, { "id": "01a0df5a-4d45-72a3-aeef-ae068cdc4a01", "title": "AKS Preview API lifecycle – Script to check if deprecated API versions are being used", "url": "https://thomasthornton.cloud/aks-preview-api-lifecycle-script-to-check-if-deprecated-api-versions-are-being-used/", "published_at": "2024-11-19T11:00:00+00:00" }, { "id": "01a0df85-9a7a-7021-853a-321298f3549b", "title": "Automating GitHub Project Management: Moving Issues to “Done” with GitHub Actions and CLI", "url": "https://thomasthornton.cloud/automating-github-project-management-moving-issues-to-done-with-github-actions-and-cli/", "published_at": "2024-11-15T11:00:00+00:00" }, { "id": "01a0df85-9a7a-7021-853a-321299e22082", "title": "Using GitHub CLI with GitHub Actions for GitHub Project automation", "url": "https://thomasthornton.cloud/using-github-cli-with-github-actions-for-github-project-automation/", "published_at": "2024-11-14T13:10:54+00:00" }, { "id": "01a0df85-9a7a-7021-853a-32129a795277", "title": "GitHub Universe 2024 – My Highlights", "url": "https://thomasthornton.cloud/github-universe-2024-my-highlights/", "published_at": "2024-11-05T10:00:00+00:00" }, { "id": "01a0df85-9a7a-7021-853a-32129b0f0cc1", "title": "Automating Logic App Deployments: From Designer to Terraform", "url": "https://thomasthornton.cloud/automating-logic-app-deployments-from-designer-to-terraform/", "published_at": "2024-10-17T12:03:16+00:00" }, { "id": "01a0df85-9a7a-7021-853a-32129be04dd3", "title": "Azure Logic App Consumption Plan Creation using Terraform", "url": "https://thomasthornton.cloud/azure-logic-app-consumption-plan-creation-using-terraform/", "published_at": "2024-10-10T07:24:56+00:00" }, { "id": "01a0df85-9a7a-7021-853a-32129c54e45c", "title": "Using Terraform for Geo-Restore in Azure PostgreSQL Flexible Server", "url": "https://thomasthornton.cloud/using-terraform-for-geo-restore-in-azure-postgresql/", "published_at": "2024-09-24T10:00:00+00:00" }, { "id": "01a0df85-9a7a-7021-853a-32129d1b3663", "title": "Quick Fix: Resolving the ‘subscription_id is a required provider property’ Error in Terraform", "url": "https://thomasthornton.cloud/quick-fix-resolving-the-subscription_id-is-a-required-provider-property-error-in-terraform/", "published_at": "2024-09-23T14:11:04+00:00" }, { "id": "01a0df85-9a7a-7021-853a-32129da0a5fb", "title": "Dynamic Matrices in GitHub Actions", "url": "https://thomasthornton.cloud/dynamic-matrices-in-github-actions/", "published_at": "2024-09-18T12:00:00+00:00" }, { "id": "01a0df85-9a7a-7021-853a-32129df914cb", "title": "How to Create Dynamic Environment Variables in GitHub Actions", "url": "https://thomasthornton.cloud/create-dynamic-environment-variables-in-github-actions/", "published_at": "2024-09-12T10:05:00+00:00" }, { "id": "01a0df85-9a7a-7021-853a-32129e573ed5", "title": "How To Create A Virtual Environment in Python", "url": "https://thomasthornton.cloud/create-a-virtual-environment-in-python/", "published_at": "2024-08-28T13:00:00+00:00" }, { "id": "01a0df91-0a82-7046-923b-1908e4424c28", "title": "AI Meets Development: An Overview of the AI Enhanced Platform (AEP)", "url": "https://thomasthornton.cloud/aep-ai-enhanced-platform-overview/", "published_at": "2024-08-22T15:00:00+00:00" }, { "id": "01a0df91-0a82-7046-923b-1908e5315855", "title": "Step-by-Step Guide to Optimising Azure NSG Rules creation with Terraform: try Function and for_each Explained", "url": "https://thomasthornton.cloud/optimising-azure-nsg-rules-creation-with-terraform/", "published_at": "2024-08-07T10:00:00+00:00" }, { "id": "01a0df91-0a82-7046-923b-1908e58ada7b", "title": "Dynamic Terraform Configurations with try and for_each Functions", "url": "https://thomasthornton.cloud/dynamic-terraform-configurations-with-try-and-for_each-functions/", "published_at": "2024-07-22T15:18:20+00:00" }, { "id": "01a0df91-0a82-7046-923b-1908e5a9e28e", "title": "Time based filtering in Log Analytics queries with examples", "url": "https://thomasthornton.cloud/time-based-filtering-in-log-analytics-queries-with-examples/", "published_at": "2024-07-18T14:00:00+00:00" }, { "id": "01a0df91-0a82-7046-923b-1908e69b4fcc", "title": "Step-by-Step Guide to Automate Log Analytics Reports with Azure Logic Apps to Blob Storage", "url": "https://thomasthornton.cloud/step-by-step-guide-to-automate-log-analytics-reports-with-azure-logic-apps-to-blob-storage/", "published_at": "2024-07-02T10:00:00+00:00" }, { "id": "01a0df91-0a82-7046-923b-1908e70d1859", "title": "Adding comments to your GitHub Pull Requests using GitHub Actions", "url": "https://thomasthornton.cloud/adding-comments-to-your-github-pull-requests-using-github-actions/", "published_at": "2024-07-01T09:00:00+00:00" }, { "id": "01a0df91-0a82-7046-923b-1908e74bda01", "title": "Step-by-Step to creating Azure Application Gateway for Containers using Terraform", "url": "https://thomasthornton.cloud/step-by-step-to-creating-azure-application-gateway-for-containers-using-terraform/", "published_at": "2024-05-28T12:00:00+00:00" }, { "id": "01a0df91-0a82-7046-923b-1908e82e0138", "title": "Mitigating Prompt Injections with Azure AI Prompt Shields and Terraform Deployment", "url": "https://thomasthornton.cloud/mitigating-prompt-injections-with-azure-ai-prompt-shields-and-terraform-deployment/", "published_at": "2024-05-23T08:00:00+00:00" }, { "id": "01a0df91-0a82-7046-923b-1908e86ade78", "title": "Boost GitHub Actions Efficiency with Path Filters: Only run when specific files or paths are updated", "url": "https://thomasthornton.cloud/boost-github-actions-efficiency-with-path-filters-only-run-when-specific-files-or-paths-are-updated/", "published_at": "2024-05-14T12:18:24+00:00" }, { "id": "01a0df91-0a82-7046-923b-1908e8744932", "title": "Deploying MkDocs to GitHub Pages with GitHub Actions", "url": "https://thomasthornton.cloud/deploying-mkdocs-to-github-pages-with-github-actions/", "published_at": "2024-05-01T09:00:45+00:00" }, { "id": "01a0df98-7846-72f0-a973-515119d35712", "title": "Using Terraform tfvars for environment-agnostic deployments", "url": "https://thomasthornton.cloud/using-terraform-tfvars-for-environment-agnostic-deployments/", "published_at": "2024-04-25T11:29:07+00:00" }, { "id": "01a0df98-7846-72f0-a973-51511a8148ab", "title": "Update GitHub Pull Request Body using GitHub Actions", "url": "https://thomasthornton.cloud/update-github-pull-request-body-using-github-actions/", "published_at": "2024-04-18T12:53:24+00:00" }, { "id": "01a0df98-7846-72f0-a973-51511b52cb91", "title": "Deploying a content filtering configuration in Azure OpenAI studio using Terraform and AzAPI", "url": "https://thomasthornton.cloud/deploying-a-content-filtering-configuration-in-azure-openai-studio-using-terraform-and-azapi/", "published_at": "2024-04-08T09:00:00+00:00" }, { "id": "01a0df98-7846-72f0-a973-51511b8f37c2", "title": "Enabling PostgreSQL flexible server logs and configuring a retention period using Terraform", "url": "https://thomasthornton.cloud/enabling-postgresql-flexible-server-logs-and-configuring-a-retention-period-using-terraform/", "published_at": "2024-03-28T15:30:25+00:00" }, { "id": "01a0df98-7846-72f0-a973-51511b990943", "title": "Scaling Terraform Deployments with GitHub Actions: Essential Configurations", "url": "https://thomasthornton.cloud/scaling-terraform-deployments-with-github-actions-essential-configurations/", "published_at": "2024-03-18T17:30:28+00:00" }, { "id": "01a0df98-7846-72f0-a973-51511c2a749c", "title": "Ensuring Your Terraform is Correctly Formatted with Terraform fmt using GitHub Actions", "url": "https://thomasthornton.cloud/ensuring-your-terraform-is-correctly-formatted-using-terraform-fmt-and-github-actions/", "published_at": "2024-02-15T14:52:35+00:00" }, { "id": "01a0df98-7846-72f0-a973-51511cd7d9f3", "title": "Enforcing Kubernetes best practices and simplifying Kubernetes Configuration Validation with Kube-Linter and GitHub Actions", "url": "https://thomasthornton.cloud/enforcing-kubernetes-best-practices-and-simplifying-kubernetes-configuration-validation-with-kube-linter-and-github-actions/", "published_at": "2024-01-31T17:07:36+00:00" }, { "id": "01a0df98-7846-72f0-a973-51511d820784", "title": "GitHub Action error Resource not accessible by integration when attempting to upload SARIF report files to GitHub", "url": "https://thomasthornton.cloud/github-action-error-resource-not-accessible-by-integration-when-attempting-to-upload-sarif-report-files-to-github/", "published_at": "2024-01-31T09:32:27+00:00" }, { "id": "01a0df98-7846-72f0-a973-51511e54ca8e", "title": "Displaying Terraform Plan as a comment in Azure DevOps Repo PRs with Azure DevOps Pipelines", "url": "https://thomasthornton.cloud/displaying-terraform-plan-as-a-comment-in-azure-devops-repo-prs-with-azure-devops-pipelines/", "published_at": "2024-01-24T13:53:31+00:00" }, { "id": "01a0df98-7846-72f0-a973-51511eb2a777", "title": "Adding pull-request comments to Azure DevOps Repo from Azure DevOps Pipelines", "url": "https://thomasthornton.cloud/adding-pull-request-comments-to-azure-devops-repo-from-azure-devops-pipelines/", "published_at": "2024-01-18T13:35:51+00:00" }, { "id": "01a0dfa1-1e50-7167-9faf-c7afb2e11e38", "title": "Resolving steps.plan.outputs.* returns Empty Issue with hashicorp/setup-terraform@v3", "url": "https://thomasthornton.cloud/resolving-steps-plan-outputs-returns-empty-issue-with-hashicorp-setup-terraformv3/", "published_at": "2024-01-15T17:40:54+00:00" }, { "id": "01a0dfa1-1e50-7167-9faf-c7afb35ace80", "title": "Displaying Terraform Plans in GitHub PRs with GitHub Actions", "url": "https://thomasthornton.cloud/displaying-terraform-plans-in-github-prs-with-github-actions/", "published_at": "2024-01-11T11:50:57+00:00" }, { "id": "01a0dfa1-1e50-7167-9faf-c7afb3ed61e3", "title": "Resolving Terraform Error ApplicationGatewayInvalidPublicIpSku : Application Gateway SKU Mismatch with Public IP", "url": "https://thomasthornton.cloud/resolving-terraform-error-applicationgatewayinvalidpublicipsku-application-gateway-sku-mismatch-with-public-ip/", "published_at": "2023-12-12T14:00:00+00:00" }, { "id": "01a0dfa1-1e50-7167-9faf-c7afb45e0a8e", "title": "Deploying Azure AKS GitOps Flux extension with Terraform", "url": "https://thomasthornton.cloud/deploying-azure-aks-gitops-flux-extension-with-terraform/", "published_at": "2023-12-03T09:00:00+00:00" }, { "id": "01a0dfa1-1e50-7167-9faf-c7afb5154b16", "title": "Deploying Azure AKS with Application Gateway and Flux extension – An introduction to GitOps", "url": "https://thomasthornton.cloud/deploying-azure-aks-with-application-gateway-and-flux-extension-an-introduction-to-gitops/", "published_at": "2023-12-03T09:00:00+00:00" }, { "id": "01a0dfa1-1e50-7167-9faf-c7afb57a6879", "title": "GitHub Action seeing dockerfile but no additional files or folders in the same location", "url": "https://thomasthornton.cloud/github-action-seeing-dockerfile-but-no-additional-files-or-folders-in-the-same-location/", "published_at": "2023-11-30T17:08:49+00:00" }, { "id": "01a0dfa1-1e50-7167-9faf-c7afb59eeac7", "title": "Unlocking Manual Workflow Execution in GitHub Actions: A Quick Fix", "url": "https://thomasthornton.cloud/unlocking-manual-workflow-execution-in-github-actions-a-quick-fix/", "published_at": "2023-11-28T18:33:30+00:00" }, { "id": "01a0dfa1-1e50-7167-9faf-c7afb5bf0742", "title": "Setting up and using private endpoints in Azure with a storage account example in Terraform", "url": "https://thomasthornton.cloud/setting-up-and-using-private-endpoints-in-azure-with-a-storage-account-example-in-terraform/", "published_at": "2023-10-30T08:57:41+00:00" }, { "id": "01a0dfa1-1e50-7167-9faf-c7afb6a95e68", "title": "How to use If-Else in Terraform", "url": "https://thomasthornton.cloud/how-to-use-if-else-in-terraform/", "published_at": "2023-10-16T12:46:17+00:00" }, { "id": "01a0dfa1-1e50-7167-9faf-c7afb7006f84", "title": "Referencing Azure Key Vault Certificates in Terraform", "url": "https://thomasthornton.cloud/referencing-azure-key-vault-certificates-in-terraform/", "published_at": "2023-09-21T08:06:11+00:00" } ] posts Claim your blog
Back to thomasthornton.cloud
Blog · corpus.blog/blogs/thomasthornton.cloud/posts

thomasthornton.cloud

thomasthornton.cloud

2026

2025

2024

2023