# This plugin allows you to tweet your build in twitter.com # #
Project.configure do |project|
#   ...
#   project.twitter_notifier.email = 'your_email@twitter.com'
#   project.twitter_notifier.password = 'twitter_password'
#   ...
# end
# require 'uri' require 'net/http' class TwitterNotifier attr_accessor :email, :password def initialize(project = nil) CruiseControl::Log.event("TwitterNotifier initialized") @email = '' @password = '' end def build_finished(build) if build.failed? notify("Build #{build.label} - FAILED") else notify("Build #{build.label} - OK") end end private def notify(message) CruiseControl::Log.event("TwitterNotifier notifying") url = URI.parse('http://twitter.com/statuses/update.xml') req = Net::HTTP::Post.new(url.path) req.basic_auth @email, @password req.set_form_data({'status' => message}) res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req) } res.value CruiseControl::Log.event("Sent tweet to #{@account}") rescue CruiseControl::Log.event("Tweet not sent to #{@account}") raise end end Project.plugin :twitter_notifier