Skip to content

Waiting for tree to go green bot

Pierre-Louis edited this page Aug 4, 2021 · 6 revisions

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.

Flutter Wiki

Process

Framework repo

Engine repo

Android

Plugins and packages repos

Infrastructure

Release Information

Experimental features

Clone this wiki locally