Class: Fastlane::Actions::JiraTransitionsAction
- Inherits:
-
Action
- Object
- Action
- Fastlane::Actions::JiraTransitionsAction
- Defined in:
- lib/fastlane/plugin/jira_transitions/actions/jira_transitions_action.rb
Class Method Summary collapse
- .authors ⇒ Object
- .available_options ⇒ Object
- .description ⇒ Object
- .details ⇒ Object
- .is_supported?(platform) ⇒ Boolean
- .return_value ⇒ Object
- .run(params) ⇒ Object
Class Method Details
.authors ⇒ Object
37 38 39 |
# File 'lib/fastlane/plugin/jira_transitions/actions/jira_transitions_action.rb', line 37 def self. ["Ostap Taran"] end |
.available_options ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/fastlane/plugin/jira_transitions/actions/jira_transitions_action.rb', line 50 def self. [ FastlaneCore::ConfigItem.new(key: :client, description: "JIRA::Client from 'jira-ruby' gem", is_string: false, optional: false, type: JIRA::Client), FastlaneCore::ConfigItem.new(key: :ticket_id, description: "ID of ticket", optional: false, type: String), FastlaneCore::ConfigItem.new(key: :transition_id, description: "ID of transition to perform", optional: true, type: String, verify_block: proc do |value| UI.user_error!("Invalid transition_id") if value.to_s.length == 0 end), FastlaneCore::ConfigItem.new(key: :transition_name, description: "Name of transition to perform", optional: true, type: String, verify_block: proc do |value| UI.user_error!("Invalid transition_name") if value.to_s.length == 0 end), FastlaneCore::ConfigItem.new(key: :matching, description: "Block for custom transition matching options. Transition that is passed to block is 'transition' from jira-ruby gem", optional: true, is_string: false), FastlaneCore::ConfigItem.new(key: :fail_if_no_matching, description: "Whether plugin should crash if there is no matching transition", optional: true, is_string: false) ] end |
.description ⇒ Object
33 34 35 |
# File 'lib/fastlane/plugin/jira_transitions/actions/jira_transitions_action.rb', line 33 def self.description "Runs transitions for specified JIRA tickets" end |
.details ⇒ Object
45 46 47 48 |
# File 'lib/fastlane/plugin/jira_transitions/actions/jira_transitions_action.rb', line 45 def self.details # Optional: "Helps to run transitions for specified JIRA tickets (matching by transition name or id)" end |
.is_supported?(platform) ⇒ Boolean
87 88 89 |
# File 'lib/fastlane/plugin/jira_transitions/actions/jira_transitions_action.rb', line 87 def self.is_supported?(platform) true end |
.return_value ⇒ Object
41 42 43 |
# File 'lib/fastlane/plugin/jira_transitions/actions/jira_transitions_action.rb', line 41 def self.return_value # If your method provides a return value, you can describe here what it does end |
.run(params) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/fastlane/plugin/jira_transitions/actions/jira_transitions_action.rb', line 7 def self.run(params) Actions.verify_gem!('jira-ruby') client = params[:client] issue = client.Issue.find(params[:ticket_id]) issue_transitions = issue.transitions.all transition_builder = issue.transitions.build if params[:transition_id] transition_builder.save!('transition' => {'id' => params[:transition_id]}) else transition = issue_transitions.select { |transition| if params[:matching] params[:matching].call(transition) else transition.name == params[:transition_name] end }.first if !transition.nil? && !transition.id.nil? transition_builder.save('transition' => {'id' => transition.id }) elsif params[:fail_if_no_matching] == true UI.crash!("0 matching transitions") end end end |