Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here

PushBot

An IRC Bot for organizing code pushes

Subscribe to updates I use PushBot


Statistics on PushBot

Number of watchers on Github 77
Number of open issues 1
Average time to close an issue about 1 hour
Main language Java
Average time to merge a PR about 1 hour
Open pull requests 1+
Closed pull requests 0+
Last commit over 3 years ago
Repo Created about 7 years ago
Repo Last Updated over 1 year ago
Size 664 KB
Organization / Authoretsy
Contributors3
Page Updated
Do you use PushBot? Leave a review!
View PushBot activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating PushBot for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

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

This is an archived project

Pushbot is no longer actively maintained and is no longer in sync with the version used internally at Etsy.

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"
PushBot open pull requests (View All Pulls)
  • Adding SSL Support
PushBot questions on Stackoverflow (View All Questions)
  • Pushbot notification is not reading devices
  • Cordova : Pushbot not registering device
  • Custom Text In Pushbot PHP (How to get custom text in PHP Script)
  • PushBot recieving push notifications crashes app when its not running
  • PushBot Push Notifications Xcode 4.6.3
  • PushBot Push Notification:Persistent Notification in Notification Center
  • Pushbot Android or IOS how to get a device to register for specific types of Messages
  • PushBot Android client not working
PushBot list of languages used
Other projects in Java