YAML files in this directory control the state of Slack, via Tempelis. Updating a configuration file will result in Slack being updated once the change merges. If a change is not legal, a presubmit will fail.
There is no safe, stable way to derive a specific Slack user from any
human-readable identifier. Instead of using Slack IDs everywhere, a single
mapping from GitHub usernames to Slack IDs is given in
users.yaml. To reference
a user, they must first be added to
Channels can be created by adding a new channel in
should be sorted alphabetically. New channels will be created in accordance
with the template specified in
Deleting channels is not permitted, but a channel can be archived by specifying
archived: true, or unarchived by removing it (or specifying
To rename a channel, set its
id property to its current Slack ID, then change
A fully-specified channel looks like this:
- name: slack-admins # mandatory id: C4M06S5HS # optional except when renaming archived: false # optional for unarchived channels
Usergroups are pingable Slack groups. All members of a usergroup can be automatically added to certain channels. A usergroup must have at least one member. A usergroup can be removed by deleting it from the configuration.
Some usergroups (e.g.
@test-infra-oncall) are managed by other tooling. To
prevent Tempelis from trying to deactivate these usergroups, they can be included
on the list and marked as
external: true. Other usergroups should look like
- name: slack-admins # mandatory, the pingable handle long_name: Slack Admins # mandatory, the human-readable name description: Slack Admin Group # mandatory, a description channels: # optional, a list of channels for members to auto-join - slack-admins members: # mandatory, a list of at least one member. - castrojo # member names must be listed in users.yaml. - katharine - jeefy - mrbobbytables - alejandrox1 - jdumars - parispitmann - coderanger - idvoretskyi - idealhack