gitcode-api 1.3.0__py3-none-any.whl → 1.3.2__py3-none-any.whl
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.
- gitcode_api/llm/mcp.py +1 -1
- gitcode_api/resources/account/users_resource_group.py +65 -9
- gitcode_api/resources/collaboration/issues_resource_group.py +343 -25
- gitcode_api/resources/collaboration/milestones_resource_group.py +64 -6
- gitcode_api/resources/collaboration/pulls_resource_group.py +271 -29
- gitcode_api/resources/repositories/repos_resource_group.py +30 -6
- gitcode_api/version.txt +1 -1
- {gitcode_api-1.3.0.dist-info → gitcode_api-1.3.2.dist-info}/METADATA +15 -18
- {gitcode_api-1.3.0.dist-info → gitcode_api-1.3.2.dist-info}/RECORD +13 -13
- {gitcode_api-1.3.0.dist-info → gitcode_api-1.3.2.dist-info}/WHEEL +0 -0
- {gitcode_api-1.3.0.dist-info → gitcode_api-1.3.2.dist-info}/entry_points.txt +0 -0
- {gitcode_api-1.3.0.dist-info → gitcode_api-1.3.2.dist-info}/licenses/LICENSE +0 -0
- {gitcode_api-1.3.0.dist-info → gitcode_api-1.3.2.dist-info}/top_level.txt +0 -0
gitcode_api/llm/mcp.py
CHANGED
|
@@ -136,7 +136,7 @@ def create_mcp_server(name: str = "GitCode API", tool: Optional[GitCodeLLMTool]
|
|
|
136
136
|
:param name: MCP server display name.
|
|
137
137
|
:param tool: Optional preconfigured :class:`~gitcode_api.llm._tool.GitCodeLLMTool`.
|
|
138
138
|
:param kwargs: Forwarded to :class:`GitCodeMCP` and then to ``fastmcp.FastMCP`` (for example
|
|
139
|
-
``instructions
|
|
139
|
+
``instructions`` to override the default server instructions).
|
|
140
140
|
:returns: Configured ``FastMCP`` instance with ``gitcode_api_tool`` registered.
|
|
141
141
|
"""
|
|
142
142
|
return GitCodeMCP(name=name, tool=tool, **kwargs).mcp
|
|
@@ -56,14 +56,26 @@ class AbstractUsersResource(ABC):
|
|
|
56
56
|
"""
|
|
57
57
|
|
|
58
58
|
@abstractmethod
|
|
59
|
-
def list_repos(
|
|
59
|
+
def list_repos(
|
|
60
|
+
self,
|
|
61
|
+
*,
|
|
62
|
+
username: str,
|
|
63
|
+
type: Optional[str] = None,
|
|
64
|
+
sort: Optional[str] = None,
|
|
65
|
+
direction: Optional[str] = None,
|
|
66
|
+
page: Optional[int] = None,
|
|
67
|
+
per_page: Optional[int] = None,
|
|
68
|
+
**kwargs,
|
|
69
|
+
) -> List[Repository]:
|
|
60
70
|
"""List public repositories owned by a user.
|
|
61
71
|
|
|
62
|
-
Supported filters follow the user repository API documentation, such as
|
|
63
|
-
``type``, ``sort``, ``direction``, ``page``, and ``per_page``.
|
|
64
|
-
|
|
65
72
|
:param username: GitCode username or login.
|
|
66
|
-
:param
|
|
73
|
+
:param type: Ownership filter: ``owner``, ``personal``, ``member``, or ``all``. Default: ``all``.
|
|
74
|
+
:param sort: Sort field: ``created``, ``updated``, ``pushed``, or ``full_name``. Default: ``full_name``.
|
|
75
|
+
:param direction: ``asc`` or ``desc``.
|
|
76
|
+
:param page: Page number.
|
|
77
|
+
:param per_page: Page size.
|
|
78
|
+
:param kwargs: Additional arguments forwarded directly in request.
|
|
67
79
|
:returns: Matching repositories.
|
|
68
80
|
"""
|
|
69
81
|
|
|
@@ -149,8 +161,30 @@ class UsersResource(SyncResource, AbstractUsersResource):
|
|
|
149
161
|
params={"year": year, "next": next},
|
|
150
162
|
)
|
|
151
163
|
|
|
152
|
-
def list_repos(
|
|
153
|
-
|
|
164
|
+
def list_repos(
|
|
165
|
+
self,
|
|
166
|
+
*,
|
|
167
|
+
username: str,
|
|
168
|
+
type: Optional[str] = None,
|
|
169
|
+
sort: Optional[str] = None,
|
|
170
|
+
direction: Optional[str] = None,
|
|
171
|
+
page: Optional[int] = None,
|
|
172
|
+
per_page: Optional[int] = None,
|
|
173
|
+
**kwargs,
|
|
174
|
+
) -> List[Repository]:
|
|
175
|
+
return self._models(
|
|
176
|
+
"GET",
|
|
177
|
+
self._client._path("users", username, "repos"),
|
|
178
|
+
Repository,
|
|
179
|
+
params={
|
|
180
|
+
"type": type,
|
|
181
|
+
"sort": sort,
|
|
182
|
+
"direction": direction,
|
|
183
|
+
"page": page,
|
|
184
|
+
"per_page": per_page,
|
|
185
|
+
**kwargs,
|
|
186
|
+
},
|
|
187
|
+
)
|
|
154
188
|
|
|
155
189
|
def create_key(self, *, key: str, title: str) -> PublicKey:
|
|
156
190
|
return self._model("POST", self._client._path("user", "keys"), PublicKey, json={"key": key, "title": title})
|
|
@@ -210,8 +244,30 @@ class AsyncUsersResource(AsyncResource, AbstractUsersResource):
|
|
|
210
244
|
params={"year": year, "next": next},
|
|
211
245
|
)
|
|
212
246
|
|
|
213
|
-
async def list_repos(
|
|
214
|
-
|
|
247
|
+
async def list_repos(
|
|
248
|
+
self,
|
|
249
|
+
*,
|
|
250
|
+
username: str,
|
|
251
|
+
type: Optional[str] = None,
|
|
252
|
+
sort: Optional[str] = None,
|
|
253
|
+
direction: Optional[str] = None,
|
|
254
|
+
page: Optional[int] = None,
|
|
255
|
+
per_page: Optional[int] = None,
|
|
256
|
+
**kwargs,
|
|
257
|
+
) -> List[Repository]:
|
|
258
|
+
return await self._models(
|
|
259
|
+
"GET",
|
|
260
|
+
self._client._path("users", username, "repos"),
|
|
261
|
+
Repository,
|
|
262
|
+
params={
|
|
263
|
+
"type": type,
|
|
264
|
+
"sort": sort,
|
|
265
|
+
"direction": direction,
|
|
266
|
+
"page": page,
|
|
267
|
+
"per_page": per_page,
|
|
268
|
+
**kwargs,
|
|
269
|
+
},
|
|
270
|
+
)
|
|
215
271
|
|
|
216
272
|
async def create_key(self, *, key: str, title: str) -> PublicKey:
|
|
217
273
|
return await self._model(
|
|
@@ -76,6 +76,8 @@ class AbstractIssuesResource(ABC):
|
|
|
76
76
|
labels: Optional[List[str]] = None,
|
|
77
77
|
milestone: Union[int, str, None] = None,
|
|
78
78
|
security_hole: Optional[str] = None,
|
|
79
|
+
template_path: Optional[str] = None,
|
|
80
|
+
**kwargs,
|
|
79
81
|
) -> Issue:
|
|
80
82
|
"""Create an issue for a repository.
|
|
81
83
|
|
|
@@ -87,6 +89,9 @@ class AbstractIssuesResource(ABC):
|
|
|
87
89
|
:param labels: Optional label names.
|
|
88
90
|
:param milestone: Optional milestone identifier.
|
|
89
91
|
:param security_hole: Whether the issue is private; form field described in the Issues API (default public).
|
|
92
|
+
:param template_path: issue template path, project templates support files under the .gitcode, .github, .gitee
|
|
93
|
+
directories, and organization templates only support files under the .gitcode directory of .gitcode repo.
|
|
94
|
+
:param kwargs: Additional arguments forwarded directly in request.
|
|
90
95
|
:returns: Created issue details.
|
|
91
96
|
"""
|
|
92
97
|
|
|
@@ -241,28 +246,108 @@ class AbstractIssuesResource(ABC):
|
|
|
241
246
|
"""
|
|
242
247
|
|
|
243
248
|
@abstractmethod
|
|
244
|
-
def list_enterprise(
|
|
249
|
+
def list_enterprise(
|
|
250
|
+
self,
|
|
251
|
+
*,
|
|
252
|
+
enterprise: str,
|
|
253
|
+
state: Optional[str] = None,
|
|
254
|
+
labels: Optional[str] = None,
|
|
255
|
+
sort: Optional[str] = None,
|
|
256
|
+
direction: Optional[str] = None,
|
|
257
|
+
since: Optional[str] = None,
|
|
258
|
+
page: Optional[int] = None,
|
|
259
|
+
per_page: Optional[int] = None,
|
|
260
|
+
milestone: Optional[str] = None,
|
|
261
|
+
assignee: Optional[str] = None,
|
|
262
|
+
creator: Optional[str] = None,
|
|
263
|
+
program: Optional[str] = None,
|
|
264
|
+
created_at: Optional[str] = None,
|
|
265
|
+
created_before: Optional[str] = None,
|
|
266
|
+
**kwargs,
|
|
267
|
+
) -> List[Issue]:
|
|
245
268
|
"""List enterprise issues visible to the caller.
|
|
246
269
|
|
|
247
270
|
:param enterprise: Enterprise path or login.
|
|
248
|
-
:param
|
|
271
|
+
:param state: Issue state: ``open``, ``closed``, or ``all``. Default: ``open``.
|
|
272
|
+
:param labels: Comma-separated list of label names.
|
|
273
|
+
:param sort: Sort field: ``created`` or ``updated_at``. Default: ``created_at``.
|
|
274
|
+
:param direction: ``asc`` or ``desc``. Default: ``desc``.
|
|
275
|
+
:param since: Return issues updated since this timestamp.
|
|
276
|
+
:param page: Page number.
|
|
277
|
+
:param per_page: Page size.
|
|
278
|
+
:param milestone: Milestone name (``none`` for no milestone, ``*`` for any).
|
|
279
|
+
:param assignee: Assignee username (``none`` for unassigned, ``*`` for any).
|
|
280
|
+
:param creator: Creator username filter.
|
|
281
|
+
:param program: Project name (``none`` for unassociated, ``*`` for any).
|
|
282
|
+
:param created_at: Created-at timestamp filter.
|
|
283
|
+
:param created_before: Return issues created before this timestamp.
|
|
284
|
+
:param kwargs: Additional arguments forwarded directly in request.
|
|
249
285
|
:returns: Enterprise-scoped issues.
|
|
250
286
|
"""
|
|
251
287
|
|
|
252
288
|
@abstractmethod
|
|
253
|
-
def list_user(
|
|
289
|
+
def list_user(
|
|
290
|
+
self,
|
|
291
|
+
*,
|
|
292
|
+
filter: Optional[str] = None,
|
|
293
|
+
state: Optional[str] = None,
|
|
294
|
+
labels: Optional[str] = None,
|
|
295
|
+
sort: Optional[str] = None,
|
|
296
|
+
direction: Optional[str] = None,
|
|
297
|
+
since: Optional[str] = None,
|
|
298
|
+
page: Optional[int] = None,
|
|
299
|
+
per_page: Optional[int] = None,
|
|
300
|
+
schedule: Optional[str] = None,
|
|
301
|
+
deadline: Optional[str] = None,
|
|
302
|
+
created_at: Optional[str] = None,
|
|
303
|
+
finished_at: Optional[str] = None,
|
|
304
|
+
**kwargs,
|
|
305
|
+
) -> List[Issue]:
|
|
254
306
|
"""List issues for the authenticated user.
|
|
255
307
|
|
|
256
|
-
:param
|
|
308
|
+
:param filter: Filter mode: ``assigned``, ``created``, or ``all``. Default: ``assigned``.
|
|
309
|
+
:param state: Issue state: ``open`` or ``closed``. Default: ``open``.
|
|
310
|
+
:param labels: Comma-separated list of label names.
|
|
311
|
+
:param sort: Sort field: ``created`` or ``updated_at``. Default: ``created_at``.
|
|
312
|
+
:param direction: ``asc`` or ``desc``. Default: ``desc``.
|
|
313
|
+
:param since: Return issues updated since this timestamp.
|
|
314
|
+
:param page: Page number.
|
|
315
|
+
:param per_page: Page size.
|
|
316
|
+
:param schedule: Schedule filter.
|
|
317
|
+
:param deadline: Deadline filter.
|
|
318
|
+
:param created_at: Created-at timestamp filter.
|
|
319
|
+
:param finished_at: Finished-at timestamp filter.
|
|
320
|
+
:param kwargs: Additional arguments forwarded directly in request.
|
|
257
321
|
:returns: Issues assigned to or authored by the user, per API rules.
|
|
258
322
|
"""
|
|
259
323
|
|
|
260
324
|
@abstractmethod
|
|
261
|
-
def list_org(
|
|
325
|
+
def list_org(
|
|
326
|
+
self,
|
|
327
|
+
*,
|
|
328
|
+
org: str,
|
|
329
|
+
filter: Optional[str] = None,
|
|
330
|
+
state: Optional[str] = None,
|
|
331
|
+
labels: Optional[str] = None,
|
|
332
|
+
sort: Optional[str] = None,
|
|
333
|
+
direction: Optional[str] = None,
|
|
334
|
+
page: Optional[int] = None,
|
|
335
|
+
per_page: Optional[int] = None,
|
|
336
|
+
created_at: Optional[str] = None,
|
|
337
|
+
**kwargs,
|
|
338
|
+
) -> List[Issue]:
|
|
262
339
|
"""List organization issues visible to the current user.
|
|
263
340
|
|
|
264
341
|
:param org: Organization path or login.
|
|
265
|
-
:param
|
|
342
|
+
:param filter: Filter mode: ``assigned``, ``created``, or ``all``. Default: ``assigned``.
|
|
343
|
+
:param state: Issue state: ``open`` or ``closed``. Default: ``open``.
|
|
344
|
+
:param labels: Comma-separated list of label names.
|
|
345
|
+
:param sort: Sort field: ``created`` or ``updated_at``. Default: ``created_at``.
|
|
346
|
+
:param direction: ``asc`` or ``desc``. Default: ``desc``.
|
|
347
|
+
:param page: Page number.
|
|
348
|
+
:param per_page: Page size.
|
|
349
|
+
:param created_at: Created-at timestamp filter.
|
|
350
|
+
:param kwargs: Additional arguments forwarded directly in request.
|
|
266
351
|
:returns: Organization-scoped issues.
|
|
267
352
|
"""
|
|
268
353
|
|
|
@@ -276,12 +361,22 @@ class AbstractIssuesResource(ABC):
|
|
|
276
361
|
"""
|
|
277
362
|
|
|
278
363
|
@abstractmethod
|
|
279
|
-
def list_enterprise_comments(
|
|
364
|
+
def list_enterprise_comments(
|
|
365
|
+
self,
|
|
366
|
+
*,
|
|
367
|
+
enterprise: str,
|
|
368
|
+
number: Union[int, str],
|
|
369
|
+
page: Optional[int] = None,
|
|
370
|
+
per_page: Optional[int] = None,
|
|
371
|
+
**kwargs,
|
|
372
|
+
) -> List[IssueComment]:
|
|
280
373
|
"""List comments for an enterprise issue.
|
|
281
374
|
|
|
282
375
|
:param enterprise: Enterprise path or login.
|
|
283
376
|
:param number: Enterprise issue identifier in the path.
|
|
284
|
-
:param
|
|
377
|
+
:param page: Page number.
|
|
378
|
+
:param per_page: Page size.
|
|
379
|
+
:param kwargs: Additional arguments forwarded directly in request.
|
|
285
380
|
:returns: Comments on the enterprise issue.
|
|
286
381
|
"""
|
|
287
382
|
|
|
@@ -400,6 +495,8 @@ class IssuesResource(SyncResource, AbstractIssuesResource):
|
|
|
400
495
|
labels: Optional[List[str]] = None,
|
|
401
496
|
milestone: Union[int, str, None] = None,
|
|
402
497
|
security_hole: Optional[str] = None,
|
|
498
|
+
template_path: Optional[str] = None,
|
|
499
|
+
**kwargs,
|
|
403
500
|
) -> Issue:
|
|
404
501
|
resolved_repo = repo or self._client.repo
|
|
405
502
|
return self._model(
|
|
@@ -414,7 +511,9 @@ class IssuesResource(SyncResource, AbstractIssuesResource):
|
|
|
414
511
|
"labels": _comma_join(labels),
|
|
415
512
|
"milestone": milestone,
|
|
416
513
|
"security_hole": security_hole,
|
|
417
|
-
|
|
514
|
+
"template_path": template_path,
|
|
515
|
+
}
|
|
516
|
+
| kwargs,
|
|
418
517
|
)
|
|
419
518
|
|
|
420
519
|
def update(
|
|
@@ -536,24 +635,133 @@ class IssuesResource(SyncResource, AbstractIssuesResource):
|
|
|
536
635
|
) -> None:
|
|
537
636
|
self._request("DELETE", self._client._repo_path("issues", number, "labels", name, owner=owner, repo=repo))
|
|
538
637
|
|
|
539
|
-
def list_enterprise(
|
|
540
|
-
|
|
638
|
+
def list_enterprise(
|
|
639
|
+
self,
|
|
640
|
+
*,
|
|
641
|
+
enterprise: str,
|
|
642
|
+
state: Optional[str] = None,
|
|
643
|
+
labels: Optional[str] = None,
|
|
644
|
+
sort: Optional[str] = None,
|
|
645
|
+
direction: Optional[str] = None,
|
|
646
|
+
since: Optional[str] = None,
|
|
647
|
+
page: Optional[int] = None,
|
|
648
|
+
per_page: Optional[int] = None,
|
|
649
|
+
milestone: Optional[str] = None,
|
|
650
|
+
assignee: Optional[str] = None,
|
|
651
|
+
creator: Optional[str] = None,
|
|
652
|
+
program: Optional[str] = None,
|
|
653
|
+
created_at: Optional[str] = None,
|
|
654
|
+
created_before: Optional[str] = None,
|
|
655
|
+
**kwargs,
|
|
656
|
+
) -> List[Issue]:
|
|
657
|
+
return self._models(
|
|
658
|
+
"GET",
|
|
659
|
+
self._client._path("enterprises", enterprise, "issues"),
|
|
660
|
+
Issue,
|
|
661
|
+
params={
|
|
662
|
+
"state": state,
|
|
663
|
+
"labels": labels,
|
|
664
|
+
"sort": sort,
|
|
665
|
+
"direction": direction,
|
|
666
|
+
"since": since,
|
|
667
|
+
"page": page,
|
|
668
|
+
"per_page": per_page,
|
|
669
|
+
"milestone": milestone,
|
|
670
|
+
"assignee": assignee,
|
|
671
|
+
"creator": creator,
|
|
672
|
+
"program": program,
|
|
673
|
+
"created_at": created_at,
|
|
674
|
+
"created_before": created_before,
|
|
675
|
+
**kwargs,
|
|
676
|
+
},
|
|
677
|
+
)
|
|
541
678
|
|
|
542
|
-
def list_user(
|
|
543
|
-
|
|
679
|
+
def list_user(
|
|
680
|
+
self,
|
|
681
|
+
*,
|
|
682
|
+
filter: Optional[str] = None,
|
|
683
|
+
state: Optional[str] = None,
|
|
684
|
+
labels: Optional[str] = None,
|
|
685
|
+
sort: Optional[str] = None,
|
|
686
|
+
direction: Optional[str] = None,
|
|
687
|
+
since: Optional[str] = None,
|
|
688
|
+
page: Optional[int] = None,
|
|
689
|
+
per_page: Optional[int] = None,
|
|
690
|
+
schedule: Optional[str] = None,
|
|
691
|
+
deadline: Optional[str] = None,
|
|
692
|
+
created_at: Optional[str] = None,
|
|
693
|
+
finished_at: Optional[str] = None,
|
|
694
|
+
**kwargs,
|
|
695
|
+
) -> List[Issue]:
|
|
696
|
+
return self._models(
|
|
697
|
+
"GET",
|
|
698
|
+
self._client._path("user", "issues"),
|
|
699
|
+
Issue,
|
|
700
|
+
params={
|
|
701
|
+
"filter": filter,
|
|
702
|
+
"state": state,
|
|
703
|
+
"labels": labels,
|
|
704
|
+
"sort": sort,
|
|
705
|
+
"direction": direction,
|
|
706
|
+
"since": since,
|
|
707
|
+
"page": page,
|
|
708
|
+
"per_page": per_page,
|
|
709
|
+
"schedule": schedule,
|
|
710
|
+
"deadline": deadline,
|
|
711
|
+
"created_at": created_at,
|
|
712
|
+
"finished_at": finished_at,
|
|
713
|
+
**kwargs,
|
|
714
|
+
},
|
|
715
|
+
)
|
|
544
716
|
|
|
545
|
-
def list_org(
|
|
546
|
-
|
|
717
|
+
def list_org(
|
|
718
|
+
self,
|
|
719
|
+
*,
|
|
720
|
+
org: str,
|
|
721
|
+
filter: Optional[str] = None,
|
|
722
|
+
state: Optional[str] = None,
|
|
723
|
+
labels: Optional[str] = None,
|
|
724
|
+
sort: Optional[str] = None,
|
|
725
|
+
direction: Optional[str] = None,
|
|
726
|
+
page: Optional[int] = None,
|
|
727
|
+
per_page: Optional[int] = None,
|
|
728
|
+
created_at: Optional[str] = None,
|
|
729
|
+
**kwargs,
|
|
730
|
+
) -> List[Issue]:
|
|
731
|
+
return self._models(
|
|
732
|
+
"GET",
|
|
733
|
+
self._client._path("orgs", org, "issues"),
|
|
734
|
+
Issue,
|
|
735
|
+
params={
|
|
736
|
+
"filter": filter,
|
|
737
|
+
"state": state,
|
|
738
|
+
"labels": labels,
|
|
739
|
+
"sort": sort,
|
|
740
|
+
"direction": direction,
|
|
741
|
+
"page": page,
|
|
742
|
+
"per_page": per_page,
|
|
743
|
+
"created_at": created_at,
|
|
744
|
+
**kwargs,
|
|
745
|
+
},
|
|
746
|
+
)
|
|
547
747
|
|
|
548
748
|
def get_enterprise_issue(self, *, enterprise: str, number: Union[int, str]) -> Issue:
|
|
549
749
|
return self._model("GET", self._client._path("enterprises", enterprise, "issues", number), Issue)
|
|
550
750
|
|
|
551
|
-
def list_enterprise_comments(
|
|
751
|
+
def list_enterprise_comments(
|
|
752
|
+
self,
|
|
753
|
+
*,
|
|
754
|
+
enterprise: str,
|
|
755
|
+
number: Union[int, str],
|
|
756
|
+
page: Optional[int] = None,
|
|
757
|
+
per_page: Optional[int] = None,
|
|
758
|
+
**kwargs,
|
|
759
|
+
) -> List[IssueComment]:
|
|
552
760
|
return self._models(
|
|
553
761
|
"GET",
|
|
554
762
|
self._client._path("enterprises", enterprise, "issues", number, "comments"),
|
|
555
763
|
IssueComment,
|
|
556
|
-
params=
|
|
764
|
+
params={"page": page, "per_page": per_page, **kwargs},
|
|
557
765
|
)
|
|
558
766
|
|
|
559
767
|
def list_enterprise_labels(self, *, enterprise: str, issue_id: Union[int, str]) -> List[Label]:
|
|
@@ -659,6 +867,8 @@ class AsyncIssuesResource(AsyncResource, AbstractIssuesResource):
|
|
|
659
867
|
labels: Optional[List[str]] = None,
|
|
660
868
|
milestone: Union[int, str, None] = None,
|
|
661
869
|
security_hole: Optional[str] = None,
|
|
870
|
+
template_path: Optional[str] = None,
|
|
871
|
+
**kwargs,
|
|
662
872
|
) -> Issue:
|
|
663
873
|
resolved_repo = repo or self._client.repo
|
|
664
874
|
return await self._model(
|
|
@@ -673,6 +883,7 @@ class AsyncIssuesResource(AsyncResource, AbstractIssuesResource):
|
|
|
673
883
|
"labels": _comma_join(labels),
|
|
674
884
|
"milestone": milestone,
|
|
675
885
|
"security_hole": security_hole,
|
|
886
|
+
"template_path": template_path,
|
|
676
887
|
},
|
|
677
888
|
)
|
|
678
889
|
|
|
@@ -774,26 +985,133 @@ class AsyncIssuesResource(AsyncResource, AbstractIssuesResource):
|
|
|
774
985
|
) -> None:
|
|
775
986
|
await self._request("DELETE", self._client._repo_path("issues", number, "labels", name, owner=owner, repo=repo))
|
|
776
987
|
|
|
777
|
-
async def list_enterprise(
|
|
778
|
-
|
|
988
|
+
async def list_enterprise(
|
|
989
|
+
self,
|
|
990
|
+
*,
|
|
991
|
+
enterprise: str,
|
|
992
|
+
state: Optional[str] = None,
|
|
993
|
+
labels: Optional[str] = None,
|
|
994
|
+
sort: Optional[str] = None,
|
|
995
|
+
direction: Optional[str] = None,
|
|
996
|
+
since: Optional[str] = None,
|
|
997
|
+
page: Optional[int] = None,
|
|
998
|
+
per_page: Optional[int] = None,
|
|
999
|
+
milestone: Optional[str] = None,
|
|
1000
|
+
assignee: Optional[str] = None,
|
|
1001
|
+
creator: Optional[str] = None,
|
|
1002
|
+
program: Optional[str] = None,
|
|
1003
|
+
created_at: Optional[str] = None,
|
|
1004
|
+
created_before: Optional[str] = None,
|
|
1005
|
+
**kwargs,
|
|
1006
|
+
) -> List[Issue]:
|
|
1007
|
+
return await self._models(
|
|
1008
|
+
"GET",
|
|
1009
|
+
self._client._path("enterprises", enterprise, "issues"),
|
|
1010
|
+
Issue,
|
|
1011
|
+
params={
|
|
1012
|
+
"state": state,
|
|
1013
|
+
"labels": labels,
|
|
1014
|
+
"sort": sort,
|
|
1015
|
+
"direction": direction,
|
|
1016
|
+
"since": since,
|
|
1017
|
+
"page": page,
|
|
1018
|
+
"per_page": per_page,
|
|
1019
|
+
"milestone": milestone,
|
|
1020
|
+
"assignee": assignee,
|
|
1021
|
+
"creator": creator,
|
|
1022
|
+
"program": program,
|
|
1023
|
+
"created_at": created_at,
|
|
1024
|
+
"created_before": created_before,
|
|
1025
|
+
**kwargs,
|
|
1026
|
+
},
|
|
1027
|
+
)
|
|
779
1028
|
|
|
780
|
-
async def list_user(
|
|
781
|
-
|
|
1029
|
+
async def list_user(
|
|
1030
|
+
self,
|
|
1031
|
+
*,
|
|
1032
|
+
filter: Optional[str] = None,
|
|
1033
|
+
state: Optional[str] = None,
|
|
1034
|
+
labels: Optional[str] = None,
|
|
1035
|
+
sort: Optional[str] = None,
|
|
1036
|
+
direction: Optional[str] = None,
|
|
1037
|
+
since: Optional[str] = None,
|
|
1038
|
+
page: Optional[int] = None,
|
|
1039
|
+
per_page: Optional[int] = None,
|
|
1040
|
+
schedule: Optional[str] = None,
|
|
1041
|
+
deadline: Optional[str] = None,
|
|
1042
|
+
created_at: Optional[str] = None,
|
|
1043
|
+
finished_at: Optional[str] = None,
|
|
1044
|
+
**kwargs,
|
|
1045
|
+
) -> List[Issue]:
|
|
1046
|
+
return await self._models(
|
|
1047
|
+
"GET",
|
|
1048
|
+
self._client._path("user", "issues"),
|
|
1049
|
+
Issue,
|
|
1050
|
+
params={
|
|
1051
|
+
"filter": filter,
|
|
1052
|
+
"state": state,
|
|
1053
|
+
"labels": labels,
|
|
1054
|
+
"sort": sort,
|
|
1055
|
+
"direction": direction,
|
|
1056
|
+
"since": since,
|
|
1057
|
+
"page": page,
|
|
1058
|
+
"per_page": per_page,
|
|
1059
|
+
"schedule": schedule,
|
|
1060
|
+
"deadline": deadline,
|
|
1061
|
+
"created_at": created_at,
|
|
1062
|
+
"finished_at": finished_at,
|
|
1063
|
+
**kwargs,
|
|
1064
|
+
},
|
|
1065
|
+
)
|
|
782
1066
|
|
|
783
|
-
async def list_org(
|
|
784
|
-
|
|
1067
|
+
async def list_org(
|
|
1068
|
+
self,
|
|
1069
|
+
*,
|
|
1070
|
+
org: str,
|
|
1071
|
+
filter: Optional[str] = None,
|
|
1072
|
+
state: Optional[str] = None,
|
|
1073
|
+
labels: Optional[str] = None,
|
|
1074
|
+
sort: Optional[str] = None,
|
|
1075
|
+
direction: Optional[str] = None,
|
|
1076
|
+
page: Optional[int] = None,
|
|
1077
|
+
per_page: Optional[int] = None,
|
|
1078
|
+
created_at: Optional[str] = None,
|
|
1079
|
+
**kwargs,
|
|
1080
|
+
) -> List[Issue]:
|
|
1081
|
+
return await self._models(
|
|
1082
|
+
"GET",
|
|
1083
|
+
self._client._path("orgs", org, "issues"),
|
|
1084
|
+
Issue,
|
|
1085
|
+
params={
|
|
1086
|
+
"filter": filter,
|
|
1087
|
+
"state": state,
|
|
1088
|
+
"labels": labels,
|
|
1089
|
+
"sort": sort,
|
|
1090
|
+
"direction": direction,
|
|
1091
|
+
"page": page,
|
|
1092
|
+
"per_page": per_page,
|
|
1093
|
+
"created_at": created_at,
|
|
1094
|
+
**kwargs,
|
|
1095
|
+
},
|
|
1096
|
+
)
|
|
785
1097
|
|
|
786
1098
|
async def get_enterprise_issue(self, *, enterprise: str, number: Union[int, str]) -> Issue:
|
|
787
1099
|
return await self._model("GET", self._client._path("enterprises", enterprise, "issues", number), Issue)
|
|
788
1100
|
|
|
789
1101
|
async def list_enterprise_comments(
|
|
790
|
-
self,
|
|
1102
|
+
self,
|
|
1103
|
+
*,
|
|
1104
|
+
enterprise: str,
|
|
1105
|
+
number: Union[int, str],
|
|
1106
|
+
page: Optional[int] = None,
|
|
1107
|
+
per_page: Optional[int] = None,
|
|
1108
|
+
**kwargs,
|
|
791
1109
|
) -> List[IssueComment]:
|
|
792
1110
|
return await self._models(
|
|
793
1111
|
"GET",
|
|
794
1112
|
self._client._path("enterprises", enterprise, "issues", number, "comments"),
|
|
795
1113
|
IssueComment,
|
|
796
|
-
params=
|
|
1114
|
+
params={"page": page, "per_page": per_page, **kwargs},
|
|
797
1115
|
)
|
|
798
1116
|
|
|
799
1117
|
async def list_enterprise_labels(self, *, enterprise: str, issue_id: Union[int, str]) -> List[Label]:
|
|
@@ -14,12 +14,28 @@ class AbstractMilestonesResource(ABC):
|
|
|
14
14
|
"""Interface for Milestones resource endpoints."""
|
|
15
15
|
|
|
16
16
|
@abstractmethod
|
|
17
|
-
def list(
|
|
17
|
+
def list(
|
|
18
|
+
self,
|
|
19
|
+
*,
|
|
20
|
+
owner: Optional[str] = None,
|
|
21
|
+
repo: Optional[str] = None,
|
|
22
|
+
state: Optional[str] = None,
|
|
23
|
+
sort: Optional[str] = None,
|
|
24
|
+
direction: Optional[str] = None,
|
|
25
|
+
page: Optional[int] = None,
|
|
26
|
+
per_page: Optional[int] = None,
|
|
27
|
+
**kwargs,
|
|
28
|
+
) -> List[Milestone]:
|
|
18
29
|
"""List milestones for a repository.
|
|
19
30
|
|
|
20
31
|
:param owner: Repository owner path. Uses the client default when omitted.
|
|
21
32
|
:param repo: Repository path. Uses the client default when omitted.
|
|
22
|
-
:param
|
|
33
|
+
:param state: Milestone state: ``open``, ``closed``, or ``all``. Default: ``open``.
|
|
34
|
+
:param sort: Sort field such as ``due_on``.
|
|
35
|
+
:param direction: ``asc`` or ``desc``. Default: ``asc``.
|
|
36
|
+
:param page: Page number.
|
|
37
|
+
:param per_page: Page size.
|
|
38
|
+
:param kwargs: Additional arguments forwarded directly in request.
|
|
23
39
|
:returns: Milestones.
|
|
24
40
|
"""
|
|
25
41
|
|
|
@@ -90,9 +106,30 @@ class AbstractMilestonesResource(ABC):
|
|
|
90
106
|
class MilestonesResource(SyncResource, AbstractMilestonesResource):
|
|
91
107
|
"""Synchronous milestone endpoints."""
|
|
92
108
|
|
|
93
|
-
def list(
|
|
109
|
+
def list(
|
|
110
|
+
self,
|
|
111
|
+
*,
|
|
112
|
+
owner: Optional[str] = None,
|
|
113
|
+
repo: Optional[str] = None,
|
|
114
|
+
state: Optional[str] = None,
|
|
115
|
+
sort: Optional[str] = None,
|
|
116
|
+
direction: Optional[str] = None,
|
|
117
|
+
page: Optional[int] = None,
|
|
118
|
+
per_page: Optional[int] = None,
|
|
119
|
+
**kwargs,
|
|
120
|
+
) -> List[Milestone]:
|
|
94
121
|
return self._models(
|
|
95
|
-
"GET",
|
|
122
|
+
"GET",
|
|
123
|
+
self._client._repo_path("milestones", owner=owner, repo=repo),
|
|
124
|
+
Milestone,
|
|
125
|
+
params={
|
|
126
|
+
"state": state,
|
|
127
|
+
"sort": sort,
|
|
128
|
+
"direction": direction,
|
|
129
|
+
"page": page,
|
|
130
|
+
"per_page": per_page,
|
|
131
|
+
**kwargs,
|
|
132
|
+
},
|
|
96
133
|
)
|
|
97
134
|
|
|
98
135
|
def get(self, *, number: Union[int, str], owner: Optional[str] = None, repo: Optional[str] = None) -> Milestone:
|
|
@@ -142,9 +179,30 @@ class AsyncMilestonesResource(AsyncResource, AbstractMilestonesResource):
|
|
|
142
179
|
Mirrors :class:`MilestonesResource`; see that class for parameter documentation.
|
|
143
180
|
"""
|
|
144
181
|
|
|
145
|
-
async def list(
|
|
182
|
+
async def list(
|
|
183
|
+
self,
|
|
184
|
+
*,
|
|
185
|
+
owner: Optional[str] = None,
|
|
186
|
+
repo: Optional[str] = None,
|
|
187
|
+
state: Optional[str] = None,
|
|
188
|
+
sort: Optional[str] = None,
|
|
189
|
+
direction: Optional[str] = None,
|
|
190
|
+
page: Optional[int] = None,
|
|
191
|
+
per_page: Optional[int] = None,
|
|
192
|
+
**kwargs,
|
|
193
|
+
) -> List[Milestone]:
|
|
146
194
|
return await self._models(
|
|
147
|
-
"GET",
|
|
195
|
+
"GET",
|
|
196
|
+
self._client._repo_path("milestones", owner=owner, repo=repo),
|
|
197
|
+
Milestone,
|
|
198
|
+
params={
|
|
199
|
+
"state": state,
|
|
200
|
+
"sort": sort,
|
|
201
|
+
"direction": direction,
|
|
202
|
+
"page": page,
|
|
203
|
+
"per_page": per_page,
|
|
204
|
+
**kwargs,
|
|
205
|
+
},
|
|
148
206
|
)
|
|
149
207
|
|
|
150
208
|
async def get(
|