Module: JPSClient::API::ProjectPackage
- Included in:
- Client
- Defined in:
- lib/jpsclient/api/project_package.rb
Overview
项目包管理相关 API 处理 /api/project_package/* 路径的所有接口
支持的功能:
-
上传项目包
-
上传 NuGet 包
-
获取项目包列表
-
更新项目包信息
-
签名项目包
-
发送项目包消息通知
-
绑定提交记录
-
预览项目包
-
获取绑定列表
Instance Method Summary collapse
-
#bind_commit_to_package(commitId:, projectPackageIds:) ⇒ Object
绑定提交记录到项目包.
-
#get_project_package_bind_list(projectId:) ⇒ Object
获取项目包绑定列表.
-
#get_project_package_list(projectId: nil, params: nil) ⇒ Hash
获取项目包列表.
-
#preview_project_package(params:) ⇒ Object
预览项目包.
-
#send_project_package_message(projectId: nil, packageId: nil, chatEnv: nil, receiveType: nil, indexNo: nil) ⇒ Object
发送项目包消息.
-
#sign_project_package(packageId: nil, certId: nil) ⇒ Object
签名项目包.
-
#update_project_package(id:, description: nil) ⇒ Object
更新项目包信息(备注等).
-
#upload_nuget_package(projectId: nil, params: nil) ⇒ Hash
上传 NuGet 包 用于上传 NuGet 包到项目,不需要 workflowId 参数.
-
#upload_project_package(projectId: nil, params: nil, timeout: nil) ⇒ Object
上传项目包.
Instance Method Details
#bind_commit_to_package(commitId:, projectPackageIds:) ⇒ Object
绑定提交记录到项目包
194 195 196 197 198 199 200 201 202 203 204 205 |
# File 'lib/jpsclient/api/project_package.rb', line 194 def bind_commit_to_package(commitId:, projectPackageIds:) config = @request_config && @request_config["project_package_bind_commit"] raise JPSClient::ExceptionError, "Missing config for project_package_bind_commit" unless config && config["url"] path = config["url"] body_params = { commitId: commitId, projectPackageIds: projectPackageIds } return request_with_auth(:post, path, body: body_params) end |
#get_project_package_bind_list(projectId:) ⇒ Object
获取项目包绑定列表
226 227 228 229 230 231 232 233 234 235 236 |
# File 'lib/jpsclient/api/project_package.rb', line 226 def get_project_package_bind_list(projectId:) config = @request_config && @request_config["project_package_bind_list"] raise JPSClient::ExceptionError, "Missing config for project_package_bind_list" unless config && config["url"] path = config["url"] get_params = { projectId: projectId } return request_with_auth(:get, path, params: get_params) end |
#get_project_package_list(projectId: nil, params: nil) ⇒ Hash
获取项目包列表
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
# File 'lib/jpsclient/api/project_package.rb', line 117 def get_project_package_list(projectId:nil, params:nil) params = {} if params.nil? config = @request_config && @request_config["project_package_list"] raise JPSClient::ExceptionError, "Missing config for project_package_list" unless config && config["url"] path = config["url"] get_params = { projectId: projectId, pageNo: params[:pageNo] || 1, pageSize: params[:pageSize] || 20, } # 添加可选的筛选参数 get_params[:uploadBy] = params[:uploadBy] if params[:uploadBy] get_params[:nativePackageType] = params[:nativePackageType] if params[:nativePackageType] get_params[:packageName] = params[:packageName] if params[:packageName] get_params[:startTimestamp] = params[:startTimestamp] if params[:startTimestamp] get_params[:endTimestamp] = params[:endTimestamp] if params[:endTimestamp] # 处理响应数据格式 response_data = request_with_auth(:get, path, params: get_params) if response_data && response_data['data'] && response_data['data']['packages'] # 新的API格式:返回 packages 数组 response_data['data'] = response_data['data']['packages'] end return response_data end |
#preview_project_package(params:) ⇒ Object
预览项目包
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 |
# File 'lib/jpsclient/api/project_package.rb', line 208 def preview_project_package(params:) config = @request_config && @request_config["project_package_preview"] raise JPSClient::ExceptionError, "Missing config for project_package_preview" unless config && config["url"] path = config["url"] get_params = { id: params[:id], url: params[:url], packId: params[:packId], packageType: params[:packageType], packageVersion: params[:packageVersion], projectId: params[:projectId] }.compact # 移除nil值 return request_with_auth(:get, path, params: get_params) end |
#send_project_package_message(projectId: nil, packageId: nil, chatEnv: nil, receiveType: nil, indexNo: nil) ⇒ Object
发送项目包消息
175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 |
# File 'lib/jpsclient/api/project_package.rb', line 175 def (projectId:nil, packageId:nil, chatEnv: nil, receiveType:nil, indexNo:nil) config = @request_config && @request_config["project_package_send_message"] raise JPSClient::ExceptionError, "Missing config for project_package_send_message" unless config && config["url"] path = config["url"] body_params = { receiveType: receiveType, projectId: projectId, projectPackageId: packageId, chatEnv: chatEnv } # 添加可选参数 body_params[:indexNo] = indexNo if indexNo return request_with_auth(:post, path, body: body_params) end |
#sign_project_package(packageId: nil, certId: nil) ⇒ Object
签名项目包
161 162 163 164 165 166 167 168 169 170 171 172 |
# File 'lib/jpsclient/api/project_package.rb', line 161 def sign_project_package(packageId:nil, certId:nil) config = @request_config && @request_config["project_package_sign"] raise JPSClient::ExceptionError, "Missing config for project_package_sign" unless config && config["url"] path = config["url"] body_params = { projectPackageId: packageId, # 根据文档使用 projectPackageId certId: certId } return request_with_auth(:post, path, body: body_params) end |
#update_project_package(id:, description: nil) ⇒ Object
更新项目包信息(备注等)
147 148 149 150 151 152 153 154 155 156 157 158 |
# File 'lib/jpsclient/api/project_package.rb', line 147 def update_project_package(id:, description:nil) config = @request_config && @request_config["project_package_update"] raise JPSClient::ExceptionError, "Missing config for project_package_update" unless config && config["url"] path = config["url"] body_params = { id: id, description: description }.compact # 移除nil值 return request_with_auth(:post, path, body: body_params) end |
#upload_nuget_package(projectId: nil, params: nil) ⇒ Hash
上传 NuGet 包用于上传 NuGet 包到项目,不需要 workflowId 参数
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/jpsclient/api/project_package.rb', line 63 def upload_nuget_package(projectId:nil, params:nil) puts "========1111 upload_nuget_package" if ENV['PINDO_DEBUG'] config = @request_config && @request_config["project_package_upload_nuget"] raise JPSClient::ExceptionError, "Missing config for project_package_upload_nuget" unless config && config["url"] path = config["url"] body_params = { projectId: projectId } # 合并传入的参数 if params params.each { |key,value| body_params[key] = value } end # 确保必要的字段存在(不包括 workflowId) body_params[:packageUrl] ||= params&.dig(:packageUrl) body_params[:description] ||= params&.dig(:description) body_params[:attachFileUrls] ||= params&.dig(:attachFileUrls) || [] body_params[:chatEnv] ||= params&.dig(:chatEnv) body_params[:commitId] ||= params&.dig(:commitId) body_params[:projectPackageId] ||= params&.dig(:projectPackageId) # 移除值为nil的键 body_params.compact! if ENV['PINDO_DEBUG'] puts "[DEBUG]upload_nuget_package upload_nuget_package 请求详情:" puts "[DEBUG]upload_nuget_package URL: #{path}" puts "[DEBUG]upload_nuget_package 请求体:" body_params.each do |key, value| if value.is_a?(Array) puts "[DEBUG]upload_nuget_package #{key}: #{value.inspect}" else puts "[DEBUG]upload_nuget_package #{key}: #{value}" end end end return request_with_auth(:post, path, body: body_params) end |
#upload_project_package(projectId: nil, params: nil, timeout: nil) ⇒ Object
上传项目包
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/jpsclient/api/project_package.rb', line 22 def upload_project_package(projectId:nil, params:nil, timeout:nil) config = @request_config && @request_config["project_package_upload"] raise JPSClient::ExceptionError, "Missing config for project_package_upload" unless config && config["url"] path = config["url"] body_params = { projectId: projectId } # 合并传入的参数 if params params.each { |key,value| body_params[key] = value } end # 确保必要的字段存在 body_params[:packageUrl] ||= params&.dig(:packageUrl) body_params[:description] ||= params&.dig(:description) body_params[:attachFileUrls] ||= params&.dig(:attachFileUrls) || [] body_params[:chatEnv] ||= params&.dig(:chatEnv) body_params[:commitId] ||= params&.dig(:commitId) body_params[:projectPackageId] ||= params&.dig(:projectPackageId) body_params[:workflowId] ||= params&.dig(:workflowId) # 移除值为nil的键 body_params.compact! return request_with_auth(:post, path, body: body_params, timeout: timeout) end |