fastlane-plugin-youtrack 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5a66742ed0bb2545446435c91506fd57e184db3bd6f8d8f420a2c37427ce6601
4
- data.tar.gz: 86d873d7a519a82900f3f5910bbb12c5c09d7f919c73eeb4c722b05384242fca
3
+ metadata.gz: 8c62ad905a10c11c2602bd5b4328c69535ec6d872a15724284a6bc53d5d4cb37
4
+ data.tar.gz: 9928720ad336f1caedaecc4b7dc800cce720236af345bb94baa61925f2504aeb
5
5
  SHA512:
6
- metadata.gz: 6ba0e67c263e98caafbbf6cc18937feae5026a9dc5ce3d902d6dc42ee1ed08cc0454521f87d296a8f0202dfd13088eccc6c5681549510e98a679304a4bbcfdd6
7
- data.tar.gz: 941a22b5be7532afa2c0ac992947f454ad5eb73cf238071427718d2c518fc389030fb041400adf92de8359e4748880bce378faa9dc356a68330857e36fd1457e
6
+ metadata.gz: 954b0bc122be8a899fbbd422fb4ff85694e57e00334d937446c3b1e94b5b33a1415606c801f250f0aecb25334ef831c726b61b7f9f24e603acac354a1bcdd07d
7
+ data.tar.gz: 9a307b74b7b82141c94f81bf8577ea137d2e16685028315b9ccdacd8a234c98de4b6835142fe08dbb510200745a9d5f4e6cdb4696d9b298ed3120e9e3acc548e
@@ -0,0 +1,96 @@
1
+ require 'fastlane/action'
2
+ require_relative '../helper/youtrack_helper'
3
+
4
+ module Fastlane
5
+ module Actions
6
+ class YtCommentIssueAction < Action
7
+ def self.run(params)
8
+ issue_id = params[:issue_id]
9
+ comment = params[:comment]
10
+ base_url = params[:base_url]
11
+ access_token = params[:access_token]
12
+
13
+ result = Helper::YoutrackHelper.comment_issue(issue_id, comment, base_url, access_token)
14
+ return {} unless result.success?
15
+
16
+ begin
17
+ response_body = JSON.parse(result.body)
18
+ rescue JSON::ParserError => e
19
+ puts e
20
+ end
21
+
22
+ response_body
23
+ rescue => ex
24
+ UI.error(ex)
25
+ UI.error('Failed')
26
+ end
27
+
28
+ def self.description
29
+ 'Add a comment to issue by passed identifier'
30
+ end
31
+
32
+ def self.details
33
+ ''
34
+ end
35
+
36
+ def self.available_options
37
+ [
38
+ FastlaneCore::ConfigItem.new(
39
+ key: :issue_id,
40
+ description: 'Identifier of commented issue',
41
+ optional: false,
42
+ type: String
43
+ ),
44
+ FastlaneCore::ConfigItem.new(
45
+ key: :comment,
46
+ description: 'Text of comment',
47
+ optional: false,
48
+ type: String
49
+ ),
50
+ FastlaneCore::ConfigItem.new(
51
+ key: :base_url,
52
+ env_name: 'YOUTRACK_BASE_URL',
53
+ description: 'Base YouTrack URL',
54
+ optional: false,
55
+ type: String
56
+ ),
57
+ FastlaneCore::ConfigItem.new(
58
+ key: :access_token,
59
+ env_name: 'YOUTRACK_API_TOKEN',
60
+ description: 'Access token for YouTrack API',
61
+ optional: false,
62
+ type: String
63
+ )
64
+ ]
65
+ end
66
+
67
+ def self.return_value
68
+ 'Nothing'
69
+ end
70
+
71
+ def self.authors
72
+ ['Semen Kologrivov']
73
+ end
74
+
75
+ def self.is_supported?(_)
76
+ true
77
+ end
78
+
79
+ def self.example_code
80
+ [
81
+ 'yt_comment_issue(issue_id: "ios_1234", comment: "Lorem ipsum")'
82
+ ]
83
+ end
84
+
85
+ def self.output
86
+ [
87
+ []
88
+ ]
89
+ end
90
+
91
+ def self.return_type
92
+ :array
93
+ end
94
+ end
95
+ end
96
+ end
@@ -8,13 +8,14 @@ module Fastlane
8
8
  end
9
9
  class YtIssuesInfoAction < Action
10
10
  def self.run(params)
11
- isssue_ids = params[:issue_ids]
11
+ issue_ids = params[:issue_ids]
12
12
  fields = params[:issue_fields]
13
13
  base_url = params[:base_url]
14
14
  access_token = params[:access_token]
15
15
 
16
- issues_info = isssue_ids.map do |issue_id|
16
+ issues_info = issue_ids.map do |issue_id|
17
17
  info = {
18
+ id: issue_id,
18
19
  url: "#{base_url}/issue/#{issue_id}"
19
20
  }
20
21
  result = Helper::YoutrackHelper.get_issue_info(issue_id, fields, base_url, access_token)
@@ -33,7 +34,7 @@ module Fastlane
33
34
 
34
35
  Actions.lane_context[SharedValues::YOUTRACK_RELEASED_ISSUES] = issues_info
35
36
 
36
- return issues_info
37
+ issues_info
37
38
  rescue => ex
38
39
  UI.error(ex)
39
40
  UI.error('Failed')
@@ -49,25 +50,33 @@ module Fastlane
49
50
 
50
51
  def self.available_options
51
52
  [
52
- FastlaneCore::ConfigItem.new(key: :issue_ids,
53
- description: 'Array of issue\'s ids',
54
- optional: false,
55
- type: Array),
56
- FastlaneCore::ConfigItem.new(key: :issue_fields,
57
- description: 'Array of neccessary fields of issue',
58
- optional: true,
59
- default_value: ['summary', 'description'],
60
- type: Array),
61
- FastlaneCore::ConfigItem.new(key: :base_url,
62
- env_name: 'YOUTRACK_BASE_URL',
63
- description: 'Base YouTrack URL',
64
- optional: false,
65
- type: String),
66
- FastlaneCore::ConfigItem.new(key: :access_token,
67
- env_name: 'YOUTRACK_API_TOKEN',
68
- description: 'Access token for YouTrack API',
69
- optional: false,
70
- type: String)
53
+ FastlaneCore::ConfigItem.new(
54
+ key: :issue_ids,
55
+ description: 'Array of issue\'s ids',
56
+ optional: false,
57
+ type: Array
58
+ ),
59
+ FastlaneCore::ConfigItem.new(
60
+ key: :issue_fields,
61
+ description: 'Array of neccessary fields of issue',
62
+ optional: true,
63
+ default_value: ['summary', 'description'],
64
+ type: Array
65
+ ),
66
+ FastlaneCore::ConfigItem.new(
67
+ key: :base_url,
68
+ env_name: 'YOUTRACK_BASE_URL',
69
+ description: 'Base YouTrack URL',
70
+ optional: false,
71
+ type: String
72
+ ),
73
+ FastlaneCore::ConfigItem.new(
74
+ key: :access_token,
75
+ env_name: 'YOUTRACK_API_TOKEN',
76
+ description: 'Access token for YouTrack API',
77
+ optional: false,
78
+ type: String
79
+ )
71
80
  ]
72
81
  end
73
82
 
@@ -19,6 +19,20 @@ module Fastlane
19
19
  req.headers['Authorization'] = "Bearer #{token}"
20
20
  end
21
21
  end
22
+
23
+ def self.comment_issue(issue_id, comment, url, token)
24
+ Faraday.post("#{url}/api/issues/#{issue_id}/comments") do |req|
25
+ body = {
26
+ text: comment
27
+ }
28
+ req.body = JSON.generate(body)
29
+
30
+ req.headers['Content-Type'] = 'application/json'
31
+ req.headers['Accept'] = 'application/json'
32
+ req.headers['Cache-Control'] = 'no-cache'
33
+ req.headers['Authorization'] = "Bearer #{token}"
34
+ end
35
+ end
22
36
  end
23
37
  end
24
38
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Youtrack
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-youtrack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Semen Kologrivov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-09 00:00:00.000000000 Z
11
+ date: 2022-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -137,7 +137,7 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: 2.172.0
139
139
  description:
140
- email: firedragon855@gmail.com
140
+ email: semen@sequenia.com
141
141
  executables: []
142
142
  extensions: []
143
143
  extra_rdoc_files: []
@@ -145,6 +145,7 @@ files:
145
145
  - LICENSE
146
146
  - README.md
147
147
  - lib/fastlane/plugin/youtrack.rb
148
+ - lib/fastlane/plugin/youtrack/actions/yt_comment_issue_action.rb
148
149
  - lib/fastlane/plugin/youtrack/actions/yt_issues_info_action.rb
149
150
  - lib/fastlane/plugin/youtrack/helper/youtrack_helper.rb
150
151
  - lib/fastlane/plugin/youtrack/version.rb
@@ -167,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
167
168
  - !ruby/object:Gem::Version
168
169
  version: '0'
169
170
  requirements: []
170
- rubygems_version: 3.0.3
171
+ rubygems_version: 3.1.6
171
172
  signing_key:
172
173
  specification_version: 4
173
174
  summary: Use for communicating with YouTrack (fetching issue's info, adding comments