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 +4 -4
- data/lib/lhj/command/jenkins/jenkins_build.rb +74 -9
- data/lib/lhj/helper/apple/{token.rb → apple_connect_api.rb} +15 -0
- data/lib/lhj/helper/bugly_helper.rb +1 -0
- data/lib/lhj/helper/chat_gpt_config.rb +28 -0
- data/lib/lhj/helper/ios_robot_config.rb +39 -0
- data/lib/lhj/lhj.rb +3 -0
- data/lib/lhj/version.rb +1 -1
- metadata +9 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1172af22907b68257770cdd7996d7dc8f90500e6427b9fde02e5ac59f451a3e
|
4
|
+
data.tar.gz: 1a9ed45b72d8542823a406f59b508788ac347911a5b1d4b687faad1a74dde193
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
# puts client.job.
|
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
|
@@ -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
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.
|
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-
|
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:
|
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:
|
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
|