| # Mastering @rustbot | |
| `@rustbot` (also known as `triagebot`) is a utility robot that is mostly used to | |
| allow any contributor to achieve certain tasks that would normally require GitHub | |
| membership to the `rust-lang` organization. | |
| Its most interesting features for contributors to `rustc` are issue claiming and relabeling. | |
| ## Issue claiming | |
| Claim an unassigned issue when you intend to work on it. | |
| See [Issue assignment](https://forge.rust-lang.org/triagebot/issue-assignment.html). | |
| ## Issue relabeling | |
| Changing labels for an issue or PR is also normally reserved for members of the organization. | |
| However, `@rustbot` allows you to relabel an issue yourself, only with a few restrictions. | |
| This is mostly useful in two cases: | |
| **Helping with issue triage**: Rust's issue tracker has more than 5,000 open | |
| issues at the time of this writing, so labels are the most powerful tool that we | |
| have to keep it as tidy as possible. | |
| You don't need to spend hours in the issue tracker | |
| to triage issues, but if you open an issue, you should feel free to label it if | |
| you are comfortable with doing it yourself. | |
| **Updating the status of a PR**: We use "status labels" to reflect the status of PRs. | |
| For example, if your PR has merge conflicts, it will automatically be assigned | |
| the `S-waiting-on-author`, and reviewers might not review it until you rebase your PR. | |
| Once you do rebase your branch, you should change the labels yourself to remove | |
| the `S-waiting-on-author` label and add back `S-waiting-on-review`. | |
| In this case, | |
| the `@rustbot` command will look like this: | |
| @rustbot label -S-waiting-on-author +S-waiting-on-review | |
| The syntax for this command is pretty loose, so there are other variants of this command invocation. | |
| There are also some shortcuts to update labels, | |
| for instance `@rustbot ready` will do the same thing with above command. | |
| For more details, see [the docs page about labeling][labeling] and [shortcuts]. | |
| [labeling]: https://forge.rust-lang.org/triagebot/labeling.html | |
| [shortcuts]: https://forge.rust-lang.org/triagebot/shortcuts.html | |
| ## Other commands | |
| If you are interested in seeing what `@rustbot` is capable of, check out its [documentation], | |
| which is meant as a reference for the bot and should be kept up to date every time the | |
| bot gets an upgrade. | |
| `@rustbot` is maintained by the Release team. | |
| If you have any feedback regarding | |
| existing commands or suggestions for new commands, feel free to reach out | |
| [on Zulip] or file an issue in [the triagebot repository]. | |
| [documentation]: https://forge.rust-lang.org/triagebot/index.html | |
| [on zulip]: https://rust-lang.zulipchat.com/#narrow/stream/224082-t-release.2Ftriagebot | |
| [the triagebot repository]: https://github.com/rust-lang/triagebot/ |