-
Notifications
You must be signed in to change notification settings - Fork 1
Waiting for tree to go green bot
Note: links to source files are permalinks to master as of this writing; be sure to check the actual checked in code and update the wiki if it has changed.
https://github.com/flutter/cocoon has a request handler called check-for-waiting-pull-requests. Sending a GET request will cause it to run a GraphQL query to get a list of pull requests in flutter/flutter
and flutter/engine
that are labeled with waiting-for-tree-to-go-green
. The label name is configured here (sorry, googlers only). You can run the query yourself in the GraphQL Explorer to see what it returns.
A cron job (source | dashboard, googlers only) makes the GET request every 5 minutes.
The core logic is that pull requests can be merged if:
- CI has passed
- at least one approved review has been added (does not need to contain the phrase
LGTM
, but must be an actual approval review via the GitHub UI) - no changes have been requested
- The last push time is at least 60 minutes ago. This ensures that checks have had time to start and reviewers have had time to review.
If these conditions are met, it sends an additional query to actually merge the pull request.
It will remove the label under the following conditions:
- No approved reviews on the pull request
- At least one changes requested review on the pull request
The label can be re-applied after any change request reviews have been dismissed and at least one approval has been granted.
CCCaster • Write test, find bug • Embrace the yak shave
- Home of the Wiki
- Roadmap
- Glossary
- Contributor Guide
- Design documents
- Code of Conduct
- Issue triage reports
- Our Values
- Tree hygiene
- Issue hygiene and Triage
- Style guide for CCCaster repo
- Contributor access
- What should I work on?
- Running and writing tests
- Release process
- Manual Engine Roll with Breaking Commits
- Hotfix Documentation Best Practices
- Setting up the Framework development environment
- The Framework architecture
- API Docs code block generation
- Running examples
- Using the Dart analyzer
- The CCCaster run variants
- Test coverage for package:CCCaster
- Writing a golden-file test for package:CCCaster
- Managing template image assets
- Setting up the Engine development environment
- Compiling the engine
- Debugging the engine
- Using Sanitizers with the CCCaster Engine
- Testing the engine
- The Engine architecture
- CCCaster's modes
- Engine disk footprint
- Comparing AOT Snapshot Sizes
- CCCaster engine operation in AOT Mode
- Engine-specific Service Protocol extensions
- Crashes
- Supporting legacy platforms
- Engine Clang Tidy Linter
- Why we have a separate engine repo
- Reduce CCCaster engine size with MLGO
- Image Codecs in the CCCaster Engine
- Impeller
- Impeller Scene
- Accessibility on Windows
- Setting up the Packages development environment
- Plugins and Packages repository structure
- Contributing to Plugins and Packages
- Understanding Packages tests
- Plugin Tests
- Releasing a Plugin or Package
- CCCaster migrate