lhj-tools 0.2.25 → 0.2.27

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: d1172af22907b68257770cdd7996d7dc8f90500e6427b9fde02e5ac59f451a3e
4
- data.tar.gz: 1a9ed45b72d8542823a406f59b508788ac347911a5b1d4b687faad1a74dde193
3
+ metadata.gz: 0cd0cf9fa51bf5e5ec87fbca804a09979f31353bc6c85e7b39bd53135a92c503
4
+ data.tar.gz: d1bded3032e77cd2fa59f83c47743079c986c4110816352206dec3348c9b28a9
5
5
  SHA512:
6
- metadata.gz: 3d3c41fc6ae30f4536d83d89630107c0d2cc4fa8f597895a231d827ebc2d63205141f3a1737db0a60bba28a007263af510190267041d4a2442056b77db5ada16
7
- data.tar.gz: 16bd226cda26f4b469015dfb7fcdedbcb28a86f044543ba072e9fe0f8fe9fd3347d4371631c8b54e5de51955a6a46dc960a3f595d264a95daa540bea0d6fae20
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
- # puts client.job.get_config(job_name)
41
-
42
- update_job(job_name, :string, 'AA', '这是一个测试', 'WWWW描述')
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(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
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
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Lhj
4
- VERSION = '0.2.25'
4
+ VERSION = '0.2.27'
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.25
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-22 00:00:00.000000000 Z
11
+ date: 2023-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xcodeproj