|
| 1 | +# Triagebot Zulip commands |
| 2 | + |
| 3 | +You can send commands to triagebot on the [Rust Zulip](https://rust-lang.zulipchat.com) server using two separate mechanisms: |
| 4 | + |
| 5 | +- Sending a direct message (DM) to the [triagebot][triagebot-dm] account. |
| 6 | +- Sending a message in some stream by tagging `@triagebot`, followed by a command (e.g. `@triagebot end-meeting`). |
| 7 | + |
| 8 | +Triagebot commands can only be sent by users that are in the [team](https://github.com/rust-lang/team) database. |
| 9 | + |
| 10 | +## Direct message commands |
| 11 | + |
| 12 | +You can send these commands as a direct message to the [triagebot][triagebot-dm] account. |
| 13 | + |
| 14 | +- `whoami`: shows the Rust teams that you are a part of |
| 15 | +- `lookup github <zulip-name>`: lookup the GitHub username of a user by their Zulip name |
| 16 | +- `lookup zulip <github-username>`: lookup the Zulip name of a user by their GitHub username |
| 17 | +- `team-stats <team-name>`: show the review workqueue statistics of all members of the given team |
| 18 | +- Reviewer workqueue commands, which are documented [here](review-queue-tracking.md#usage). |
| 19 | +- Notification commands, which are documented [here](notifications.md#usage). |
| 20 | + |
| 21 | +You can use the `--help` flag or a `help` subcommand for any of these commands to find out more about their parameters. |
| 22 | + |
| 23 | +### Impersonation |
| 24 | + |
| 25 | +You can also run the above commands on behalf of other GitHub users with the following message: |
| 26 | + |
| 27 | +```text |
| 28 | +as <github-username> <command> |
| 29 | +# e.g. |
| 30 | +as MyFavouriteGitHubUser work show |
| 31 | +``` |
| 32 | + |
| 33 | +If you execute a "sensitive" command in this way (i.e. a command that modifies something), `triagebot` will notify the user that you have impersonated via a direct message. |
| 34 | + |
| 35 | +Note that the impersonation functionality is intended for inspecting the status (e.g. the reviewer workqueue or Rust teams) of other users or occasional debugging. Please do not use it maliciously. |
| 36 | + |
| 37 | +## Stream commands |
| 38 | + |
| 39 | +- *Meeting* commands serve for controlling the flow of Zulip meetings. They are documented [here](zulip-meeting.md). |
| 40 | +- *Rust Project Goals* commands serve for controlling Rust Project Goal tracking. |
| 41 | + - `@triagebot ping-goals <threshold> <next-update>`: For use by the goals team to ping goal owners on Zulip to give an update on their goal. Will not ping if there has been a comment in `<threshold>` days. `<next-update>` is a string to say when the next blog update will start. |
| 42 | +- `@triagebot docs-update`: Generates a Pull Request ([example](https://github.com/rust-lang/rust/pull/141923)) to update the documentation submodules. See [Documentation Updates](doc-updates.md). |
| 43 | + |
| 44 | +## Implementation |
| 45 | + |
| 46 | +See [`src/zulip.rs`](https://github.com/rust-lang/triagebot/blob/HEAD/src/zulip.rs). |
| 47 | + |
| 48 | +[triagebot-dm]: https://rust-lang.zulipchat.com/#narrow/dm/261224-triagebot |
0 commit comments