# 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. | Label | Description | Human | Bot | Why? | | --- | --- | :---: | :---: | --- | | `autosubmit` | Merge a pull request when the tree becomes green. | X | | Merge on a validated pull request. | | `revert` | Label used to initiate a revert request on a closed and merged PR. | X | | Revert a particular change that has been merged. | | `revert of` | Tracking label for the revert request generated from the closed and merged original pull request. | | X | To track the new pull request that reverts a previous change. | | `warning: land on red to fix tree breakage` | Override the tree-status check and land even when tree is closed. | X | | To 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.