committed by
Soam Vasani
parent
0207d13b23
commit
a8e7ec534b
@@ -0,0 +1,33 @@
|
||||
# frozen_string_literal: true
|
||||
require 'net/http'
|
||||
require 'uri'
|
||||
require 'json'
|
||||
|
||||
SLACK_BASE_URL = 'https://hooks.slack.com/'
|
||||
SLACK_WEBHOOK_PATH = 'YOUR RELATIVE PATH HERE' # Something like "/services/XXX/YYY/zZz123"
|
||||
|
||||
def send_slack_message(message)
|
||||
uri = URI.join(SLACK_BASE_URL, SLACK_WEBHOOK_PATH)
|
||||
data = "{'channel': '#hackdays-serverless', 'username': 'fissionbot', 'text': \"#{message}\", 'icon_emoji': ':fission:'}"
|
||||
res = Net::HTTP.post_form(uri, payload: data)
|
||||
res.success?
|
||||
end
|
||||
|
||||
def handler(context)
|
||||
request = context.request
|
||||
|
||||
event_type = request.headers['X-Kubernetes-Event-Type']
|
||||
object_type = request.headers['X-Kubernetes-Object-Type']
|
||||
|
||||
object = JSON.parse(request.body.read)
|
||||
object_name = object.dig('metadata', 'name')
|
||||
object_namespace = object.dig('metadata', 'namespace')
|
||||
|
||||
message = "#{event_type} #{object_type} #{object_namespace}/#{object_name}"
|
||||
|
||||
if send_slack_message(message)
|
||||
"Slack message sent - #{message}"
|
||||
else
|
||||
Rack::Response.new(["Failed to send Slack message - #{message}"], 500).finish
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,4 @@
|
||||
# frozen_string_literal: true
|
||||
def handler
|
||||
"Hello, world!\n"
|
||||
end
|
||||
@@ -0,0 +1,19 @@
|
||||
# frozen_string_literal: true
|
||||
def handler(context)
|
||||
request = context.request
|
||||
msg = <<~MSG
|
||||
---ENV---
|
||||
#{request.env.map { |h| h.join('=') }.join("\n") }
|
||||
|
||||
---HEADERS---
|
||||
#{request.headers.map { |h| h.join(': ') }.join("\n") }
|
||||
|
||||
---PARAMS---
|
||||
#{request.params.map { |h| h.join('=') }.join("\n") }
|
||||
|
||||
--BODY--
|
||||
#{request.body.read}
|
||||
MSG
|
||||
|
||||
Rack::Response.new([msg]).finish
|
||||
end
|
||||
Reference in New Issue
Block a user