Zodbot

Zodbot is an IRC bot connected to the irc.freenode.net IRC network and joined to many Fedora-related IRC channels. Zodbot listens for commands you send to it over IRC and will reply to you in the same channel.

Zodbot runs on the value01.phx2.fedoraproject.org host, hosted by Fedora infrastructure. It is written in Python using the Limnoria IRC bot framework.

This page describes what zodbot does and how it can be used by those with the permissions to operate it. Most functions do not require any special permissions. Those the do are noted as such.

Addressing zodbot

You can send commands to zodbot in any IRC channel where zodbot is present. Zodbot only responds to lines beginning with . so you will need to add . to the beginning of any of the commands listed below. For example, you can say:

.whoowns fedora-release

and zodbot will reply in the channel with the owner of the fedora-release package.

If you wish to avoid chatter in channel from zodbot, you can address zodbot directly. You may wish to do this in channels with a large number of users or if you have a number of queries. For example, this IRC command:

/msg zodbot whoowns fedora-release

will send the same command but in a private message. Zodbot will reply to you by private message. Depending on your IRC client, the reply may appear in the same window or in the window for the network. You can also open a private message window, using this IRC command:

/query zodbot whoowns fedora-release

for an extended conversation with zodbot.

Fedora-specific functions

badgesusername (badges)

Returns the number of Fedora Badges held by a user.

branchespackage_name (pkgdb)

Returns the branches of a package.

bugbug_number (RH bugzilla)

Return the name and URL of a Red Hat Bugzilla ticket.

fasquery (fas)

Searches the Fedora Account System database in usernames, emails, full names, and IRC nicks. (Note that some accounts have enabled privacy, so nothing but their FAS username will be searchable.)

fasinfoaccount_name (fas)

Provides detailed Fedora Account System information about the specific account name. This requires an exact username.

fescoticket_number (fesco)

Return the name and URL of a FESCo ticket.

groupgroup_name (fas)

Return information about a Fedora Account System group.

membersgroup_name (fas)

Return a list of members of the specified group.

nextmeetingchannel_name (fedocal)

Return the next meeting scheduled to occur in a given channel.

nextmeetings

Return the next 5 scheduled meetings in any channel.

pingallmessage

Ping everyone in the IRC channel.

Use pinglist instead Pinglist allows people to opt-in instead. Refer to the instructions for more information.

pullsorganization/repository

Return the list of open pull requests on a GitHub repository.

pullsorganization

Return the list of open pull requests on all repositories on a GitHub organization.

pushduty

List who is currently on updates-push duty for Release Engineering.

quotesymbolperiod (fedmsg)

Return statistics on fedmsg activity for different services.

refresh

Refresh the necessary caches. This requires special permissions

sponsorsgroup_name (fas)

Provides a list of sponsors for an exact group name, with @ indicating administrators of the group.

swbugbug_number (SW bugzilla)

Return the name and URL of a Sourceware Bugzilla ticket.

swedish (zodbot)

Bot version. (Humor mmcgrath.)

ticketticket_number (infrastructure)

Return the name and URL of a Fedora Infrastructure ticket.

vacation

Returns the list of who is currently on vacation according to fedocal.

whatpackage_name (pkgdb)

Returns a description of a package.

whoownspackage_name (pkgdb)

Returns the FAS account of the owner of a package. To get directly the fasinfo of the owner, you can use: fasinfo [whoownspackage_name]

wikilinkaccount_name (fas)

Return MediaWiki link syntax for a FAS user's page on the wiki.

Koji-specific functions

builders - returns a list of build machines enabled and disabled.

building <builder> - returns what is building on builder number <builder>

taskload - lists number of current koji tasks.

buildload - lists load on all koji build cluster.

Meeting Functions

Zodbot has the supybot-meetbot plugin package installed and configured. See: the MeetBot manual for more information on the meeting commands (the odds are the manual may be more current than this wiki page). Meeting logs will be at meetbot.fedoraproject.org.

The implementation of MeetBot used by the Fedora project is packaged in the Fedora and EPEL repositories. It can be installed with 'sudo dnf install supybot-meetbot'. This will install both the MeetBot plugin and the supybot base code, as needed. You can also use the MeetBot plugin with the Limnoria fork of supybot if you are looking for something more actively maintained than supybot.

To work with the supybot code, you would need to install the fedpkg command. How to use it and how to gain access to Fedora-maintained packages can be found elsewhere on this wiki.

In general, for meetings using the plugin, you will use this sequence of commands:

#startmeeting <meeting name> - Start the meeting. A value for <meeting name> is required to start a meeting (as it will be used to name and organize the logs), or the meeting will not be started and will not be logged. It also sets the "user-friendly" title for the meeting. It can be changed later if needed. If not specified later, the name used to start the meeting will be used in the logs (and also used for categorizing the meeting in meetbot.fedoraproject.org.

Example: #startmeeting Fedora CommOps meeting (2016-07-12)

#meetingname <meeting-name> - Usually the name of the team meeting (example: fesco). Not required during the meeting, but it can be used to change the name of the meeting in the IRC channel at any time. This will also change the name the meeting is logged under. Use this to change if from the value passed to #startmeeting. Make sure this name is consistent across all your meetings, otherwise they will not be categorized and saved consistently in meetbot.fedoraproject.org!

#meetingtopic <topic> - Overall meeting topic (example: FESCo meeting) Not required. May be useful to meetings that have many topics and where the group may find it helpful to call out topics as a method of organizing the meeting in the logs.

#topic <currenttopic> - Use topic to go through each of the topics in your agenda. The main meetingtopic will stay the same.

#action, #accepted, #agreed, #chair, #idea, #info, #link, #rejected, etc. - as needed in the meeting. (#commands will provide a full list of available commands.)

#endmeeting - Ends the meeting and presents the log links in the IRC channel

Zodbot also has some aliases setup to list the time until various meetings:

nextfescomeeting, nextkdemeeting, nextepelmeeting, nextinframeeting, nextrelengmeeting, etc.
These commands will list the time until the next meeting of that sig or group.

Meeting admin commands

These all require special permissions to run.

addchairchannel freenode nick - Add a chair to a meeting. Useful if you need to end a meeting that someone has going in a channel that they forgot to end.

listmeetings - list the currently in-progress meetings

deletemeetingchannel freenode - used to end a meeting. Contrary to the name, it saves the meeting first, unless you specify False as the last parameter

recent - list recent meetings

savemeetings - save all currently active meetings

Zodbot blew up while it was logging my meeting, what can I do?

First, go to meetbot.fedoraproject.org and find the incomplete log of your meeting. Then extract the remainder of the log from your IRC client and save that to a text file. The log must end with somebody saying "#endmeeting". Please do not upload HTMLified logs.