lhj-tools 0.2.23 → 0.2.25

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: 913995d83466a643c887e8ffe02fa7789b36992f53db19188711f845ad81c1e0
4
- data.tar.gz: e21d8840c06763330eac1878bc823cac0fb678826feaea7ff76ce2c662043c06
3
+ metadata.gz: d1172af22907b68257770cdd7996d7dc8f90500e6427b9fde02e5ac59f451a3e
4
+ data.tar.gz: 1a9ed45b72d8542823a406f59b508788ac347911a5b1d4b687faad1a74dde193
5
5
  SHA512:
6
- metadata.gz: 8b8ea86ee8c5ffb0f40e9ee60f39d1ee73713420fa5e31462ab067c3fbc2fed1057dfaa446762bda09c379306a1095ee14abf9e06a46ed4fad6d59ba6d83ef96
7
- data.tar.gz: 9d978201993f562cdda911ba7662ac19000f83a4b5af3e0f8e69484f6c9fec7026b4294a44a69f03e03105dfdc9d6cd7308ef691e684f4eb01eb73de2a94217d
6
+ metadata.gz: 3d3c41fc6ae30f4536d83d89630107c0d2cc4fa8f597895a231d827ebc2d63205141f3a1737db0a60bba28a007263af510190267041d4a2442056b77db5ada16
7
+ data.tar.gz: 16bd226cda26f4b469015dfb7fcdedbcb28a86f044543ba072e9fe0f8fe9fd3347d4371631c8b54e5de51955a6a46dc960a3f595d264a95daa540bea0d6fae20
@@ -1,5 +1,4 @@
1
1
  require 'jenkins_api_client'
2
- require 'lhj/helper/apple/token'
3
2
 
4
3
  module Lhj
5
4
  class Command
@@ -31,14 +30,80 @@ module Lhj
31
30
  end
32
31
 
33
32
  def handle
34
- res = Lhj::ConnectAPI.get('https://api.appstoreconnect.apple.com/v1/apps')
35
- puts res.read_body
36
-
37
- # client = JenkinsApi::Client.new(server_ip: 'ip', server_port: 0, username: 'xx', password: 'xx')
38
- # puts client.user.get('aomi')
39
- # puts client.job.list_all
40
- # client.job.build('aomi_uat')
41
- # puts client.job.get_console_output('aomi_uat', 253)
33
+ job_name = '更新分支功能描述'
34
+ server_ip = Lhj::JenkinsConfig.server_ip
35
+ server_port = Lhj::JenkinsConfig.server_port
36
+ username = Lhj::JenkinsConfig.username
37
+ password = Lhj::JenkinsConfig.password
38
+ client = JenkinsApi::Client.new(server_ip: server_ip, server_port: server_port, username: username, password: password)
39
+
40
+ # puts client.job.get_config(job_name)
41
+
42
+ update_job(job_name, :string, 'AA', '这是一个测试', 'WWWW描述')
43
+ end
44
+
45
+ def update_job(job_name, param_type, param_key, param_value, param_desc)
46
+ server_ip = Lhj::JenkinsConfig.server_ip
47
+ server_port = Lhj::JenkinsConfig.server_port
48
+ username = Lhj::JenkinsConfig.username
49
+ password = Lhj::JenkinsConfig.password
50
+ client = JenkinsApi::Client.new(server_ip: server_ip, server_port: server_port, username: username, password: password)
51
+
52
+ property_arr = client.job.get_build_params(job_name)
53
+ puts property_arr
54
+ xml = client.job.get_config(job_name)
55
+ n_xml = Nokogiri::XML(xml)
56
+ params = n_xml.xpath('//parameterDefinitions').first
57
+ string_params = params.children.select { |p| p.name.eql?('hudson.model.StringParameterDefinition') }
58
+ param = string_params.find { |p| p.children.find { |c| c.name.eql?('name') && c.content.eql?(param_key) } }
59
+ has_desc = false
60
+ param.children.each do |p|
61
+ has_desc = true if p.name.eql?('description')
62
+ p.content = param_value if p.name.eql?('defaultValue')
63
+ p.content = param_desc if p.name.eql?('description')
64
+ p.content = 'true' if p.name.eql?('trim')
65
+ end
66
+ param.add_child("<description>#{param_desc}</description>") unless has_desc
67
+ xml_modified = n_xml.to_xml
68
+ client.job.post_config(job_name, xml_modified)
69
+ end
70
+
71
+ def create_tester(email, id)
72
+ names = email.split('@') if email =~ /@/
73
+ first_name = names[1] if names && names.length > 1
74
+ last_name = names[0] if names&.length&.positive?
75
+ first_name ||= 'first'
76
+ last_name ||= 'last'
77
+ post_data = {
78
+ 'data' => {
79
+ 'attributes' => {
80
+ 'email' => email,
81
+ 'firstName' => first_name,
82
+ 'lastName' => last_name
83
+ },
84
+ 'relationships' => {
85
+ 'betaGroups' => {
86
+ 'data' => [
87
+ {
88
+ 'id' => id,
89
+ 'type' => 'betaGroups'
90
+ }
91
+ ]
92
+ }
93
+ },
94
+ 'type' => 'betaTesters'
95
+ }
96
+ }
97
+ res = Lhj::ConnectAPI.post('https://api.appstoreconnect.apple.com/v1/betaTesters', post_data)
98
+ res_body = JSON.parse(res.body)
99
+ puts 'success' if res_body['data']
100
+ end
101
+
102
+ def all_group
103
+ res = Lhj::ConnectAPI.get('https://api.appstoreconnect.apple.com/v1/betaGroups')
104
+ res_body = JSON.parse(res.body)
105
+ names = res_body['data'].map { |item| { id: item['id'], name: item['attributes']['name'] } }
106
+ names.each { |a| puts a[:name] + '---' + a[:id] }
42
107
  end
43
108
  end
44
109
  end
@@ -29,5 +29,20 @@ module Lhj
29
29
 
30
30
  https.request(request)
31
31
  end
32
+
33
+ def self.post(url, data = {})
34
+ uri = URI(url)
35
+
36
+ https = Net::HTTP.new(uri.host, uri.port)
37
+ https.use_ssl = true
38
+
39
+ request = Net::HTTP::Post.new(uri)
40
+ jwt_token = token
41
+ request['authorization'] = "Bearer #{jwt_token}"
42
+ request['Content-Type'] = 'application/json'
43
+ request.body = JSON.dump(data)
44
+
45
+ https.request(request)
46
+ end
32
47
  end
33
48
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
 
2
3
  module Lhj
3
4
  # bugly helper
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+ require 'yaml'
3
+
4
+ module Lhj
5
+ # chat gpt Config
6
+ class ChatGptConfig
7
+
8
+ CONFIG_NAME = 'chat_gpt_config.yml'
9
+
10
+ def self.config_file
11
+ File.join(Lhj::Config.instance.home_dir, CONFIG_NAME)
12
+ end
13
+
14
+ def self.config
15
+ @yaml ||= YAML.load_file(config_file)
16
+ end
17
+
18
+ def self.api_key(idx)
19
+ i = idx % config.length
20
+ config[i]['api_key']
21
+ end
22
+
23
+ def self.org_id(idx)
24
+ i = idx % config.length
25
+ config[i]['org_id']
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+ require 'yaml'
3
+
4
+ module Lhj
5
+ # ios Robot Config
6
+ class IOSRobotConfig
7
+
8
+ CONFIG_NAME = 'robot_notify_config.yml'
9
+
10
+ def self.config_file
11
+ File.join(Lhj::Config.instance.home_dir, CONFIG_NAME)
12
+ end
13
+
14
+ def self.config
15
+ @yaml ||= YAML.load_file(config_file)
16
+ end
17
+
18
+ def self.fetch_robot_url(conversation)
19
+ url = config[0]['robot_url']
20
+ robot = config.find { |r| r['conversation_title'].eql?(conversation) } if conversation
21
+ url = robot['robot_url'] if robot && robot['robot_url']
22
+ url
23
+ end
24
+
25
+ def self.fetch_robot_title(conversation)
26
+ title = '信息来自iOS机器人'
27
+ robot = config.find { |r| r['conversation_title'].eql?(conversation) } if conversation
28
+ title = robot['message_title'] if robot && robot['message_title']
29
+ title
30
+ end
31
+
32
+ def self.fetch_robot_message_type(conversation)
33
+ type = :markdown
34
+ robot = config.find { |r| r['conversation_title'].eql?(conversation) } if conversation
35
+ type = :text if robot && robot['message_type'] && robot['message_type'].eql?('text')
36
+ type
37
+ end
38
+ end
39
+ end
data/lib/lhj/lhj.rb CHANGED
@@ -9,6 +9,9 @@ module Lhj
9
9
  require 'lhj/config'
10
10
  require 'lhj/helper/jenkins_config'
11
11
  require 'lhj/helper/apple/apple_jwt_config'
12
+ require 'lhj/helper/apple/apple_connect_api'
13
+ require 'lhj/helper/ios_robot_config'
14
+ require 'lhj/helper/chat_gpt_config'
12
15
  require 'lhj/helper/pod_repo_config'
13
16
  require 'lhj/helper/git_branch_feature_config'
14
17
  require 'lhj/helper/erb_template_helper'
data/lib/lhj/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Lhj
4
- VERSION = '0.2.23'
4
+ VERSION = '0.2.25'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lhj-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.23
4
+ version: 0.2.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - lihaijian
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-20 00:00:00.000000000 Z
11
+ date: 2023-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xcodeproj
@@ -252,16 +252,16 @@ dependencies:
252
252
  name: json
253
253
  requirement: !ruby/object:Gem::Requirement
254
254
  requirements:
255
- - - '='
255
+ - - "<"
256
256
  - !ruby/object:Gem::Version
257
- version: 2.3.0
257
+ version: 3.0.0
258
258
  type: :runtime
259
259
  prerelease: false
260
260
  version_requirements: !ruby/object:Gem::Requirement
261
261
  requirements:
262
- - - '='
262
+ - - "<"
263
263
  - !ruby/object:Gem::Version
264
- version: 2.3.0
264
+ version: 3.0.0
265
265
  - !ruby/object:Gem::Dependency
266
266
  name: bundler
267
267
  requirement: !ruby/object:Gem::Requirement
@@ -381,14 +381,16 @@ files:
381
381
  - lib/lhj/config.rb
382
382
  - lib/lhj/env.rb
383
383
  - lib/lhj/helper/app_version_info.rb
384
+ - lib/lhj/helper/apple/apple_connect_api.rb
384
385
  - lib/lhj/helper/apple/apple_jwt_config.rb
385
- - lib/lhj/helper/apple/token.rb
386
386
  - lib/lhj/helper/bugly_helper.rb
387
+ - lib/lhj/helper/chat_gpt_config.rb
387
388
  - lib/lhj/helper/dingtalk_config.rb
388
389
  - lib/lhj/helper/dingtalk_helper.rb
389
390
  - lib/lhj/helper/erb_template_helper.rb
390
391
  - lib/lhj/helper/git_branch_feature_config.rb
391
392
  - lib/lhj/helper/git_helper.rb
393
+ - lib/lhj/helper/ios_robot_config.rb
392
394
  - lib/lhj/helper/jenkins_config.rb
393
395
  - lib/lhj/helper/local_config.rb
394
396
  - lib/lhj/helper/log_helper.rb