Skip to content

ci: Auto-accept API verifier changes in PRs#5228

Draft
jamescrosswell wants to merge 1 commit into
mainfrom
ci/issue-5157-auto-verify-api
Draft

ci: Auto-accept API verifier changes in PRs#5228
jamescrosswell wants to merge 1 commit into
mainfrom
ci/issue-5157-auto-verify-api

Conversation

@jamescrosswell
Copy link
Copy Markdown
Collaborator

Summary

Adds a new verify api workflow that auto-accepts API approval test snapshot changes on PRs, similar to the existing format-code workflow.

  • Runs ApiApprovalTests on a matrix of macos-15 (covers .NET / netstandard / iOS / MacCatalyst / Android TFMs) and windows-latest (covers the net48 / .NET Framework TFM, which is the common pain point when developing on non-Windows).
  • Uploads each runner's *.received.* files as artifacts.
  • A finalizer job downloads all received files, runs scripts/accept-verifier-changes.ps1, and pushes the accepted snapshots back to the PR branch.
  • When API changes are accepted, the PR is also labelled public API (the label is created on demand if it doesn't yet exist).
  • For PRs from forks (where the workflow can't push back to the contributor's branch), the workflow fails with a clear message instructing the contributor to accept the snapshots locally — mirroring the fork-fallback in format-code.yml.

The Alternative suggested in the issue (switching to Microsoft.CodeAnalysis.PublicApiAnalyzers) is intentionally out of scope for this PR and can be considered in a follow-up.

Closes #5157

Adds a new `verify api` workflow that runs the ApiApprovalTests on
macOS (covers .NET / netstandard / iOS / MacCatalyst / Android TFMs)
and Windows (covers the net48 / .NET Framework TFM), then runs
scripts/accept-verifier-changes.ps1 over the resulting *.received.*
files and pushes the accepted snapshots back to the PR branch. When
API changes are accepted, the PR is also labelled `public API`.

For PRs from forks (where we can't push back), the workflow fails
with a hint telling the contributor how to accept the changes
locally.

Closes #5157

Co-Authored-By: Claude <noreply@anthropic.com>
@codecov
Copy link
Copy Markdown

codecov Bot commented May 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 74.13%. Comparing base (0f91f7d) to head (92dab02).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #5228      +/-   ##
==========================================
- Coverage   74.13%   74.13%   -0.01%     
==========================================
  Files         508      508              
  Lines       18282    18282              
  Branches     3574     3574              
==========================================
- Hits        13554    13553       -1     
- Misses       3859     3860       +1     
  Partials      869      869              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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.

ci: Auto-Verify API changes in Pull Requests

1 participant