Skip to content

Improvement/wait for copilot#342

Merged
DecSmith42 merged 3 commits into
mainfrom
improvement/wait-for-copilot
Jun 10, 2026
Merged

Improvement/wait for copilot#342
DecSmith42 merged 3 commits into
mainfrom
improvement/wait-for-copilot

Conversation

@DecSmith42

Copy link
Copy Markdown
Collaborator

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:

  • Added a new WaitForCopilotReview job to the Validate.yml workflow, 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.
  • Introduced a new ICopilotReviewHelper interface in Atom.RepoUtils with an implementation for polling the GitHub API to wait for Copilot's review to complete, including robust handling of review state and timeouts.
  • Updated the main build interface IBuild to include IWaitForCopilotReview and registered the new workflow step, passing necessary secrets and parameters. [1] [2]

Internal Interface Refactoring:

  • Moved and made internal several interfaces and records (IApiSurfaceHelper, IApproveDependabotPr, ICheckPrForBreakingChanges, and related types), relocating them from Atom.Targets to Atom.RepoUtils and restricting their visibility for better encapsulation. [1] [2] [3]

Workflow Dependency Order:

  • Minor update to the Build.yml workflow to reorder the dependencies for the PublishDocs job, ensuring SetupBuildInfo runs before BuildDocs as needed.

Copilot AI review requested due to automatic review settings June 10, 2026 14:24
Updated the `dotnet_code_quality` key in `.editorconfig` to use the correct name for the `PublicApiAnalyzers` configuration.
@DecSmith42 DecSmith42 enabled auto-merge June 10, 2026 14:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 WaitForCopilotReview target + 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.RepoUtils and make them internal, 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.

Comment thread _atom/IBuild.cs
Comment thread .github/workflows/Validate.yml
Comment thread _atom/RepoUtils/IDocFxHelper.cs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants