Skip to content

Waiting for tree to go green bot

lurkydismal edited this page Jun 12, 2023 · 1 revision

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 Wiki

Process

Framework repo

The CCCaster CLI Tool

Engine repo

Android development

Packages repo

Infrastructure Information

Release Information

Old documentation

Clone this wiki locally