diff options
author | Tiago Botelho <tiagonbotelho@hotmail.com> | 2017-04-03 16:37:23 +0100 |
---|---|---|
committer | Tiago Botelho <tiagonbotelho@hotmail.com> | 2017-04-05 13:57:11 +0100 |
commit | efe2d96a90cb5e2cc0c368294a021423aeeaeabe (patch) | |
tree | 95c67a48cfa7e78011da64da1942202d3b4a7a4c /lib/microsoft_teams | |
parent | d4349ba6c4960f50dce7b0beec5f309894dbada9 (diff) | |
download | gitlab-ce-efe2d96a90cb5e2cc0c368294a021423aeeaeabe.tar.gz |
adds initial microsoft teams integration
Diffstat (limited to 'lib/microsoft_teams')
-rw-r--r-- | lib/microsoft_teams/notifier.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/microsoft_teams/notifier.rb b/lib/microsoft_teams/notifier.rb new file mode 100644 index 00000000000..deff5fd26ee --- /dev/null +++ b/lib/microsoft_teams/notifier.rb @@ -0,0 +1,37 @@ +module MicrosoftTeams + class Notifier + def initialize(webhook) + @webhook = webhook + end + + def ping(options = {}) + HTTParty.post( + @webhook.to_str, + headers: { 'Content-type' => 'application/json' }, + body: body(options) + ) + end + + private + + def body(options = {}) + result = { 'sections' => [] } + + result['title'] = options[:title] if options[:title] + result['summary'] = options[:activity][:title] + result['sections'] << { + 'activityTitle' => options[:activity][:title], + 'activitySubtitle' => options[:activity][:subtitle], + 'activityText' => options[:activity][:text], + 'activityImage' => options[:activity][:image] + } + result['sections'] << { 'title' => 'Details', 'facts' => attachments(options[:attachments]) } if options[:attachments] + + result.to_json + end + + def attachments(content) + [{ 'name' => 'Attachments', 'value' => content }] + end + end +end |