Module: Octokit::Client::PubSubHubbub
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Included In:
| |
Defined in: | lib/octokit/client/pub_sub_hubbub.rb |
Overview
Methods for the PubSubHubbub
API
Instance Method Summary
-
#subscribe(topic, callback, secret = nil) ⇒ Boolean
Subscribe to a pubsub topic.
-
#subscribe_service_hook(repo, service_name, service_arguments = {}, secret = nil) ⇒ Boolean
Subscribe to a repository through pubsub.
-
#unsubscribe(topic, callback) ⇒ Boolean
Unsubscribe from a pubsub topic.
-
#unsubscribe_service_hook(repo, service_name)
Unsubscribe repository through pubsub.
- #pub_sub_hubbub_request(options = {}) private
Instance Method Details
#pub_sub_hubbub_request(options = {}) (private)
[ GitHub ]# File 'lib/octokit/client/pub_sub_hubbub.rb', line 88
def pub_sub_hubbub_request( = {}) # This method is janky, bypass normal stack so we don't # serialize request as JSON conn = Faraday.new(url: @api_endpoint) do |http| http.headers[:user_agent] = user_agent if basic_authenticated? http.request(*FARADAY_BASIC_AUTH_KEYS, @login, @password) elsif token_authenticated? http.request :, 'token', @access_token end http.request :url_encoded http.use Octokit::Response::RaiseError http.adapter Faraday.default_adapter end conn.post do |req| req.url 'hub' req.headers['Content-Type'] = 'application/x-www-form-urlencoded' req.body = end end
#subscribe(topic, callback, secret = nil) ⇒ Boolean
Subscribe to a pubsub topic
# File 'lib/octokit/client/pub_sub_hubbub.rb', line 19
def subscribe(topic, callback, secret = nil) = { "hub.callback": callback, "hub.mode": 'subscribe', "hub.topic": topic } .merge!("hub.secret": secret) unless secret.nil? response = pub_sub_hubbub_request( ) response.status == 204 end
#subscribe_service_hook(repo, service_name, service_arguments = {}, secret = nil) ⇒ Boolean
Subscribe to a repository through pubsub
# File 'lib/octokit/client/pub_sub_hubbub.rb', line 65
def subscribe_service_hook(repo, service_name, service_arguments = {}, secret = nil) topic = "#{Octokit.web_endpoint}#{Repository.new(repo)}/events/push" callback = "github://#{service_name}?#{service_arguments.collect { |k, v| [k, v].map { |p| URI.encode_www_form_component(p) }.join('=') }.join('&')}" subscribe(topic, callback, secret) end
#unsubscribe(topic, callback) ⇒ Boolean
Unsubscribe from a pubsub topic
# File 'lib/octokit/client/pub_sub_hubbub.rb', line 41
def unsubscribe(topic, callback) = { "hub.callback": callback, "hub.mode": 'unsubscribe', "hub.topic": topic } response = pub_sub_hubbub_request( ) response.status == 204 end
#unsubscribe_service_hook(repo, service_name)
Unsubscribe repository through pubsub
# File 'lib/octokit/client/pub_sub_hubbub.rb', line 80
def unsubscribe_service_hook(repo, service_name) topic = "#{Octokit.web_endpoint}#{Repository.new(repo)}/events/push" callback = "github://#{service_name}" unsubscribe(topic, callback) end