captain_hook
A ruby library for managing git hooks.
Usage
An example post-receive hook sending to campfire (tinder)
your_repo/.git/hooks/post-receive
require 'captain_hook'
require 'tinder'
hook = CaptainHook.from_path("../../")
hook.handle_post_receive do
room = MyCampfire.my_room
room.speak "New commit: '#{}' by #{} to #{ref_name}"
end
An example post-commit hook sending an email detailing the commit
your_repo/.git/hooks/post-commit
require 'captain_hook'
require 'mail'
hook = CaptainHook.from_path(File.join(File.dirname(__FILE__), '..','..'))
hook.handle_post_commit do
mail = Mail.new
mail.from '[email protected]'
mail.to '[email protected]'
mail.subject "#{} committed by #{} to #{ref_name}"
mail.body diff
mail.delivery_method(:sendmail)
mail.deliver
end
Note on Patches/Pull Requests
-
Fork the project.
-
Make your feature addition or bug fix.
-
Add tests for it. This is important so I don’t break it in a future version unintentionally.
-
Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
-
Send me a pull request. Bonus points for topic branches.
Copyright
Copyright © 2010 Adam Pearson. See LICENSE for details.