class Fastlane::Actions::TypetalkAction
Public Class Methods
available_options()
click to toggle source
# File fastlane/lib/fastlane/actions/typetalk.rb, line 58 def self.available_options [ ['message', 'The message to post'], ['note_path', 'Path to an additional note'], ['topic_id', 'Typetalk topic id'], ['success', 'Successful build?'], ['typetalk_token', 'typetalk token'] ] end
category()
click to toggle source
# File fastlane/lib/fastlane/actions/typetalk.rb, line 88 def self.category :notifications end
check_response(response)
click to toggle source
# File fastlane/lib/fastlane/actions/typetalk.rb, line 45 def self.check_response(response) case response.code.to_i when 200, 204 true else UI.user_error!("Could not sent Typetalk notification") end end
description()
click to toggle source
# File fastlane/lib/fastlane/actions/typetalk.rb, line 54 def self.description "Post a message to [Typetalk](https://www.typetalk.com/)" end
example_code()
click to toggle source
# File fastlane/lib/fastlane/actions/typetalk.rb, line 76 def self.example_code [ 'typetalk( message: "App successfully released!", note_path: "ChangeLog.md", topicId: 1, success: true, typetalk_token: "Your Typetalk Token" )' ] end
is_supported?(platform)
click to toggle source
# File fastlane/lib/fastlane/actions/typetalk.rb, line 72 def self.is_supported?(platform) true end
post_to_typetalk(message, topic_id, typetalk_token)
click to toggle source
# File fastlane/lib/fastlane/actions/typetalk.rb, line 34 def self.post_to_typetalk(message, topic_id, typetalk_token) require 'net/http' require 'uri' uri = URI.parse("https://typetalk.in/api/v1/topics/#{topic_id}") response = Net::HTTP.post_form(uri, { 'message' => message, 'typetalkToken' => typetalk_token }) self.check_response(response) end
run(params)
click to toggle source
# File fastlane/lib/fastlane/actions/typetalk.rb, line 4 def self.run(params) options = { message: nil, note_path: nil, success: true, topic_id: nil, typetalk_token: nil }.merge(params || {}) [:message, :topic_id, :typetalk_token].each do |key| UI.user_error!("No #{key} given.") unless options[key] end emoticon = (options[:success] ? ':smile:' : ':rage:') message = "#{emoticon} #{options[:message]}" note_path = File.expand_path(options[:note_path]) if options[:note_path] if note_path && File.exist?(note_path) contents = File.read(note_path) message += "\n\n```\n#{contents}\n```" end topic_id = options[:topic_id] typetalk_token = options[:typetalk_token] self.post_to_typetalk(message, topic_id, typetalk_token) UI.success('Successfully sent Typetalk notification') end