python-cnb 1.19.9__tar.gz → 1.20.13__tar.gz

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.
Files changed (61) hide show
  1. {python_cnb-1.19.9/python_cnb.egg-info → python_cnb-1.20.13}/PKG-INFO +1 -1
  2. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/issues.py +118 -2
  3. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/knowledgebase.py +1 -1
  4. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/missions.py +0 -17
  5. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/api.py +30 -0
  6. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/dto.py +23 -2
  7. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/pulls.py +56 -0
  8. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/rank.py +8 -8
  9. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/registries.py +0 -17
  10. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/repositories.py +0 -17
  11. {python_cnb-1.19.9 → python_cnb-1.20.13/python_cnb.egg-info}/PKG-INFO +1 -1
  12. {python_cnb-1.19.9 → python_cnb-1.20.13}/setup.py +1 -1
  13. {python_cnb-1.19.9 → python_cnb-1.20.13}/LICENSE +0 -0
  14. {python_cnb-1.19.9 → python_cnb-1.20.13}/MANIFEST.in +0 -0
  15. {python_cnb-1.19.9 → python_cnb-1.20.13}/README.md +0 -0
  16. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/__init__.py +0 -0
  17. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/activities.py +0 -0
  18. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/ai.py +0 -0
  19. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/ai_ext.py +0 -0
  20. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/assets.py +0 -0
  21. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/badge.py +0 -0
  22. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/build.py +0 -0
  23. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/charge.py +0 -0
  24. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/client.py +0 -0
  25. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/cnb.py +0 -0
  26. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/event.py +0 -0
  27. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/exceptions.py +0 -0
  28. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/followers.py +0 -0
  29. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/git.py +0 -0
  30. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/gitsettings.py +0 -0
  31. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/members.py +0 -0
  32. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/__init__.py +0 -0
  33. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/chart.py +0 -0
  34. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/constant.py +0 -0
  35. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/convert.py +0 -0
  36. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/die.py +0 -0
  37. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/flags.py +0 -0
  38. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/git_woa_com_cnb_monorepo_git_internal_app_git_service_bff_api.py +0 -0
  39. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/git_woa_com_cnb_monorepo_git_internal_app_vcs_service_bff_api.py +0 -0
  40. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/git_woa_com_cnb_monorepo_platform_service_api_internal_models_artifactory_dto.py +0 -0
  41. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/member.py +0 -0
  42. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/models.py +0 -0
  43. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/openapi.py +0 -0
  44. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/organization.py +0 -0
  45. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/web.py +0 -0
  46. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/organizations.py +0 -0
  47. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/releases.py +0 -0
  48. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/repocodeissue.py +0 -0
  49. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/repocontributor.py +0 -0
  50. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/repolabels.py +0 -0
  51. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/search.py +0 -0
  52. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/security.py +0 -0
  53. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/starring.py +0 -0
  54. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/users.py +0 -0
  55. {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/workspace.py +0 -0
  56. {python_cnb-1.19.9 → python_cnb-1.20.13}/pyproject.toml +0 -0
  57. {python_cnb-1.19.9 → python_cnb-1.20.13}/python_cnb.egg-info/SOURCES.txt +0 -0
  58. {python_cnb-1.19.9 → python_cnb-1.20.13}/python_cnb.egg-info/dependency_links.txt +0 -0
  59. {python_cnb-1.19.9 → python_cnb-1.20.13}/python_cnb.egg-info/requires.txt +0 -0
  60. {python_cnb-1.19.9 → python_cnb-1.20.13}/python_cnb.egg-info/top_level.txt +0 -0
  61. {python_cnb-1.19.9 → python_cnb-1.20.13}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-cnb
3
- Version: 1.19.9
3
+ Version: 1.20.13
4
4
  Summary: CNB OpenAPI的Python SDK,方便与CNB平台进行交互
5
5
  Home-page: https://cnb.cool
6
6
  Author: Tencent Cloud
@@ -105,6 +105,45 @@ class IssuesService:
105
105
  )
106
106
  return api.IssueComment.safe_parse(data)
107
107
 
108
+ # 获取 Issue 文件,返回文件二进制内容。Request to retrieve file of issues, returns binary content.
109
+ def get_issue_files(self,
110
+ repo: str,
111
+ file_path: str,
112
+ ):
113
+ u = "/%s/-/files/issues/%s" % (repo, file_path, )
114
+
115
+ data = self._client.request(
116
+ method="GET",
117
+ endpoint=u,
118
+ )
119
+ return
120
+
121
+ # 获取 Issue 图片,返回图片二进制内容。Request to retrieve image of issues, returns binary content.
122
+ def get_issue_imgs(self,
123
+ repo: str,
124
+ img_path: str,
125
+ ):
126
+ u = "/%s/-/imgs/issues/%s" % (repo, img_path, )
127
+
128
+ data = self._client.request(
129
+ method="GET",
130
+ endpoint=u,
131
+ )
132
+ return
133
+
134
+ # 查询指定Issue的自定义属性列表。Get issue custom properties.
135
+ def get_issue_properties(self,
136
+ repo: str,
137
+ number: str,
138
+ ) -> list[api.IssueProperty]:
139
+ u = "/%s/-/issues/%s/property" % (repo, number, )
140
+
141
+ data = self._client.request(
142
+ method="GET",
143
+ endpoint=u,
144
+ )
145
+ return [api.IssueProperty.safe_parse(item) for item in data]
146
+
108
147
  # 查询指定 Issue 的 Timeline Activity
109
148
  def list_issue_activities(self,
110
149
  repo: str,
@@ -237,6 +276,39 @@ class IssuesService:
237
276
  )
238
277
  return [api.Issue.safe_parse(item) for item in data]
239
278
 
279
+ # 查询仓库不可见的自定义属性列表。List repository invisible custom properties.
280
+ def list_repo_invisible_properties(self,
281
+ repo: str,
282
+ page: Optional[int] = None,
283
+ page_size: Optional[int] = None,
284
+ keyword: Optional[str] = None,
285
+ ) -> list[api.RepoProperty]:
286
+ u = "/%s/-/property/invisible" % (repo, )
287
+
288
+ query_params = {
289
+ "page": page,
290
+ "page_size": page_size,
291
+ "keyword": keyword,
292
+ }
293
+ data = self._client.request(
294
+ method="GET",
295
+ endpoint=u,
296
+ params=query_params,
297
+ )
298
+ return [api.RepoProperty.safe_parse(item) for item in data]
299
+
300
+ # 查询仓库可见的自定义属性列表。List repository visible custom properties.
301
+ def list_repo_visible_properties(self,
302
+ repo: str,
303
+ ) -> list[api.RepoProperty]:
304
+ u = "/%s/-/property" % (repo, )
305
+
306
+ data = self._client.request(
307
+ method="GET",
308
+ endpoint=u,
309
+ )
310
+ return [api.RepoProperty.safe_parse(item) for item in data]
311
+
240
312
  # 查询当前用户相关的 Issues。List issues for the authenticated user across all repositories.
241
313
  def list_user_issues(self,
242
314
  page: Optional[int] = None,
@@ -306,6 +378,20 @@ class IssuesService:
306
378
  )
307
379
  return api.IssueComment.safe_parse(data)
308
380
 
381
+ # 创建一个 Issue 附件组用于上传新建 Issue 的附件。一次可以获取 16 个附件上传 url。需要上传更多附件可以使用 /{repo}/-/issues/asset-groups/{asset_group_id}/image-asset-upload-url 和 /{repo}/-/issues/asset-groups/{asset_group_id}/file-asset-upload-url 接口获取更多的上传 url。
382
+ def post_asset_group(self,
383
+ repo: str,
384
+ body_params: api.PostAssetGroupForm,
385
+ ) -> api.AssetGroup:
386
+ u = "/%s/-/issues/asset-groups" % (repo, )
387
+
388
+ data = self._client.request(
389
+ method="POST",
390
+ endpoint=u,
391
+ json=body_params.to_dict(),
392
+ )
393
+ return api.AssetGroup.safe_parse(data)
394
+
309
395
  # 添加处理人到指定的 issue。 Adds up to assignees to a issue, Users already assigned to an issue are not replaced.
310
396
  def post_issue_assignees(self,
311
397
  repo: str,
@@ -337,7 +423,7 @@ class IssuesService:
337
423
  return api.IssueComment.safe_parse(data)
338
424
 
339
425
  # 创建一个 Issue 评论的文件上传 url。请使用 put 发起流式上传到 upload_url 地址。上传完成后将 asset_link 添加到创建评论请求的 body 中。 Create a file upload URL for an Issue comment. Please use put to initiate a stream upload to the upload_url address. After uploading, add the asset_link to the body of the create comment request.
340
- def post_issue_file_asset_upload_url(self,
426
+ def post_issue_comment_file_asset_upload_url(self,
341
427
  repo: str,
342
428
  number: str,
343
429
  body_params: api.PostIssueAssetUploadURLForm,
@@ -352,7 +438,7 @@ class IssuesService:
352
438
  return api.IssueAssetUploadURL.safe_parse(data)
353
439
 
354
440
  # 创建一个 Issue 评论的图片上传 url。请使用 put 发起流式上传到 upload_url 地址。上传完成后将 asset_link 添加到创建评论请求的 body 中。Create an image upload URL for an Issue comment. Please use put to initiate a stream upload to the upload_url address. After uploading, add the asset_link to the body of the create comment request.
355
- def post_issue_image_asset_upload_url(self,
441
+ def post_issue_comment_image_asset_upload_url(self,
356
442
  repo: str,
357
443
  number: str,
358
444
  body_params: api.PostIssueAssetUploadURLForm,
@@ -366,6 +452,36 @@ class IssuesService:
366
452
  )
367
453
  return api.IssueAssetUploadURL.safe_parse(data)
368
454
 
455
+ # 新增一个 Issue 文件附件的上传 url 用于上传新建 Issue 的文件附件。
456
+ def post_issue_file_asset_upload_url(self,
457
+ repo: str,
458
+ asset_group_id: str,
459
+ body_params: api.PostIssueAssetUploadURLForm,
460
+ ) -> api.IssueAssetUploadURL:
461
+ u = "/%s/-/issues/asset-groups/%s/file-asset-upload-url" % (repo, asset_group_id, )
462
+
463
+ data = self._client.request(
464
+ method="POST",
465
+ endpoint=u,
466
+ json=body_params.to_dict(),
467
+ )
468
+ return api.IssueAssetUploadURL.safe_parse(data)
469
+
470
+ # 新增一个 Issue 图片的上传 url 用于上传新建 Issue 的图片。
471
+ def post_issue_image_asset_upload_url(self,
472
+ repo: str,
473
+ asset_group_id: str,
474
+ body_params: api.PostIssueAssetUploadURLForm,
475
+ ) -> api.IssueAssetUploadURL:
476
+ u = "/%s/-/issues/asset-groups/%s/image-asset-upload-url" % (repo, asset_group_id, )
477
+
478
+ data = self._client.request(
479
+ method="POST",
480
+ endpoint=u,
481
+ json=body_params.to_dict(),
482
+ )
483
+ return api.IssueAssetUploadURL.safe_parse(data)
484
+
369
485
  # 新增 issue 标签。Add labels to an issue.
370
486
  def post_issue_labels(self,
371
487
  repo: str,
@@ -62,7 +62,7 @@ class KnowledgebaseService:
62
62
  key: Optional[str] = None,
63
63
  top_n: Optional[int] = None,
64
64
  ) -> list[dto.SearchNpcRes]:
65
- u = "/npc/search" % ()
65
+ u = "/search/npc" % ()
66
66
 
67
67
  query_params = {
68
68
  "key": key,
@@ -133,21 +133,4 @@ class MissionsService:
133
133
  )
134
134
  return
135
135
 
136
- # 改变任务集可见性。Update the visibility of a mission.
137
- def set_mission_visibility(self,
138
- mission: str,
139
- visibility: Optional[str] = None,
140
- ):
141
- u = "/%s/-/settings/set_visibility" % (mission, )
142
-
143
- query_params = {
144
- "visibility": visibility,
145
- }
146
- data = self._client.request(
147
- method="POST",
148
- endpoint=u,
149
- params=query_params,
150
- )
151
- return
152
-
153
136
 
@@ -7,6 +7,11 @@ from typing import Optional, Dict
7
7
  from .models import CNBBaseModel
8
8
  from . import git_woa_com_cnb_monorepo_git_internal_app_git_service_bff_api
9
9
  from . import git_woa_com_cnb_monorepo_git_internal_app_vcs_service_bff_api
10
+ class AssetGroup(CNBBaseModel):
11
+ asset_group_id: Optional[str] = Field(alias="asset_group_id", default=None)
12
+ file_upload_urls: Optional[list['IssueAssetUploadURL']] = Field(alias="file_upload_urls", default=None)
13
+ image_upload_urls: Optional[list['IssueAssetUploadURL']] = Field(alias="image_upload_urls", default=None)
14
+ pass
10
15
  class Author(CNBBaseModel):
11
16
  email: Optional[str] = Field(alias="email", default=None)
12
17
  user_name: Optional[str] = Field(alias="user_name", default=None)
@@ -178,6 +183,9 @@ class DeleteIssueAssigneesForm(CNBBaseModel):
178
183
  class DeletePullAssigneesForm(CNBBaseModel):
179
184
  assignees: Optional[list[str]] = Field(alias="assignees", default=None)
180
185
  pass
186
+ class DeletePullReviewersForm(CNBBaseModel):
187
+ reviewers: Optional[list[str]] = Field(alias="reviewers", default=None)
188
+ pass
181
189
  class DiffLine(CNBBaseModel):
182
190
  content: Optional[str] = Field(alias="content", default=None)
183
191
  left_line_number: Optional[int] = Field(alias="left_line_number", default=None)
@@ -234,6 +242,7 @@ class IssueActivity(CNBBaseModel):
234
242
  pass
235
243
  class IssueAssetUploadURL(CNBBaseModel):
236
244
  asset_link: Optional[str] = Field(alias="asset_link", default=None)
245
+ name: Optional[str] = Field(alias="name", default=None)
237
246
  path: Optional[str] = Field(alias="path", default=None)
238
247
  upload_url: Optional[str] = Field(alias="upload_url", default=None)
239
248
  pass
@@ -257,12 +266,19 @@ class IssueDetail(CNBBaseModel):
257
266
  last_acted_at: Optional[str] = Field(alias="last_acted_at", default=None)
258
267
  number: Optional[str] = Field(alias="number", default=None)
259
268
  priority: Optional[str] = Field(alias="priority", default=None)
269
+ properties: Optional[list['IssueProperty']] = Field(alias="properties", default=None)
260
270
  started_at: Optional[str] = Field(alias="started_at", default=None)
261
271
  state: Optional[str] = Field(alias="state", default=None)
262
272
  state_reason: Optional[str] = Field(alias="state_reason", default=None)
263
273
  title: Optional[str] = Field(alias="title", default=None)
264
274
  updated_at: Optional[str] = Field(alias="updated_at", default=None)
265
275
  pass
276
+ class IssueProperty(CNBBaseModel):
277
+ key: Optional[str] = Field(alias="key", default=None)
278
+ name: Optional[str] = Field(alias="name", default=None)
279
+ type: Optional[str] = Field(alias="type", default=None)
280
+ value: Optional[str] = Field(alias="value", default=None)
281
+ pass
266
282
  class IssuePropertyUpdateResult(CNBBaseModel):
267
283
  failed_count: Optional[int] = Field(alias="failed_count", default=None)
268
284
  failed_keys: Optional[list[str]] = Field(alias="failed_keys", default=None)
@@ -327,8 +343,13 @@ class PatchPullRequest(CNBBaseModel):
327
343
  pass
328
344
  class PipelineSettings(CNBBaseModel):
329
345
  auto_trigger: Optional[bool] = Field(alias="auto_trigger", default=None)
346
+ cron_auto_trigger: Optional[bool] = Field(alias="cron_auto_trigger", default=None)
330
347
  forked_repo_auto_trigger: Optional[bool] = Field(alias="forked_repo_auto_trigger", default=None)
331
348
  pass
349
+ class PostAssetGroupForm(CNBBaseModel):
350
+ file_assets: Optional[list['PostIssueAssetUploadURLForm']] = Field(alias="file_assets", default=None)
351
+ image_assets: Optional[list['PostIssueAssetUploadURLForm']] = Field(alias="image_assets", default=None)
352
+ pass
332
353
  class PostBlobForm(CNBBaseModel):
333
354
  content: Optional[str] = Field(alias="content", default=None)
334
355
  encoding: Optional[str] = Field(alias="encoding", default=None)
@@ -374,6 +395,9 @@ class PostPullRequestReviewReplyForm(CNBBaseModel):
374
395
  body: Optional[str] = Field(alias="body", default=None)
375
396
  reply_to_comment_id: Optional[str] = Field(alias="reply_to_comment_id", default=None)
376
397
  pass
398
+ class PostPullReviewersForm(CNBBaseModel):
399
+ reviewers: Optional[list[str]] = Field(alias="reviewers", default=None)
400
+ pass
377
401
  class PostTagFrom(CNBBaseModel):
378
402
  message: Optional[str] = Field(alias="message", default=None)
379
403
  name: Optional[str] = Field(alias="name", default=None)
@@ -588,6 +612,12 @@ class RepoInfo(CNBBaseModel):
588
612
  path: Optional[str] = Field(alias="path", default=None)
589
613
  web_url: Optional[str] = Field(alias="web_url", default=None)
590
614
  pass
615
+ class RepoProperty(CNBBaseModel):
616
+ key: Optional[str] = Field(alias="key", default=None)
617
+ name: Optional[str] = Field(alias="name", default=None)
618
+ type: Optional[str] = Field(alias="type", default=None)
619
+ visible: Optional[bool] = Field(alias="visible", default=None)
620
+ pass
591
621
  class Signature(CNBBaseModel):
592
622
  date: Optional[str] = Field(alias="date", default=None)
593
623
  email: Optional[str] = Field(alias="email", default=None)
@@ -117,6 +117,13 @@ class BuildLogsResult(CNBBaseModel):
117
117
  timestamp: Optional[int] = Field(alias="timestamp", default=None)
118
118
  total: Optional[int] = Field(alias="total", default=None)
119
119
  pass
120
+ class BuildPipelineInfo(CNBBaseModel):
121
+ createTime: Optional[str] = Field(alias="createTime", default=None)
122
+ duration: Optional[int] = Field(alias="duration", default=None)
123
+ id: Optional[str] = Field(alias="id", default=None)
124
+ labels: Optional[str] = Field(alias="labels", default=None)
125
+ status: Optional[str] = Field(alias="status", default=None)
126
+ pass
120
127
  class BuildResult(CNBBaseModel):
121
128
  buildLogUrl: Optional[str] = Field(alias="buildLogUrl", default=None)
122
129
  message: Optional[str] = Field(alias="message", default=None)
@@ -195,6 +202,9 @@ class CodeLicenseOverview(CNBBaseModel):
195
202
  medium_risk_cnt: Optional[int] = Field(alias="medium_risk_cnt", default=None)
196
203
  na_risk_cnt: Optional[int] = Field(alias="na_risk_cnt", default=None)
197
204
  pass
205
+ class CodeSbomOverview(CNBBaseModel):
206
+ enable: Optional[bool] = Field(alias="enable", default=None)
207
+ pass
198
208
  class CodeSensitiveSummary(CNBBaseModel):
199
209
  enable: Optional[bool] = Field(alias="enable", default=None)
200
210
  high_count: Optional[int] = Field(alias="high_count", default=None)
@@ -401,7 +411,6 @@ class CreateMissionReq(CNBBaseModel):
401
411
  pass
402
412
  class CreateRepoReq(CNBBaseModel):
403
413
  description: Optional[str] = Field(alias="description", default=None)
404
- license: Optional[str] = Field(alias="license", default=None)
405
414
  name: Optional[str] = Field(alias="name", default=None)
406
415
  visibility: Optional[str] = Field(alias="visibility", default=None)
407
416
  pass
@@ -507,6 +516,10 @@ class GetBadgeResult(CNBBaseModel):
507
516
  links: Optional[list[str]] = Field(alias="links", default=None)
508
517
  message: Optional[str] = Field(alias="message", default=None)
509
518
  pass
519
+ class GetRankResult(CNBBaseModel):
520
+ rank_list: Optional[list['RankDetailWithIncr']] = Field(alias="rank_list", default=None)
521
+ updated_at: Optional[str] = Field(alias="updated_at", default=None)
522
+ pass
510
523
  class GroupSettingReq(CNBBaseModel):
511
524
  email_verification: Optional[list[str]] = Field(alias="email_verification", default=None)
512
525
  group_protection: Optional[int] = Field(alias="group_protection", default=None)
@@ -600,6 +613,7 @@ class LogInfo(CNBBaseModel):
600
613
  pipelineFailCount: Optional[int] = Field(alias="pipelineFailCount", default=None)
601
614
  pipelineSuccessCount: Optional[int] = Field(alias="pipelineSuccessCount", default=None)
602
615
  pipelineTotalCount: Optional[int] = Field(alias="pipelineTotalCount", default=None)
616
+ pipelines: Optional[list['BuildPipelineInfo']] = Field(alias="pipelines", default=None)
603
617
  sha: Optional[str] = Field(alias="sha", default=None)
604
618
  slug: Optional[str] = Field(alias="slug", default=None)
605
619
  sn: Optional[str] = Field(alias="sn", default=None)
@@ -800,6 +814,7 @@ class OutsideCollaboratorInRepo(CNBBaseModel):
800
814
  email: Optional[str] = Field(alias="email", default=None)
801
815
  freeze: Optional[bool] = Field(alias="freeze", default=None)
802
816
  id: Optional[str] = Field(alias="id", default=None)
817
+ inviter: Optional['Users'] = Field(alias="inviter", default=None)
803
818
  join_time: Optional[str] = Field(alias="join_time", default=None)
804
819
  locked: Optional[bool] = Field(alias="locked", default=None)
805
820
  nickname: Optional[str] = Field(alias="nickname", default=None)
@@ -1013,6 +1028,7 @@ class RepoPatch(CNBBaseModel):
1013
1028
  class RepoSecurityOverview(CNBBaseModel):
1014
1029
  code_issue: Optional['CodeIssueSummary'] = Field(alias="code_issue", default=None)
1015
1030
  code_license: Optional['CodeLicenseOverview'] = Field(alias="code_license", default=None)
1031
+ code_sbom: Optional['CodeSbomOverview'] = Field(alias="code_sbom", default=None)
1016
1032
  code_sensitive: Optional['CodeSensitiveSummary'] = Field(alias="code_sensitive", default=None)
1017
1033
  code_vulnerability: Optional['CodeVulOverview'] = Field(alias="code_vulnerability", default=None)
1018
1034
  risk_cnt: Optional['RepoSecurityRiskCnt'] = Field(alias="risk_cnt", default=None)
@@ -1022,6 +1038,7 @@ class RepoSecurityRiskCnt(CNBBaseModel):
1022
1038
  code_issue_risk_cnt: Optional[int] = Field(alias="code_issue_risk_cnt", default=None)
1023
1039
  code_license_enable: Optional[bool] = Field(alias="code_license_enable", default=None)
1024
1040
  code_license_risk_cnt: Optional[int] = Field(alias="code_license_risk_cnt", default=None)
1041
+ code_sbom_enable: Optional[bool] = Field(alias="code_sbom_enable", default=None)
1025
1042
  code_sensitive_enable: Optional[bool] = Field(alias="code_sensitive_enable", default=None)
1026
1043
  code_sensitive_risk_cnt: Optional[int] = Field(alias="code_sensitive_risk_cnt", default=None)
1027
1044
  code_vulnerability_enable: Optional[bool] = Field(alias="code_vulnerability_enable", default=None)
@@ -1107,10 +1124,13 @@ class Repos4UserBase(CNBBaseModel):
1107
1124
  pass
1108
1125
  class SearchNpcRes(CNBBaseModel):
1109
1126
  avatar: Optional[str] = Field(alias="avatar", default=None)
1127
+ built_count: Optional[int] = Field(alias="built_count", default=None)
1110
1128
  name: Optional[str] = Field(alias="name", default=None)
1111
- repo_id: Optional[int] = Field(alias="repo_id", default=None)
1129
+ pull_request_created_count: Optional[int] = Field(alias="pull_request_created_count", default=None)
1130
+ pull_request_merged_count: Optional[int] = Field(alias="pull_request_merged_count", default=None)
1112
1131
  score: Optional[float] = Field(alias="score", default=None)
1113
1132
  slogan: Optional[str] = Field(alias="slogan", default=None)
1133
+ slug: Optional[str] = Field(alias="slug", default=None)
1114
1134
  pass
1115
1135
  class Slugs(CNBBaseModel):
1116
1136
  created_at: Optional[str] = Field(alias="created_at", default=None)
@@ -1296,6 +1316,7 @@ class UsersResult(CNBBaseModel):
1296
1316
  gender: Optional[int] = Field(alias="gender", default=None)
1297
1317
  group_count: Optional[int] = Field(alias="group_count", default=None)
1298
1318
  id: Optional[str] = Field(alias="id", default=None)
1319
+ identity_providers: Optional[Dict[str, 'object']] = Field(alias="identity_providers", default=None)
1299
1320
  is_following: Optional[bool] = Field(alias="is_following", default=None)
1300
1321
  location: Optional[str] = Field(alias="location", default=None)
1301
1322
  locked: Optional[bool] = Field(alias="locked", default=None)
@@ -64,6 +64,21 @@ class PullsService:
64
64
  )
65
65
  return
66
66
 
67
+ # 删除合并请求中的评审人。Removes one or more reviewers from a pull request.
68
+ def delete_pull_reviewers(self,
69
+ repo: str,
70
+ number: str,
71
+ body_params: api.DeletePullReviewersForm,
72
+ ) -> api.Pull:
73
+ u = "/%s/-/pulls/%s/reviewers" % (repo, number, )
74
+
75
+ data = self._client.request(
76
+ method="DELETE",
77
+ endpoint=u,
78
+ json=body_params.to_dict(),
79
+ )
80
+ return api.Pull.safe_parse(data)
81
+
67
82
  # 删除 UploadFiles 上传的附件
68
83
  def delete_repo_files(self,
69
84
  repo: str,
@@ -90,6 +105,32 @@ class PullsService:
90
105
  )
91
106
  return
92
107
 
108
+ # 获取合并请求文件,返回文件二进制内容。Request to retrieve file of pull requests, returns binary content.
109
+ def get_pr_files(self,
110
+ repo: str,
111
+ file_path: str,
112
+ ):
113
+ u = "/%s/-/files/pulls/%s" % (repo, file_path, )
114
+
115
+ data = self._client.request(
116
+ method="GET",
117
+ endpoint=u,
118
+ )
119
+ return
120
+
121
+ # 获取合并请求图片,返回图片二进制内容。Request to retrieve image of pull requests, returns binary content.
122
+ def get_pr_imgs(self,
123
+ repo: str,
124
+ img_path: str,
125
+ ):
126
+ u = "/%s/-/imgs/pulls/%s" % (repo, img_path, )
127
+
128
+ data = self._client.request(
129
+ method="GET",
130
+ endpoint=u,
131
+ )
132
+ return
133
+
93
134
  # 查询指定合并请求。Get a pull request.
94
135
  def get_pull(self,
95
136
  repo: str,
@@ -453,6 +494,21 @@ class PullsService:
453
494
  )
454
495
  return
455
496
 
497
+ # 添加评审人到指定的合并请求。Adds up to reviewers to a pull request. Users already added as reviewers are not replaced.
498
+ def post_pull_reviewers(self,
499
+ repo: str,
500
+ number: str,
501
+ body_params: api.PostPullReviewersForm,
502
+ ) -> api.Pull:
503
+ u = "/%s/-/pulls/%s/reviewers" % (repo, number, )
504
+
505
+ data = self._client.request(
506
+ method="POST",
507
+ endpoint=u,
508
+ json=body_params.to_dict(),
509
+ )
510
+ return api.Pull.safe_parse(data)
511
+
456
512
  # 设置合并请求标签。Set the new labels for a pull.
457
513
  def put_pull_labels(self,
458
514
  repo: str,
@@ -31,7 +31,7 @@ class RankService:
31
31
  flags: Optional[str] = None,
32
32
  year: Optional[str] = None,
33
33
  topN: Optional[int] = None,
34
- ) -> list[dto.RankDetailWithIncr]:
34
+ ) -> dto.GetRankResult:
35
35
  u = "/ranks/repo/annual" % ()
36
36
 
37
37
  query_params = {
@@ -45,7 +45,7 @@ class RankService:
45
45
  endpoint=u,
46
46
  params=query_params,
47
47
  )
48
- return [dto.RankDetailWithIncr.safe_parse(item) for item in data]
48
+ return dto.GetRankResult.safe_parse(data)
49
49
 
50
50
  # 获取公仓日榜
51
51
  def get_repo_daily_rank(self,
@@ -53,7 +53,7 @@ class RankService:
53
53
  flags: Optional[str] = None,
54
54
  date: Optional[str] = None,
55
55
  topN: Optional[int] = None,
56
- ) -> list[dto.RankDetailWithIncr]:
56
+ ) -> dto.GetRankResult:
57
57
  u = "/ranks/repo/daily" % ()
58
58
 
59
59
  query_params = {
@@ -67,7 +67,7 @@ class RankService:
67
67
  endpoint=u,
68
68
  params=query_params,
69
69
  )
70
- return [dto.RankDetailWithIncr.safe_parse(item) for item in data]
70
+ return dto.GetRankResult.safe_parse(data)
71
71
 
72
72
  # 获取公仓月榜
73
73
  def get_repo_monthly_rank(self,
@@ -75,7 +75,7 @@ class RankService:
75
75
  flags: Optional[str] = None,
76
76
  month: Optional[str] = None,
77
77
  topN: Optional[int] = None,
78
- ) -> list[dto.RankDetailWithIncr]:
78
+ ) -> dto.GetRankResult:
79
79
  u = "/ranks/repo/monthly" % ()
80
80
 
81
81
  query_params = {
@@ -89,7 +89,7 @@ class RankService:
89
89
  endpoint=u,
90
90
  params=query_params,
91
91
  )
92
- return [dto.RankDetailWithIncr.safe_parse(item) for item in data]
92
+ return dto.GetRankResult.safe_parse(data)
93
93
 
94
94
  # 获取公仓周榜
95
95
  def get_repo_weekly_rank(self,
@@ -97,7 +97,7 @@ class RankService:
97
97
  flags: Optional[str] = None,
98
98
  start: Optional[str] = None,
99
99
  topN: Optional[int] = None,
100
- ) -> list[dto.RankDetailWithIncr]:
100
+ ) -> dto.GetRankResult:
101
101
  u = "/ranks/repo/weekly" % ()
102
102
 
103
103
  query_params = {
@@ -111,6 +111,6 @@ class RankService:
111
111
  endpoint=u,
112
112
  params=query_params,
113
113
  )
114
- return [dto.RankDetailWithIncr.safe_parse(item) for item in data]
114
+ return dto.GetRankResult.safe_parse(data)
115
115
 
116
116
 
@@ -181,21 +181,4 @@ class RegistriesService:
181
181
  )
182
182
  return [dto.Package.safe_parse(item) for item in data]
183
183
 
184
- # 改变制品仓库可见性。Update visibility of registry.
185
- def set_registry_visibility(self,
186
- registry: str,
187
- visibility: Optional[str] = None,
188
- ):
189
- u = "/%s/-/settings/set_visibility" % (registry, )
190
-
191
- query_params = {
192
- "visibility": visibility,
193
- }
194
- data = self._client.request(
195
- method="POST",
196
- endpoint=u,
197
- params=query_params,
198
- )
199
- return
200
-
201
184
 
@@ -220,23 +220,6 @@ class RepositoriesService:
220
220
  )
221
221
  return [dto.Repos4UserBase.safe_parse(item) for item in data]
222
222
 
223
- # 改变仓库可见性。Update visibility of repository.
224
- def set_repo_visibility(self,
225
- repo: str,
226
- visibility: Optional[str] = None,
227
- ):
228
- u = "/%s/-/settings/set_visibility" % (repo, )
229
-
230
- query_params = {
231
- "visibility": visibility,
232
- }
233
- data = self._client.request(
234
- method="POST",
235
- endpoint=u,
236
- params=query_params,
237
- )
238
- return
239
-
240
223
  # 转移仓库。Transfer a repository.
241
224
  def transfer_repo(self,
242
225
  repo: str,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-cnb
3
- Version: 1.19.9
3
+ Version: 1.20.13
4
4
  Summary: CNB OpenAPI的Python SDK,方便与CNB平台进行交互
5
5
  Home-page: https://cnb.cool
6
6
  Author: Tencent Cloud
@@ -7,7 +7,7 @@ long_description = (this_directory / "README.md").read_text(encoding="utf-8")
7
7
 
8
8
  setup(
9
9
  name="python-cnb",
10
- version="1.19.9",
10
+ version="1.20.13",
11
11
  author="Tencent Cloud",
12
12
  author_email="ericdduan@tencent.com",
13
13
  description="CNB OpenAPI的Python SDK,方便与CNB平台进行交互",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes