Improvement/wait for copilot#342
Merged
Merged
Conversation
Updated the `dotnet_code_quality` key in `.editorconfig` to use the correct name for the `PublicApiAnalyzers` configuration.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds a new workflow/build target to block PR validation completion until GitHub Copilot’s PR review has finished, and refactors several build/workflow helpers into Atom.RepoUtils for better encapsulation. It also updates a set of package references across projects and test projects.
Changes:
- Add
WaitForCopilotReviewtarget + workflow job, backed by a GraphQL polling helper (ICopilotReviewHelper). - Refactor DocFX-related targets by extracting shared logic into a new
IDocFxHelper. - Move several previously-public helper interfaces/records into
Atom.RepoUtilsand make theminternal, plus bump various dependency versions.
Reviewed changes
Copilot reviewed 31 out of 31 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/Invex.Atom.Workflows.Tests/Invex.Atom.Workflows.Tests.csproj | Dependency bumps for test project packages. |
| tests/Invex.Atom.Tool.Tests/Invex.Atom.Tool.Tests.csproj | Dependency bump for Verify.NUnit. |
| tests/Invex.Atom.TestUtils/Invex.Atom.TestUtils.csproj | Dependency bump for logging abstractions. |
| tests/Invex.Atom.Module.GithubWorkflows.Tests/Invex.Atom.Module.GithubWorkflows.Tests.csproj | Dependency bumps for test project packages. |
| tests/Invex.Atom.Module.DevopsWorkflows.Tests/Invex.Atom.Module.DevopsWorkflows.Tests.csproj | Dependency bumps for test project packages. |
| tests/Invex.Atom.Build.Tests/Invex.Atom.Build.Tests.csproj | Dependency bumps for test project packages. |
| tests/Invex.Atom.Build.SourceGenerators.Tests/Invex.Atom.Build.SourceGenerators.Tests.csproj | Dependency bumps for System.Formats.Asn1 and Verify.NUnit. |
| tests/Invex.Atom.Build.Analyzers.Tests/Invex.Atom.Build.Analyzers.Tests.csproj | Dependency bump for System.Formats.Asn1. |
| src/Invex.Atom.Workflows/Invex.Atom.Workflows.csproj | Switch public API analyzer package + bump Microsoft.Extensions + StructuredText. |
| src/Invex.Atom.Tool/Invex.Atom.Tool.csproj | Bump ILLink tasks version for net10 build. |
| src/Invex.Atom.Module.GitVersion/Invex.Atom.Module.GitVersion.csproj | Switch public API analyzer package. |
| src/Invex.Atom.Module.GithubWorkflows/Invex.Atom.Module.GithubWorkflows.csproj | StructuredText bump + switch public API analyzer package. |
| src/Invex.Atom.Module.Dotnet/Invex.Atom.Module.Dotnet.csproj | Switch public API analyzer package. |
| src/Invex.Atom.Module.DevopsWorkflows/Invex.Atom.Module.DevopsWorkflows.csproj | StructuredText bump + switch public API analyzer package. |
| src/Invex.Atom.Module.AzureStorage/Invex.Atom.Module.AzureStorage.csproj | Switch public API analyzer package. |
| src/Invex.Atom.Module.AzureKeyVault/Invex.Atom.Module.AzureKeyVault.csproj | Switch public API analyzer package. |
| src/Invex.Atom.Build/Invex.Atom.Build.csproj | Bump Invex libs + Microsoft.Extensions + switch public API analyzer package. |
| .github/workflows/Validate.yml | Add WaitForCopilotReview job to validation workflow. |
| .github/workflows/Build.yml | Reorder PublishDocs job dependencies. |
| _atom/Targets/IDocTargets.cs | Refactor DocFX targets to use extracted IDocFxHelper. |
| _atom/RepoUtils/IWaitForCopilotReview.cs | Add build target to wait for Copilot review completion. |
| _atom/RepoUtils/IPullRequestHelper.cs | Move helper to Atom.RepoUtils and make internal. |
| _atom/RepoUtils/IDocFxHelper.cs | New shared DocFX helper implementation (build/serve/publish). |
| _atom/RepoUtils/ICopilotReviewHelper.cs | New GraphQL polling helper for Copilot review state. |
| _atom/RepoUtils/ICheckPrForBreakingChanges.cs | Move to Atom.RepoUtils and make internal. |
| _atom/RepoUtils/IApproveDependabotPr.cs | Move to Atom.RepoUtils and make internal. |
| _atom/RepoUtils/IApiSurfaceHelper.cs | Move to Atom.RepoUtils and make internal. |
| _atom/IBuild.cs | Register WaitForCopilotReview target in workflow definition. |
| _atom/_usings.cs | Add global using for Atom.RepoUtils. |
| _atom/_atom.csproj | Bump ILLink tasks version. |
Comments suppressed due to low confidence (1)
_atom/RepoUtils/IPullRequestHelper.cs:5
- The parameter description says the pull request number is "to approve", but this helper is now used for multiple targets (e.g. breaking-changes check, Copilot wait). Update the description to be target-agnostic to avoid confusing CLI/help output.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This was referenced Jun 15, 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.
This pull request introduces a new workflow step and supporting code to ensure that GitHub Copilot has completed its review before continuing with pull request validation. It also refactors several internal interfaces for improved encapsulation and organization. The most important changes are summarized below:
Copilot Review Integration:
WaitForCopilotReviewjob to theValidate.ymlworkflow, which runs a step to block until Copilot has finished reviewing a pull request. This helps ensure that Copilot feedback is always considered before merging.ICopilotReviewHelperinterface inAtom.RepoUtilswith an implementation for polling the GitHub API to wait for Copilot's review to complete, including robust handling of review state and timeouts.IBuildto includeIWaitForCopilotReviewand registered the new workflow step, passing necessary secrets and parameters. [1] [2]Internal Interface Refactoring:
IApiSurfaceHelper,IApproveDependabotPr,ICheckPrForBreakingChanges, and related types), relocating them fromAtom.TargetstoAtom.RepoUtilsand restricting their visibility for better encapsulation. [1] [2] [3]Workflow Dependency Order:
Build.ymlworkflow to reorder the dependencies for thePublishDocsjob, ensuringSetupBuildInforuns beforeBuildDocsas needed.