pindo 5.14.4 → 5.14.6
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 +4 -4
- data/lib/pindo/base/git_handler.rb +140 -65
- data/lib/pindo/client/httpclient.rb +88 -12
- data/lib/pindo/command/android/autobuild.rb +100 -32
- data/lib/pindo/command/appstore/bundleid.rb +1 -1
- data/lib/pindo/command/appstore/pem.rb +1 -1
- data/lib/pindo/command/ios/autobuild.rb +116 -56
- data/lib/pindo/command/jps/apptest.rb +129 -50
- data/lib/pindo/command/jps/bind.rb +284 -121
- data/lib/pindo/command/jps/media.rb +1 -15
- data/lib/pindo/command/jps/resign.rb +109 -99
- data/lib/pindo/command/jps/upload.rb +31 -4
- data/lib/pindo/command/jps.rb +0 -1
- data/lib/pindo/command/unity/autobuild.rb +100 -39
- data/lib/pindo/command/web/autobuild.rb +95 -27
- data/lib/pindo/command.rb +23 -15
- data/lib/pindo/module/pgyer/pgyerhelper.rb +181 -0
- data/lib/pindo/module/task/model/git/git_commit_task.rb +55 -4
- data/lib/pindo/module/task/model/git/git_tag_task.rb +5 -4
- data/lib/pindo/module/task/model/jps/jps_bind_package_task.rb +233 -0
- data/lib/pindo/module/task/model/jps/jps_message_task.rb +9 -6
- data/lib/pindo/module/task/model/jps/jps_resign_task.rb +20 -21
- data/lib/pindo/module/task/model/jps/jps_upload_media_task.rb +57 -22
- data/lib/pindo/module/task/model/jps/jps_upload_task.rb +4 -4
- data/lib/pindo/module/task/model/jps/jps_workflow_message_task.rb +190 -0
- data/lib/pindo/options/core/option_configuration.rb +4 -36
- data/lib/pindo/options/core/option_initializer.rb +6 -3
- data/lib/pindo/options/core/option_item.rb +0 -3
- data/lib/pindo/options/groups/jps_options.rb +30 -10
- data/lib/pindo/version.rb +1 -1
- metadata +12 -37
- data/lib/pindo/command/jps/comment.rb +0 -84
|
@@ -9,11 +9,9 @@ module Pindo
|
|
|
9
9
|
# 初始化
|
|
10
10
|
# @param available_options [Array<OptionItem>] 可用参数列表
|
|
11
11
|
# @param raw_values [Hash] 原始参数值
|
|
12
|
-
|
|
13
|
-
def initialize(available_options, raw_values = {}, command_instance: nil)
|
|
12
|
+
def initialize(available_options, raw_values = {})
|
|
14
13
|
@available_options = available_options
|
|
15
14
|
@raw_values = raw_values
|
|
16
|
-
@command_instance = command_instance
|
|
17
15
|
@values = {}
|
|
18
16
|
@options_map = build_options_map
|
|
19
17
|
|
|
@@ -94,16 +92,13 @@ module Pindo
|
|
|
94
92
|
# 2. 应用原始值(命令行参数和环境变量)
|
|
95
93
|
apply_raw_values
|
|
96
94
|
|
|
97
|
-
# 3.
|
|
98
|
-
apply_value_blocks
|
|
99
|
-
|
|
100
|
-
# 4. 类型转换
|
|
95
|
+
# 3. 类型转换
|
|
101
96
|
convert_types
|
|
102
97
|
|
|
103
|
-
#
|
|
98
|
+
# 4. 验证必填参数
|
|
104
99
|
validate_required
|
|
105
100
|
|
|
106
|
-
#
|
|
101
|
+
# 5. 自定义验证
|
|
107
102
|
validate_custom
|
|
108
103
|
end
|
|
109
104
|
|
|
@@ -130,33 +125,6 @@ module Pindo
|
|
|
130
125
|
end
|
|
131
126
|
end
|
|
132
127
|
|
|
133
|
-
# 应用 value_block(交互式获取值)
|
|
134
|
-
# 优先级:命令行参数 > 缓存(已在 raw_values) > value_block > 默认值
|
|
135
|
-
def apply_value_blocks
|
|
136
|
-
# 检测是否是 help 请求,跳过交互式选择
|
|
137
|
-
return if ARGV.include?('--help') || ARGV.include?('-h')
|
|
138
|
-
|
|
139
|
-
@available_options.each do |item|
|
|
140
|
-
# 只有当参数没有值时,才调用 value_block
|
|
141
|
-
next if @values.key?(item.key) && !@values[item.key].nil?
|
|
142
|
-
next unless item.value_block
|
|
143
|
-
|
|
144
|
-
begin
|
|
145
|
-
# 调用 value_block 获取值
|
|
146
|
-
# 如果 value_block 接受参数,则传入命令实例
|
|
147
|
-
value = if item.value_block.arity > 0
|
|
148
|
-
item.value_block.call(@command_instance)
|
|
149
|
-
else
|
|
150
|
-
item.value_block.call
|
|
151
|
-
end
|
|
152
|
-
@values[item.key] = value unless value.nil?
|
|
153
|
-
rescue StandardError => e
|
|
154
|
-
# value_block 执行失败,记录错误但不中断流程
|
|
155
|
-
puts "[OptionConfiguration] value_block 执行失败 (#{item.key}): #{e.message}"
|
|
156
|
-
end
|
|
157
|
-
end
|
|
158
|
-
end
|
|
159
|
-
|
|
160
128
|
# 类型转换
|
|
161
129
|
def convert_types
|
|
162
130
|
@available_options.each do |item|
|
|
@@ -21,7 +21,10 @@ module Pindo
|
|
|
21
21
|
raw_values = OptionValueParser.parse(argv, option_items)
|
|
22
22
|
|
|
23
23
|
# 2. 如果启用缓存,合并缓存值到 raw_values
|
|
24
|
-
|
|
24
|
+
# 注意:如果是 --help 参数,跳过缓存逻辑
|
|
25
|
+
is_help_flag = argv.flag?('help')
|
|
26
|
+
|
|
27
|
+
if enable_cache && !is_help_flag
|
|
25
28
|
state = GlobalOptionsState.instance
|
|
26
29
|
state.prepare_cache(command_name, directory || Dir.pwd)
|
|
27
30
|
cached_values = state.load_cached_values
|
|
@@ -33,8 +36,8 @@ module Pindo
|
|
|
33
36
|
end
|
|
34
37
|
end
|
|
35
38
|
|
|
36
|
-
# 3.
|
|
37
|
-
options = OptionConfiguration.new(option_items, raw_values
|
|
39
|
+
# 3. 创建参数配置(自动处理验证等)
|
|
40
|
+
options = OptionConfiguration.new(option_items, raw_values)
|
|
38
41
|
|
|
39
42
|
# 4. 设置全局状态
|
|
40
43
|
GlobalOptionsState.instance.set_command(
|
|
@@ -14,7 +14,6 @@ module Pindo
|
|
|
14
14
|
attr_accessor :optional # Boolean: 是否可选(默认为 true)
|
|
15
15
|
attr_accessor :cacheable # Boolean: 是否存入缓存(默认为 true)
|
|
16
16
|
attr_accessor :verify_block # Proc: 自定义验证逻辑
|
|
17
|
-
attr_accessor :value_block # Proc: 获取参数值的 block(交互式输入)
|
|
18
17
|
attr_accessor :example # String: 使用示例
|
|
19
18
|
|
|
20
19
|
# Boolean 类型标记
|
|
@@ -36,7 +35,6 @@ module Pindo
|
|
|
36
35
|
@optional = options.fetch(:optional, true)
|
|
37
36
|
@cacheable = options.fetch(:cacheable, false) # 默认不存入缓存
|
|
38
37
|
@verify_block = options[:verify_block]
|
|
39
|
-
@value_block = options[:value_block]
|
|
40
38
|
@example = options[:example]
|
|
41
39
|
|
|
42
40
|
validate_type!
|
|
@@ -129,7 +127,6 @@ module Pindo
|
|
|
129
127
|
optional: overrides.key?(:optional) ? overrides[:optional] : @optional,
|
|
130
128
|
cacheable: overrides.key?(:cacheable) ? overrides[:cacheable] : @cacheable,
|
|
131
129
|
verify_block: overrides[:verify_block] || @verify_block,
|
|
132
|
-
value_block: overrides[:value_block] || @value_block,
|
|
133
130
|
example: overrides[:example] || @example
|
|
134
131
|
)
|
|
135
132
|
end
|
|
@@ -61,16 +61,6 @@ module Pindo
|
|
|
61
61
|
example: 'pindo jps upload --resign'
|
|
62
62
|
),
|
|
63
63
|
|
|
64
|
-
certid: OptionItem.new(
|
|
65
|
-
key: :certid,
|
|
66
|
-
name: '重签名Bundle ID',
|
|
67
|
-
description: '设置重签名的Bundle ID',
|
|
68
|
-
type: String,
|
|
69
|
-
env_name: 'PINDO_CERT_ID',
|
|
70
|
-
optional: true,
|
|
71
|
-
example: 'pindo jps resign --certid=com.test.bundleid'
|
|
72
|
-
),
|
|
73
|
-
|
|
74
64
|
media: OptionItem.new(
|
|
75
65
|
key: :media,
|
|
76
66
|
name: '上传媒体附件',
|
|
@@ -79,6 +69,36 @@ module Pindo
|
|
|
79
69
|
env_name: 'PINDO_UPLOAD_MEDIA',
|
|
80
70
|
optional: true,
|
|
81
71
|
example: 'pindo ios autobuild --media'
|
|
72
|
+
),
|
|
73
|
+
|
|
74
|
+
bind: OptionItem.new(
|
|
75
|
+
key: :bind,
|
|
76
|
+
name: '绑定Git Commit',
|
|
77
|
+
description: '上传完成后,将 Git commit 绑定到已上传的项目包',
|
|
78
|
+
type: OptionItem::Boolean,
|
|
79
|
+
env_name: 'PINDO_BIND_COMMIT',
|
|
80
|
+
optional: true,
|
|
81
|
+
example: 'pindo ios autobuild --bind'
|
|
82
|
+
),
|
|
83
|
+
|
|
84
|
+
list: OptionItem.new(
|
|
85
|
+
key: :list,
|
|
86
|
+
name: '列出历史版本',
|
|
87
|
+
description: '列出历史上传记录并选择',
|
|
88
|
+
type: OptionItem::Boolean,
|
|
89
|
+
env_name: 'PINDO_LIST_VERSIONS',
|
|
90
|
+
optional: true,
|
|
91
|
+
example: 'pindo jps apptest --list'
|
|
92
|
+
),
|
|
93
|
+
|
|
94
|
+
group: OptionItem.new(
|
|
95
|
+
key: :group,
|
|
96
|
+
name: '发送到测试组',
|
|
97
|
+
description: '发送消息到测试组(DevTest)而不是只发给自己',
|
|
98
|
+
type: OptionItem::Boolean,
|
|
99
|
+
env_name: 'PINDO_SEND_GROUP',
|
|
100
|
+
optional: true,
|
|
101
|
+
example: 'pindo jps apptest --group'
|
|
82
102
|
)
|
|
83
103
|
}
|
|
84
104
|
end
|
data/lib/pindo/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pindo
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.14.
|
|
4
|
+
version: 5.14.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- wade
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2025-12-
|
|
10
|
+
date: 2025-12-31 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: claide
|
|
@@ -115,20 +115,20 @@ dependencies:
|
|
|
115
115
|
requirements:
|
|
116
116
|
- - "~>"
|
|
117
117
|
- !ruby/object:Gem::Version
|
|
118
|
-
version: '1.
|
|
118
|
+
version: '1.8'
|
|
119
119
|
- - ">="
|
|
120
120
|
- !ruby/object:Gem::Version
|
|
121
|
-
version: 1.
|
|
121
|
+
version: 1.8.0
|
|
122
122
|
type: :runtime
|
|
123
123
|
prerelease: false
|
|
124
124
|
version_requirements: !ruby/object:Gem::Requirement
|
|
125
125
|
requirements:
|
|
126
126
|
- - "~>"
|
|
127
127
|
- !ruby/object:Gem::Version
|
|
128
|
-
version: '1.
|
|
128
|
+
version: '1.8'
|
|
129
129
|
- - ">="
|
|
130
130
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: 1.
|
|
131
|
+
version: 1.8.0
|
|
132
132
|
- !ruby/object:Gem::Dependency
|
|
133
133
|
name: rqrcode
|
|
134
134
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -149,46 +149,20 @@ dependencies:
|
|
|
149
149
|
- - ">="
|
|
150
150
|
- !ruby/object:Gem::Version
|
|
151
151
|
version: 2.2.0
|
|
152
|
-
- !ruby/object:Gem::Dependency
|
|
153
|
-
name: faraday-retry
|
|
154
|
-
requirement: !ruby/object:Gem::Requirement
|
|
155
|
-
requirements:
|
|
156
|
-
- - "~>"
|
|
157
|
-
- !ruby/object:Gem::Version
|
|
158
|
-
version: '1.0'
|
|
159
|
-
- - ">="
|
|
160
|
-
- !ruby/object:Gem::Version
|
|
161
|
-
version: 1.0.3
|
|
162
|
-
type: :runtime
|
|
163
|
-
prerelease: false
|
|
164
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
165
|
-
requirements:
|
|
166
|
-
- - "~>"
|
|
167
|
-
- !ruby/object:Gem::Version
|
|
168
|
-
version: '1.0'
|
|
169
|
-
- - ">="
|
|
170
|
-
- !ruby/object:Gem::Version
|
|
171
|
-
version: 1.0.3
|
|
172
152
|
- !ruby/object:Gem::Dependency
|
|
173
153
|
name: typhoeus
|
|
174
154
|
requirement: !ruby/object:Gem::Requirement
|
|
175
155
|
requirements:
|
|
176
156
|
- - "~>"
|
|
177
157
|
- !ruby/object:Gem::Version
|
|
178
|
-
version: 1.4
|
|
179
|
-
- - ">="
|
|
180
|
-
- !ruby/object:Gem::Version
|
|
181
|
-
version: 1.4.1
|
|
158
|
+
version: '1.4'
|
|
182
159
|
type: :runtime
|
|
183
160
|
prerelease: false
|
|
184
161
|
version_requirements: !ruby/object:Gem::Requirement
|
|
185
162
|
requirements:
|
|
186
163
|
- - "~>"
|
|
187
164
|
- !ruby/object:Gem::Version
|
|
188
|
-
version: 1.4
|
|
189
|
-
- - ">="
|
|
190
|
-
- !ruby/object:Gem::Version
|
|
191
|
-
version: 1.4.1
|
|
165
|
+
version: '1.4'
|
|
192
166
|
- !ruby/object:Gem::Dependency
|
|
193
167
|
name: nokogiri
|
|
194
168
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -362,7 +336,6 @@ files:
|
|
|
362
336
|
- lib/pindo/command/jps.rb
|
|
363
337
|
- lib/pindo/command/jps/apptest.rb
|
|
364
338
|
- lib/pindo/command/jps/bind.rb
|
|
365
|
-
- lib/pindo/command/jps/comment.rb
|
|
366
339
|
- lib/pindo/command/jps/download.rb
|
|
367
340
|
- lib/pindo/command/jps/login.rb
|
|
368
341
|
- lib/pindo/command/jps/media.rb
|
|
@@ -450,10 +423,12 @@ files:
|
|
|
450
423
|
- lib/pindo/module/task/model/git/git_commit_task.rb
|
|
451
424
|
- lib/pindo/module/task/model/git/git_tag_task.rb
|
|
452
425
|
- lib/pindo/module/task/model/git_task.rb
|
|
426
|
+
- lib/pindo/module/task/model/jps/jps_bind_package_task.rb
|
|
453
427
|
- lib/pindo/module/task/model/jps/jps_message_task.rb
|
|
454
428
|
- lib/pindo/module/task/model/jps/jps_resign_task.rb
|
|
455
429
|
- lib/pindo/module/task/model/jps/jps_upload_media_task.rb
|
|
456
430
|
- lib/pindo/module/task/model/jps/jps_upload_task.rb
|
|
431
|
+
- lib/pindo/module/task/model/jps/jps_workflow_message_task.rb
|
|
457
432
|
- lib/pindo/module/task/model/jps_task.rb
|
|
458
433
|
- lib/pindo/module/task/model/nuget/nuget_build_task.rb
|
|
459
434
|
- lib/pindo/module/task/model/nuget/nuget_upload_task.rb
|
|
@@ -530,9 +505,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
530
505
|
requirements:
|
|
531
506
|
- - ">="
|
|
532
507
|
- !ruby/object:Gem::Version
|
|
533
|
-
version:
|
|
508
|
+
version: 3.0.0
|
|
534
509
|
requirements: []
|
|
535
510
|
rubygems_version: 3.6.3
|
|
536
|
-
specification_version:
|
|
511
|
+
specification_version: 4
|
|
537
512
|
summary: easy work
|
|
538
513
|
test_files: []
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
require 'highline/import'
|
|
2
|
-
require 'fileutils'
|
|
3
|
-
require 'pindo/module/pgyer/pgyerhelper'
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
module Pindo
|
|
7
|
-
class Command
|
|
8
|
-
class Jps < Command
|
|
9
|
-
class Comment < Jps
|
|
10
|
-
|
|
11
|
-
self.summary = '修改jps中已经上传安装包的备注信息'
|
|
12
|
-
|
|
13
|
-
self.description = <<-DESC
|
|
14
|
-
修改jps中已经上传安装包的备注信息。
|
|
15
|
-
|
|
16
|
-
支持功能:
|
|
17
|
-
|
|
18
|
-
* 修改版本备注
|
|
19
|
-
* 查看历史版本
|
|
20
|
-
* 选择指定版本
|
|
21
|
-
|
|
22
|
-
使用示例:
|
|
23
|
-
|
|
24
|
-
$ pindo jps comment # 修改当前目录项目的最新版本备注
|
|
25
|
-
|
|
26
|
-
$ pindo jps comment --proj=demo # 修改指定项目的版本备注
|
|
27
|
-
|
|
28
|
-
$ pindo jps comment --list # 列出历史版本供选择修改
|
|
29
|
-
DESC
|
|
30
|
-
|
|
31
|
-
self.arguments = [
|
|
32
|
-
|
|
33
|
-
]
|
|
34
|
-
|
|
35
|
-
def self.options
|
|
36
|
-
[
|
|
37
|
-
['--login', '强制再次登录jps网站'],
|
|
38
|
-
['--proj', '指定哪个项目(忽略大小写空格等等字符),用法:pindo jps comment --proj=prancksoundv4'],
|
|
39
|
-
['--list', '列出上传记录并选择,用法:pindo jps comment --list'],
|
|
40
|
-
|
|
41
|
-
].concat(super)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
def initialize(argv)
|
|
47
|
-
|
|
48
|
-
@args_login_flag = argv.flag?('login', false)
|
|
49
|
-
@args_list_flag = argv.flag?('list', false)
|
|
50
|
-
@args_proj_name = argv.option('proj')
|
|
51
|
-
|
|
52
|
-
super(argv)
|
|
53
|
-
@additional_args = argv.remainder!
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def validate!
|
|
57
|
-
|
|
58
|
-
super
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def run
|
|
62
|
-
|
|
63
|
-
PgyerHelper.share_instace.setForeLogin(beforeLogin:@args_login_flag)
|
|
64
|
-
app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:@args_proj_name)
|
|
65
|
-
|
|
66
|
-
if app_info_obj.nil?
|
|
67
|
-
raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称, jps网站没有该App"
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
version_item_obj = PgyerHelper.share_instace.get_versioon_history_item(app_info_obj:app_info_obj, list_select_flat:@args_list_flag)
|
|
72
|
-
|
|
73
|
-
if version_item_obj.nil?
|
|
74
|
-
raise Informative, "没有找到上传记录"
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
PgyerHelper.share_instace.modify_coment(app_info_obj:app_info_obj, version_item_obj:version_item_obj)
|
|
78
|
-
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
end
|