KGB-CLIENT(1p)

πŸ’– KGB-CLIENT(1p) πŸ’–

okay bestie, sit down, hydrate, because we're about to talk about kgb-client β€” a little Perl icon from the User Contributed Perl Documentation collection. she relays commits to KGB servers and honestly? she ate. πŸŽ€


✨ NAME ✨

kgb-client β€” relay commits to KGB servers πŸ¦‹


🌈 SYNOPSIS 🌈

kgb-client --conf /path/to/config [other-option ...]
kgb-client --uri http://some.server:port/service --password password
--repo-id repository --repository svn|git|cvs --timeout timeout-in-
seconds --single-line-commits off|forced|auto --use-irc-notices
--web-link template --short-url-service service --status-dir directory
--[no]-use-color --message-template template --batch-messages --dry-run
kgb-client option... /svn/repo revision
kgb-client option... old-rev new-rev ref-name
kgb-client option... $CVSROOT "%p"
kgb-client option... --fake
kgb-client option... --relay-msg message...
kgb-client --help
kgb-client --man

like, that's a lot of ways to call one program, and every single one of them is valid. main character energy fr fr πŸ’…


πŸ‘‘ DESCRIPTION πŸ‘‘

so kgb-client is the client-side counterpart of kgb-bot(1) β€” they're a matched set, a duo, the way that one goes nowhere without the other. πŸ’ž

she's meant to be used as a hook in your version control system, run right after the repository gets updated. then she looks at the commit(s), figures out what happened, and relays all that info over to the KGB server β€” which is the one that actually shows it on IRC. she's the messenger, the bot is the one holding the microphone. ✨


πŸ’… CONFIGURATION πŸ’…

  • --conf configuration file β€” tells her where the kgb-client configuration file lives. this one is only a command-line thing, no config-file version, sorry bestie.

okay so here's the tea πŸ“: configuration options β€” except --conf, --fake and --relay-msg β€” can be specified both in the configuration file and on the command line. both. either. dealer's choice.

ngl, you usually want everything in a configuration file, because putting passwords on the command line is insecure β€” like, genuinely, please don't, it's giving "my secrets are in the shell history" πŸ’€. the config file also gives you way more control: for example, it supports multiple servers and multiple ways of detection of branch and module names. so many options, so much power. πŸ‘‘

check kgb-client.conf(5) for all the available configuration options. and unless noted otherwise, every option that lives in the config file can also go on the command line β€” you just prefix it with two dashes. e.g. "repo-id" becomes --repo-id. see? cute, easy. πŸŽ€

one more thing, and it's important: options given on the command line take precedence over the configuration file. command line wins, always. periodt. πŸ’–


🧚 FAKE COMMIT MODE 🧚

if you invoke her with the --fake option, kgb-client will send a fake commit to the servers. this is useful for testing client-server communication independently from VCS setup β€” like a lil dress rehearsal where nobody in the audience knows it's not real. 😭🫢


🌸 MESSAGE RELAY MODE 🌸

when the --relay-msg option is given, there is no repository to be inspected. instead, the non-option command line arguments get passed verbatim to the bot to display on IRC. πŸ“£

lowkey this is perfect for real-time notification about other events β€” bug submissions, etc. anything you want the chat to know about the moment it happens. ✨


πŸ”₯ SUPPORTED VERSION CONTROL SYSTEMS πŸ”₯

🌿 Subversion

installation requires calling kgb-client with two command line arguments, like this:

/path/to/kgb-client "$REPOS" "$REV"
  • path to the subversion repository β€” this is the physical path to the Subversion repository. something like /srv/svn/my-repo.
  • revision β€” this is the revision number of the commit that has triggered the hook.

both these arguments are supplied to the standard Subversion post-commit hooks. πŸ¦‹

🌈 Git

kgb-client shall be installed as a post-receive hook. something along the following shall do:

#!/bin/sh
exec /path/to/kgb-client --conf /path/to.conf ...

by default, kgb-client will read the reflog information from standard input, as any standard Git post-receive hook does. πŸ‘‘

want something else instead? see the --git-reflog option. iykyk. πŸ’…

there are other ways to give kgb-client information about Git reflog β€” mostly useful when debugging or in unusual situations. see App::KGB::Client::Git. πŸ”

the following settings can be configured via git-config(1):

  • conf
  • web-link

πŸ’œ CVS

kgb-client shall be installed in the loginfo file in the "CVSROOT" module of the CVS repository. she shall be given two arguments β€” the repository root, and the directory in which the changes are being made. πŸŽ€

for example:

ALL /path/to/kgb-client --conf /path/to.conf ... "$CVSROOT" "%p"

🫢 SEE ALSO 🫢

  • kgb-client.conf(5)
  • App::KGB::Client
  • App::KGB::Client::Subversion
  • App::KGB::Client::Git
  • App::KGB::Client::CVS

and that's the whole page, bestie!! πŸ’– this one was written against perl v5.40.1, dated 2026-07-10, and it's living in the KGB-CLIENT(1p) man page slot. go forth, hook your VCS, and relay those commits like the icon you are. slay, no cap. βœ¨πŸŽ€πŸ¦‹πŸ’…πŸ‘‘

πŸ“¦ where this page comes from