kgb.conf man page

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.
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

Info

2013-08-16 perl v5.24.0 User Contributed Perl Documentation