jpsclient 2.7.0 → 2.7.2
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/jpsclient/api/commit_log.rb +7 -4
- data/lib/jpsclient/http/http_client.rb +5 -1
- data/lib/jpsclient/upload/upload_client.rb +31 -1
- data/lib/jpsclient/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: 3b469c45fc263d9c573736eba519b34ae855058e47b77a01428e5da3330ce052
|
|
4
|
+
data.tar.gz: cc4eb5ab5180c02022dff9df585d848cf51c1fab8914b0e129989b812501133b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0bfbf38a960e5b308f72b28e0962eebb0425fec3a15229c77f8a01b17353012fb988db35f47363cdea5ca57151a317c09b07e9ba999019fdff2ee7c940cb8aef
|
|
7
|
+
data.tar.gz: e8952174c4e5921e3cb7dad0e98c0f72f466aac458b50342eefabf82fc4f87727610bb303dc4b6a4d454fd41cc64739455aafc2c2ace2bde5f68733bd9c5e7f9
|
|
@@ -33,8 +33,8 @@ module JPSClient
|
|
|
33
33
|
# @param workflowId [Integer] 工作流ID(必需)
|
|
34
34
|
# @param params [Hash] 其他参数
|
|
35
35
|
# @option params [Boolean] :single 是否单个提交(默认 true)
|
|
36
|
-
# @option params [String] :
|
|
37
|
-
# @option params [
|
|
36
|
+
# @option params [Array<String>, String] :branches 分支名称数组,服务端 CommitLogSendMessageDto 的字段
|
|
37
|
+
# @option params [String] :branch 分支名称(单数形式,调用方便利写法,内部归一化为 branches)
|
|
38
38
|
# @option params [Array<String>] :commitIds 提交ID数组
|
|
39
39
|
# @option params [Integer] :startTimestamp 开始时间戳
|
|
40
40
|
# @option params [Integer] :endTimestamp 结束时间戳
|
|
@@ -52,8 +52,11 @@ module JPSClient
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
# 添加可选参数
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
# 服务端 CommitLogSendMessageDto 只有 branches 数组字段,branch 单数会被直接丢弃,
|
|
56
|
+
# 因此单数写法在这里归一化为数组,不再原样透传
|
|
57
|
+
branches = params[:branches] || params[:branch]
|
|
58
|
+
body_params[:branches] = Array(branches).compact if branches
|
|
59
|
+
|
|
57
60
|
body_params[:commitIds] = params[:commitIds] if params[:commitIds]
|
|
58
61
|
body_params[:startTimestamp] = params[:startTimestamp] if params[:startTimestamp]
|
|
59
62
|
body_params[:endTimestamp] = params[:endTimestamp] if params[:endTimestamp]
|
|
@@ -236,6 +236,10 @@ end
|
|
|
236
236
|
module JPSClient
|
|
237
237
|
# JPS API 响应封装类 - 简化版
|
|
238
238
|
class Response
|
|
239
|
+
# 登录 token 失效的业务码。调用方需要按它区分「认证失败」和「网络/服务端故障」,
|
|
240
|
+
# 提成常量避免各处硬编码
|
|
241
|
+
NEED_LOGIN_CODE = '20001'.freeze
|
|
242
|
+
|
|
239
243
|
attr_reader :code
|
|
240
244
|
attr_reader :data
|
|
241
245
|
attr_reader :msg
|
|
@@ -269,7 +273,7 @@ module JPSClient
|
|
|
269
273
|
|
|
270
274
|
# 20001: 登录token失效
|
|
271
275
|
def need_login?
|
|
272
|
-
@need_login || @code.to_s ==
|
|
276
|
+
@need_login || @code.to_s == NEED_LOGIN_CODE
|
|
273
277
|
end
|
|
274
278
|
|
|
275
279
|
# 20011: 没有权限访问项目
|
|
@@ -6,6 +6,7 @@ require 'digest'
|
|
|
6
6
|
require 'cgi'
|
|
7
7
|
require 'uri'
|
|
8
8
|
require 'jpsclient/base/exception'
|
|
9
|
+
require 'jpsclient/http/http_client'
|
|
9
10
|
require 'jpsclient/upload/upload_config'
|
|
10
11
|
require 'jpsclient/upload/upload_progress'
|
|
11
12
|
require 'jpsclient/utils/logger'
|
|
@@ -98,7 +99,7 @@ module JPSClient
|
|
|
98
99
|
end
|
|
99
100
|
|
|
100
101
|
if init_result.nil? || !init_result.dig("data", "upload_id")
|
|
101
|
-
raise ExceptionError,
|
|
102
|
+
raise ExceptionError, init_multipart_error_message(init_result)
|
|
102
103
|
end
|
|
103
104
|
|
|
104
105
|
upload_id = init_result["data"]["upload_id"]
|
|
@@ -169,6 +170,35 @@ module JPSClient
|
|
|
169
170
|
|
|
170
171
|
end
|
|
171
172
|
|
|
173
|
+
# 拼装初始化上传失败的错误信息
|
|
174
|
+
#
|
|
175
|
+
# 真实原因写在接口返回的 code / msg 里(例如 20001 登录态失效),
|
|
176
|
+
# 一律报「请检查网络或服务器状态」会把认证问题误导成网络问题;
|
|
177
|
+
# 而原始响应此前只在 JPSClient.debug? 下打印,排查时通常拿不到。
|
|
178
|
+
#
|
|
179
|
+
# @param init_result [Hash, nil] init_file_multipart 的原始返回
|
|
180
|
+
# @return [String] 带上真实原因的错误信息
|
|
181
|
+
def init_multipart_error_message(init_result)
|
|
182
|
+
return "初始化上传失败:接口无响应,请检查网络或服务器状态" if init_result.nil?
|
|
183
|
+
|
|
184
|
+
code = init_result["code"]
|
|
185
|
+
msg = init_result["msg"] || init_result["message"]
|
|
186
|
+
|
|
187
|
+
# request_with_auth 遇到 20001 会自动重新登录并重试一次,
|
|
188
|
+
# 这里仍拿到 20001 说明重登也没成功,需要用户手动重新登录
|
|
189
|
+
if code.to_s == Response::NEED_LOGIN_CODE
|
|
190
|
+
detail = msg.to_s.empty? ? "code=#{code}" : "code=#{code},msg=#{msg}"
|
|
191
|
+
return "初始化上传失败:登录态已失效,且自动重新登录未成功(#{detail}),请重新登录后重试"
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
parts = []
|
|
195
|
+
parts << "code=#{code}" unless code.nil?
|
|
196
|
+
parts << "msg=#{msg}" unless msg.to_s.empty?
|
|
197
|
+
parts << "响应中缺少 data.upload_id" if parts.empty?
|
|
198
|
+
|
|
199
|
+
"初始化上传失败(#{parts.join(",")}),请检查网络或服务器状态"
|
|
200
|
+
end
|
|
201
|
+
|
|
172
202
|
# 安全地检查上传失败状态
|
|
173
203
|
def upload_failed?
|
|
174
204
|
@upload_failed_mutex.synchronize { @upload_failed }
|
data/lib/jpsclient/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jpsclient
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.7.
|
|
4
|
+
version: 2.7.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Your Name
|
|
@@ -296,7 +296,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
296
296
|
- !ruby/object:Gem::Version
|
|
297
297
|
version: '0'
|
|
298
298
|
requirements: []
|
|
299
|
-
rubygems_version: 4.0.
|
|
299
|
+
rubygems_version: 4.0.10
|
|
300
300
|
specification_version: 4
|
|
301
301
|
summary: JPS Platform API Client with Full API Support
|
|
302
302
|
test_files: []
|