| # 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 |
| |
| `@rustbot` exposes a command that allows anyone to assign an issue to themselves. |
| If you see an issue you want to work on, you can send the following message as a |
| comment on the issue at hand: |
| |
| @rustbot claim |
| |
| This will tell `@rustbot` to assign the issue to you if it has no assignee yet. |
| Note that because of some GitHub restrictions, you may be assigned indirectly, |
| i.e. `@rustbot` will assign itself as a placeholder and edit the top comment to |
| reflect the fact that the issue is now assigned to you. |
| |
| If you want to unassign from an issue, `@rustbot` has a different command: |
| |
| @rustbot release-assignment |
| |
| ## 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][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][zulip] or file an issue in [the triagebot repository][repo] |
| |
| [documentation]: https://forge.rust-lang.org/triagebot/index.html |
| [zulip]: https://rust-lang.zulipchat.com/#narrow/stream/224082-t-release.2Ftriagebot |
| [repo]: https://github.com/rust-lang/triagebot/ |