en un clic
flutter-pr-checks-finder
// Find failing checks on a Flutter PR and locate the corresponding LUCI log URLs.
// Find failing checks on a Flutter PR and locate the corresponding LUCI log URLs.
Rebuilds the Flutter tool and CLI. Use when a user asks to compile, update, regenerate, or rebuild the Flutter tool or CLI.
A skill to find the lowest Dart and Flutter release containing a given commit. Use this skill whenever users ask about when a commit landed in Flutter or Dart releases, inquire about release versions for specific SHAs, or want to know if a commit is included in stable, beta, or dev channels for Flutter/Dart projects.
Parse failures from Dart and Flutter test logs.
Upgrade browser versions (Chrome or Firefox) in the Flutter Web Engine and/or Framework tests. Use when asked to roll or upgrade Chrome or Firefox to a newer version.
| name | flutter-pr-checks-finder |
| description | Find failing checks on a Flutter PR and locate the corresponding LUCI log URLs. |
gh (GitHub CLI) must be installed and authenticated. If not in your PATH, check common locations like /opt/homebrew/bin/gh on macOS or C:\Program Files\GitHub CLI\gh.exe on Windows.curl or similar tool to fetch raw logs from LUCI.You can use the gh CLI if it's installed and authenticated, or use direct HTTP requests to the GitHub API as a fallback.
gh CLI (Preferred)Run the following command to list checks:
gh pr checks <PR_NUMBER>
If gh is not available, you can use read_url_content or a similar method to interact with the public GitHub API:
https://api.github.com/repos/flutter/flutter/pulls/<PR_NUMBER>
Extract the head.sha field.https://api.github.com/repos/flutter/flutter/commits/<PR_SHA>/check-runs
Parse the JSON response. CRITICAL: You must handle pagination to avoid missing failures! Check the total_count field. If it is greater than the number of items in the check_runs array (typically capped at 100 or what you set with per_page), make additional HTTP requests by appending ?per_page=100&page=<N> to the URL for each subsequent page until all check runs are fetched. Identify all checks that have failed (i.e., where conclusion is failure).Identify all checks that have failed.
For each failing check:
Find the Log URL:
flutter-dashboard link typically appears as "View more details on flutter-dashboard" at the bottom of the check view on GitHub.https://ci.chromium.org/ui/p/flutter/builders/try/<Builder Name>/<Build Number>/overviewBuild Raw Log URL:
?format=raw to the log URL or by following the pattern: https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/<Build ID>/+/u/<Step Name>/stdout?format=rawFetch Raw Logs:
curl or similar tool to fetch the content of the raw log URL.[!NOTE] Step names can be very specific and hard to guess. This section documents patterns to help find them.
flutter_drone Recipe
analyze, test_general) as specified in .ci.yaml (root).run test.dart for <shard> shard and subshard <subshard>subshard is not specified, it defaults to None.Linux analyze (shard: analyze, no subshard), the URL step name is run_test.dart_for_analyze_shard_and_subshard_None.builder.py & Related Recipes
flutter/engine repository (or recipes repository) and used to execute builds and tests according to target JSON configurations in the builders folder directory.test: .test: in the JSON file, the recipe might still add the prefix again (e.g., test:_test:_Check_formatting).tester.py
Run <shard> tests or Run <shard> <subshard> tests.If guessing fails, find the exact test and task names in the engine configuration:
config_name property.tests array and the specific tasks listed within them.If read_url_content fails with 404 on guessed step names, you may need to find the step name from the LUCI overview page or other sources.