lhj-tools 0.2.25 → 0.2.27
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 +33 -13
- data/lib/lhj/command/yapi.rb +2 -1
- data/lib/lhj/helper/dingtalk_helper.rb +36 -0
- data/lib/lhj/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0cd0cf9fa51bf5e5ec87fbca804a09979f31353bc6c85e7b39bd53135a92c503
|
4
|
+
data.tar.gz: d1bded3032e77cd2fa59f83c47743079c986c4110816352206dec3348c9b28a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1718fdbdf8e3582362c6dfc82b77af13ae8159301312c99fc65ea7b26a6c50e64c7466722899f65c3198513fb8362bcc7970d8a68ca61ecf41ae7232d157c4e0
|
7
|
+
data.tar.gz: 8ffdc538278b52a894e32e4352981e2692cbefda23c2c0430078e7e5b23189cb357de5e3cc6522caf478e751d7a156023edfb6c56504cc4d479002b83ec98a2c
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'jenkins_api_client'
|
2
|
+
require 'nokogiri'
|
2
3
|
|
3
4
|
module Lhj
|
4
5
|
class Command
|
@@ -30,27 +31,22 @@ module Lhj
|
|
30
31
|
end
|
31
32
|
|
32
33
|
def handle
|
33
|
-
job_name = '
|
34
|
+
job_name = 'aom_uat_haijian'
|
35
|
+
# job_name = 'aom_uat_haijian'
|
34
36
|
server_ip = Lhj::JenkinsConfig.server_ip
|
35
37
|
server_port = Lhj::JenkinsConfig.server_port
|
36
38
|
username = Lhj::JenkinsConfig.username
|
37
39
|
password = Lhj::JenkinsConfig.password
|
38
40
|
client = JenkinsApi::Client.new(server_ip: server_ip, server_port: server_port, username: username, password: password)
|
39
41
|
|
40
|
-
|
41
|
-
|
42
|
-
|
42
|
+
client.job.list_all.each do |a|
|
43
|
+
add_property(client, a, 'WEBHOOK', 'https://oapi.dingtalk.com/robot/sendBySession?session=bd640dea6cd28b6c880c4f3cc0945c8f', 'Webhook url')
|
44
|
+
end
|
45
|
+
# puts client.job.get_config('aomi_uat')
|
46
|
+
#
|
43
47
|
end
|
44
48
|
|
45
|
-
def update_job(
|
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
|
49
|
+
def update_job(client, job_name, param_key, param_value, param_desc)
|
54
50
|
xml = client.job.get_config(job_name)
|
55
51
|
n_xml = Nokogiri::XML(xml)
|
56
52
|
params = n_xml.xpath('//parameterDefinitions').first
|
@@ -68,6 +64,30 @@ module Lhj
|
|
68
64
|
client.job.post_config(job_name, xml_modified)
|
69
65
|
end
|
70
66
|
|
67
|
+
def add_property(client, job_name, param_key, param_value, param_desc)
|
68
|
+
xml = client.job.get_config(job_name)
|
69
|
+
n_xml = Nokogiri::XML(xml)
|
70
|
+
params = n_xml.xpath('//parameterDefinitions').first
|
71
|
+
return if params
|
72
|
+
|
73
|
+
pro = n_xml.xpath('//properties').first
|
74
|
+
c_xml = <<~DESC
|
75
|
+
<hudson.model.ParametersDefinitionProperty>
|
76
|
+
<parameterDefinitions>
|
77
|
+
<hudson.model.StringParameterDefinition>
|
78
|
+
<name>WEBHOOK</name>
|
79
|
+
<description>webhook url</description>
|
80
|
+
<defaultValue>https://oapi.dingtalk.com/robot/sendBySession?session=cd8539f8472e2f5d39a6beef94ffc569</defaultValue>
|
81
|
+
<trim>true</trim>
|
82
|
+
</hudson.model.StringParameterDefinition>
|
83
|
+
</parameterDefinitions>
|
84
|
+
</hudson.model.ParametersDefinitionProperty>
|
85
|
+
DESC
|
86
|
+
pro.add_child(c_xml)
|
87
|
+
xml_modified = n_xml.to_xml
|
88
|
+
client.job.post_config(job_name, xml_modified)
|
89
|
+
end
|
90
|
+
|
71
91
|
def create_tester(email, id)
|
72
92
|
names = email.split('@') if email =~ /@/
|
73
93
|
first_name = names[1] if names && names.length > 1
|
data/lib/lhj/command/yapi.rb
CHANGED
@@ -30,6 +30,7 @@ module Lhj
|
|
30
30
|
@id = argv.option('id')
|
31
31
|
@model_pre_name = argv.option('model-pre')
|
32
32
|
@model_result_name = argv.option('model-name')
|
33
|
+
@webhook = argv.option('webhook')
|
33
34
|
@language = argv.option('lan', 'oc')
|
34
35
|
@save = argv.flag?('save', false)
|
35
36
|
@sync = argv.flag?('sync', false)
|
@@ -241,7 +242,7 @@ module Lhj
|
|
241
242
|
end
|
242
243
|
|
243
244
|
def robot_url
|
244
|
-
@config_robot_url || 'https://oapi.dingtalk.com/robot/send?access_token=fe879fd3e7a3b5e59d5719b2384845b7884901919be5a78fe443cbf777869807'
|
245
|
+
@webhook || @config_robot_url || 'https://oapi.dingtalk.com/robot/send?access_token=fe879fd3e7a3b5e59d5719b2384845b7884901919be5a78fe443cbf777869807'
|
245
246
|
end
|
246
247
|
|
247
248
|
def property_mapper
|
@@ -10,11 +10,21 @@ module Lhj
|
|
10
10
|
post_message_robot(robot_url, title, message)
|
11
11
|
end
|
12
12
|
|
13
|
+
def self.post_message_at_users(title, message, users)
|
14
|
+
robot_url = Lhj::DingTalkConfig.dingtalk_robot
|
15
|
+
post_message_robot_at_users(robot_url, title, message, users)
|
16
|
+
end
|
17
|
+
|
13
18
|
def self.post_text_message(message)
|
14
19
|
robot_url = Lhj::DingTalkConfig.dingtalk_robot
|
15
20
|
post_text_message_robot(robot_url, message)
|
16
21
|
end
|
17
22
|
|
23
|
+
def self.post_text_message_at_users(message, users)
|
24
|
+
robot_url = Lhj::DingTalkConfig.dingtalk_robot
|
25
|
+
post_text_message_robot_at_users(robot_url, message, users)
|
26
|
+
end
|
27
|
+
|
18
28
|
def self.post_card_message(title, message, btns)
|
19
29
|
robot_url = Lhj::DingTalkConfig.dingtalk_robot
|
20
30
|
post_card_message_robot(robot_url, title, message, btns)
|
@@ -30,11 +40,21 @@ module Lhj
|
|
30
40
|
http_post(robot_url, http_body)
|
31
41
|
end
|
32
42
|
|
43
|
+
def self.post_message_robot_at_users(robot_url, title, message, users)
|
44
|
+
http_body = markdown_body_message_users(title, message, users)
|
45
|
+
http_post(robot_url, http_body)
|
46
|
+
end
|
47
|
+
|
33
48
|
def self.post_text_message_robot(robot_url, message)
|
34
49
|
http_body = text_body_message(message)
|
35
50
|
http_post(robot_url, http_body)
|
36
51
|
end
|
37
52
|
|
53
|
+
def self.post_text_message_robot_at_users(robot_url, message, users)
|
54
|
+
http_body = text_body_message_users(message, users)
|
55
|
+
http_post(robot_url, http_body)
|
56
|
+
end
|
57
|
+
|
38
58
|
def self.post_card_message_robot(robot_url, title, message, btns)
|
39
59
|
http_body = action_card_body_message(title, message, btns, :vertical)
|
40
60
|
http_post(robot_url, http_body)
|
@@ -61,6 +81,14 @@ module Lhj
|
|
61
81
|
}.to_json
|
62
82
|
end
|
63
83
|
|
84
|
+
def self.text_body_message_users(message, users)
|
85
|
+
{
|
86
|
+
'at' => { 'atUserIds' => users, 'isAtAll' => false },
|
87
|
+
'msgtype' => 'text',
|
88
|
+
'text' => { 'content' => message }
|
89
|
+
}.to_json
|
90
|
+
end
|
91
|
+
|
64
92
|
def self.markdown_body_message(title, message)
|
65
93
|
{
|
66
94
|
'msgtype' => 'markdown',
|
@@ -68,6 +96,14 @@ module Lhj
|
|
68
96
|
}.to_json
|
69
97
|
end
|
70
98
|
|
99
|
+
def self.markdown_body_message_users(title, message, users)
|
100
|
+
{
|
101
|
+
'at' => { 'atUserIds' => users, 'isAtAll' => false },
|
102
|
+
'msgtype' => 'markdown',
|
103
|
+
'markdown' => { 'title' => title, 'text' => message }
|
104
|
+
}.to_json
|
105
|
+
end
|
106
|
+
|
71
107
|
# btns: [{'title'=>'内容不错', 'actionURL'=>'https://www.baidu.com'}]
|
72
108
|
def self.action_card_body_message(title, message, btns, orientation = :vertical)
|
73
109
|
btn_orientation = orientation == :vertical ? '1' : '0'
|
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.27
|
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-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xcodeproj
|