[automated] Merge branch 'main' => 'release/dnup'#55328
Merged
Conversation
Verbatim copy of microsoft/mxc .github/workflows/issue-triage.md as the starting point for a .NET SDK agentic triage workflow. No modifications yet.
Strip the mxc container/executor label allowlist, the mxc owner logins and area->owner map, and the mxc macOS-backend synonym example. Leave placeholders for the dotnet/sdk labels (commit 2.5) and CODEOWNERS + round-robin owner routing (commits 3-6).
Populate add-labels.allowed with the real dotnet/sdk Area-* component labels and core type labels (Bug/enhancement/Feature Request/question/documentation/Task). Switch the removed lifecycle label from mxc's 'Needs-Triage' to dotnet/sdk's 'untriaged' (the label the policy service auto-adds). Update body guidance to reference Area-* + type labels.
Replace the owner-assignment placeholder with Azure/azure-sdk-for-net's CODEOWNERS owner-lookup and routing sections (their Step 5 + Step 6), copied verbatim with headings demoted to nest under ## Task. Still Azure-specific (ServiceLabel/AzureSdkOwners/ServiceOwners/Service Attention/mention_owners); commit 4 adapts it to how dotnet/sdk CODEOWNERS actually works.
Rewrite the Azure owner-lookup section to match how dotnet/sdk CODEOWNERS works: root-level CODEOWNERS organized into '# Area-<Name>' sections that map directly to Area-* labels, with individual (@login) vs team (@dotnet/team) owners. Assign individuals; route team-only areas via the 'needs team triage' label. Remove all Azure-isms (ServiceLabel/%/AzureSdkOwners/ServiceOwners/Service Attention/needs-team-attention/customer-reported/mention_owners and the Event Hubs/ARM/Mgmt examples).
Insert microsoft/pylance-release's round-robin rotation body verbatim (rotation order, stateful #4462 pointer, skip-reassign, steps 1-6). Headings demoted to nest under ## Task. Commit 6 makes it stateless and merges it with expertise-based owner routing.
Replace pylance's stateful rotation with a stateless, expertise-first, load-balanced selection: prefer the area's CODEOWNERS individual owner(s), measure each candidate's current open-assigned load via 'repo:... is:open assignee:<login>', and assign the least-loaded; when the SME is overloaded and an alternate owner exists, assign the lighter teammate and name the SME. is:open avoids penalizing tenured members and avoids flooding newer ones. Populate assign-to-user.allowed with the 12 CODEOWNERS individuals and add the 'needs team triage' routing label. No persisted rotation state, no #4462 pointer, no unassign-from-user.
Teach the triager .NET SDK phrasing -> Area-* mapping (build/restore/publish/pack/test/run/watch/format, MSBuild, NuGet, workloads, templates, trimming/AOT/single-file/R2R, source-build/VMR, SWA/Blazor/Razor). Add special-purpose labels to the allowlist and body guidance: cookie (Copilot-suitable easy issues: small fixes, doc changes, backports, simple tests), Test Debt, performance, dotnetup, breaking-change, good first issue, help wanted, backport. Add a needs-info (needs-more-info) behavior: detect incomplete bug reports, apply needs-info, ask for the specific missing details, and hold owner routing.
Make the description dotnet/sdk-specific; add 'roles: all' so external-contributor issues are processed; switch to 'min-integrity: none' with a justification so external issue content is read (not filtered) while still treated as untrusted data; add github toolsets [issues, labels] and a 'noop' safe output; add a 'Before you start' anti-noise guard (skip already-triaged issues, re-triage after needs-info is answered) and a prompt-injection security note; drop the stale internal commit reference in the label comment.
Add a workflow_dispatch trigger with an issue_number input so the workflow can be run manually against a specific existing issue for testing (in addition to issues opened/edited). Resolve the target issue as github.event.issue.number || github.event.inputs.issue_number, and set target: '*' on the write safe-outputs so a dispatched run acts on the specified issue. Fix compile errors: nest 'roles: all' under 'on:', and drop the fixed add-labels allowlist (dotnet/sdk exceeds the 50-item cap) in favor of an instruction to apply only existing repo labels. Generate issue-triage.lock.yml via 'gh aw compile' and update the pinned actions-lock.json.
The gateway rejected the guard policy with "allow-only.repos string must be all or public" because allowed-repos was a scalar repo string. A specific repo must be a list, so repos compiles to an array the gateway accepts. This is why the agent step failed with nothing listening on 8080 -- the gateway never started.
Implement device-aware deployment and shared binlogging for Microsoft.Testing.Platform test runs, with solution, multi-targeting, no-build, and failure coverage. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: b632d2a6-9948-490a-bb12-d6a52041773f
Attach the command-owned facade logger when device selection creates its own project collection. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: b632d2a6-9948-490a-bb12-d6a52041773f
Read the shared binlog and assert DeployToDevice completes before ComputeRunArguments begins. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: b632d2a6-9948-490a-bb12-d6a52041773f
Give the user an opportunity (2 minute window) to edit the issue content before we pull it. This will save on resources as many edits are minor and should not cause a new triage workflow to occur, as this would not be useful.
Co-authored-by: Evangelink <11340282+Evangelink@users.noreply.github.com>
CODEOWNERS_PAT_0 through _2 would need to exist as secrets containing a token with exclusively organization Members: read and repository Issues: read for this to function. This is scope creep so I will be likely removing this and deferring it to another PR but including here so we have it for future reference to build on top of.
…ing" This reverts commit 7157f3f.
…ound Bump gh-aw to v0.82.9 and recompile issue-triage and add-tactics-template-on-comment. The detection job now gains pat_pool in its needs (github/gh-aw#43917 fix in #44202), so threat detection authenticates with the pooled Copilot PAT instead of resolving to an empty token. Also route GitHub tools and Safe Outputs through the CLI proxy (tools.cli-proxy + github.mode: gh-proxy) to avoid the awmg-mcpg native HTTP MCP firewall denial (github/gh-aw#45915).
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…260717.7 On relative base path root Microsoft.Testing.Platform From Version 2.4.0-preview.26360.5 -> To Version 2.4.0-preview.26367.7 MSTest , MSTest.Sdk From Version 4.4.0-preview.26360.5 -> To Version 4.4.0-preview.26367.7
The whole-run zero-tests normalization (microsoft/testfx#7457) means an empty module's exit code 8 (ZeroTests) is normalized to success before aggregation, so it no longer collides with the failing module's exit code 2 to produce GenericFailure (1). The run's verdict is now AtLeastOneTestFailed (2). Update the expectation and rename the test accordingly. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: e0b86e41-a49a-4a68-bea8-3cf5df5694d8
…dule E2E test - Skip the whole-run zero-tests verdict when invoked in help mode so the help command keeps returning exit code 0 (Success) instead of ZeroTests. - Add an E2E test (plus MultiTestProjectSolutionWithZeroTestsAndPassingTests asset) covering a run where one module matches no tests (exit code 8) but another passes, asserting the overall exit code is Success. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8abef3da-3035-4f48-85ab-485d5f704fc2
Add the new --show-slowest-tests option exposed by the updated Microsoft.Testing.Platform dependency. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9ea8d68f-84b3-433b-bc39-87a62a722a8c
Resolve dotnet test conflicts by preserving SDK-side JSON discovery rendering while adopting main's TestModule environment-variable ownership and thread-safe discovery state. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 537abc96-3b4d-450f-883e-643ba843dfd1
The testfx bump adds a --show-slowest-tests Platform Option and the MTP help output no longer ends with a trailing newline. Regenerate the VerifyMTPHelpOutput snapshot to match. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: cbea02c7-5d29-435e-9601-732a3c9c38fd
Treat an empty module as successful when computing the terminal run summary, matching the whole-run exit-code aggregation. Add focused coverage for an empty module alongside a passing module. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 182327bb-5826-4966-a2cc-1b92338b706f
Use regular team alias (not admin)
Preserve dispose failures after normalizing zero-test module results and retain the per-assembly zero-tests label in terminal output. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 182327bb-5826-4966-a2cc-1b92338b706f
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 686dec80-f08b-44bf-b541-518a215a1068
Resolve 3 conflicts: CODEOWNERS -> kept release/dnup (ours). dnup intentionally keeps a minimal CODEOWNERS to avoid review-ping noise on automated merge PRs; github-merge-flow.jsonc sets ResetToTargetPaths=CODEOWNERS for the main -> release/dnup flow, so ours is correct by design (not a sync gap). eng/pipelines/templates/jobs/sdk-build.yml -> semantic merge: kept dnup's "Check for built assets" guard (scoped dotnetup builds produce no Shipping packages) AND adopted main's improved AoT gate (categoryName == 'AoT' instead of runAoTTests, so build-only cross-arch AoT legs are included). sdk.slnx -> union: kept both test/dotnetup.Tests (dnup) and test/Microsoft.DotNet.Cli.Telemetry.Tests (main). Also de-duplicated OpenTelemetry in Directory.Packages.props: the auto-merge kept both main's general-block entry and dnup's dotnetup-telemetry-block entry (same $(OpenTelemetryDotnetPackageVersion)), producing a duplicate PackageVersion in a single ItemGroup. Removed the dotnetup-block copy and kept the unique OpenTelemetry.Exporter.Console. Dependency/toolset files (global.json, Versions.props, Version.Details.xml) flow from main as intended — dnup has no darc subscription, so this auto-merge is its only path to those updates. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 59570d89-a7e3-4993-baa9-3fb1f442a617
dsplaisted
force-pushed
the
merge/main-to-release/dnup
branch
from
July 20, 2026 13:13
58451c5 to
878664a
Compare
Two compile errors surfaced by pulling the latest main into release/dnup: 1. HostFxrLocator.cs CS0234 (dnup-specific): main added HostFxrLocator.cs to Microsoft.DotNet.NativeWrapper, which `using`s Microsoft.DotNet.HostFxr (src/Common/HostFxrPathResolver.cs). The dnup-only Microsoft.Dotnet.Installation.csproj source-globs all of NativeWrapper but didn't compile that Common file (nor reference NuGet.Versioning). Added both, mirroring Microsoft.DotNet.NativeWrapper.csproj and dn.csproj. 2. TerminalTestReporterTests.cs CS0104 (temporary workaround for a main regression): main's tip is currently red with this same ambiguous `ExitCode` reference (Microsoft.DotNet.Cli.Commands.Test.ExitCode vs the globally-used Microsoft.NET.TestFramework.ExitCode). Added a using alias to disambiguate so this merge can build; expected to be superseded when main fixes it upstream. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 59570d89-a7e3-4993-baa9-3fb1f442a617
nagilson
approved these changes
Jul 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I detected changes in the main branch which have not been merged yet to release/dnup. I'm a robot and am configured to help you automatically keep release/dnup up to date, so I've opened this PR.
This PR merges commits made on main by the following committers:
Instructions for merging from UI
This PR will not be auto-merged. When pull request checks pass, complete this PR by creating a merge commit, not a squash or rebase commit.
If this repo does not allow creating merge commits from the GitHub UI, use command line instructions.
Instructions for merging via command line
Run these commands to merge this pull request from the command line.
or if you are using SSH
After PR checks are complete push the branch
Instructions for resolving conflicts
Instructions for updating this pull request
Contributors to this repo have permission update this pull request by pushing to the branch 'merge/main-to-release/dnup'. This can be done to resolve conflicts or make other changes to this pull request before it is merged.
The provided examples assume that the remote is named 'origin'. If you have a different remote name, please replace 'origin' with the name of your remote.
or if you are using SSH
Contact .NET Core Engineering (dotnet/dnceng) if you have questions or issues.
Also, if this PR was generated incorrectly, help us fix it. See https://github.com/dotnet/arcade/blob/main/.github/workflows/scripts/inter-branch-merge.ps1.