fastlane-plugin-jira_util 0.1.9 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/fastlane/plugin/jira_util/actions/create_jira_issue.rb +10 -10
- data/lib/fastlane/plugin/jira_util/actions/create_jira_version.rb +60 -42
- data/lib/fastlane/plugin/jira_util/actions/get_jira_version.rb +163 -0
- data/lib/fastlane/plugin/jira_util/actions/release_jira_version.rb +2 -2
- data/lib/fastlane/plugin/jira_util/actions/{create_or_update_jira_version.rb → update_jira_version.rb} +72 -44
- data/lib/fastlane/plugin/jira_util/helper/jira_util_helper.rb +5 -0
- data/lib/fastlane/plugin/jira_util/version.rb +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e2dc8a0d0e2b0488a8c543325074db3591b803f47481f042106f8472b9e72ec
|
4
|
+
data.tar.gz: d18e7184d7facd0ad1521f265120aa6c8ef21d04989f940d039058a49a35a522
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6186af046785dab9d719bf6905dd9f870429704efeb48d09bf43cfcc06dba96b1222fdd95e837a1644fa8fcd8ef5d98559af14def9b7b82aac706f76a32ce7ab
|
7
|
+
data.tar.gz: 13d9ca92ba43aac17b7d167fdd2ef63677bb59e33349d7c89f29f09c0946e89a51c16cc83c8cfe74c88e996fd8129b252909120d4d71a6c44bda281d536c0821
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module Fastlane
|
2
2
|
module Actions
|
3
3
|
module SharedValues
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
JIRA_UTIL_CREATE_JIRA_ISSUE_ISSUE_ID = :JIRA_UTIL_CREATE_JIRA_ISSUE_ISSUE_ID
|
5
|
+
JIRA_UTIL_CREATE_JIRA_ISSUE_ISSUE_KEY = :JIRA_UTIL_CREATE_JIRA_ISSUE_ISSUE_KEY
|
6
|
+
JIRA_UTIL_CREATE_JIRA_ISSUE_ISSUE_LINK = :JIRA_UTIL_CREATE_JIRA_ISSUE_ISSUE_LINK
|
7
7
|
end
|
8
8
|
|
9
9
|
class CreateJiraIssueAction < Action
|
@@ -89,9 +89,9 @@ module Fastlane
|
|
89
89
|
|
90
90
|
issue.fetch
|
91
91
|
issue_link = URI.join(params[:url], '/browse/', "#{issue.key}/").to_s
|
92
|
-
Actions.lane_context[SharedValues::
|
93
|
-
Actions.lane_context[SharedValues::
|
94
|
-
Actions.lane_context[SharedValues::
|
92
|
+
Actions.lane_context[SharedValues::JIRA_UTIL_CREATE_JIRA_ISSUE_ISSUE_ID] = issue.id
|
93
|
+
Actions.lane_context[SharedValues::JIRA_UTIL_CREATE_JIRA_ISSUE_ISSUE_KEY] = issue.key
|
94
|
+
Actions.lane_context[SharedValues::JIRA_UTIL_CREATE_JIRA_ISSUE_ISSUE_LINK] = issue_link
|
95
95
|
issue.id
|
96
96
|
rescue JIRA::HTTPError
|
97
97
|
UI.user_error!("Failed to create JIRA issue: #{$!.response.body}")
|
@@ -137,7 +137,7 @@ module Fastlane
|
|
137
137
|
UI.user_error!("No password given, pass using `password: 'T0PS3CR3T'`") unless value and !value.empty?
|
138
138
|
end),
|
139
139
|
FastlaneCore::ConfigItem.new(key: :project_name,
|
140
|
-
env_name: "
|
140
|
+
env_name: "FL_JIRA_UTIL_PROJECT_NAME",
|
141
141
|
description: "Project ID for the JIRA project. E.g. the short abbreviation in the JIRA ticket tags",
|
142
142
|
type: String,
|
143
143
|
verify_block: proc do |value|
|
@@ -186,9 +186,9 @@ module Fastlane
|
|
186
186
|
|
187
187
|
def self.output
|
188
188
|
[
|
189
|
-
['
|
190
|
-
['
|
191
|
-
['
|
189
|
+
['JIRA_UTIL_CREATE_JIRA_ISSUE_ISSUE_ID', 'The id for the newly created JIRA issue'],
|
190
|
+
['JIRA_UTIL_CREATE_JIRA_ISSUE_ISSUE_KEY', 'The key (e.g. MYPOJ-123) for the newly created JIRA issue'],
|
191
|
+
['JIRA_UTIL_CREATE_JIRA_ISSUE_ISSUE_LINK', 'The jira link to created issue (https://mycompany.jira.com/browse/MYPOJ-123)']
|
192
192
|
]
|
193
193
|
end
|
194
194
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Fastlane
|
2
2
|
module Actions
|
3
3
|
module SharedValues
|
4
|
-
|
4
|
+
JIRA_UTIL_CREATE_JIRA_VERSION_VERSION_ID = :JIRA_UTIL_CREATE_JIRA_VERSION_VERSION_ID
|
5
5
|
end
|
6
6
|
|
7
7
|
class CreateJiraVersionAction < Action
|
@@ -9,18 +9,19 @@ module Fastlane
|
|
9
9
|
Actions.verify_gem!('jira-ruby')
|
10
10
|
require 'jira-ruby'
|
11
11
|
|
12
|
-
site
|
13
|
-
context_path
|
14
|
-
auth_type
|
15
|
-
username
|
16
|
-
password
|
17
|
-
project_name
|
18
|
-
project_id
|
19
|
-
name
|
20
|
-
description
|
21
|
-
archived
|
22
|
-
released
|
23
|
-
start_date
|
12
|
+
site = params[:url]
|
13
|
+
context_path = ""
|
14
|
+
auth_type = :basic
|
15
|
+
username = params[:username]
|
16
|
+
password = params[:password]
|
17
|
+
project_name = params[:project_name]
|
18
|
+
project_id = params[:project_id]
|
19
|
+
name = params[:name]
|
20
|
+
description = params[:description]
|
21
|
+
archived = params[:archived]
|
22
|
+
released = params[:released]
|
23
|
+
start_date = params[:start_date]
|
24
|
+
update_if_exists = params[:update_if_exists]
|
24
25
|
|
25
26
|
options = {
|
26
27
|
username: username,
|
@@ -43,22 +44,37 @@ module Fastlane
|
|
43
44
|
start_date = Date.today.to_s
|
44
45
|
end
|
45
46
|
|
46
|
-
version =
|
47
|
-
version.
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
47
|
+
version = project.versions.find { |version| version.name == name }
|
48
|
+
if version.nil?
|
49
|
+
version = client.Version.build
|
50
|
+
version.save!({
|
51
|
+
"description" => description,
|
52
|
+
"name" => name,
|
53
|
+
"archived" => archived,
|
54
|
+
"released" => released,
|
55
|
+
"startDate" => start_date,
|
56
|
+
"projectId" => project_id
|
57
|
+
})
|
58
|
+
elsif update_if_exists
|
59
|
+
version.save!({
|
60
|
+
"description" => description,
|
61
|
+
"archived" => archived,
|
62
|
+
"released" => released,
|
63
|
+
"startDate" => start_date,
|
64
|
+
})
|
65
|
+
else
|
66
|
+
raise RuntimeError.new("Version with such name already exists.")
|
67
|
+
end
|
55
68
|
|
56
69
|
version.fetch
|
57
|
-
Actions.lane_context[SharedValues::
|
70
|
+
Actions.lane_context[SharedValues::JIRA_UTIL_CREATE_JIRA_VERSION_VERSION_ID] = version.id
|
58
71
|
version.id
|
72
|
+
rescue JIRA::HTTPError
|
73
|
+
UI.user_error!("Failed to create JIRA issue: #{$!.response.body}")
|
74
|
+
nil
|
59
75
|
rescue
|
60
|
-
UI.user_error!("Failed to create JIRA
|
61
|
-
|
76
|
+
UI.user_error!("Failed to create JIRA issue: #{$!}")
|
77
|
+
nil
|
62
78
|
end
|
63
79
|
|
64
80
|
#####################################################
|
@@ -97,7 +113,7 @@ module Fastlane
|
|
97
113
|
UI.user_error!("No password given, pass using `password: 'T0PS3CR3T'`") unless value and !value.empty?
|
98
114
|
end),
|
99
115
|
FastlaneCore::ConfigItem.new(key: :project_name,
|
100
|
-
env_name: "
|
116
|
+
env_name: "FL_JIRA_UTIL_PROJECT_NAME",
|
101
117
|
description: "Project ID for the JIRA project. E.g. the short abbreviation in the JIRA ticket tags",
|
102
118
|
type: String,
|
103
119
|
optional: true,
|
@@ -109,7 +125,7 @@ module Fastlane
|
|
109
125
|
UI.user_error!("No Project ID given, pass using `project_id: 'PROJID'`") unless value and !value.empty?
|
110
126
|
end),
|
111
127
|
FastlaneCore::ConfigItem.new(key: :project_id,
|
112
|
-
env_name: "
|
128
|
+
env_name: "FL_JIRA_UTIL_PROJECT_ID",
|
113
129
|
description: "Project ID for the JIRA project. E.g. the short abbreviation in the JIRA ticket tags",
|
114
130
|
type: String,
|
115
131
|
optional: true,
|
@@ -121,41 +137,43 @@ module Fastlane
|
|
121
137
|
UI.user_error!("No Project ID given, pass using `project_id: 'PROJID'`") unless value and !value.empty?
|
122
138
|
end),
|
123
139
|
FastlaneCore::ConfigItem.new(key: :name,
|
124
|
-
|
140
|
+
is_string: true,
|
141
|
+
optional: true,
|
125
142
|
description: "The name of the version. E.g. 1.0.0",
|
126
|
-
type: String,
|
127
143
|
verify_block: proc do |value|
|
128
144
|
UI.user_error!("No version name given, pass using `name: '1.0.0'`") unless value and !value.empty?
|
129
145
|
end),
|
130
146
|
FastlaneCore::ConfigItem.new(key: :description,
|
131
|
-
|
132
|
-
description: "The description of the JIRA project version",
|
133
|
-
type: String,
|
147
|
+
is_string: true,
|
134
148
|
optional: true,
|
149
|
+
description: "The description of the JIRA project version",
|
135
150
|
default_value: ''),
|
136
151
|
FastlaneCore::ConfigItem.new(key: :archived,
|
137
|
-
|
138
|
-
description: "Whether the version should be archived",
|
152
|
+
is_string: false,
|
139
153
|
optional: true,
|
154
|
+
description: "Whether the version should be archived",
|
140
155
|
default_value: false),
|
141
156
|
FastlaneCore::ConfigItem.new(key: :released,
|
142
|
-
|
143
|
-
description: "Whether the version should be released",
|
157
|
+
is_string: false,
|
144
158
|
optional: true,
|
159
|
+
description: "Whether the version should be released",
|
145
160
|
default_value: false),
|
146
161
|
FastlaneCore::ConfigItem.new(key: :start_date,
|
147
|
-
env_name: "FL_CREATE_JIRA_VERSION_START_DATE",
|
148
|
-
description: "The date this version will start on",
|
149
|
-
type: String,
|
150
162
|
is_string: true,
|
151
163
|
optional: true,
|
152
|
-
|
164
|
+
description: "The date this version will start on",
|
165
|
+
default_value: Date.today.to_s),
|
166
|
+
FastlaneCore::ConfigItem.new(key: :update_if_exists,
|
167
|
+
is_string: false,
|
168
|
+
optional: true,
|
169
|
+
description: "If version with 'name' exists it will be updated",
|
170
|
+
default_value: false),
|
153
171
|
]
|
154
172
|
end
|
155
173
|
|
156
174
|
def self.output
|
157
175
|
[
|
158
|
-
['
|
176
|
+
['JIRA_UTIL_CREATE_JIRA_VERSION_VERSION_ID', 'The versionId for the newly created JIRA project version']
|
159
177
|
]
|
160
178
|
end
|
161
179
|
|
@@ -164,7 +182,7 @@ module Fastlane
|
|
164
182
|
end
|
165
183
|
|
166
184
|
def self.authors
|
167
|
-
["https://github.com/SandyChapman"]
|
185
|
+
[ "https://github.com/SandyChapman", "https://github.com/alexeyn-martynov" ]
|
168
186
|
end
|
169
187
|
|
170
188
|
def self.is_supported?(platform)
|
@@ -0,0 +1,163 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
module SharedValues
|
4
|
+
JIRA_UTIL_GET_JIRA_VERSION_RESULT = :JIRA_UTIL_GET_JIRA_VERSION_RESULT
|
5
|
+
end
|
6
|
+
|
7
|
+
class GetJiraVersionAction < Action
|
8
|
+
def self.run(params)
|
9
|
+
Actions.verify_gem!('jira-ruby')
|
10
|
+
require 'jira-ruby'
|
11
|
+
|
12
|
+
site = params[:url]
|
13
|
+
context_path = ""
|
14
|
+
auth_type = :basic
|
15
|
+
username = params[:username]
|
16
|
+
password = params[:password]
|
17
|
+
project_name = params[:project_name]
|
18
|
+
project_id = params[:project_id]
|
19
|
+
released = true
|
20
|
+
|
21
|
+
options = {
|
22
|
+
username: username,
|
23
|
+
password: password,
|
24
|
+
site: site,
|
25
|
+
context_path: context_path,
|
26
|
+
auth_type: auth_type,
|
27
|
+
read_timeout: 120
|
28
|
+
}
|
29
|
+
|
30
|
+
client = JIRA::Client.new(options)
|
31
|
+
|
32
|
+
unless project_name.nil?
|
33
|
+
project = client.Project.find(project_name)
|
34
|
+
project_id = project.id
|
35
|
+
end
|
36
|
+
raise ArgumentError.new("Project not found.") if project_id.nil?
|
37
|
+
|
38
|
+
version = nil
|
39
|
+
if !params[:id].nil?
|
40
|
+
version = project.versions.find { |version| version.id == params[:id] }
|
41
|
+
elsif !params[:name].nil?
|
42
|
+
version = project.versions.find { |version| version.name == params[:name] }
|
43
|
+
end
|
44
|
+
|
45
|
+
version_attrs = if !version.nil? then
|
46
|
+
Helper::JiraUtilHelper.transform_keys_to_symbols(version.attrs)
|
47
|
+
else
|
48
|
+
nil
|
49
|
+
end
|
50
|
+
|
51
|
+
Actions.lane_context[SharedValues::JIRA_UTIL_GET_JIRA_VERSION_RESULT] = version_attrs
|
52
|
+
version_attrs
|
53
|
+
rescue RuntimeError
|
54
|
+
UI.user_error!("#{$!}")
|
55
|
+
nil
|
56
|
+
rescue JIRA::HTTPError
|
57
|
+
UI.user_error!("Failed to find JIRA version: #{$!.response.body}")
|
58
|
+
nil
|
59
|
+
end
|
60
|
+
|
61
|
+
#####################################################
|
62
|
+
# @!group Documentation
|
63
|
+
#####################################################
|
64
|
+
|
65
|
+
def self.description
|
66
|
+
"Finds project version in your JIRA project by id or by name"
|
67
|
+
end
|
68
|
+
|
69
|
+
def self.details
|
70
|
+
"Use this action to find a version in JIRA"
|
71
|
+
end
|
72
|
+
|
73
|
+
def self.available_options
|
74
|
+
[
|
75
|
+
FastlaneCore::ConfigItem.new(key: :url,
|
76
|
+
env_name: "FL_JIRA_UTIL_SITE",
|
77
|
+
description: "URL for Jira instance",
|
78
|
+
type: String,
|
79
|
+
verify_block: proc do |value|
|
80
|
+
UI.user_error!("No url for Jira given, pass using `url: 'url'`") unless value and !value.empty?
|
81
|
+
end),
|
82
|
+
FastlaneCore::ConfigItem.new(key: :username,
|
83
|
+
env_name: "FL_JIRA_UTIL_USERNAME",
|
84
|
+
description: "Username for JIRA instance",
|
85
|
+
type: String,
|
86
|
+
verify_block: proc do |value|
|
87
|
+
UI.user_error!("No username given, pass using `username: 'jira_user'`") unless value and !value.empty?
|
88
|
+
end),
|
89
|
+
FastlaneCore::ConfigItem.new(key: :password,
|
90
|
+
env_name: "FL_JIRA_UTIL_PASSWORD",
|
91
|
+
description: "Password for Jira",
|
92
|
+
type: String,
|
93
|
+
verify_block: proc do |value|
|
94
|
+
UI.user_error!("No password given, pass using `password: 'T0PS3CR3T'`") unless value and !value.empty?
|
95
|
+
end),
|
96
|
+
FastlaneCore::ConfigItem.new(key: :project_name,
|
97
|
+
env_name: "FL_JIRA_UTIL_PROJECT_NAME",
|
98
|
+
description: "Project ID for the JIRA project. E.g. the short abbreviation in the JIRA ticket tags",
|
99
|
+
type: String,
|
100
|
+
optional: true,
|
101
|
+
conflicting_options: [:project_id],
|
102
|
+
conflict_block: proc do |value|
|
103
|
+
UI.user_error!("You can't use 'project_name' and '#{project_id}' options in one run")
|
104
|
+
end,
|
105
|
+
verify_block: proc do |value|
|
106
|
+
UI.user_error!("No Project ID given, pass using `project_id: 'PROJID'`") unless value and !value.empty?
|
107
|
+
end),
|
108
|
+
FastlaneCore::ConfigItem.new(key: :project_id,
|
109
|
+
env_name: "FL_JIRA_UTIL_PROJECT_ID",
|
110
|
+
description: "Project ID for the JIRA project. E.g. the short abbreviation in the JIRA ticket tags",
|
111
|
+
type: String,
|
112
|
+
optional: true,
|
113
|
+
conflicting_options: [:project_name],
|
114
|
+
conflict_block: proc do |value|
|
115
|
+
UI.user_error!("You can't use 'project_id' and '#{project_name}' options in one run")
|
116
|
+
end,
|
117
|
+
verify_block: proc do |value|
|
118
|
+
UI.user_error!("No Project ID given, pass using `project_id: 'PROJID'`") unless value and !value.empty?
|
119
|
+
end),
|
120
|
+
FastlaneCore::ConfigItem.new(key: :id,
|
121
|
+
description: "JIRA version id. E.g. 123456",
|
122
|
+
optional: true,
|
123
|
+
conflicting_options: [ :name ],
|
124
|
+
conflict_block: proc do |value|
|
125
|
+
UI.user_error!("You can't use 'id' and 'name' options in one run")
|
126
|
+
end,
|
127
|
+
verify_block: proc do |value|
|
128
|
+
UI.user_error!("Empty verison id") unless !value.nil? and !value.empty?
|
129
|
+
end),
|
130
|
+
FastlaneCore::ConfigItem.new(key: :name,
|
131
|
+
description: "JIRA version name",
|
132
|
+
is_string: false,
|
133
|
+
optional: true,
|
134
|
+
conflicting_options: [:id],
|
135
|
+
conflict_block: proc do |value|
|
136
|
+
UI.user_error!("You can't use 'id' and 'name' options in one run")
|
137
|
+
end,
|
138
|
+
verify_block: proc do |value|
|
139
|
+
UI.user_error!("Empty verison name") unless !value.nil? and !value.empty?
|
140
|
+
end)
|
141
|
+
]
|
142
|
+
end
|
143
|
+
|
144
|
+
def self.output
|
145
|
+
[
|
146
|
+
['JIRA_UTIL_GET_JIRA_VERSION_RESULT', 'Hash containing all version attributes']
|
147
|
+
]
|
148
|
+
end
|
149
|
+
|
150
|
+
def self.return_value
|
151
|
+
'Hash containing all version attributes'
|
152
|
+
end
|
153
|
+
|
154
|
+
def self.authors
|
155
|
+
[ "https://github.com/alexeyn-martynov" ]
|
156
|
+
end
|
157
|
+
|
158
|
+
def self.is_supported?(platform)
|
159
|
+
true
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
163
|
+
end
|
@@ -101,7 +101,7 @@ module Fastlane
|
|
101
101
|
UI.user_error!("No password given, pass using `password: 'T0PS3CR3T'`") unless value and !value.empty?
|
102
102
|
end),
|
103
103
|
FastlaneCore::ConfigItem.new(key: :project_name,
|
104
|
-
env_name: "
|
104
|
+
env_name: "FL_JIRA_UTIL_PROJECT_NAME",
|
105
105
|
description: "Project ID for the JIRA project. E.g. the short abbreviation in the JIRA ticket tags",
|
106
106
|
type: String,
|
107
107
|
optional: true,
|
@@ -113,7 +113,7 @@ module Fastlane
|
|
113
113
|
UI.user_error!("No Project ID given, pass using `project_id: 'PROJID'`") unless value and !value.empty?
|
114
114
|
end),
|
115
115
|
FastlaneCore::ConfigItem.new(key: :project_id,
|
116
|
-
env_name: "
|
116
|
+
env_name: "FL_JIRA_UTIL_PROJECT_ID",
|
117
117
|
description: "Project ID for the JIRA project. E.g. the short abbreviation in the JIRA ticket tags",
|
118
118
|
type: String,
|
119
119
|
optional: true,
|
@@ -1,10 +1,10 @@
|
|
1
1
|
module Fastlane
|
2
2
|
module Actions
|
3
3
|
module SharedValues
|
4
|
-
|
4
|
+
JIRA_UTIL_UPDATE_JIRA_VERSION_VERSION_ID = :JIRA_UTIL_UPDATE_JIRA_VERSION_VERSION_ID
|
5
5
|
end
|
6
6
|
|
7
|
-
class
|
7
|
+
class UpdateJiraVersionAction < Action
|
8
8
|
def self.run(params)
|
9
9
|
Actions.verify_gem!('jira-ruby')
|
10
10
|
require 'jira-ruby'
|
@@ -17,6 +17,7 @@ module Fastlane
|
|
17
17
|
project_name = params[:project_name]
|
18
18
|
project_id = params[:project_id]
|
19
19
|
name = params[:name]
|
20
|
+
new_name = params[:new_name]
|
20
21
|
description = params[:description]
|
21
22
|
archived = params[:archived]
|
22
23
|
released = params[:released]
|
@@ -37,38 +38,52 @@ module Fastlane
|
|
37
38
|
project = client.Project.find(project_name)
|
38
39
|
project_id = project.id
|
39
40
|
end
|
40
|
-
raise ArgumentError.new(
|
41
|
+
raise ArgumentError.new('Project not found') if project_id.nil?
|
41
42
|
|
42
43
|
if start_date.nil?
|
43
44
|
start_date = Date.today.to_s
|
44
45
|
end
|
45
46
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
version.
|
51
|
-
"description" => description,
|
52
|
-
"name" => name,
|
53
|
-
"archived" => archived,
|
54
|
-
"released" => released,
|
55
|
-
"startDate" => start_date,
|
56
|
-
"projectId" => project_id
|
57
|
-
})
|
58
|
-
else
|
59
|
-
version.save!({
|
60
|
-
"description" => description,
|
61
|
-
"archived" => archived,
|
62
|
-
"released" => released,
|
63
|
-
"startDate" => start_date,
|
64
|
-
})
|
47
|
+
version = nil
|
48
|
+
if !params[:id].nil?
|
49
|
+
version = project.versions.find { |version| version.id == params[:id] }
|
50
|
+
elsif !params[:name].nil?
|
51
|
+
version = project.versions.find { |version| version.name == params[:name] }
|
65
52
|
end
|
66
53
|
|
67
|
-
version.
|
68
|
-
|
54
|
+
raise ArgumentError.new('Version not found') if version.nil?
|
55
|
+
|
56
|
+
version_fields = {
|
57
|
+
}
|
58
|
+
|
59
|
+
unless new_name.nil?
|
60
|
+
version_fields['name'] = new_name
|
61
|
+
end
|
62
|
+
|
63
|
+
unless description.nil?
|
64
|
+
version_fields['description'] = description
|
65
|
+
end
|
66
|
+
|
67
|
+
unless archived.nil?
|
68
|
+
version_fields['archived'] = archived
|
69
|
+
end
|
70
|
+
|
71
|
+
unless released.nil?
|
72
|
+
version_fields['released'] = released
|
73
|
+
end
|
74
|
+
|
75
|
+
unless start_date.nil?
|
76
|
+
version_fields['startDate'] = start_date
|
77
|
+
end
|
78
|
+
|
79
|
+
raise ArgumentError.new('Nothng to update') if version_fields.empty?
|
80
|
+
|
81
|
+
version.save!(version_fields)
|
82
|
+
|
83
|
+
Actions.lane_context[SharedValues::JIRA_UTIL_UPDATE_JIRA_VERSION_VERSION_ID] = version.id
|
69
84
|
version.id
|
70
85
|
rescue
|
71
|
-
UI.user_error!("Failed to
|
86
|
+
UI.user_error!("Failed to update JIRA version: #{$!.response.body}")
|
72
87
|
false
|
73
88
|
end
|
74
89
|
|
@@ -108,7 +123,7 @@ module Fastlane
|
|
108
123
|
UI.user_error!("No password given, pass using `password: 'T0PS3CR3T'`") unless value and !value.empty?
|
109
124
|
end),
|
110
125
|
FastlaneCore::ConfigItem.new(key: :project_name,
|
111
|
-
env_name: "
|
126
|
+
env_name: "FL_JIRA_UTIL_PROJECT_NAME",
|
112
127
|
description: "Project ID for the JIRA project. E.g. the short abbreviation in the JIRA ticket tags",
|
113
128
|
type: String,
|
114
129
|
optional: true,
|
@@ -120,7 +135,7 @@ module Fastlane
|
|
120
135
|
UI.user_error!("No Project ID given, pass using `project_id: 'PROJID'`") unless value and !value.empty?
|
121
136
|
end),
|
122
137
|
FastlaneCore::ConfigItem.new(key: :project_id,
|
123
|
-
env_name: "
|
138
|
+
env_name: "FL_JIRA_UTIL_PROJECT_ID",
|
124
139
|
description: "Project ID for the JIRA project. E.g. the short abbreviation in the JIRA ticket tags",
|
125
140
|
type: String,
|
126
141
|
optional: true,
|
@@ -131,47 +146,60 @@ module Fastlane
|
|
131
146
|
verify_block: proc do |value|
|
132
147
|
UI.user_error!("No Project ID given, pass using `project_id: 'PROJID'`") unless value and !value.empty?
|
133
148
|
end),
|
149
|
+
FastlaneCore::ConfigItem.new(key: :id,
|
150
|
+
description: "JIRA version id. E.g. 123456",
|
151
|
+
optional: true,
|
152
|
+
conflicting_options: [ :name ],
|
153
|
+
conflict_block: proc do |value|
|
154
|
+
UI.user_error!("You can't use 'id' and 'name' options in one run")
|
155
|
+
end,
|
156
|
+
verify_block: proc do |value|
|
157
|
+
UI.user_error!("Empty verison id") unless value and !value.empty?
|
158
|
+
end),
|
134
159
|
FastlaneCore::ConfigItem.new(key: :name,
|
135
|
-
|
136
|
-
|
137
|
-
|
160
|
+
description: "JIRA version name",
|
161
|
+
is_string: false,
|
162
|
+
optional: true,
|
163
|
+
conflicting_options: [:id],
|
164
|
+
conflict_block: proc do |value|
|
165
|
+
UI.user_error!("You can't use 'id' and 'name' options in one run")
|
166
|
+
end,
|
138
167
|
verify_block: proc do |value|
|
139
|
-
|
168
|
+
UI.user_error!("Empty verison name") unless value and !value.empty?
|
169
|
+
end),
|
170
|
+
FastlaneCore::ConfigItem.new(key: :new_name,
|
171
|
+
optional: true,
|
172
|
+
description: "New name for the version. E.g. 1.0.0",
|
173
|
+
verify_block: proc do |value|
|
174
|
+
UI.user_error!("new_name is empty") unless value and !value.empty?
|
140
175
|
end),
|
141
176
|
FastlaneCore::ConfigItem.new(key: :description,
|
142
|
-
env_name: "FL_CREATE_OR_UPDATE_JIRA_VERSION_DESCRIPTION",
|
143
|
-
description: "The description of the JIRA project version",
|
144
|
-
type: String,
|
145
177
|
optional: true,
|
146
|
-
|
178
|
+
description: "The description of the JIRA project version"),
|
147
179
|
FastlaneCore::ConfigItem.new(key: :archived,
|
148
|
-
env_name: "FL_CREATE_OR_UPDATE_JIRA_VERSION_ARCHIVED",
|
149
180
|
description: "Whether the version should be archived",
|
150
181
|
optional: true,
|
151
|
-
|
182
|
+
is_string: false),
|
152
183
|
FastlaneCore::ConfigItem.new(key: :released,
|
153
|
-
env_name: "FL_CREATE_OR_UPDATE_JIRA_VERSION_CREATED",
|
154
184
|
description: "Whether the version should be released",
|
155
185
|
optional: true,
|
156
|
-
|
186
|
+
is_string: false),
|
157
187
|
FastlaneCore::ConfigItem.new(key: :start_date,
|
158
|
-
env_name: "FL_CREATE_OR_UPDATE_JIRA_VERSION_START_DATE",
|
159
188
|
description: "The date this version will start on",
|
160
189
|
type: String,
|
161
190
|
is_string: true,
|
162
|
-
optional: true
|
163
|
-
default_value: Date.today.to_s)
|
191
|
+
optional: true)
|
164
192
|
]
|
165
193
|
end
|
166
194
|
|
167
195
|
def self.output
|
168
196
|
[
|
169
|
-
['
|
197
|
+
['JIRA_UTIL_UPDATE_JIRA_VERSION_VERSION_ID', 'The id for the updated JIRA project version']
|
170
198
|
]
|
171
199
|
end
|
172
200
|
|
173
201
|
def self.return_value
|
174
|
-
'The
|
202
|
+
'The id for the updated JIRA project version'
|
175
203
|
end
|
176
204
|
|
177
205
|
def self.authors
|
@@ -11,6 +11,11 @@ module Fastlane
|
|
11
11
|
def self.show_message
|
12
12
|
UI.message("Hello from the jira_util plugin helper!")
|
13
13
|
end
|
14
|
+
|
15
|
+
def self.transform_keys_to_symbols(value)
|
16
|
+
return value if not value.is_a?(Hash)
|
17
|
+
return value.inject({}){|memo,(k,v)| memo[k.to_sym] = Helper::JiraUtilHelper.transform_keys_to_symbols(v); memo}
|
18
|
+
end
|
14
19
|
end
|
15
20
|
end
|
16
21
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-jira_util
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "%q{Alexey Martynov}"
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jira-ruby
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.7.
|
19
|
+
version: 1.7.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.7.
|
26
|
+
version: 1.7.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: pry
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -161,8 +161,9 @@ files:
|
|
161
161
|
- lib/fastlane/plugin/jira_util.rb
|
162
162
|
- lib/fastlane/plugin/jira_util/actions/create_jira_issue.rb
|
163
163
|
- lib/fastlane/plugin/jira_util/actions/create_jira_version.rb
|
164
|
-
- lib/fastlane/plugin/jira_util/actions/
|
164
|
+
- lib/fastlane/plugin/jira_util/actions/get_jira_version.rb
|
165
165
|
- lib/fastlane/plugin/jira_util/actions/release_jira_version.rb
|
166
|
+
- lib/fastlane/plugin/jira_util/actions/update_jira_version.rb
|
166
167
|
- lib/fastlane/plugin/jira_util/helper/jira_util_helper.rb
|
167
168
|
- lib/fastlane/plugin/jira_util/version.rb
|
168
169
|
homepage: https://github.com/alexeyn-martynov/fastlane-plugin-jira_versions
|
@@ -184,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
185
|
- !ruby/object:Gem::Version
|
185
186
|
version: '0'
|
186
187
|
requirements: []
|
187
|
-
rubygems_version: 3.0.
|
188
|
+
rubygems_version: 3.0.6
|
188
189
|
signing_key:
|
189
190
|
specification_version: 4
|
190
191
|
summary: "%q{Create JIRA issues and manage versions with this plugin}"
|