class Fastlane::Actions::JiraTransitionAction
Public Class Methods
available_options()
click to toggle source
# File lib/fastlane/plugin/jira_transition/actions/jira_transition_action.rb, line 59 def self.available_options [ FastlaneCore::ConfigItem.new(key: :url, env_name: "FL_JIRA_SITE", description: "URL for Jira instance", verify_block: proc do |value| UI.user_error!("No url for Jira given, pass using `url: 'url'`") if value.to_s.length == 0 end), FastlaneCore::ConfigItem.new(key: :username, env_name: "FL_JIRA_USERNAME", description: "Username for JIRA instance", verify_block: proc do |value| UI.user_error!("No username") if value.to_s.length == 0 end), FastlaneCore::ConfigItem.new(key: :password, env_name: "FL_JIRA_PASSWORD", description: "Password for Jira", verify_block: proc do |value| UI.user_error!("No password") if value.to_s.length == 0 end), FastlaneCore::ConfigItem.new(key: :project_key, env_name: "FL_JIRA_TRANSITION_PROJECT_KEY", description: "Project Key for Jira, i.e. IOS", verify_block: proc do |value| UI.user_error!("No Project Key specified") if value.to_s.length == 0 end), FastlaneCore::ConfigItem.new(key: :transition_id, env_name: "FL_JIRA_TRANSITION_TRANSITION_ID", description: "Transition to apply to the tickets referenced in the changelog", verify_block: proc do |value| UI.user_error!("No transition id specified") if value.to_s.length == 0 end), FastlaneCore::ConfigItem.new(key: :comment, env_name: "FL_JIRA_TRANSITION_COMMENT", description: "Comment to add if the transition is applied", optional: true, verify_block: proc do |value| UI.user_error!("No transition id specified") if value.to_s.length == 0 end) ] end
description()
click to toggle source
@!group Documentation
# File lib/fastlane/plugin/jira_transition/actions/jira_transition_action.rb, line 55 def self.description "Apply a JIRA transition to issues mentioned in the changelog" end
is_supported?(platform)
click to toggle source
# File lib/fastlane/plugin/jira_transition/actions/jira_transition_action.rb, line 111 def self.is_supported?(platform) true end
output()
click to toggle source
# File lib/fastlane/plugin/jira_transition/actions/jira_transition_action.rb, line 101 def self.output end
return_value()
click to toggle source
# File lib/fastlane/plugin/jira_transition/actions/jira_transition_action.rb, line 104 def self.return_value end
run(params)
click to toggle source
# File lib/fastlane/plugin/jira_transition/actions/jira_transition_action.rb, line 5 def self.run(params) Actions.verify_gem!('jira-ruby') require 'jira-ruby' site = params[:url] context_path = "" auth_type = :basic username = params[:username] password = params[:password] project_key = params[:project_key] transition_id = params[:transition_id] comment_text = params[:comment] options = { site: site, context_path: context_path, auth_type: auth_type, username: username, password: password } client = JIRA::Client.new(options) if Actions.lane_context[SharedValues::FL_CHANGELOG].nil? changelog_configuration = FastlaneCore::Configuration.create(Actions::ChangelogFromGitCommitsAction.available_options, {}) Actions::ChangelogFromGitCommitsAction.run(changelog_configuration) end issue_ids = Actions.lane_context[SharedValues::FL_CHANGELOG].scan(/#{project_key}-\d+/i).uniq issue_ids.each do |issue_id| begin issue = client.Issue.find(issue_id) transition = issue.transitions.build transition.save!("transition" => { "id" => transition_id }) if comment_text comment = issue.comments.build comment.save({"body" => comment_text}) end rescue JIRA::HTTPError "Skipping issue #{issue_id}" end end end