IRC bot that reports on Gerrit events
Go to file
Clark Boylan 103f0987d0 Fix Gerritbot leaking GerritLib Threads.
Gerritbot previously leaked GerritLib threads because it did not check
if the preexisting thread was dead before starting new threads. Fix
that by checking the thread's is_alive() method.

Change-Id: I7282debf5caeb73cbc46b240f10c62b75b683776
2012-08-24 13:46:06 -07:00
gerritbot Fix Gerritbot leaking GerritLib Threads. 2012-08-24 13:46:06 -07:00
tools Use gerritlib for event-stream consumption. 2012-07-31 11:45:53 -07:00
.gitignore Add setup.py to project. 2012-07-30 17:08:32 -07:00
.gitreview Add gitreview 2012-07-09 15:18:19 -07:00
LICENSE Add Apache 2 license file. 2012-08-02 16:37:04 -07:00
MANIFEST.in Add setup.py to project. 2012-07-30 17:08:32 -07:00
README Add a README file. 2012-08-01 15:20:22 -07:00
gerritbot.init Install gerritbot to /usr/local/bin. 2012-07-31 14:06:48 -07:00
openstack-common.conf Add setup.py to project. 2012-07-30 17:08:32 -07:00
setup.cfg Add setup.py to project. 2012-07-30 17:08:32 -07:00
setup.py Remove Nova's description from setup.py. 2012-08-15 13:48:55 -07:00
tox.ini Add setup.py to project. 2012-07-30 17:08:32 -07:00

README

Gerritbot is an IRC bot that will notify IRC channels of Gerrit events.

To install Gerritbot run `python setup.py install` from within the repository's
root directory.

To run Gerritbot `$PATH/gerritbot /path/to/config`. $PATH is usually something
like /usr/local/bin and /path/to/config should be whatever path you have hidden
the config at.

Gerritbot has two configuration files. The first configures the IRC server and
Gerrit server details and is the config file whose path you pass to gerritbot
when starting the bot. It should look like:
  [ircbot]
  nick=NICKNAME
  pass=PASSWORD
  server=irc.freenode.net
  port=6667
  channel_config=/path/to/yaml/config
  
  [gerrit]
  user=gerrit2
  key=/path/to/id_rsa
  host=review.example.com
  port=29418

The second configures the IRC channels and the events and projects that each
channel is interested in. This config file is written in yaml and should look
like:
  example-channel1:
      events:
        - patchset-created
        - change-merged
      projects:
        - example/project1
        - example/project2
      branches:
        - master
        - development
  example-channel2:
      events:
        - change-merged
      projects:
        - example/project3
        - example/project4
      branches:
        - master