IRC/Bots/ircservserv

From Meta, a Wikimedia project coordination wiki
< IRC‎ | Bots
Jump to navigation Jump to search

ircservserv is a IRC bot that manages channel configuration. It is declarative, so any changes made outside of the bot's configuration will be reverted (if it has the permission to do so). Public channels are managed by ircservserv-wm which runs from Toolforge.

It currently supports:

  • setting ChanServ flags for founder, op, etc. permissions. If you want different channel modes/roles, please ask:
    • founder: +AFRefiorstv
    • crat: +Afiortv
    • autovoice_op: +AViotv (for team channels, where members are typically autovoiced)
    • op: +Aiotv
    • plus_o: +o (for wmopbot and Libera Chat staff)
  • setting invite exceptions (/mode +I) for private channels
  • enabling global bans (/mode +b $j:#wikimedia-bans)

Setup a new channel[edit]

Join it and register it with ChanServ:

/join #mychannel
/cs register #mychannel
/cs flags #mychannel ircservserv-wm +AFRefiorstv

You need to grant the ircservserv-wm account founder access +AFRefiorstv, otherwise it can't remove flags. In the future it might work with less access.

Then submit a patch to the ircservserv-config Git repository (or ask on the talk page and describe who should have special permissions besides you).

An example configuration looks like this:

# Full control over channel
founders = [
    "ircservserv-wm"
]
# Full operators (kick, ban, and manually change permissions without this file)
crats = []
# Main operators (edit channel topic, invite, etc.)
ops = [
]
# Basic operator (+o)
plus_o = [
    "wmopbot",
]
# Automatically marked with voice (+V)
autovoice = [
]
# Enable Wikimedia-wide settings
global_bans = true
libera_staff = true

For a typical channel, it is recommended that you:

  • Add one name to the founders just in case (e.g. yourself).
  • Add a core group of people to ops (e.g. team members, or group moderators).
  • If the core group should be easy to address, add them to autovoice as well to help with discovery and remembering of user names.

And then edit config.toml to add your new channel to the bot's channel list. New channels must be approved by bot owners, who will mostly check that everything is configured correctly.

Making changes[edit]

To make a change to channel configuration, submit a patch to the wikimedia/irc/ircservserv-config repository or ask on the talk page requesting changes. A "trusted" user will review the changes, verify it's being requested/submitted by a representative of the channel, and then merge it and pull it into the bot (!isspull). At that point it is up to a channel founder (+F) to enable those changes in their channel by running (!issync)

Permissions and security[edit]

A set of "trusted" users can merge changes to the config repository and then have the bot pull them (!isspull). Users must be a channel founder (+F) in at least one channel managed by the bot to be eligible to be trusted. It is up to the discretion of the owners on who to designate as trusted.

Only channel founders (+F) can run !issync in their channel. The bot will announce all changes it makes to the channel so any misuse or unexpected effects would immediately be noticed.

Bot "owners" can execute any command in any channel to assist on a technical level, but will not interfere in channel governance. Owners have access to the bot account password, which is stored on Toolforge. This instance of the bot should not be used for private or sensitive channels (see T283492 instead).

Usage[edit]

!issync: Applies a channel's configuration, making any necessary changes.

!isspull: Pull configuration updates that have been merged into Git. Should tell you which channels potentially need syncing. This command should be run in #wikimedia-ops.

Owners[edit]

The following people have access to the bot:

Links[edit]