Using the Auto-submit Bot

This page details the workflow for Flutter's Auto-submit bot and how to use it to submit your changes into Flutter owned repositories.

Auto-submit Labels

Label descriptions and Who Applies these Labels

The following is a table of the labels that Auto-submit currently responds to and who adds them.

LabelDescriptionHumanBotWhy?
autosubmitMerge a pull request when the tree becomes green.XMerge on a validated pull request.
revertLabel used to initiate a revert request on a closed and merged PR.XRevert a particular change that has been merged.
revert ofTracking label for the revert request generated from the closed and merged original pull request.XTo track the new pull request that reverts a previous change.
warning: land on red to fix tree breakageOverride the tree-status check and land even when tree is closed.XTo submit a potential fix for the current tree-status

Note: that warning: land on red to fix tree breakage cannot be used on its own and should be used in conjunction with the autosubmit label.

Usage Examples

Merging a change (tree is open)

This is the happy path. The tree is green and you just need to make sure validations pass and have the correct number of reviews.

Labels to use: [ autosubmit ]

Validations:

  • ci checks
  • approvals (2 from flutter hackers)
  • mergeability

Merging a fix on red tree-status (tree is closed)

This path should only be done in the event you have a change that will contribute a fix to the status of the tree.

Labels to use: [ autosubmit, warning: land on red to fix tree breakage ]

Validations:

  • ci checks
  • approvals (2 from flutter hackers)
  • mergeability
  • ignores the results of the tree status check.

Warning: if you are not merging a fix for the tree you should not use the warning: land on red to fix tree breakage label. You will need to wait for the tree to open again.

Reverting a change from the tree

This path is a way to revert a broken change from the tree that is within 24 hours old.

The reasoning behind this is that there will be someone with context as to why the change needed to be reverted.

Note: that it might make sense to add the warning: land on red to fix tree breakage label to a revert request but you do not need to do this. The revert request is assumed to be done out of urgency.

Labels to use: [ revert ]

Validations:

  • “required” ci checks *
  • mergeability

* There are two types of required ‘ci checks’. Ones that are controlled by/through GitHub and those enforced through our auto-submit configuration (TODO add link to the config). Currently there is only one required check in both cases but the later can be extended to support additional checks.

Reverting older changes from the tree

This path describes what you should do in order to revert a change that is older than 24 hours.

In this case you will need to open the revert request in the traditional way. That is by navigating to your change in the GitHub UI and clicking the ‘Revert’ button from the pull request page.

The pull request will then need to be treated as a regular pull request where you will need to wait for all ci checks to complete and gather 2 reviews from members of the ‘flutter-hackers’ team. See Merging a change (tree is open) above.