Skip to content
forked from etsy/PushBot

An IRC Bot for organizing code pushes

Notifications You must be signed in to change notification settings

acm-sfsu/PushBot

This branch is 3 commits behind etsy/PushBot:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

989672c · Mar 12, 2014

History

6 Commits
Mar 12, 2014
Sep 7, 2012
May 17, 2013
Sep 7, 2012

Repository files navigation

PushBot is an IRC bot that manages the topic in an IRC channel that has a push train.

USAGE

.join                      -- Join the queue for a normal push wherever its convenient
.join config               -- Join the queue for a config push
.join HOLD                 -- A HOLD that is queued and named
.join HOLD "message"       -- You can set a message when you join
.join askme                -- Join the queue and suggest that people ask you before joining along
.join before USER          -- Join before the given user
.join with USER            -- Join the queue at the first position with [username]
.join config with USER     -- You can string join commands together
.join last                 -- Join at the end of the queue
.at {commit,dev,...}       -- Set the state of your push to being at the given value
.in                        -- Mark yourself as having your code checked in
.good                      -- Mark yourself as all-good in the current push state
.uhoh                      -- Mark yourself as not-all-good in the current push state
.done                      -- Mark the head of the push queue as done
.nevermind                 -- Hop out of the queue
.pop                       -- Remove your last entry in the queue
.hold "message"            -- Set a hold with a message. Don't forget the quotes.
.unhold                    -- Release the hold
.message "message"         -- Set a message. Don't forget the quotes.
.message -                 -- Remove the message
.kick username             -- Punt someone from the queue
.drive                     -- Make yourself the leader of the first push group you're in
.config                    -- Get a link to the PushBot settings page
.help                      -- Show Help Information

Join #pushbot to play around with pushbot and see how it works.

An Example

Let's say you're in an IRC channel named #push and it has the initial topic "clear". PushBot can help organize a push queue.

                                       TOPIC: clear
  alice> .join                         TOPIC: alice
    bob> .join with alice              TOPIC: alice + bob
pushbot> alice, bob: You're up         TOPIC: alice + bob
    bob> .good                         TOPIC: alice + bob*
  alice> .good                         TOPIC: alice* + bob*
pushbot> alice, bob: Everyone is ready TOPIC: alice* + bob*
  carol> .join                         TOPIC: alice* + bob* | carol
  alice> .at preprod                   TOPIC: <preprod> alice + bob | carol
  alice> .good                         TOPIC: <preprod> alice* + bob | carol
    bob> .good                         TOPIC: <preprod> alice* + bob* | carol
pushbot> alice, bob: Everyone is ready TOPIC: <preprod> alice* + bob* | carol
  alice> .at prod                      TOPIC: <prod> alice + bob | carol
  alice> .good                         TOPIC: <prod> alice* + bob | carol
   dave> .join                         TOPIC: <prod> alice* + bob | carol + dave
    bob> .good                         TOPIC: <prod> alice* + bob* | carol + dave
pushbot> alice, bob: Everyone is ready TOPIC: <prod> alice* + bob* | carol + dave
  alice> .done                         TOPIC: carol + dave
pushbot> carol, dave: You're up        TOPIC: carol + dave

Configuring PushBot For Your Handle

You can modify a few settings within PushBot with respect to your IRC handle.

  • You can tell PushBot to try to be quiet when you're driving
  • You can have PushBot send you Notifo notifications when you're at the head of the queue

To configure PushBot, head to http://[pushbot-hostname]:8080/

Tricks For Suppressing Pushbot Topic Change Spam

Colloquy

Edit the CSS for your chosen style. If you're using "DecafBland - Inverted", for instance, you should open the file

/Applications/Colloquy.app/Contents/Resources/Styles/DecafBland.colloquyStyle/Contents/Resources/Variants/Inverted.css

and add the line

.event { display: none; }

That'll get rid of all event messages (joins, parts, topic changes), and could be too much, so you might want to make a variant of your style just for #push.

Limechat

Edit the CSS for your chosen style, for instance

/Applications/LimeChat.app/Contents/Themes/Limelight.css

and add the lines

html[channelname="#push"] div[type=topic] {
    position: fixed;
    top: 0;
    left: 0;
    padding-left: 0 !important;
    background: #000;
    width: 100%;
}

That'll move all topics in the #push channel to a line on the top of the channel, with new topics covering up old topics.

IRSSI

/ignore -channels #push * TOPICS

WeeChat

/filter add hush_pushbot irc.host.#push irc_topic pushbot

Other Clients

If you have instructions for other clients, send them to me and I'll add them.

Hacking

To build and run PushBot, run

> cd PushBot
> mvn test
> mvn package
> java -jar target/PushBot.jar --name pushbot --channels "#push,#pushbot" --irc-host "irc.network.net" --irc-port 6667 --irc-pass "password"

About

An IRC Bot for organizing code pushes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published