class Github::Repos::PubSubHubbub
def _merge_action!(action, topic, callback, params) # :nodoc:
def _merge_action!(action, topic, callback, params) # :nodoc: options = { "hub.mode" => action.to_s, "hub.topic" => topic.to_s, "hub.callback" => callback, "hub.verify" => params.delete('verify') || 'sync', "hub.secret" => params.delete('secret') || '' } params.merge! options end
def subscribe(*args)
:secret => '...'
:verify => 'sync',
'github://Email?address=peter-murach@gmail.com',
'https://github.com/:user/:repo/events/push',
github.repos.pubsubhubbub.subscribe
github = Github.new :oauth_token => '...'
= Examples
* callback - Required string - The URI to receive the updates to the topic.
* topic - Required string - The URI of the GitHub repository to subscribe to. The path must be in the format of /:user/:repo/events/:event.
= Parameters
Subscribe to existing topic/event through pubsubhubbub
def subscribe(*args) params = arguments(args, :required => [:topic, :callback]).params _merge_action!("subscribe", topic, callback, params) post_request("/hub", params, OPTIONS) end
def subscribe_service(*args)
:event => 'watch'
:token => 'abc123',
:room => 'Commits',
:subdomain => 'github',
github.repos.pubsubhubbub.subscribe_service 'user-name', 'repo-name', 'campfire',
github = Github.new :oauth_token => '...'
= Examples
* :event - Required hash key for the type of event. The default event is push
* service-name - Required string
* repo-name - Required string,
= Parameters
Subscribe repository to service hook through pubsubhubbub
def subscribe_service(*args) params = arguments(args, :required => [:user, :repo, :service]).params event = params.delete('event') || 'push' topic = "#{site}/#{user}/#{repo}/events/#{event}" callback = "github://#{service}?#{params.serialize}" subscribe(topic, callback) end
def unsubscribe(*args)
:secret => '...'
:verify => 'sync',
'github://Email?address=peter-murach@gmail.com',
'https://github.com/:user/:repo/events/push',
github.repos.pubsubhubbub.unsubscribe
github = Github.new :oauth_token => '...'
= Examples
* callback - Required string - The URI to unsubscribe the topic from.
* topic - Required string - The URI of the GitHub repository to unsubscribe from. The path must be in the format of /:user/:repo/events/:event.
= Parameters
Unsubscribe from existing topic/event through pubsubhubbub
def unsubscribe(*args) params = arguments(args, :required => [:topic, :callback]).params _merge_action!("unsubscribe", topic, callback, params) post_request("/hub", params, OPTIONS) end
def unsubscribe_service(*args)
github.repos.pubsubhubbub.unsubscribe_service 'user-name', 'repo-name', 'campfire'
github = Github.new :oauth_token => '...'
= Examples
* :event - Optional hash key for the type of event. The default event is push
* service-name - Required string
* repo-name - Required string,
= Parameters
Subscribe repository to service hook through pubsubhubbub
def unsubscribe_service(*args) params = arguments(args, :required => [:user, :repo, :service]).params event = params.delete('event') || 'push' topic = "#{site}/#{user}/#{repo}/events/#{event}" callback = "github://#{service}" unsubscribe(topic, callback) end