.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "KGB.CONF 5p" .TH KGB.CONF 5p "2019-06-13" "perl v5.28.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" kgb.conf \-\- KGB bot configuration file .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIkgb.conf\fR is the main configuration file of the \s-1KGB\s0 bot. Its location is in \&\fI/etc/kgb\-bot/\fR unless changed with the \fB\-\-conf\fR command line option. See \&\fBkgb\-bot\fR\|(1). .PP The file format is \s-1YAML.\s0 Elaborate example configuration is at the end of this document. .SH "Settings" .IX Header "Settings" .SS "soap" .IX Subsection "soap" A map with the following possible keys: .IP "\fBserver_addr\fR" 4 .IX Item "server_addr" \&\s-1IP\s0 address to listen to. Defaults to \f(CW127.0.0.1\fR. .Sp For making \s-1KGB\s0 bot listen on all addresses, set the value to \&\f(CW0.0.0.0\fR. .IP "\fBserver_port\fR" 4 .IX Item "server_port" Port to listen to. .IP "\fBservice_name\fR" 4 .IX Item "service_name" \&\s-1SOAP\s0 service name. Defaults to \f(CW\*(C`KGB\*(C'\fR. .SS "pid_dir" .IX Subsection "pid_dir" Directory to store \s-1PID\s0 file to. Defaults to \fI/var/run/kgb\-bot/\fR. .SS "include" .IX Subsection "include" Path to file with additional configuration. May be a path to a directory, in which case all files in it ending with \f(CW\*(C`.conf\*(C'\fR are loaded, in alphabetical order. .SS "min_protocol_version" .IX Subsection "min_protocol_version" Minimum version of the protocol that will be supported by the server. Defaults to \f(CW1\fR. Protocol version 0 has no authentication. .SS "queue_limit" .IX Subsection "queue_limit" When messages are sent to \s-1IRC,\s0 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. .SS "repositories" .IX Subsection "repositories" A map with keys project names and values maps with project details: .IP "password" 4 .IX Item "password" Password used for authenticating all requests from this project. .IP "private" 4 .IX Item "private" If true, disables commit announces to 'broadcast' \s-1IRC\s0 channels. .SS "networks" .IX Subsection "networks" A map with keys network names and values map of network configuration, containing the following items: .IP "server" 4 .IX Item "server" \&\s-1IP\s0 address/hostname of the \s-1IRC\s0 server to connect to. .IP "use_ssl" 4 .IX Item "use_ssl" Whether to use \s-1SSL\s0 when connecting to the \s-1IRC\s0 server. Defaults to \f(CW1\fR. .IP "port" 4 .IX Item "port" Port number to connect to. .Sp Defaults to \f(CW6697\fR when \fBuse_ssl\fR is true and \f(CW6667\fR otherwise. .IP "nick" 4 .IX Item "nick" Bot's nick on the network. .IP "ircname" 4 .IX Item "ircname" The full name of the bot on the network. .IP "username" 4 .IX Item "username" The username presented to the network. .IP "password" 4 .IX Item "password" A password for the network. .IP "nickserv_password" 4 .IX Item "nickserv_password" A password for Nick server identification. .IP "flood" 4 .IX Item "flood" If defined to a true value, the built-in rate-limitting feature of the \s-1IRC\s0 component will be turned off. \fB\s-1WARNING\s0\fR: this may cause the bot to be kicked off the \s-1IRC\s0 network. Use only when you control both the bot and the \s-1IRC\s0 network (e.g. when testing). .SS "channels" .IX Subsection "channels" A list of channels. Each element is a map and represents the channel's configuration: .IP "name" 4 .IX Item "name" Channel name, e.g. \f(CW\*(C`#commits\*(C'\fR. \fBMandatory\fR. .IP "network" 4 .IX Item "network" Network name, as described in the \fBnetworks\fR map. \fBMandatory\fR. .IP "broadcast" 4 .IX Item "broadcast" Enables broadcasting all commit notifications to this channel. .IP "repos" 4 .IX Item "repos" A list of project names, as described in the \fBrepositories\fR map. Mandatory unless broadcast is enabled. .IP "smart_answers" 4 .IX Item "smart_answers" Each channel can contain separate list of smart answers, see below. .SS "smart_answers" .IX Subsection "smart_answers" A list of strings to be used as replies when the bot is addressed on \s-1IRC.\s0 .SS "smart_answers_polygen" .IX Subsection "smart_answers_polygen" If set to a true value, \fBpolygen\fR\|(1) will be used to generate replies when the bot is addressed on \s-1IRC.\s0 .SS "debug" .IX Subsection "debug" Enables logging of additional diagnostic information. .SS "admins" .IX Subsection "admins" A list of \s-1IRC\s0 masks, used to determine if a given \s-1IRC\s0 nick is bot administrator. Note that currently these nicks have no additional power. .SS "colors" .IX Subsection "colors" A map of colors to be used when painting commit messages. The following keys are recognized: .IP "revision" 4 .IX Item "revision" Commit \s-1ID.\s0 Default: none. .IP "path" 4 .IX Item "path" Changed path. Default: teal. .Sp Depending on the action performed to the path, additional coloring is made: .RS 4 .IP "addition" 4 .IX Item "addition" Used for added paths. Default: green. .IP "modification" 4 .IX Item "modification" Used for modified paths. Default: teal. .IP "deletion" 4 .IX Item "deletion" Used for deleted paths. Default: bold red. .IP "replacement" 4 .IX Item "replacement" Used for replaced paths (a Subversion concept). Default: brown. .IP "prop_change" 4 .IX Item "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. .RE .RS 4 .RE .IP "author" 4 .IX Item "author" Commit author. Default: green. .IP "branch" 4 .IX Item "branch" Commit branch. Default: brown. .IP "module" 4 .IX Item "module" Project module. Default: purple. .IP "web" 4 .IX Item "web" \&\s-1URL\s0 to commit information. Default: silver. .IP "separator" 4 .IX Item "separator" The separator before the commit log. Default: none. .SS "webhook" .IX Subsection "webhook" A map for enabling GitLab webook support. Possible keys: .IP "enabled" 4 .IX Item "enabled" Enable webhhok support by setting this to 1. .IP "allowed_networks" 4 .IX Item "allowed_networks" A list of allowed \s-1IP\s0 networks. Required. .SS "short_url_service \fIname\fP" .IX Subsection "short_url_service name" The name of a WWW::Shorten module to use for URL-shortening. The leading \&\f(CW\*(C`WWW::Shorten::\*(C'\fR part must be omitted. .PP Default: none .PP Example: Debli .SH "EXAMPLE CONFGURATION" .IX Header "EXAMPLE CONFGURATION" .Vb 10 \& # 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\*(Aqt announced to broadcast channels \& # private: yes \& # Some witty answer for people that talk to the bot \& #smart_answers: \& # \- "I won\*(Aqt 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: \*(Aq#commits\*(Aq \& network: freenode \& broadcast: yes \& # a channel, tied to one or several repositories \& \- name: \*(Aq#foo\*(Aq \& network: freenode \& repos: \& \- foo \& # Can also be set per\-channel \& #smart_answers: \& # \- "I\*(Aqm 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 \& webhook: \& enabled: 1 \& allowed_networks: \& \- 127.0.0.1 \& short_url_service: Debli .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBkgb\-bot\fR\|(1), \fBkgb\-client\fR\|(1) .SH "AUTHOR" .IX Header "AUTHOR" .IP "Damyan Ivanov dmn@debian.org" 4 .IX Item "Damyan Ivanov dmn@debian.org" .SH "COPYRIGHT & LICENSE" .IX Header "COPYRIGHT & LICENSE" Copyright (C) 2012, 2013 Damyan Ivanov .PP This program is free software; you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. .PP This program is distributed in the hope that it will be useful, but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of \s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE.\s0 See the \s-1GNU\s0 General Public License for more details. .PP You should have received a copy of the \s-1GNU\s0 General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, \s-1MA\s0 02110\-1301, \s-1USA.\s0