Class: GitHubEventWatcher::WebhookSender
- Inherits:
-
Object
- Object
- GitHubEventWatcher::WebhookSender
- Defined in:
- lib/github-event-watcher/webhook-sender.rb
Instance Method Summary collapse
-
#initialize(end_point, logger) ⇒ WebhookSender
constructor
A new instance of WebhookSender.
- #send_push_event(event) ⇒ Object
Constructor Details
#initialize(end_point, logger) ⇒ WebhookSender
Returns a new instance of WebhookSender.
21 22 23 24 25 |
# File 'lib/github-event-watcher/webhook-sender.rb', line 21 def initialize(end_point, logger) @end_point = end_point @logger = logger @logger.info("[webhook-sender][end-point] <#{@end_point}>") end |
Instance Method Details
#send_push_event(event) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/github-event-watcher/webhook-sender.rb', line 27 def send_push_event(event) @logger.info("[webhook-sender][send][push] " + "<#{event.id}>:<#{event.repository_full_name}>") = { :use_ssl => (@end_point.scheme == "https"), } begin Net::HTTP.start(@end_point.host, @end_point.port, ) do |http| request = Net::HTTP::Post.new(@end_point.request_uri) request["Host"] = @end_point.hostname request["X-GitHub-Event"] = "push" request["Content-Type"] = "application/json" request["User-Agent"] = "GitHub Event Watcher/1.0" request.body = JSON.generate(convert_to_push_event_payload(event)) response = http.request(request) log_tag = "[webhook-sender][sent][push]" case response when Net::HTTPSuccess @logger.info("#{log_tag}[success]") else @logger.error("#{log_tag}[error] <#{response.code}>") end end rescue SystemCallError, Timeout::Error tag = "[webhook-sender][send][push][error]" = "#{tag} Failed to send push event: #{$!.class}: #{$!.}" @logger.error() end end |