---
name: "App::KGB::API"
section: "3pm"
platform: "linux"
package: "kgb-client"
version: "1.61-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/App::KGB::API"
---

# App::KGB::API(3pm)

## NAME

App::KGB::API -- KGB bot API documentation

## VERSION 4 (JSON)

### General, authentication

Version 4 uses JSON-RPC as described in \<http://http://json-rpc.org/wiki/specification\> with one extension. Since all requests are authenticated, two HTTP headers need to be included:

- X-KGB-Project: project-name

  - X-KGB-Auth: hash

  The project name is the string identifying the project on the server side, and the hash is the hexadecimal representation of the SHA-1 hash calculated over the following data:

- Project password

  This is the shared password known to the client and the server.

- project-name

  - request-text

  This is the JSON-encoded request text. The same that is sent in the HTTP body.

### Commit notification

Request is a JSON-RPC call to a method called **commit\_v4** with a single argument, which is a map with the following possible keys:

- repo\_id *project-name*

  - rev\_prefix *revision-prefix*

  Usually `"r"` for Subversion commits

- commit\_id *commit id*

  Subversion revision, Git hash or just empty (for CVS).

- changes *changes list*

  A list of changes, encoded as strings. It is simple file name prepended with `"(A)"` for added, `"(M)"` (or nothing) for modified and `"(D)"` for deleted. See App::KGB::Change.

- commit\_log *log message*

  - author *user/name*

  - branch *branch name*

  - module *module name*

  - extra *additional information*

  A map with extra information. Currently `"web_link"` is the only member that the server recognises.

### Plain message relay

The message relay calls are to the **relay\_message** method, with the only argument the message to be relayed.

## SEE ALSO

**kgb-client**(1), **kgb-bot**(1)

## AUTHOR

- Damyan Ivanov dmn@debian.org

  ## COPYRIGHT & LICENSE

Copyright (C) 2012 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.
