screams out a bloodcurdling hawk scream (or coder/project-specific sound) on every github push! fun for everyone!
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


GitHub Scream

What's this all about?

In "It's a Wonderful Life", Every time an angel gets his wings, a little bell rings. With this code running, every time a developer pushes to your github repo, a bloodcurdling hawk scream will erupt from your office's speakers!

Cool. How do I set it up?

You need a couple things. First, the environment:

  • First, set up a linux-based server to run it on, and attach to it some speakers. The louder, the better.

  • This server will need a publicly accessible IP address & port.

  • This server will need the 'festival' text-to-speech program installed.Festival's web site is here: Follow your distribution's recommended setup for festival. [This is somewhat involved, and deserves a more fleshed-out readme]

  • You'll need git set up on this server. git clone <this_repo>

  • This computer will need ruby. The code has only been tested with ruby 1.9.2, so that's recommended. However, 1.8.7 should probably work with little to no modification.

  • You'll need to install the necessary gems. This project uses bundler to manage gem dependencies

    $ gem install bundler $ bundle install

Next, the sounds:

  • Set up a 'sounds' repository on github for your organization. name it anything you like
  • for examples, see examples/sound_repo, or check out our sounds here:
  • make sure there's a process in place for letting people upload new sounds into your repo!
  • the HAWK SCREAM has been included in examples/example_sound_repo/sounds/hawk.mp3 to get you started. :)

Then, configuration:

  • in the root of the project directory, you'll need a config.yml file this is a YAML based configuration file. it needs to have the key "sound_repo", referring to the name of your sound repository
  • in the root of the project directory, 'git clone' your sounds repo, so it appears as a subdirectory
  • THIS IS THE IMPORTANT PART: on any github repository you want to have scream, go to 'admin'->'service hooks' -> 'Post-Receive URLs', and add a line of this form: <your server's address><:port>/receive_commit

Finally, launching it:

  • On your server, in the project directory, issue $ rackup -p
  • to test it, go to your github repository, 'admin'->'service hooks' -> 'Post-Receive URLs', and click 'test hook'
  • pump up the volume


In the spirit of free software, everyone is encouraged to help improve this project.

Here are some ways you can contribute:

  • by using alpha, beta, and prerelease versions
  • by reporting bugs
  • by suggesting new features
  • by writing or editing documentation
  • by writing specifications
  • by writing code (no patch is too small: fix typos, add comments, clean up inconsistent whitespace)
  • by refactoring code
  • by closing issues
  • by reviewing patches
  • financially

Submitting an Issue

We use the GitHub issue tracker to track bugs and features. Before submitting a bug report or feature request, check to make sure it hasn't already been submitted. You can indicate support for an existing issue by voting it up. When submitting a bug report, please include a Gist that includes a stack trace and any details that may be necessary to reproduce the bug, including your gem version, Ruby version, and operating system. Ideally, a bug report should include a pull request with failing specs.

Submitting a Pull Request

  1. Fork the project.
  2. Create a topic branch.
  3. Implement your feature or bug fix.
  4. Add tests for your feature or bug fix.
  5. Run bundle exec rake test. If your changes are not 100% covered, go back to step 4.
  6. Commit and push your changes.
  7. Submit a pull request. Please do not include changes to the gemspec or version file. (If you want to create your own version for some reason, please do so in a separate commit.)

Code for America Tracker