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.
- {python_cnb-1.19.9/python_cnb.egg-info → python_cnb-1.20.13}/PKG-INFO +1 -1
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/issues.py +118 -2
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/knowledgebase.py +1 -1
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/missions.py +0 -17
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/api.py +30 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/dto.py +23 -2
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/pulls.py +56 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/rank.py +8 -8
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/registries.py +0 -17
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/repositories.py +0 -17
- {python_cnb-1.19.9 → python_cnb-1.20.13/python_cnb.egg-info}/PKG-INFO +1 -1
- {python_cnb-1.19.9 → python_cnb-1.20.13}/setup.py +1 -1
- {python_cnb-1.19.9 → python_cnb-1.20.13}/LICENSE +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/MANIFEST.in +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/README.md +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/__init__.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/activities.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/ai.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/ai_ext.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/assets.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/badge.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/build.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/charge.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/client.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/cnb.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/event.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/exceptions.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/followers.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/git.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/gitsettings.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/members.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/__init__.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/chart.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/constant.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/convert.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/die.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/flags.py +0 -0
- {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
- {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
- {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
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/member.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/models.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/openapi.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/organization.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/models/web.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/organizations.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/releases.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/repocodeissue.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/repocontributor.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/repolabels.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/search.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/security.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/starring.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/users.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/cnb/workspace.py +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/pyproject.toml +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/python_cnb.egg-info/SOURCES.txt +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/python_cnb.egg-info/dependency_links.txt +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/python_cnb.egg-info/requires.txt +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/python_cnb.egg-info/top_level.txt +0 -0
- {python_cnb-1.19.9 → python_cnb-1.20.13}/setup.cfg +0 -0
|
@@ -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
|
|
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
|
|
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,
|
|
@@ -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
|
-
|
|
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
|
-
) ->
|
|
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
|
|
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
|
-
) ->
|
|
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
|
|
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
|
-
) ->
|
|
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
|
|
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
|
-
) ->
|
|
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
|
|
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,
|
|
@@ -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.
|
|
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
|
|
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
|
|
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
|