flutter / flutter/flutter

Unified Flutter GitHub PR CheckRun

Open
#176,973 0 comments 1 reaction 1 assignee Claimed by @ievdokdm View on GitHub
P1 team-infra triaged-infra
Dominant language
Dart
Stars
179k
Forks
31.1k
PR merge metrics
PR metrics pending

Description

### Use case

Flutter's CI system, Cocoon, relies heavily on the GitHub CheckRuns API to report the status of tests for pull requests (PRs). For every task in its configuration, Cocoon creates a corresponding status check on GitHub.

The core problem is that as Flutter has scaled—with more tests and contributors—the sheer volume of these API calls frequently exceeds GitHub's invisible burst rate limit.

When this limit is hit, the system fails to update the PR's status, leaving it in a broken state. This forces developers to restart the entire test cycle or causes the merge queue to drop all pending PRs. Ultimately, this issue causes significant delays of 1 to 3 hours in merging code.

### Proposal

The proposal aims to solve the GitHub API rate-limiting issue by fundamentally changing how test statuses are reported. Instead of creating a separate GitHub check run for every test, the new approach is to:

**Use a Single Check Run**: Create only one mandatory check run called `Merge Queue Guard` This single check will act as a gatekeeper, showing an overall status (pending, success, or failure) for the entire test suite.

**Move Details to the Flutter Dashboard**: All granular, per-test results will be moved off of GitHub and onto a dedicated page for the pull request within the existing Flutter Dashboard.

**Link from GitHub to the Dashboard**: Developers will access the detailed test results by clicking the `View more details` link on the single GitHub check run, which will direct them to the PR-specific page on the dashboard.

**Notify on Failure with a Comment**: To ensure developers are promptly aware of issues, a bot will automatically post a comment on the PR whenever a test fails, including links to the specific failures on the dashboard.

See: [go/unified-flutter-checkrun-proposal](http://goto.google.com/unified-flutter-checkrun-proposal)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.