NAME¶
kgb.conf -- KGB bot configuration file
DESCRIPTION¶
kgb.conf is the main configuration file of the KGB bot. Its location is
in
/etc/kgb-bot/ unless changed with the
--conf command line
option. See
kgb-bot(1).
The file format is YAML. Elaborate example configuration is at the end of this
document.
Settings¶
soap¶
A map with the following possible keys:
- server_addr
- IP address to listen to. Defaults to 127.0.0.1.
For making KGB bot listen on all addresses, set the value to 0.0.0.0.
- server_port
- Port to listen to.
- service_name
- SOAP service name. Defaults to "KGB".
pid_dir¶
Directory to store PID file to. Defautls to
/var/run/kgb-bot/.
include¶
Path to file with additional configuration. May be a path to a directory, in
which case all files in it ending with ".conf" are loaded, in
alphabetical order.
min_protocol_version¶
Minimum version of the protocol that will be supported by the server. Defaults
to 1. Protocol version 0 has no authentication.
queue_limit¶
When messages are sent to IRC, there is certain rate limitting, which may
prevent the message to be sent right away. In this case messages are enqueued,
and this parameter configures the size of the queue. When the queue is full
client requests are rejected.
repositories¶
A map with keys project names and values maps with project details:
- password
- Password used for authenticating all requests from this project.
- private
- If true, disables commit announces to 'broadcast' IRC channels.
networks¶
A map with keys network names and values map of network configuration,
containing the following items:
- server
- IP address/hostname of the IRC server to connect to.
- port
- Port number to connect to.
- nick
- Bot's nick on the network.
- ircname
- The full name of the bot on the network.
- username
- The username presented to the network.
- password
- A password for the network.
- nickserv_password
- A password for Nick server identification.
- flood
- If defined to a true value, the built-in rate-limitting feature of the IRC
component will be turned off. WARNING: this may cause the bot to be
kicked off the IRC network. Use only when you control both the bot and the
IRC network (e.g. when testing).
channels¶
A list of channels. Each element is a map and represents the channel's
configuration:
- name
- Channel name, e.g. "#commits". Mandatory.
- network
- Network name, as described in the networks map.
Mandatory.
- broadcast
- Enables broadcasting all commit notifications to this channel.
- repos
- A list of project names, as described in the repositories map.
Mandatory unless broadcast is enabled.
- smart_answers
- Each channel can contain separate list of smart answers, see below.
smart_answers¶
A list of strings to be used as replies when the bot is addressed on IRC.
smart_answers_polygen¶
If set to a true value,
polygen(1) will be used to generate replies when
the bot is addressed on IRC.
debug¶
Enables logging of additional diagnostic information.
admins¶
A list of IRC masks, used to determine if a given IRC nick is bot administrator.
Note that currently these nicks have no additional power.
colors¶
A map of colors to be used when painting commit messages. The following keys are
recognized:
- revision
- Commit ID. Default: none.
- path
- Changed path. Default: teal.
Depending on the action performed to the path, additional coloring is
made:
- addition
- Used for added paths. Default: green.
- modification
- Used for modified paths. Default: teal.
- deletion
- Used for deleted paths. Default: bold red.
- replacement
- Used for replaced paths (a Subversion concept). Default: brown.
- prop_change
- Used for paths with changed properties (a Subversion concept), combined
with other colors depending on the action -- addition, modification or
replacement. Default: underline.
- author
- Commit author. Default: green.
- branch
- Commit branch. Default: brown.
- module
- Project module. Default: purple.
- web
- URL to commit information. Default: silver.
- separator
- The separator before the commit log. Default: none.
EXAMPLE CONFGURATION¶
# vim: filetype=yaml
---
soap:
server_addr: 127.0.0.1
server_port: 9999
service_name: KGB
queue_limit: 150
log_file: "/var/log/kgb-bot.log"
include: "/etc/kgb-bot/kgb.conf.d"
repositories:
# just a name to identify it
foo:
# needs to be the same on the client
password: supersecret
# private repositories aren't announced to broadcast channels
# private: yes
# Some witty answer for people that talk to the bot
#smart_answers:
# - "I wont speak with you!"
# - "Do not disturb!"
# - "Leave me alone, I am buzy!"
# Admins are allowed some special !commands (currently only !version)
#admins:
# - some!irc@mask
# - some!other@host
networks:
freenode:
nick: KGB
ircname: KGB bot
username: kgb
password: ~
nickserv_password: ~
server: irc.freenode.net
port: 6667
channels:
# a broadcast channel
- name: '#commits'
network: freenode
broadcast: yes
# a channel, tied to one or several repositories
- name: '#foo'
network: freenode
repos:
- foo
# Can also be set per-channel
#smart_answers:
# - "I'm in ur channel, watching ur commits!"
# - "I am not listening"
# - "Shut up! I am buzy watching you."
pid_dir: /var/run/kgb-bot
# anything less is rejected
min_protocol_ver: 1
# default colors:
colors:
repository: bold
revision: bold
author: green
branch: brown
module: purple
path: teal
addition: green
modification: teal
deletion: "bold red"
replacement: reverse
prop_change: underline
web: silver
# you can combine them like "bold red" (ouch!)
# available colors: black, navy, green, red, brown, purple, orange, yellow,
# lime, teal, aqua, blue, fuchsia, gray, silver, white
# available modifiers: bold underline reverse
SEE ALSO¶
kgb-bot(1),
kgb-client(1)
AUTHOR¶
- Damyan Ivanov dmn@debian.org
COPYRIGHT & LICENSE¶
Copyright (C) 2012, 2013 Damyan Ivanov
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
Street, Fifth Floor, Boston, MA 02110-1301, USA.