fastlane-plugin-jira_release_notes 0.2.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a99744e85725346873a9b4f4e88546cfc8a7f8f13105e87872e5266fc1831b9
4
- data.tar.gz: 1d4c21bfc23b5f912a754ca033818691e449df9df627ef80a30ef4e27521be72
3
+ metadata.gz: df95b3762886fed53599c9c7e1496fbe859fd5516af8ebb60d0ef730b465660a
4
+ data.tar.gz: c880b43871c63e4e64c59bdbae968aa08a86c9434790dddffa49de0d85407e5e
5
5
  SHA512:
6
- metadata.gz: 90c985aa94a6bbb1770845c7dc3b3a9d323bd647440969d11bb6a69f732b531466d071342f2b7fc5b65875f0ff650a2208b4432709c492ccbcf13543a66920e8
7
- data.tar.gz: c39d38cfca7853fae9d92d41d391666512274900790fdaa558d8faf282da8df203ab6a9f27581eaa544f5d3d7d739f4b978762d3248a902d600048b98b7ade67
6
+ metadata.gz: b4d7d44a35cb79ca4b313a542f5cf99c840f7a544a604d5d1c2626e0074e454651825d2c756837eefda143bb0c0b2e4416e2b05607e0f055646a2283156ee456
7
+ data.tar.gz: 7f15cfce25c0586ccdbbbf34474566def59edb627c4a3aa6be2fec71ef8a51062c94cbe86fc5a95f60bdee2949a4a4955c0bc39dcdc37903b94c77fc03c462f1
data/README.md CHANGED
@@ -19,6 +19,41 @@ Release notes from JIRA for version
19
19
 
20
20
  Check out the [example `Fastfile`](fastlane/Fastfile) to see how to use this plugin. Try it by cloning the repo, running `fastlane install_plugins` and `bundle exec fastlane test`.
21
21
 
22
+ ```ruby
23
+ lane :notes do
24
+ text = jira_release_notes(
25
+ username: "me",
26
+ password: "123", # password or api token
27
+ url: "https://jira.example.com",
28
+ project: "OX",
29
+ version: "0.1",
30
+ status: "Testable",
31
+ format: "plain"
32
+ )
33
+ puts text
34
+ end
35
+ ```
36
+
37
+ ## Options
38
+
39
+ ```
40
+ fastlane action jira_release_notes
41
+ ```
42
+
43
+ [How to generate an API Access Token](https://confluence.atlassian.com/cloud/api-tokens-938839638.html)
44
+
45
+ Key | Description | Env Var | Default
46
+ ----|-------------|---------|--------
47
+ url | URL for Jira instance | FL_JIRA_SITE |
48
+ username | Username for Jira instance | FL_JIRA_USERNAME |
49
+ password | Password for Jira or api token | FL_JIRA_PASSWORD |
50
+ project | Jira project name | FL_JIRA_PROJECT |
51
+ version | Jira project version | FL_JIRA_PROJECT_VERSION |
52
+ status | Jira issue status | FL_JIRA_STATUS |
53
+ components | An array of Jira issue components | FL_JIRA_COMPONENTS |
54
+ format | Format text. Plain, html or none | FL_JIRA_RELEASE_NOTES_FORMAT | plain
55
+ max_results | Maximum number of issues | FL_JIRA_RELEASE_NOTES_MAX_RESULTS | 50
56
+
22
57
 
23
58
  ## Run tests for this plugin
24
59
 
@@ -15,6 +15,9 @@ module Fastlane
15
15
 
16
16
  version = params[:version]
17
17
  project = params[:project]
18
+ status = params[:status]
19
+ components = params[:components]
20
+ max_results = params[:max_results].to_i
18
21
  issues = []
19
22
 
20
23
  UI.message("Fetch issues from JIRA project '#{project}', version '#{version}'")
@@ -24,17 +27,26 @@ module Fastlane
24
27
  versions = client.Project.find(project).versions
25
28
  .select { |v| version.match(v.name) }
26
29
  .map { |v| "'#{v.name}'" } .join(', ')
27
- issues = client.Issue.jql("PROJECT = '#{project}' AND fixVersion in (#{versions})")
30
+ jql = "PROJECT = '#{project}' AND fixVersion in (#{versions})"
28
31
  else
29
- issues = client.Issue.jql("PROJECT = '#{project}' AND fixVersion = '#{version}'")
32
+ jql = "PROJECT = '#{project}' AND fixVersion = '#{version}'"
30
33
  end
34
+ unless status.nil? or status.empty?
35
+ jql += " AND status = '#{status}'"
36
+ end
37
+ unless components.nil? or components.empty?
38
+ jql += " AND component in (#{components.map{|s| "\"#{s}\""}.join(", ")})"
39
+ end
40
+ UI.message("jql '#{jql}'")
41
+ issues = client.Issue.jql(jql,max_results: max_results)
42
+
31
43
  rescue JIRA::HTTPError => e
32
44
  fields = [e.code, e.message]
33
45
  fields << e.response.body if e.response.content_type == "application/json"
34
46
  UI.user_error!("#{e} #{fields.join(', ')}")
35
47
  end
36
48
 
37
- UI.success("📝 #{issues.count} issues from JIRA project '#{project}', version '#{version}'")
49
+ UI.success("📝 #{issues.count} issues from JIRA project '#{project}', version '#{version}', status '#{status}', components '#{components}'")
38
50
 
39
51
  case params[:format]
40
52
  when "plain"
@@ -62,6 +74,10 @@ module Fastlane
62
74
  "List of issues from jira. Formatted string or class"
63
75
  end
64
76
 
77
+ def self.return_type
78
+ :string
79
+ end
80
+
65
81
  def self.available_options
66
82
  [
67
83
  FastlaneCore::ConfigItem.new(key: :url,
@@ -78,7 +94,7 @@ module Fastlane
78
94
  end),
79
95
  FastlaneCore::ConfigItem.new(key: :password,
80
96
  env_name: "FL_JIRA_PASSWORD",
81
- description: "Password for Jira",
97
+ description: "Password or api token for Jira",
82
98
  sensitive: true,
83
99
  verify_block: proc do |value|
84
100
  UI.user_error!("No password") if value.to_s.length == 0
@@ -90,6 +106,17 @@ module Fastlane
90
106
  verify_block: proc do |value|
91
107
  UI.user_error!("No Jira project name") if value.to_s.length == 0
92
108
  end),
109
+ FastlaneCore::ConfigItem.new(key: :status,
110
+ env_name: "FL_JIRA_STATUS",
111
+ description: "Jira issue status",
112
+ sensitive: true,
113
+ default_value: ""),
114
+ FastlaneCore::ConfigItem.new(key: :components,
115
+ env_name: "FL_JIRA_COMPONENTS",
116
+ description: "Jira issue components",
117
+ type: Array,
118
+ sensitive: true,
119
+ default_value: ""),
93
120
  FastlaneCore::ConfigItem.new(key: :version,
94
121
  env_name: "FL_JIRA_PROJECT_VERSION",
95
122
  description: "Jira project version",
@@ -103,7 +130,11 @@ module Fastlane
103
130
  env_name: "FL_JIRA_RELEASE_NOTES_FORMAT",
104
131
  description: "Format text. Plain, html or none",
105
132
  sensitive: true,
106
- default_value: "plain")
133
+ default_value: "plain"),
134
+ FastlaneCore::ConfigItem.new(key: :max_results,
135
+ env_name: "FL_JIRA_RELEASE_NOTES_MAX_RESULTS",
136
+ description: "Maximum number of issues",
137
+ default_value: "50")
107
138
  ]
108
139
  end
109
140
 
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module JiraReleaseNotes
3
- VERSION = "0.2.0"
3
+ VERSION = "0.6.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-jira_release_notes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Ignition
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-04 00:00:00.000000000 Z
11
+ date: 2022-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jira-ruby
@@ -153,8 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
153
153
  - !ruby/object:Gem::Version
154
154
  version: '0'
155
155
  requirements: []
156
- rubyforge_project:
157
- rubygems_version: 2.7.7
156
+ rubygems_version: 3.0.3
158
157
  signing_key:
159
158
  specification_version: 4
160
159
  summary: Release notes from JIRA for version