Weekly DevOps Roundup: Agent Workflows, Runner Policy, Supply Chain

Welcome to this week's DevOps roundup, where the main thread is making AI-driven automation operational: more governed Copilot app and agent workflows, plus enterprise controls for MCP authentication and plugin marketplaces. GitHub Actions continued its shift toward platform-scale policy and performance with step-level parallelism, tighter hosted runner governance, and new RHEL images for larger runners. On the operations side, Azure shipped practical improvements for troubleshooting and incident investigation (including the Copilot Observability Agent GA), while supply chain updates from npm, Dependabot, and GitHub Enterprise focused on reducing blast radius and simplifying least-privilege automation.

This Week's Overview

GitHub Copilot apps and agent workflows move closer to day-to-day DevOps

Building on last week's shift from one-off agent experiments to governed automation (Agentic Workflows in public preview, with tighter permissions and guardrails), GitHub kept pushing the idea that “agent-native” workflows should sit alongside your existing tooling, not replace it. Several demos this week show Copilot apps watching multiple feedback streams (community channels, repo boards, and GitHub Projects) and then using prompt-driven agents to refresh context and turn raw feedback into actionable work items.

A recurring pattern is isolating work so multiple agents (and humans) can operate in parallel without stepping on each other. GitHub highlighted isolated git worktrees, plus an “agent merge” flow intended to make parallel, multi-branch work safer when you have agents generating changes across repositories or features.

On the practical side, the Copilot app examples focused on routines teams already struggle to keep up with: morning triage, deduplicating reports, and keeping Projects up to date. The more you lean on these agents, the more important it becomes to treat prompts like operational artifacts (reviewed, versioned, and constrained) rather than one-off instructions.

GitHub Actions gets sharper controls for scale and policy

Building on last week's runner governance push (minimum runner versions, new hosted images, and more approval gates for automation-driven PRs), GitHub Actions updates this week clustered around two needs: speeding up pipelines and tightening governance. Together, they point to Actions becoming more “platform-like” for larger organizations where runner sprawl, inconsistent labels, and noisy workflows create real operational cost.

Workflow steps can now run in parallel

GitHub Actions added the ability to run steps in parallel inside a job, with separate logs, using new workflow syntax keywords: background, wait/wait-all, cancel, and parallel. This gives teams another lever beyond job-level parallelism, which can be useful when you want shared job context but independent execution (for example, running multiple linters or test shards without splitting into separate jobs).

The big win is reducing end-to-end wall clock time without restructuring the whole workflow into multiple jobs and artifacts. You will still want to watch for rate limits and shared resource contention, but this finally makes “do these three checks at once” a first-class part of the YAML.

More control over GitHub-hosted runners (groups, macOS, concurrency, and labels)

Following last week's expansion of hosted runner images and the warning to watch label transitions, GitHub added more knobs for governing GitHub-hosted runners, including support for adding macOS runners to runner groups and enforcing concurrency limits. Admins can also disable standard hosted runner labels like ubuntu-latest, which effectively forces workflows through runner-group policy instead of letting teams bypass controls with a familiar label.

This matters most when you are standardizing images, controlling spend, or meeting compliance requirements across many repos. It is also a signal that runner groups are becoming the preferred policy boundary for enterprises, not just an organizational convenience.

RHEL runner images (public preview) for larger runners

After last week's additions of Ubuntu 26.04 and Windows 11 arm64 runner images, GitHub-hosted larger runners now offer RHEL 9 and RHEL 10 images in public preview for teams standardizing on Red Hat. The update also calls out the ability to select partner images and build custom images with the tooling and dependencies your CI needs.

If you have pipelines that assume RHEL package availability or need to align build environments with production, this reduces the friction of maintaining self-hosted runners just to match distro constraints. It also helps with supply chain hygiene by keeping runner configuration more consistent and repeatable.

Enterprise governance for AI tooling: MCP authorization and marketplace restrictions

Following last week's emphasis on guardrails for automation (approval gates, tighter Copilot controls, and moving agent workflows off PATs and onto GITHUB_TOKEN), this week had several signals that “AI plugins and MCP servers everywhere” is turning into an enterprise governance problem. The common thread is shifting from per-developer consent and ad hoc installs to centrally enforced policy with auditability.

MCP Enterprise-Managed Authorization lands in VS Code 1.123

Model Context Protocol (MCP) picked up Enterprise-Managed Authorization (EMA), and VS Code 1.123 enables enterprise-managed MCP authentication through identity providers like Microsoft Entra ID, Okta, and Auth0. Instead of OAuth consent happening per MCP server (and often per user), EMA moves control into IdP-driven policy so authentication and authorization can be managed consistently and audited.

This complements GitHub Copilot's MCP registry allowlist controls in GitHub Enterprise, which helps answer “which MCP servers are allowed” while EMA addresses “how they authenticate and how access is governed.” If you are piloting MCP internally, this is the difference between a proof-of-concept and something security teams can sign off on.

strictKnownMarketplaces preview for VS Code and Copilot CLI

GitHub Copilot enterprise-managed settings added a public preview option called strictKnownMarketplaces that restricts which marketplaces VS Code and GitHub Copilot CLI can install plugins from. The control is applied via enterprise-managed settings.json, giving orgs a way to reduce plugin sprawl and prevent installs from unapproved sources.

For platform teams, this is a practical guardrail as Copilot plugins and MCP integrations expand. It also pairs well with internal developer portals and curated plugin catalogs, where “approved” becomes an explicit list rather than an assumption.

Hardening guidance: hosting MCP servers securely on Azure App Service

A separate Azure guide highlighted a security gap: many MCP servers are deployed without OAuth, and recent MCP-related CVEs make that a risky default. The reference architecture shows how to host an MCP server on Azure App Service with Easy Auth (Entra ID plus Protected Resource Metadata (PRM)), managed identity, Key Vault references, private networking, API Management, and Azure Monitor alerts.

If your team is turning internal tools into MCP servers, this is a concrete baseline to copy. It is also a reminder that “agent integrations” are still web services and need the same identity, network, and secret-management controls as any API.

GitHub Desktop 3.6 and Copilot CLI updates bring AI closer to Git

This continues last week's theme of keeping approvals, reviews, and agent-driven changes inside familiar developer surfaces (CLI and IDE), with local tooling converging on the same idea: keep developers in Git-first workflows, but add AI assistance where it reduces friction without hiding the underlying mechanics.

GitHub Desktop 3.6: worktrees plus Copilot-powered merges and commits

GitHub Desktop 3.6 shipped with Git worktree support, which makes it easier to check out multiple branches side-by-side without constantly switching state in a single working directory. For teams experimenting with parallel agent work (or just juggling hotfixes and features), worktrees reduce context switching and lower the risk of accidental file churn across branches.

Desktop also expanded Copilot features for commit message authoring and AI-assisted merge conflict resolution. Under the hood, GitHub moved Desktop's Copilot features onto the Copilot SDK, and added a model picker plus BYOK (Bring Your Own Key) support, which matters for enterprises standardizing which models can be used and how they are billed.

Copilot CLI's new terminal UI is now GA

Following last week's Copilot CLI push toward more structured, workflow-shaped agent usage (custom agents and language-server-backed intelligence), GitHub Copilot CLI's redesigned terminal interface reached general availability, adding tabbed browsing for gists, issues, and pull requests, plus in-terminal configuration for MCP servers, skills, plugins, and settings. The update also calls out improved accessibility, which matters when terminal UIs become more complex than a single prompt-and-response loop.

For DevOps teams that live in terminals and remote shells, a better Copilot CLI experience can be more deployable than IDE-only features. The key operational detail is that MCP server and plugin configuration is now part of the CLI flow, so you will want to think about how to standardize and document those configs across teams.

DevOps metrics and planning: Copilot adoption reporting and better issue triage

This fits into last week's reliability-and-FinOps reporting thread (standardizing fields and allocation) by adding a more outcome-shaped adoption metric, while GitHub made a few incremental reporting and workflow changes that are easy to miss but useful when you are trying to operationalize AI adoption and keep backlogs actionable.

Enterprise and organization reports now include total_pull_requests_merged in the totals_by_ai_adoption_phase breakdown for Copilot usage metrics. That complements existing per-user averages in the 1-day and 28-day reports, and gives platform teams a more outcome-oriented signal to correlate with enablement work (training, policy changes, or tool rollouts).

On the planning side, repository Issues added shared saved views (public preview), and GitHub Projects tables now support adjustable row heights. For teams doing regular triage, saved views help encode “how we look at the backlog” into something repeatable and shareable, instead of living in personal filters.

Azure infrastructure and operations: IPv6 registries, better logs, and agentic observability

Building on last week's Azure Monitor direction toward centralized, standardized observability (OpenTelemetry, DCR pipelines, and SLOs), Azure updates this week leaned into two operational themes: removing friction in day-two troubleshooting and preparing infrastructure for the next wave of agent-driven operations.

Azure Container Registry adds IPv6 dual-stack endpoints (public preview)

Azure Container Registry (ACR) announced public preview support for IPv6 dual-stack public endpoints and firewall rules. The feature requires Premium plus dedicated data endpoints, and the post includes Azure CLI commands to enable or revert the dual-stack setting.

If you are modernizing networks (or supporting environments where IPv6 is mandatory), having registry endpoints and firewall rules that support dual-stack helps avoid awkward NAT or proxy workarounds. It is also one less reason to keep registries isolated to legacy network configurations.

Azure App Service on Linux: improved Kudu log streaming and filtering

Kudu for Azure App Service on Linux got a new Log stream page that unifies application logs and platform logs, with streaming plus search and filtering. The goal is faster troubleshooting without bouncing between different log views and losing context.

For on-call engineers, the practical improvement is time-to-signal: being able to filter and search across both app and platform logs makes it easier to confirm whether an incident is code-related, runtime-related, or infrastructure-related. It also encourages more consistent log-driven debugging when you do not have a full observability stack wired into every small service.

Azure Copilot Observability Agent reaches GA, with autonomous operations in preview

This extends last week's SLO-and-exemplar push (tighter links between signals and investigations) into an agent-assisted workflow: Microsoft announced general availability for the Azure Copilot Observability Agent in Azure Monitor, positioning it around explainable, evidence-based incident investigations across Azure telemetry. Alongside GA, Microsoft introduced autonomous operations in public preview for background alert correlation, issue creation, and deeper investigations, while keeping humans responsible for mitigation decisions.

A related Azure post framed this as “closed-loop” agentic cloud operations, connecting observability, governance, and continuous optimization, and called out an Azure Resource Manager MCP Server entering public preview to expose cost and usage data to agent workflows. Together, these updates suggest an operational model where agents do the continuous triage and evidence gathering, and humans focus on decisions and remediation.

Faster iteration in large codebases: VS Code's TypeScript 7 migration

The staged rollout approach mirrors last week's broader “tighten control without slowing delivery” theme (governance plus throughput) as the VS Code team shared a detailed case study on adopting TypeScript 7 (the Go-based native port) with an incremental migration approach. Instead of a flag day switch, they used parallel CI checks and staged rollouts to validate correctness by running both compilers (the traditional TypeScript compiler and the native port, often referenced as tsgo) and catching differences early.

The practical takeaway is the process, not just the speedup: dual-compiler validation in CI reduces risk when swapping a core tool in a large monorepo. The team also discussed using staged rollout tactics and related tooling (like esbuild in the broader toolchain) to cut type-checking and watch build times while keeping reliability high.

Supply chain and incident response: npm protections, Dependabot changes, and GitHub break-glass controls

Following last week's focus on reducing secret-scanning noise and tightening automation permissions (including moving agent workflows toward GITHUB_TOKEN), this week's security-related DevOps items were mostly about reducing blast radius: slowing attackers down after account changes, removing brittle secrets in automation, and making emergency response actions easier to execute.

npm hardens accounts and prepares breaking defaults in npm 12

npm added preventive account protection for “high-impact” accounts: after sensitive changes (like updating an email or using 2FA recovery codes), npm enforces a 72-hour read-only period that blocks actions like publishing and token management. The intent is to reduce account-takeover supply chain risk by inserting a delay where defenders can notice and respond.

Separately, reporting on npm 12 described upcoming breaking default changes that disable automatic install-time lifecycle scripts and tighten remote dependency fetching. The migration path centers on allowlists (for example, allow-scripts) and preparing via .npmrc settings if you are on npm 11.x and want to see the impact early.

Dependabot: simpler private registry access, but Python 3.9 is now unsupported

This complements last week's broader move away from PATs for automation by extending GITHUB_TOKEN-based access into dependency maintenance: Dependabot can now access private GitHub-hosted registries using the built-in GITHUB_TOKEN with packages:read, as long as the package grants the repository Actions access. For supported GitHub Packages ecosystems (including common flows involving ghcr.io), this removes the need to provision PATs just for Dependabot registry access, which is a concrete improvement for least-privilege automation.

At the same time, Dependabot deprecated Python 3.9 support because it is end-of-life. Repos still using Python 3.9 risk Dependabot stopping dependency update pull requests, so platform teams should treat this like any other build-image or runtime baseline upgrade and plan the version bump.

GitHub Enterprise incident response: bulk credential revocation and self-service controls

This is the incident-response counterpart to last week's governance tightening (approval gates and more auditable automation) as GitHub added “break-glass” incident response capabilities for enterprises to bulk revoke SSO authorizations and delete credentials (PATs, SSH keys, OAuth tokens). It also introduced a self-service Settings → Credentials experience for enterprise members, plus org-level programmatic support via REST APIs and improved auditing via logs and email notifications.

For incident responders, this reduces the manual overhead of “invalidate everything now” when compromise is suspected. For platform teams, the API angle matters because you can integrate revocation into playbooks and internal tooling, instead of relying on manual admin actions during a high-stress event.

Other DevOps News

Several items this week were useful but did not cluster cleanly into the themes above, and they generally reinforce last week's direction toward operational maturity (better guardrails, more observable systems, and fewer manual workflows). Azure Developer CLI (azd) continued its steady iteration across versions 1.24.3 through 1.26.0, including new azd tool and azd exec commands plus improvements in provisioning, extensions, auth, and CI/pipeline scenarios.

Database and data tooling also kept moving into the “from the editor” workflow: the PostgreSQL extension for VS Code added Azure Database for PostgreSQL performance monitoring and tuning (metrics dashboard, Azure Advisor recommendations, query plan visualization, and AI-assisted query analysis), and Microsoft SQL's first-half 2026 roundup collected updates across Azure SQL, SQL Server, and Fabric (including identity, security, and AI-related capabilities).

Vercel entered the agent tooling conversation with eve (open source) and enterprise controls like Passport and BYOC, aiming to centralize identity and reduce “shadow AI” usage. On the edge side, Azure Local guidance covered simplified machine provisioning and a Small Form Factor (SFF) deployment path using Azure Arc registration and running containers with Docker and K3s.