python-cnb 1.18.15__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.18.15/python_cnb.egg-info → python_cnb-1.20.13}/PKG-INFO +1 -1
  2. python_cnb-1.20.13/cnb/ai.py +9 -0
  3. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/cnb.py +2 -0
  4. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/issues.py +184 -0
  5. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/knowledgebase.py +18 -0
  6. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/missions.py +0 -17
  7. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/models/api.py +60 -0
  8. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/models/dto.py +116 -1
  9. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/models/flags.py +1 -0
  10. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/pulls.py +62 -0
  11. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/rank.py +8 -8
  12. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/registries.py +15 -17
  13. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/repositories.py +0 -17
  14. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/search.py +2 -4
  15. {python_cnb-1.18.15 → python_cnb-1.20.13/python_cnb.egg-info}/PKG-INFO +1 -1
  16. {python_cnb-1.18.15 → python_cnb-1.20.13}/python_cnb.egg-info/SOURCES.txt +1 -0
  17. {python_cnb-1.18.15 → python_cnb-1.20.13}/setup.py +1 -1
  18. {python_cnb-1.18.15 → python_cnb-1.20.13}/LICENSE +0 -0
  19. {python_cnb-1.18.15 → python_cnb-1.20.13}/MANIFEST.in +0 -0
  20. {python_cnb-1.18.15 → python_cnb-1.20.13}/README.md +0 -0
  21. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/__init__.py +0 -0
  22. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/activities.py +0 -0
  23. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/ai_ext.py +0 -0
  24. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/assets.py +0 -0
  25. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/badge.py +0 -0
  26. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/build.py +0 -0
  27. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/charge.py +0 -0
  28. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/client.py +0 -0
  29. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/event.py +0 -0
  30. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/exceptions.py +0 -0
  31. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/followers.py +0 -0
  32. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/git.py +0 -0
  33. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/gitsettings.py +0 -0
  34. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/members.py +0 -0
  35. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/models/__init__.py +0 -0
  36. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/models/chart.py +0 -0
  37. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/models/constant.py +0 -0
  38. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/models/convert.py +0 -0
  39. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/models/die.py +0 -0
  40. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/models/git_woa_com_cnb_monorepo_git_internal_app_git_service_bff_api.py +0 -0
  41. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/models/git_woa_com_cnb_monorepo_git_internal_app_vcs_service_bff_api.py +0 -0
  42. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/models/git_woa_com_cnb_monorepo_platform_service_api_internal_models_artifactory_dto.py +0 -0
  43. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/models/member.py +0 -0
  44. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/models/models.py +0 -0
  45. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/models/openapi.py +0 -0
  46. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/models/organization.py +0 -0
  47. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/models/web.py +0 -0
  48. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/organizations.py +0 -0
  49. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/releases.py +0 -0
  50. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/repocodeissue.py +0 -0
  51. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/repocontributor.py +0 -0
  52. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/repolabels.py +0 -0
  53. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/security.py +0 -0
  54. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/starring.py +0 -0
  55. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/users.py +0 -0
  56. {python_cnb-1.18.15 → python_cnb-1.20.13}/cnb/workspace.py +0 -0
  57. {python_cnb-1.18.15 → python_cnb-1.20.13}/pyproject.toml +0 -0
  58. {python_cnb-1.18.15 → python_cnb-1.20.13}/python_cnb.egg-info/dependency_links.txt +0 -0
  59. {python_cnb-1.18.15 → python_cnb-1.20.13}/python_cnb.egg-info/requires.txt +0 -0
  60. {python_cnb-1.18.15 → python_cnb-1.20.13}/python_cnb.egg-info/top_level.txt +0 -0
  61. {python_cnb-1.18.15 → 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.18.15
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
@@ -0,0 +1,9 @@
1
+ # Code generated by cnb.cool/cnb/sdk/cnb-sdk-generator. DO NOT EDIT.
2
+ # source: https://api.cnb-dev.woa.com/swagger.json
3
+
4
+ from typing import Optional
5
+ class AiService:
6
+ def __init__(self, client):
7
+ self._client = client
8
+
9
+
@@ -1,6 +1,7 @@
1
1
  # Code generated by cnb.cool/cnb/sdk/cnb-sdk-generator. DO NOT EDIT.
2
2
  # source: https://api.cnb-dev.woa.com/swagger.json
3
3
  from .activities import ActivitiesService
4
+ from .ai_ext import AiService
4
5
  from .assets import AssetsService
5
6
  from .badge import BadgeService
6
7
  from .build import BuildService
@@ -32,6 +33,7 @@ class CNBServices:
32
33
  def __init__(self, client):
33
34
  self.client = client
34
35
  self.activities = ActivitiesService(client)
36
+ self.ai = AiService(client)
35
37
  self.assets = AssetsService(client)
36
38
  self.badge = BadgeService(client)
37
39
  self.build = BuildService(client)
@@ -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,77 @@ 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
+
312
+ # 查询当前用户相关的 Issues。List issues for the authenticated user across all repositories.
313
+ def list_user_issues(self,
314
+ page: Optional[int] = None,
315
+ page_size: Optional[int] = None,
316
+ filter: Optional[str] = None,
317
+ state: Optional[str] = None,
318
+ priority: Optional[str] = None,
319
+ labels: Optional[str] = None,
320
+ labels_operator: Optional[str] = None,
321
+ updated_time_begin: Optional[str] = None,
322
+ updated_time_end: Optional[str] = None,
323
+ close_time_begin: Optional[str] = None,
324
+ close_time_end: Optional[str] = None,
325
+ order_by: Optional[str] = None,
326
+ ) -> list[api.UserIssue]:
327
+ u = "/user/issues" % ()
328
+
329
+ query_params = {
330
+ "page": page,
331
+ "page_size": page_size,
332
+ "filter": filter,
333
+ "state": state,
334
+ "priority": priority,
335
+ "labels": labels,
336
+ "labels_operator": labels_operator,
337
+ "updated_time_begin": updated_time_begin,
338
+ "updated_time_end": updated_time_end,
339
+ "close_time_begin": close_time_begin,
340
+ "close_time_end": close_time_end,
341
+ "order_by": order_by,
342
+ }
343
+ data = self._client.request(
344
+ method="GET",
345
+ endpoint=u,
346
+ params=query_params,
347
+ )
348
+ return [api.UserIssue.safe_parse(item) for item in data]
349
+
240
350
  # 更新 issue 中的处理人。 Updates the assignees of an issue.
241
351
  def patch_issue_assignees(self,
242
352
  repo: str,
@@ -268,6 +378,20 @@ class IssuesService:
268
378
  )
269
379
  return api.IssueComment.safe_parse(data)
270
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
+
271
395
  # 添加处理人到指定的 issue。 Adds up to assignees to a issue, Users already assigned to an issue are not replaced.
272
396
  def post_issue_assignees(self,
273
397
  repo: str,
@@ -298,6 +422,66 @@ class IssuesService:
298
422
  )
299
423
  return api.IssueComment.safe_parse(data)
300
424
 
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.
426
+ def post_issue_comment_file_asset_upload_url(self,
427
+ repo: str,
428
+ number: str,
429
+ body_params: api.PostIssueAssetUploadURLForm,
430
+ ) -> api.IssueAssetUploadURL:
431
+ u = "/%s/-/issues/%s/comment-file-asset-upload-url" % (repo, number, )
432
+
433
+ data = self._client.request(
434
+ method="POST",
435
+ endpoint=u,
436
+ json=body_params.to_dict(),
437
+ )
438
+ return api.IssueAssetUploadURL.safe_parse(data)
439
+
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.
441
+ def post_issue_comment_image_asset_upload_url(self,
442
+ repo: str,
443
+ number: str,
444
+ body_params: api.PostIssueAssetUploadURLForm,
445
+ ) -> api.IssueAssetUploadURL:
446
+ u = "/%s/-/issues/%s/comment-image-asset-upload-url" % (repo, number, )
447
+
448
+ data = self._client.request(
449
+ method="POST",
450
+ endpoint=u,
451
+ json=body_params.to_dict(),
452
+ )
453
+ return api.IssueAssetUploadURL.safe_parse(data)
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
+
301
485
  # 新增 issue 标签。Add labels to an issue.
302
486
  def post_issue_labels(self,
303
487
  repo: str,
@@ -57,4 +57,22 @@ class KnowledgebaseService:
57
57
  )
58
58
  return [dto.QueryKnowledgeBaseRes.safe_parse(item) for item in data]
59
59
 
60
+ # 全局语义搜索 NPC 角色
61
+ def search_npc(self,
62
+ key: Optional[str] = None,
63
+ top_n: Optional[int] = None,
64
+ ) -> list[dto.SearchNpcRes]:
65
+ u = "/search/npc" % ()
66
+
67
+ query_params = {
68
+ "key": key,
69
+ "top_n": top_n,
70
+ }
71
+ data = self._client.request(
72
+ method="GET",
73
+ endpoint=u,
74
+ params=query_params,
75
+ )
76
+ return [dto.SearchNpcRes.safe_parse(item) for item in data]
77
+
60
78
 
@@ -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)
@@ -36,6 +41,7 @@ class BranchProtection(CNBBaseModel):
36
41
  allow_master_manual_merge: Optional[bool] = Field(alias="allow_master_manual_merge", default=None)
37
42
  allow_master_pushes: Optional[bool] = Field(alias="allow_master_pushes", default=None)
38
43
  allow_pushes: Optional[bool] = Field(alias="allow_pushes", default=None)
44
+ forbid_approve_pull_created_by_own_npc: Optional[bool] = Field(alias="forbid_approve_pull_created_by_own_npc", default=None)
39
45
  id: Optional[str] = Field(alias="id", default=None)
40
46
  required_approved_review_count: Optional[int] = Field(alias="required_approved_review_count", default=None)
41
47
  required_approved_review_ratio: Optional[int] = Field(alias="required_approved_review_ratio", default=None)
@@ -177,6 +183,9 @@ class DeleteIssueAssigneesForm(CNBBaseModel):
177
183
  class DeletePullAssigneesForm(CNBBaseModel):
178
184
  assignees: Optional[list[str]] = Field(alias="assignees", default=None)
179
185
  pass
186
+ class DeletePullReviewersForm(CNBBaseModel):
187
+ reviewers: Optional[list[str]] = Field(alias="reviewers", default=None)
188
+ pass
180
189
  class DiffLine(CNBBaseModel):
181
190
  content: Optional[str] = Field(alias="content", default=None)
182
191
  left_line_number: Optional[int] = Field(alias="left_line_number", default=None)
@@ -231,6 +240,12 @@ class IssueActivity(CNBBaseModel):
231
240
  submitted_at: Optional[str] = Field(alias="submitted_at", default=None)
232
241
  type: Optional[str] = Field(alias="type", default=None)
233
242
  pass
243
+ class IssueAssetUploadURL(CNBBaseModel):
244
+ asset_link: Optional[str] = Field(alias="asset_link", default=None)
245
+ name: Optional[str] = Field(alias="name", default=None)
246
+ path: Optional[str] = Field(alias="path", default=None)
247
+ upload_url: Optional[str] = Field(alias="upload_url", default=None)
248
+ pass
234
249
  class IssueComment(CNBBaseModel):
235
250
  author: Optional['UserInfo'] = Field(alias="author", default=None)
236
251
  body: Optional[str] = Field(alias="body", default=None)
@@ -251,12 +266,19 @@ class IssueDetail(CNBBaseModel):
251
266
  last_acted_at: Optional[str] = Field(alias="last_acted_at", default=None)
252
267
  number: Optional[str] = Field(alias="number", default=None)
253
268
  priority: Optional[str] = Field(alias="priority", default=None)
269
+ properties: Optional[list['IssueProperty']] = Field(alias="properties", default=None)
254
270
  started_at: Optional[str] = Field(alias="started_at", default=None)
255
271
  state: Optional[str] = Field(alias="state", default=None)
256
272
  state_reason: Optional[str] = Field(alias="state_reason", default=None)
257
273
  title: Optional[str] = Field(alias="title", default=None)
258
274
  updated_at: Optional[str] = Field(alias="updated_at", default=None)
259
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
260
282
  class IssuePropertyUpdateResult(CNBBaseModel):
261
283
  failed_count: Optional[int] = Field(alias="failed_count", default=None)
262
284
  failed_keys: Optional[list[str]] = Field(alias="failed_keys", default=None)
@@ -321,12 +343,22 @@ class PatchPullRequest(CNBBaseModel):
321
343
  pass
322
344
  class PipelineSettings(CNBBaseModel):
323
345
  auto_trigger: Optional[bool] = Field(alias="auto_trigger", default=None)
346
+ cron_auto_trigger: Optional[bool] = Field(alias="cron_auto_trigger", default=None)
324
347
  forked_repo_auto_trigger: Optional[bool] = Field(alias="forked_repo_auto_trigger", default=None)
325
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
326
353
  class PostBlobForm(CNBBaseModel):
327
354
  content: Optional[str] = Field(alias="content", default=None)
328
355
  encoding: Optional[str] = Field(alias="encoding", default=None)
329
356
  pass
357
+ class PostIssueAssetUploadURLForm(CNBBaseModel):
358
+ content_type: Optional[str] = Field(alias="content_type", default=None)
359
+ name: Optional[str] = Field(alias="name", default=None)
360
+ size: Optional[int] = Field(alias="size", default=None)
361
+ pass
330
362
  class PostIssueAssigneesForm(CNBBaseModel):
331
363
  assignees: Optional[list[str]] = Field(alias="assignees", default=None)
332
364
  pass
@@ -343,6 +375,7 @@ class PostIssueForm(CNBBaseModel):
343
375
  priority: Optional[str] = Field(alias="priority", default=None)
344
376
  start_date: Optional[str] = Field(alias="start_date", default=None)
345
377
  title: Optional[str] = Field(alias="title", default=None)
378
+ work_mode: Optional[bool] = Field(alias="work_mode", default=None)
346
379
  pass
347
380
  class PostIssueLabelsForm(CNBBaseModel):
348
381
  labels: Optional[list[str]] = Field(alias="labels", default=None)
@@ -362,6 +395,9 @@ class PostPullRequestReviewReplyForm(CNBBaseModel):
362
395
  body: Optional[str] = Field(alias="body", default=None)
363
396
  reply_to_comment_id: Optional[str] = Field(alias="reply_to_comment_id", default=None)
364
397
  pass
398
+ class PostPullReviewersForm(CNBBaseModel):
399
+ reviewers: Optional[list[str]] = Field(alias="reviewers", default=None)
400
+ pass
365
401
  class PostTagFrom(CNBBaseModel):
366
402
  message: Optional[str] = Field(alias="message", default=None)
367
403
  name: Optional[str] = Field(alias="name", default=None)
@@ -576,6 +612,12 @@ class RepoInfo(CNBBaseModel):
576
612
  path: Optional[str] = Field(alias="path", default=None)
577
613
  web_url: Optional[str] = Field(alias="web_url", default=None)
578
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
579
621
  class Signature(CNBBaseModel):
580
622
  date: Optional[str] = Field(alias="date", default=None)
581
623
  email: Optional[str] = Field(alias="email", default=None)
@@ -609,6 +651,24 @@ class UserInfo(CNBBaseModel):
609
651
  nickname: Optional[str] = Field(alias="nickname", default=None)
610
652
  username: Optional[str] = Field(alias="username", default=None)
611
653
  pass
654
+ class UserIssue(CNBBaseModel):
655
+ assignees: Optional[list['UserInfo']] = Field(alias="assignees", default=None)
656
+ author: Optional['UserInfo'] = Field(alias="author", default=None)
657
+ comment_count: Optional[int] = Field(alias="comment_count", default=None)
658
+ created_at: Optional[str] = Field(alias="created_at", default=None)
659
+ ended_at: Optional[str] = Field(alias="ended_at", default=None)
660
+ invisible: Optional[bool] = Field(alias="invisible", default=None)
661
+ labels: Optional[list['Label']] = Field(alias="labels", default=None)
662
+ last_acted_at: Optional[str] = Field(alias="last_acted_at", default=None)
663
+ number: Optional[str] = Field(alias="number", default=None)
664
+ priority: Optional[str] = Field(alias="priority", default=None)
665
+ repo: Optional['RepoInfo'] = Field(alias="repo", default=None)
666
+ started_at: Optional[str] = Field(alias="started_at", default=None)
667
+ state: Optional[str] = Field(alias="state", default=None)
668
+ state_reason: Optional[str] = Field(alias="state_reason", default=None)
669
+ title: Optional[str] = Field(alias="title", default=None)
670
+ updated_at: Optional[str] = Field(alias="updated_at", default=None)
671
+ pass
612
672
  class Week(CNBBaseModel):
613
673
  a: Optional[int] = Field(alias="a", default=None)
614
674
  c: Optional[int] = Field(alias="c", 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)
@@ -230,6 +240,16 @@ class CommonRegistryPackageDetail(CNBBaseModel):
230
240
  tag_total: Optional[int] = Field(alias="tag_total", default=None)
231
241
  tags: Optional[list['CommonRegistryTag']] = Field(alias="tags", default=None)
232
242
  pass
243
+ class CommonRegistryProvenance(CNBBaseModel):
244
+ digest: Optional[str] = Field(alias="digest", default=None)
245
+ git_address: Optional[str] = Field(alias="git_address", default=None)
246
+ git_commit: Optional[str] = Field(alias="git_commit", default=None)
247
+ last_pusher: Optional['LastPusher'] = Field(alias="last_pusher", default=None)
248
+ package: Optional[str] = Field(alias="package", default=None)
249
+ registry_address: Optional[str] = Field(alias="registry_address", default=None)
250
+ sn: Optional[str] = Field(alias="sn", default=None)
251
+ tag: Optional[str] = Field(alias="tag", default=None)
252
+ pass
233
253
  class CommonRegistryTag(CNBBaseModel):
234
254
  desc: Optional[str] = Field(alias="desc", default=None)
235
255
  digest: Optional[str] = Field(alias="digest", default=None)
@@ -280,6 +300,21 @@ class ConanPackage(CNBBaseModel):
280
300
  package_revision: Optional[str] = Field(alias="package_revision", default=None)
281
301
  requires: Optional[list[str]] = Field(alias="requires", default=None)
282
302
  pass
303
+ class ConanProvenance(CNBBaseModel):
304
+ last_pusher: Optional['LastPusher'] = Field(alias="last_pusher", default=None)
305
+ package: Optional[str] = Field(alias="package", default=None)
306
+ registry_address: Optional[str] = Field(alias="registry_address", default=None)
307
+ sources: Optional[list['ConanProvenanceSource']] = Field(alias="sources", default=None)
308
+ tag: Optional[str] = Field(alias="tag", default=None)
309
+ pass
310
+ class ConanProvenanceSource(CNBBaseModel):
311
+ digest: Optional[str] = Field(alias="digest", default=None)
312
+ git_address: Optional[str] = Field(alias="git_address", default=None)
313
+ git_commit: Optional[str] = Field(alias="git_commit", default=None)
314
+ package_id: Optional[str] = Field(alias="package_id", default=None)
315
+ package_revision: Optional[str] = Field(alias="package_revision", default=None)
316
+ sn: Optional[str] = Field(alias="sn", default=None)
317
+ pass
283
318
  class ConanRegistryTagDetail(CNBBaseModel):
284
319
  address: Optional[str] = Field(alias="address", default=None)
285
320
  dependencies: Optional[list['Dependency']] = Field(alias="dependencies", default=None)
@@ -323,6 +358,17 @@ class ContainerPackageDetail(CNBBaseModel):
323
358
  tag_total: Optional[int] = Field(alias="tag_total", default=None)
324
359
  tags: Optional[list['ContainerTag']] = Field(alias="tags", default=None)
325
360
  pass
361
+ class ContainerProvenance(CNBBaseModel):
362
+ digest: Optional[str] = Field(alias="digest", default=None)
363
+ git_address: Optional[str] = Field(alias="git_address", default=None)
364
+ git_commit: Optional[str] = Field(alias="git_commit", default=None)
365
+ images: Optional[list['ContainerImage']] = Field(alias="images", default=None)
366
+ last_pusher: Optional['LastPusher'] = Field(alias="last_pusher", default=None)
367
+ package: Optional[str] = Field(alias="package", default=None)
368
+ registry_address: Optional[str] = Field(alias="registry_address", default=None)
369
+ sn: Optional[str] = Field(alias="sn", default=None)
370
+ tag: Optional[str] = Field(alias="tag", default=None)
371
+ pass
326
372
  class ContainerTag(CNBBaseModel):
327
373
  address: Optional[str] = Field(alias="address", default=None)
328
374
  annotations: Optional['ContainerAnnotation'] = Field(alias="annotations", default=None)
@@ -365,7 +411,6 @@ class CreateMissionReq(CNBBaseModel):
365
411
  pass
366
412
  class CreateRepoReq(CNBBaseModel):
367
413
  description: Optional[str] = Field(alias="description", default=None)
368
- license: Optional[str] = Field(alias="license", default=None)
369
414
  name: Optional[str] = Field(alias="name", default=None)
370
415
  visibility: Optional[str] = Field(alias="visibility", default=None)
371
416
  pass
@@ -397,6 +442,16 @@ class DockerModelPackageDetail(CNBBaseModel):
397
442
  tag_total: Optional[int] = Field(alias="tag_total", default=None)
398
443
  tags: Optional[list['DockerModelTag']] = Field(alias="tags", default=None)
399
444
  pass
445
+ class DockerModelProvenance(CNBBaseModel):
446
+ digest: Optional[str] = Field(alias="digest", default=None)
447
+ git_address: Optional[str] = Field(alias="git_address", default=None)
448
+ git_commit: Optional[str] = Field(alias="git_commit", default=None)
449
+ last_pusher: Optional['LastPusher'] = Field(alias="last_pusher", default=None)
450
+ package: Optional[str] = Field(alias="package", default=None)
451
+ registry_address: Optional[str] = Field(alias="registry_address", default=None)
452
+ sn: Optional[str] = Field(alias="sn", default=None)
453
+ tag: Optional[str] = Field(alias="tag", default=None)
454
+ pass
400
455
  class DockerModelTag(CNBBaseModel):
401
456
  address: Optional[str] = Field(alias="address", default=None)
402
457
  config: Optional['DockerModelConfig'] = Field(alias="config", default=None)
@@ -461,6 +516,10 @@ class GetBadgeResult(CNBBaseModel):
461
516
  links: Optional[list[str]] = Field(alias="links", default=None)
462
517
  message: Optional[str] = Field(alias="message", default=None)
463
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
464
523
  class GroupSettingReq(CNBBaseModel):
465
524
  email_verification: Optional[list[str]] = Field(alias="email_verification", default=None)
466
525
  group_protection: Optional[int] = Field(alias="group_protection", default=None)
@@ -469,6 +528,16 @@ class GroupSettingReq(CNBBaseModel):
469
528
  show_private_repo_watermark: Optional[int] = Field(alias="show_private_repo_watermark", default=None)
470
529
  values: Optional[str] = Field(alias="values", default=None)
471
530
  pass
531
+ class HelmProvenance(CNBBaseModel):
532
+ digest: Optional[str] = Field(alias="digest", default=None)
533
+ git_address: Optional[str] = Field(alias="git_address", default=None)
534
+ git_commit: Optional[str] = Field(alias="git_commit", default=None)
535
+ last_pusher: Optional['LastPusher'] = Field(alias="last_pusher", default=None)
536
+ package: Optional[str] = Field(alias="package", default=None)
537
+ registry_address: Optional[str] = Field(alias="registry_address", default=None)
538
+ sn: Optional[str] = Field(alias="sn", default=None)
539
+ tag: Optional[str] = Field(alias="tag", default=None)
540
+ pass
472
541
  class InheritMembersUser(CNBBaseModel):
473
542
  access_level: Optional['constant.AccessRole'] = Field(alias="access_level", default=None)
474
543
  avatar: Optional[str] = Field(alias="avatar", default=None)
@@ -544,6 +613,7 @@ class LogInfo(CNBBaseModel):
544
613
  pipelineFailCount: Optional[int] = Field(alias="pipelineFailCount", default=None)
545
614
  pipelineSuccessCount: Optional[int] = Field(alias="pipelineSuccessCount", default=None)
546
615
  pipelineTotalCount: Optional[int] = Field(alias="pipelineTotalCount", default=None)
616
+ pipelines: Optional[list['BuildPipelineInfo']] = Field(alias="pipelines", default=None)
547
617
  sha: Optional[str] = Field(alias="sha", default=None)
548
618
  slug: Optional[str] = Field(alias="slug", default=None)
549
619
  sn: Optional[str] = Field(alias="sn", default=None)
@@ -744,6 +814,7 @@ class OutsideCollaboratorInRepo(CNBBaseModel):
744
814
  email: Optional[str] = Field(alias="email", default=None)
745
815
  freeze: Optional[bool] = Field(alias="freeze", default=None)
746
816
  id: Optional[str] = Field(alias="id", default=None)
817
+ inviter: Optional['Users'] = Field(alias="inviter", default=None)
747
818
  join_time: Optional[str] = Field(alias="join_time", default=None)
748
819
  locked: Optional[bool] = Field(alias="locked", default=None)
749
820
  nickname: Optional[str] = Field(alias="nickname", default=None)
@@ -814,6 +885,20 @@ class ProcessingConfig(CNBBaseModel):
814
885
  chunk_size: Optional[int] = Field(alias="chunk_size", default=None)
815
886
  text_separator: Optional[str] = Field(alias="text_separator", default=None)
816
887
  pass
888
+ class Provenance(CNBBaseModel):
889
+ cargo: Optional['CommonRegistryProvenance'] = Field(alias="cargo", default=None)
890
+ composer: Optional['CommonRegistryProvenance'] = Field(alias="composer", default=None)
891
+ conan: Optional['ConanProvenance'] = Field(alias="conan", default=None)
892
+ docker: Optional['ContainerProvenance'] = Field(alias="docker", default=None)
893
+ dockermodel: Optional['DockerModelProvenance'] = Field(alias="dockermodel", default=None)
894
+ generic: Optional['CommonRegistryProvenance'] = Field(alias="generic", default=None)
895
+ helm: Optional['HelmProvenance'] = Field(alias="helm", default=None)
896
+ maven: Optional['CommonRegistryProvenance'] = Field(alias="maven", default=None)
897
+ npm: Optional['CommonRegistryProvenance'] = Field(alias="npm", default=None)
898
+ nuget: Optional['CommonRegistryProvenance'] = Field(alias="nuget", default=None)
899
+ ohpm: Optional['CommonRegistryProvenance'] = Field(alias="ohpm", default=None)
900
+ pypi: Optional['PypiProvenance'] = Field(alias="pypi", default=None)
901
+ pass
817
902
  class PyPIMetaData(CNBBaseModel):
818
903
  author: Optional[str] = Field(alias="author", default=None)
819
904
  home_page: Optional[str] = Field(alias="home_page", default=None)
@@ -841,6 +926,20 @@ class PyPIRegistryTagDetail(CNBBaseModel):
841
926
  status: Optional[str] = Field(alias="status", default=None)
842
927
  tag: Optional[str] = Field(alias="tag", default=None)
843
928
  pass
929
+ class PypiProvenance(CNBBaseModel):
930
+ last_pusher: Optional['LastPusher'] = Field(alias="last_pusher", default=None)
931
+ package: Optional[str] = Field(alias="package", default=None)
932
+ registry_address: Optional[str] = Field(alias="registry_address", default=None)
933
+ sources: Optional[list['PypiProvenanceSource']] = Field(alias="sources", default=None)
934
+ tag: Optional[str] = Field(alias="tag", default=None)
935
+ pass
936
+ class PypiProvenanceSource(CNBBaseModel):
937
+ digest: Optional[str] = Field(alias="digest", default=None)
938
+ file_name: Optional[str] = Field(alias="file_name", default=None)
939
+ git_address: Optional[str] = Field(alias="git_address", default=None)
940
+ git_commit: Optional[str] = Field(alias="git_commit", default=None)
941
+ sn: Optional[str] = Field(alias="sn", default=None)
942
+ pass
844
943
  class QueryKnowledgeBaseReq(CNBBaseModel):
845
944
  metadata_filtering_conditions: Optional['MetadataFilteringConditions'] = Field(alias="metadata_filtering_conditions", default=None)
846
945
  query: Optional[str] = Field(alias="query", default=None)
@@ -929,6 +1028,7 @@ class RepoPatch(CNBBaseModel):
929
1028
  class RepoSecurityOverview(CNBBaseModel):
930
1029
  code_issue: Optional['CodeIssueSummary'] = Field(alias="code_issue", default=None)
931
1030
  code_license: Optional['CodeLicenseOverview'] = Field(alias="code_license", default=None)
1031
+ code_sbom: Optional['CodeSbomOverview'] = Field(alias="code_sbom", default=None)
932
1032
  code_sensitive: Optional['CodeSensitiveSummary'] = Field(alias="code_sensitive", default=None)
933
1033
  code_vulnerability: Optional['CodeVulOverview'] = Field(alias="code_vulnerability", default=None)
934
1034
  risk_cnt: Optional['RepoSecurityRiskCnt'] = Field(alias="risk_cnt", default=None)
@@ -938,6 +1038,7 @@ class RepoSecurityRiskCnt(CNBBaseModel):
938
1038
  code_issue_risk_cnt: Optional[int] = Field(alias="code_issue_risk_cnt", default=None)
939
1039
  code_license_enable: Optional[bool] = Field(alias="code_license_enable", default=None)
940
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)
941
1042
  code_sensitive_enable: Optional[bool] = Field(alias="code_sensitive_enable", default=None)
942
1043
  code_sensitive_risk_cnt: Optional[int] = Field(alias="code_sensitive_risk_cnt", default=None)
943
1044
  code_vulnerability_enable: Optional[bool] = Field(alias="code_vulnerability_enable", default=None)
@@ -1021,6 +1122,16 @@ class Repos4UserBase(CNBBaseModel):
1021
1122
  visibility_level: Optional['constant.Visibility'] = Field(alias="visibility_level", default=None)
1022
1123
  web_url: Optional[str] = Field(alias="web_url", default=None)
1023
1124
  pass
1125
+ class SearchNpcRes(CNBBaseModel):
1126
+ avatar: Optional[str] = Field(alias="avatar", default=None)
1127
+ built_count: Optional[int] = Field(alias="built_count", default=None)
1128
+ name: Optional[str] = Field(alias="name", 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)
1131
+ score: Optional[float] = Field(alias="score", default=None)
1132
+ slogan: Optional[str] = Field(alias="slogan", default=None)
1133
+ slug: Optional[str] = Field(alias="slug", default=None)
1134
+ pass
1024
1135
  class Slugs(CNBBaseModel):
1025
1136
  created_at: Optional[str] = Field(alias="created_at", default=None)
1026
1137
  freeze: Optional[bool] = Field(alias="freeze", default=None)
@@ -1044,6 +1155,9 @@ class SpecialAmount(CNBBaseModel):
1044
1155
  compute_develop_gpu_corehour: Optional[int] = Field(alias="compute_develop_gpu_corehour", default=None)
1045
1156
  compute_develop_gpu_desc: Optional[str] = Field(alias="compute_develop_gpu_desc", default=None)
1046
1157
  compute_develop_gpu_expire: Optional[str] = Field(alias="compute_develop_gpu_expire", default=None)
1158
+ credit: Optional[int] = Field(alias="credit", default=None)
1159
+ credit_desc: Optional[str] = Field(alias="credit_desc", default=None)
1160
+ credit_expire: Optional[str] = Field(alias="credit_expire", default=None)
1047
1161
  storage_git_desc: Optional[str] = Field(alias="storage_git_desc", default=None)
1048
1162
  storage_git_expire: Optional[str] = Field(alias="storage_git_expire", default=None)
1049
1163
  storage_git_gib: Optional[int] = Field(alias="storage_git_gib", default=None)
@@ -1202,6 +1316,7 @@ class UsersResult(CNBBaseModel):
1202
1316
  gender: Optional[int] = Field(alias="gender", default=None)
1203
1317
  group_count: Optional[int] = Field(alias="group_count", default=None)
1204
1318
  id: Optional[str] = Field(alias="id", default=None)
1319
+ identity_providers: Optional[Dict[str, 'object']] = Field(alias="identity_providers", default=None)
1205
1320
  is_following: Optional[bool] = Field(alias="is_following", default=None)
1206
1321
  location: Optional[str] = Field(alias="location", default=None)
1207
1322
  locked: Optional[bool] = Field(alias="locked", default=None)
@@ -11,3 +11,4 @@ class Repo(Enum):
11
11
  KnowledgeBase = "KnowledgeBase"
12
12
  NPC = "NPC"
13
13
  Skills = "Skills"
14
+ Wiki = "Wiki"
@@ -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,
@@ -271,6 +312,9 @@ class PullsService:
271
312
  labels: Optional[str] = None,
272
313
  labels_operator: Optional[str] = None,
273
314
  base_ref: Optional[str] = None,
315
+ updated_time_begin: Optional[str] = None,
316
+ updated_time_end: Optional[str] = None,
317
+ order_by: Optional[str] = None,
274
318
  ) -> list[api.PullRequest]:
275
319
  u = "/%s/-/pulls" % (repo, )
276
320
 
@@ -286,6 +330,9 @@ class PullsService:
286
330
  "labels": labels,
287
331
  "labels_operator": labels_operator,
288
332
  "base_ref": base_ref,
333
+ "updated_time_begin": updated_time_begin,
334
+ "updated_time_end": updated_time_end,
335
+ "order_by": order_by,
289
336
  }
290
337
  data = self._client.request(
291
338
  method="GET",
@@ -447,6 +494,21 @@ class PullsService:
447
494
  )
448
495
  return
449
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
+
450
512
  # 设置合并请求标签。Set the new labels for a pull.
451
513
  def put_pull_labels(self,
452
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
 
@@ -116,6 +116,21 @@ class RegistriesService:
116
116
  )
117
117
  return dto.TagDetail.safe_parse(data)
118
118
 
119
+ # 获取制品标签的出生证明。 Get the specific tag provenance under specific package.
120
+ def get_package_tag_provenance(self,
121
+ slug: str,
122
+ t: str,
123
+ name: str,
124
+ tag: str,
125
+ ) -> dto.Provenance:
126
+ u = "/%s/-/packages/%s/%s/-/tag/%s/provenance" % (slug, t, name, tag, )
127
+
128
+ data = self._client.request(
129
+ method="GET",
130
+ endpoint=u,
131
+ )
132
+ return dto.Provenance.safe_parse(data)
133
+
119
134
  # 查询制品标签列表。 List all tags under specific package.
120
135
  def list_package_tags(self,
121
136
  slug: str,
@@ -166,21 +181,4 @@ class RegistriesService:
166
181
  )
167
182
  return [dto.Package.safe_parse(item) for item in data]
168
183
 
169
- # 改变制品仓库可见性。Update visibility of registry.
170
- def set_registry_visibility(self,
171
- registry: str,
172
- visibility: Optional[str] = None,
173
- ):
174
- u = "/%s/-/settings/set_visibility" % (registry, )
175
-
176
- query_params = {
177
- "visibility": visibility,
178
- }
179
- data = self._client.request(
180
- method="POST",
181
- endpoint=u,
182
- params=query_params,
183
- )
184
- return
185
-
186
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,
@@ -14,8 +14,7 @@ class SearchService:
14
14
  flags_match: Optional[str] = None,
15
15
  order_by: Optional[str] = None,
16
16
  desc: Optional[bool] = None,
17
- page: Optional[int] = None,
18
- page_size: Optional[int] = None,
17
+ topN: Optional[int] = None,
19
18
  ) -> list[dto.Repos4UserBase]:
20
19
  u = "/search/public-repos" % ()
21
20
 
@@ -25,8 +24,7 @@ class SearchService:
25
24
  "flags_match": flags_match,
26
25
  "order_by": order_by,
27
26
  "desc": desc,
28
- "page": page,
29
- "page_size": page_size,
27
+ "topN": topN,
30
28
  }
31
29
  data = self._client.request(
32
30
  method="GET",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-cnb
3
- Version: 1.18.15
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
@@ -5,6 +5,7 @@ pyproject.toml
5
5
  setup.py
6
6
  cnb/__init__.py
7
7
  cnb/activities.py
8
+ cnb/ai.py
8
9
  cnb/ai_ext.py
9
10
  cnb/assets.py
10
11
  cnb/badge.py
@@ -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.18.15",
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