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 users.yaml
.
Channels can be created by adding a new channel in channels.yaml
. Channels
should be sorted alphabetically. New channels will be created in accordance
with the template specified in template.yaml
.
Deleting channels is not permitted, but a channel can be archived by specifying
archived: true
, or unarchived by removing it (or specifying false
).
To rename a channel, set its id
property to its current Slack ID, then change
the name.
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
this:
- 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