./gilb [config.yml]
Ruby IRC bot with builtin webserver for Gitlab webhooks. Inspired by aleks/gitlab-irc
bundle install
to install dependencies.Create your config file config.yml
taking as exemple the config.yml.example
and launch it: ./gilb
.
Then you just need to add the url http://yourserver.com:4567/commit
into you project's webhooks.
You can test it running the script:
./test/test-gilb.sh
You should see this output:
NICK gilb
USER gilb 8 * : gilb
JOIN #channel
PRIVMSG #channel :[gilb/master] 4d117cf6b 'Sample commit' <Carla Souza>
PART #channel
Webserver settings:
:http:
:host: 0.0.0.0
:port: 4567
Whatever it should shorten diff link using goo.gl
:
:behavior:
:shorten_url: true
Logging settings
:logging:
:level: info # Use `fatal`, `error`, `warn`, `info` or `debug`
:output: bot-Gilb.log # Can be a file name, `STDOUT` or `STDERR`
IRC settings
:irc:
:server: localhost
:port: 6667
:nick: gilb
:join_channel: true # If false, channel must not have mode +n
Hooks settings
:git:
:projects:
project1: # Tracks events from `project1`
:branches: # Tracks events from these branchs of `project1`. If not specified, it will track all branches
- master
- feature42
:channels:
- "#project1-channel" # Send messages to this channel
- "someones_nick" # You can also sent to a pvt buffer
:events: # Tracks these events. If not specified, it will track all events
- commits # Push with commits
- branch_created # Push of a branch created
- branch_deleted # Push of a branch deleted
- branch_merged # Push of a branch merged
project2:
:channels:
- "#project2_channel"
:http:
:host: 0.0.0.0
:port: 4567
:behavior:
:shorten_url: true
:logging:
:level: debug
:output: bot-Gilb.log
:irc:
:server: localhost
:port: 6667
:nick: gilb
:join_channel: true
:git:
:projects:
project1:
:branches:
- master
- feature42
:channels:
- "#project1-channel"
:events:
- branch_merged
project2:
:channels:
- "#project2_channel"
- "someones_nick"
:events:
- commits
- branch_created
- branch_deleted
- branch_merged
One commit to master
[gilb/master] 66013bf90 'First commit' <Carla Souza>
More than one commit to master
[gilb/master] 3 commits (diff: http://gitlaburl/gilb/compare/5139c1705...a33c7b724 ):
5139c1705 'Second commit' <Carla Souza>
dd12da5bd 'Third commit' <Carla Souza>
a33c7b724 'Fourth commit' <Carla Souza>
New branch created
[gilb] New branch: 'gilb/feature42' <Carla Souza>
One commit to a branch
[gilb/feature42] 60900941b 'Added logging to Gilb' <Carla Souza>
Branch was merged into master branch
[gilb] 5139c1705 - Merged 'feature42' -> 'master' <Carla Souza>
Branch was deleted
[gilb] Branch deleted: 'gilb/feature42' <Carla Souza>
Gilb is Copyright (C) 2013 Carla Souza <carlasouza.com>. License GPLv3+: GNU GPL version 3 or later <gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.