clear-skies-gitlab 2.0.1__py3-none-any.whl → 2.0.3__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.
- {clear_skies_gitlab-2.0.1.dist-info → clear_skies_gitlab-2.0.3.dist-info}/METADATA +2 -2
- clear_skies_gitlab-2.0.3.dist-info/RECORD +68 -0
- {clear_skies_gitlab-2.0.1.dist-info → clear_skies_gitlab-2.0.3.dist-info}/WHEEL +1 -1
- {clear_skies_gitlab-2.0.1.dist-info → clear_skies_gitlab-2.0.3.dist-info}/licenses/LICENSE +1 -1
- clearskies_gitlab/__init__.py +2 -2
- clearskies_gitlab/defaults/__init__.py +4 -2
- clearskies_gitlab/defaults/gitlab_default_auth.py +3 -0
- clearskies_gitlab/defaults/gitlab_default_host.py +10 -0
- clearskies_gitlab/defaults/gitlab_graphql_client.py +18 -0
- clearskies_gitlab/exceptions/gitlab_error.py +1 -0
- clearskies_gitlab/graphql/__init__.py +3 -0
- clearskies_gitlab/graphql/backends/__init__.py +7 -0
- clearskies_gitlab/graphql/backends/gitlab_graphql_backend.py +38 -0
- clearskies_gitlab/graphql/models/__init__.py +13 -0
- clearskies_gitlab/graphql/models/gitlab_container_repository.py +34 -0
- clearskies_gitlab/graphql/models/gitlab_container_repository_reference.py +8 -0
- clearskies_gitlab/graphql/models/gitlab_container_repository_tag.py +32 -0
- clearskies_gitlab/graphql/models/gitlab_container_repository_tag_reference.py +8 -0
- clearskies_gitlab/graphql/models/gitlab_group.py +24 -0
- clearskies_gitlab/graphql/models/gitlab_group_reference.py +8 -0
- clearskies_gitlab/graphql/models/gitlab_project.py +25 -0
- clearskies_gitlab/graphql/models/gitlab_project_reference.py +8 -0
- clearskies_gitlab/rest/__init__.py +12 -0
- clearskies_gitlab/rest/backends/__init__.py +3 -0
- clearskies_gitlab/{backends → rest/backends}/gitlab_rest_backend.py +17 -12
- clearskies_gitlab/rest/gitlab_branch_rule.py +21 -0
- clearskies_gitlab/{models → rest}/gitlab_cicd_variable.py +0 -3
- clearskies_gitlab/{models → rest}/gitlab_member.py +0 -3
- clearskies_gitlab/rest/models/__init__.py +49 -0
- clearskies_gitlab/{models/rest → rest/models}/gitlab_rest_advanced_search.py +7 -7
- clearskies_gitlab/{models/rest → rest/models}/gitlab_rest_advanced_search_blob.py +1 -4
- clearskies_gitlab/{models/rest → rest/models}/gitlab_rest_current_user.py +7 -4
- clearskies_gitlab/rest/models/gitlab_rest_group.py +48 -0
- clearskies_gitlab/{models/rest → rest/models}/gitlab_rest_group_access_token.py +8 -6
- clearskies_gitlab/rest/models/gitlab_rest_group_access_token_reference.py +8 -0
- clearskies_gitlab/{models/gitlab_group.py → rest/models/gitlab_rest_group_base.py} +40 -5
- clearskies_gitlab/{models/rest → rest/models}/gitlab_rest_group_member.py +7 -6
- clearskies_gitlab/rest/models/gitlab_rest_group_member_reference.py +8 -0
- clearskies_gitlab/rest/models/gitlab_rest_group_project.py +16 -0
- clearskies_gitlab/rest/models/gitlab_rest_group_project_reference.py +8 -0
- clearskies_gitlab/rest/models/gitlab_rest_group_reference.py +9 -0
- clearskies_gitlab/{models/rest → rest/models}/gitlab_rest_group_search.py +2 -3
- clearskies_gitlab/{models/rest → rest/models}/gitlab_rest_group_search_blob.py +1 -1
- clearskies_gitlab/rest/models/gitlab_rest_group_subgroup.py +63 -0
- clearskies_gitlab/rest/models/gitlab_rest_group_subgroup_reference.py +8 -0
- clearskies_gitlab/{models/rest → rest/models}/gitlab_rest_group_variable.py +7 -5
- clearskies_gitlab/rest/models/gitlab_rest_group_variable_reference.py +8 -0
- clearskies_gitlab/{models/rest → rest/models}/gitlab_rest_namespace.py +28 -9
- clearskies_gitlab/{models/gitlab_project.py → rest/models/gitlab_rest_project.py} +129 -36
- clearskies_gitlab/rest/models/gitlab_rest_project_approval_config.py +34 -0
- clearskies_gitlab/rest/models/gitlab_rest_project_approval_config_reference.py +8 -0
- clearskies_gitlab/rest/models/gitlab_rest_project_approval_rule.py +42 -0
- clearskies_gitlab/rest/models/gitlab_rest_project_approval_rule_reference.py +8 -0
- clearskies_gitlab/rest/models/gitlab_rest_project_member.py +29 -0
- clearskies_gitlab/rest/models/gitlab_rest_project_member_reference.py +8 -0
- clearskies_gitlab/rest/models/gitlab_rest_project_protected_branch.py +35 -0
- clearskies_gitlab/rest/models/gitlab_rest_project_protected_branch_reference.py +8 -0
- clearskies_gitlab/rest/models/gitlab_rest_project_reference.py +9 -0
- clearskies_gitlab/{models/rest → rest/models}/gitlab_rest_project_repository_commit.py +15 -5
- clearskies_gitlab/{models/rest → rest/models}/gitlab_rest_project_repository_commit_diff.py +6 -4
- clearskies_gitlab/rest/models/gitlab_rest_project_repository_contributor.py +34 -0
- clearskies_gitlab/rest/models/gitlab_rest_project_repository_contributor_reference.py +8 -0
- clearskies_gitlab/rest/models/gitlab_rest_project_repository_file.py +39 -0
- clearskies_gitlab/rest/models/gitlab_rest_project_repository_file_raw.py +31 -0
- clearskies_gitlab/rest/models/gitlab_rest_project_repository_file_reference.py +8 -0
- clearskies_gitlab/{models/rest → rest/models}/gitlab_rest_project_variable.py +7 -5
- clearskies_gitlab/rest/models/gitlab_rest_project_variable_reference.py +8 -0
- clear_skies_gitlab-2.0.1.dist-info/RECORD +0 -42
- clearskies_gitlab/backends/__init__.py +0 -9
- clearskies_gitlab/defaults/gitlab_default_url.py +0 -7
- clearskies_gitlab/models/__init__.py +0 -19
- clearskies_gitlab/models/gitlab_gql_model.py +0 -9
- clearskies_gitlab/models/gitlab_namespace.py +0 -32
- clearskies_gitlab/models/gitlab_rest_model.py +0 -11
- clearskies_gitlab/models/rest/__init__.py +0 -35
- clearskies_gitlab/models/rest/gitlab_rest_group.py +0 -75
- clearskies_gitlab/models/rest/gitlab_rest_group_member_reference.py +0 -6
- clearskies_gitlab/models/rest/gitlab_rest_group_project.py +0 -37
- clearskies_gitlab/models/rest/gitlab_rest_group_reference.py +0 -6
- clearskies_gitlab/models/rest/gitlab_rest_group_subgroup.py +0 -65
- clearskies_gitlab/models/rest/gitlab_rest_group_subgroup_reference.py +0 -6
- clearskies_gitlab/models/rest/gitlab_rest_project.py +0 -81
- clearskies_gitlab/models/rest/gitlab_rest_project_reference.py +0 -6
- clearskies_gitlab/models/rest/gitlab_rest_project_variable_refence.py +0 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: clear-skies-gitlab
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.3
|
|
4
4
|
Summary: Gitlab module for Clearskies
|
|
5
5
|
Project-URL: Docs, https://https://clearskies.info/modules/clear-skies-gitlab
|
|
6
6
|
Project-URL: Repository, https://github.com/clearskies-py/gitlab
|
|
@@ -15,7 +15,7 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
16
|
Requires-Python: <4.0,>=3.11
|
|
17
17
|
Requires-Dist: clear-skies>=2.0.0
|
|
18
|
-
Requires-Dist: gql>=4.0.0
|
|
18
|
+
Requires-Dist: gql[all]>=4.0.0
|
|
19
19
|
Requires-Dist: requests>=2.32.5
|
|
20
20
|
Provides-Extra: dev
|
|
21
21
|
Requires-Dist: types-requests>=2.32.4; extra == 'dev'
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
clearskies_gitlab/__init__.py,sha256=TlKrAfFOTW6YnQefxEQbUdnf_F3sVOvRKsG_6cfFAsk,123
|
|
2
|
+
clearskies_gitlab/defaults/__init__.py,sha256=t3Dfm98aoahHCepQnW1YBSVKgDz0QEp7hTrGL8XAcTE,341
|
|
3
|
+
clearskies_gitlab/defaults/gitlab_default_auth.py,sha256=w8w7LcekC38tbD-fuv5liDnvo4UsBxKVF7YZoTuzUus,456
|
|
4
|
+
clearskies_gitlab/defaults/gitlab_default_host.py,sha256=wlyj0u-nbUqkkZQnZFgMXKH32nNlTABfCL6iWA88V6E,411
|
|
5
|
+
clearskies_gitlab/defaults/gitlab_graphql_client.py,sha256=eIQ3efp2oYFuGSIGimZ1e5AC8TOTy1j8K26SU_AK-yU,609
|
|
6
|
+
clearskies_gitlab/exceptions/__init__.py,sha256=QUg8lVn91QMENpN_uZmYdNkhI1EjFAWN9X6cMKgKmtE,301
|
|
7
|
+
clearskies_gitlab/exceptions/gitlab_error.py,sha256=5hm8iYXnEfxxRkKPBXIq0v5mL1l5ZqaxlmUKnBjOe3g,2054
|
|
8
|
+
clearskies_gitlab/graphql/__init__.py,sha256=zIlWQCDVnQLYPmPLsK4m4HJkDLS9Ltk2BFMpfTNpBOw,89
|
|
9
|
+
clearskies_gitlab/graphql/backends/__init__.py,sha256=1QrNzwAnabngNZc-5lCAEdG0ePJv6BKEk3K2vNul4mk,170
|
|
10
|
+
clearskies_gitlab/graphql/backends/gitlab_graphql_backend.py,sha256=B_nor-KI5JEeMDe9MbLP0vT8hbUciBbaKfW4r5ursR0,1326
|
|
11
|
+
clearskies_gitlab/graphql/models/__init__.py,sha256=aKF4Ag-xZPUncPWJXovWAaROnsIdaItNzZmyXSYq3Mg,509
|
|
12
|
+
clearskies_gitlab/graphql/models/gitlab_container_repository.py,sha256=ouj2pe8REgY8EW0uTfB3m-TS_EXqD4fuEeMAnHT4CLI,1192
|
|
13
|
+
clearskies_gitlab/graphql/models/gitlab_container_repository_reference.py,sha256=wC_7sQ2ucmg9YxpLJ-EfgXa_gqjk3ptJP5wM2i833T0,352
|
|
14
|
+
clearskies_gitlab/graphql/models/gitlab_container_repository_tag.py,sha256=V4pPiQdIvrzbHczTzR-wq3DHyVB42CKnyzXW8KY869U,1090
|
|
15
|
+
clearskies_gitlab/graphql/models/gitlab_container_repository_tag_reference.py,sha256=IT8eUsOgVkoHpyswIasU-69yl1eXQJT6dgAh2pLBzHg,369
|
|
16
|
+
clearskies_gitlab/graphql/models/gitlab_group.py,sha256=jqrySCT5iVWP9NYUPaI84MUiWss6isFh0_FwBY_fV-E,633
|
|
17
|
+
clearskies_gitlab/graphql/models/gitlab_group_reference.py,sha256=V3y3DxKMhUWWjXINu1jxLSKublJdPqPWlr651F0mZB4,280
|
|
18
|
+
clearskies_gitlab/graphql/models/gitlab_project.py,sha256=IBG38Rwks6A9aqC2Qlss_qWohNQ2oUHF64irwE3-mj8,641
|
|
19
|
+
clearskies_gitlab/graphql/models/gitlab_project_reference.py,sha256=Z5Hi991TFQip-1151XcP-_ITVHwWmJiTDTlqRoAsg0A,290
|
|
20
|
+
clearskies_gitlab/rest/__init__.py,sha256=KZyBO-7OCE_qgClt-eTOh8jYIJccKpcuXHZ4eZCpW-0,316
|
|
21
|
+
clearskies_gitlab/rest/gitlab_branch_rule.py,sha256=D8HptQg9BdKAtPtVkRYbt1sga0R9eErECYDLLuvSa7A,569
|
|
22
|
+
clearskies_gitlab/rest/gitlab_cicd_variable.py,sha256=398-5SPlMk3-Zyu1dZTbpM9YCP2qNOsnydku3hiWvlc,446
|
|
23
|
+
clearskies_gitlab/rest/gitlab_member.py,sha256=o1G652wbIImd8rz9NJQeAlJaxAftNt-6u7quoLYFwh0,487
|
|
24
|
+
clearskies_gitlab/rest/backends/__init__.py,sha256=xUhpRXyB_FHhTsz94A2kviBlPzZfaKqIiHOhDrNg6Wc,115
|
|
25
|
+
clearskies_gitlab/rest/backends/gitlab_rest_backend.py,sha256=nAZe8JRD1xMUNNoinOBWAGWv__S3Jko9d7OhXUlTeQk,6672
|
|
26
|
+
clearskies_gitlab/rest/models/__init__.py,sha256=mcfdh04R8Fu5T-6Cz-Iy3CJ2LLttgkwBGd3Qp0Rtt6A,2750
|
|
27
|
+
clearskies_gitlab/rest/models/gitlab_rest_advanced_search.py,sha256=iFxCGDaqzRxl2a9g91P7zpj2ZAxuRbYoSiz_hsXMavY,883
|
|
28
|
+
clearskies_gitlab/rest/models/gitlab_rest_advanced_search_blob.py,sha256=R3DFxbAcm3Em8S6dZ51EG6m-OSaM-BQmuo035SHV5NU,628
|
|
29
|
+
clearskies_gitlab/rest/models/gitlab_rest_current_user.py,sha256=KrOfehkusr_FlB8Q4-IOU51Go5ULgykBDi9v883w80k,1135
|
|
30
|
+
clearskies_gitlab/rest/models/gitlab_rest_group.py,sha256=iJgz78APzdlK9TOv0OmqVU_3qg-lJ3cdUBkMjyqhYho,1410
|
|
31
|
+
clearskies_gitlab/rest/models/gitlab_rest_group_access_token.py,sha256=83tvO01CQktMwLm1Is9fIf_IkGR6zFIvvELwjkdSr4s,843
|
|
32
|
+
clearskies_gitlab/rest/models/gitlab_rest_group_access_token_reference.py,sha256=GZnAOIgIDJCPR55ABD4bxPT--TUOnkVV1peQMtai2dU,358
|
|
33
|
+
clearskies_gitlab/rest/models/gitlab_rest_group_base.py,sha256=lnX37uxnIu1aWmGjDuT1ZVk9NeHQwmnFRjS_2Wjq53s,3102
|
|
34
|
+
clearskies_gitlab/rest/models/gitlab_rest_group_member.py,sha256=CLkslCom4Deo2c3GdkoM8cuVYLOsvfreYzOUm64DTNs,707
|
|
35
|
+
clearskies_gitlab/rest/models/gitlab_rest_group_member_reference.py,sha256=XrhG_hiqGQf8vIosss2Vp4RWvNNtHxIn-TzXtPGQvgU,331
|
|
36
|
+
clearskies_gitlab/rest/models/gitlab_rest_group_project.py,sha256=33hEMN08aIsl4-tcIgNmruGLRYr0XqIuD9nQZ3Xs_CY,415
|
|
37
|
+
clearskies_gitlab/rest/models/gitlab_rest_group_project_reference.py,sha256=fp45VWXMC_3inaep1GIS6ortIucZoxh-7xb7RnTl8DI,336
|
|
38
|
+
clearskies_gitlab/rest/models/gitlab_rest_group_reference.py,sha256=UiHQpQNuVM3WotCNEFIlEqLwXMdy-8YqYRil-S84MQI,292
|
|
39
|
+
clearskies_gitlab/rest/models/gitlab_rest_group_search.py,sha256=VgpGDRwe3UhY2AXfqWpGYYY6ghUhoDNKJqeLsrNtwcA,506
|
|
40
|
+
clearskies_gitlab/rest/models/gitlab_rest_group_search_blob.py,sha256=_tIkwwDzJF9nGV0LL9fVqY5Tn4SSBXNg1C0dKlUQ-oM,353
|
|
41
|
+
clearskies_gitlab/rest/models/gitlab_rest_group_subgroup.py,sha256=x0h_alIV3QFbslXIlqHC48HAOmmFw5T96XAwWh31-uA,1937
|
|
42
|
+
clearskies_gitlab/rest/models/gitlab_rest_group_subgroup_reference.py,sha256=vFAlOmQ8wJswlcNGJ9zrrxidsFXC70hDfYNrNZ5VQ9g,341
|
|
43
|
+
clearskies_gitlab/rest/models/gitlab_rest_group_variable.py,sha256=ixs4o6BV31sepagW46d4ipunn-szKNCHtlqKB6IxG5o,607
|
|
44
|
+
clearskies_gitlab/rest/models/gitlab_rest_group_variable_reference.py,sha256=rGgqrOY-HCxpsstDb1_Hy_KwPt6Z37xxIJnBRD9eXXw,341
|
|
45
|
+
clearskies_gitlab/rest/models/gitlab_rest_namespace.py,sha256=AIh56mDeB8LtrKVhWEtZ1Gop_V9enBdObjpKfK5b-0g,2484
|
|
46
|
+
clearskies_gitlab/rest/models/gitlab_rest_project.py,sha256=Nc6u-R3Pb4NO6pZUYtZ6RYkygqizyiTybIkpFN47aXM,6687
|
|
47
|
+
clearskies_gitlab/rest/models/gitlab_rest_project_approval_config.py,sha256=E1Yhk4kWQfWA1Peyml0yrJuJeqkFfMvYffQ7vmfNmoc,1099
|
|
48
|
+
clearskies_gitlab/rest/models/gitlab_rest_project_approval_config_reference.py,sha256=Gfs1iFo8VOH8llpcdOquZ7uNA5qFv6LNaGx-glTC3AM,383
|
|
49
|
+
clearskies_gitlab/rest/models/gitlab_rest_project_approval_rule.py,sha256=W1bHWl1kv9Avs3oBtOAowVpVB0-pe2mXGDFyQuxUnJM,1249
|
|
50
|
+
clearskies_gitlab/rest/models/gitlab_rest_project_approval_rule_reference.py,sha256=VTWBcv225UQyxFr8ZdTpgEdXCiTerYGIbYyGdt1j-tc,373
|
|
51
|
+
clearskies_gitlab/rest/models/gitlab_rest_project_member.py,sha256=StXXvQ4Hs5VV2ngEMGvhdKwbXwlOu1ABbeQ-rfM3r48,717
|
|
52
|
+
clearskies_gitlab/rest/models/gitlab_rest_project_member_reference.py,sha256=nNz0Qm5Q5Esyugk9IiNe3Y2Q9SNwWPiLxpOQuiMNAMk,341
|
|
53
|
+
clearskies_gitlab/rest/models/gitlab_rest_project_protected_branch.py,sha256=95peeiCkBQCCsYWidIWWNAywBnPh1w9NUzVtrOIQwHY,1031
|
|
54
|
+
clearskies_gitlab/rest/models/gitlab_rest_project_protected_branch_reference.py,sha256=TCP892aJDxn_YKR0wJFfOTfkwOHoDAc6uBvrDYO5fl8,388
|
|
55
|
+
clearskies_gitlab/rest/models/gitlab_rest_project_reference.py,sha256=Rg3-fjN9WHoIsubKO3Un1trqPU1-ZoZAkE6jW33P568,302
|
|
56
|
+
clearskies_gitlab/rest/models/gitlab_rest_project_repository_commit.py,sha256=h9Q3b3YtFXpCC_OVqckohm1tCZwGCfojBL3qo6I3oSw,1532
|
|
57
|
+
clearskies_gitlab/rest/models/gitlab_rest_project_repository_commit_diff.py,sha256=xUxnA6TGOfwSraojid06V1wXOF-Tqp8JXw0a7Kg50nc,894
|
|
58
|
+
clearskies_gitlab/rest/models/gitlab_rest_project_repository_contributor.py,sha256=QEvGxMOHIKFPoxjo9OzESaJ_syHij9o_dubFvhacIJo,971
|
|
59
|
+
clearskies_gitlab/rest/models/gitlab_rest_project_repository_contributor_reference.py,sha256=yEIO424xhYcN7YpyAVXseMVET48RZ0hpu_WOOZTf3LA,418
|
|
60
|
+
clearskies_gitlab/rest/models/gitlab_rest_project_repository_file.py,sha256=0yYNi2zgUjl4UAjUvDaJ92wIutxOEpzBKNE-7dBN3ZQ,1112
|
|
61
|
+
clearskies_gitlab/rest/models/gitlab_rest_project_repository_file_raw.py,sha256=oExYzvAT6mUxY5mkw-nkAUZh-MmWy5lXq9UcFRst7nA,895
|
|
62
|
+
clearskies_gitlab/rest/models/gitlab_rest_project_repository_file_reference.py,sha256=WiK7aOhBZD_8HRvvlTQ6oWk3hXOJAyfEKdqmCIUIM9M,383
|
|
63
|
+
clearskies_gitlab/rest/models/gitlab_rest_project_variable.py,sha256=rfmk38ndgtdzoaoUFxRDPLhrRc5JWuNa2B2mWO1q4aM,813
|
|
64
|
+
clearskies_gitlab/rest/models/gitlab_rest_project_variable_reference.py,sha256=6P-9TbvhYMZGoBMM-BFFDFKsN40LEXd9FKYNTFpNayU,351
|
|
65
|
+
clear_skies_gitlab-2.0.3.dist-info/METADATA,sha256=NZnrQFwjEuoE0637A1J7ewQjNNAitVQc714US84tP7Q,2143
|
|
66
|
+
clear_skies_gitlab-2.0.3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
67
|
+
clear_skies_gitlab-2.0.3.dist-info/licenses/LICENSE,sha256=S7gzTni6Tje0gBaQnXxs5BXdrBBKQ9eAVWjMHZccST8,1069
|
|
68
|
+
clear_skies_gitlab-2.0.3.dist-info/RECORD,,
|
clearskies_gitlab/__init__.py
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
from clearskies_gitlab import
|
|
1
|
+
from clearskies_gitlab import defaults, exceptions, graphql, rest
|
|
2
2
|
|
|
3
|
-
__all__ = ["
|
|
3
|
+
__all__ = ["rest", "graphql", "defaults", "exceptions"]
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
from clearskies_gitlab.defaults.gitlab_default_auth import GitlabDefaultAuth
|
|
2
|
-
from clearskies_gitlab.defaults.
|
|
2
|
+
from clearskies_gitlab.defaults.gitlab_default_host import GitlabDefaultHost
|
|
3
|
+
from clearskies_gitlab.defaults.gitlab_graphql_client import GitlabDefaultGraphqlClient
|
|
3
4
|
|
|
4
5
|
__all__ = [
|
|
5
6
|
"GitlabDefaultAuth",
|
|
6
|
-
"
|
|
7
|
+
"GitlabDefaultHost",
|
|
8
|
+
"GitlabDefaultGraphqlClient",
|
|
7
9
|
]
|
|
@@ -2,6 +2,9 @@ import clearskies
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
class GitlabDefaultAuth(clearskies.di.AdditionalConfigAutoImport):
|
|
5
|
+
"""Provide default Gitlab authentication from environment."""
|
|
6
|
+
|
|
5
7
|
def provide_gitlab_auth(self, environment: clearskies.Environment):
|
|
8
|
+
"""Provide the Gitlab authentication from environment."""
|
|
6
9
|
secret_key = environment.get("GITLAB_AUTH_KEY", True)
|
|
7
10
|
return clearskies.authentication.SecretBearer(secret_key=secret_key, header_prefix="Bearer ")
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import clearskies
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class GitlabDefaultHost(clearskies.di.AdditionalConfigAutoImport):
|
|
5
|
+
"""Provide default GitLab Host from environment."""
|
|
6
|
+
|
|
7
|
+
def provide_gitlab_host(self, environment: clearskies.Environment):
|
|
8
|
+
"""Provide the GitLab host from environment or default."""
|
|
9
|
+
gitlab_host = environment.get("GITLAB_HOST", True)
|
|
10
|
+
return gitlab_host if gitlab_host else "https://gitlab.com/"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import clearskies
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class GitlabDefaultGraphqlClient(clearskies.di.AdditionalConfigAutoImport):
|
|
5
|
+
"""Provide default Gitlab authentication from environment."""
|
|
6
|
+
|
|
7
|
+
def provide_gitlab_graphql_client(
|
|
8
|
+
self,
|
|
9
|
+
gitlab_auth: clearskies.authentication.Authentication,
|
|
10
|
+
gitlab_host: str,
|
|
11
|
+
environment: clearskies.Environment,
|
|
12
|
+
):
|
|
13
|
+
"""Provide the Gitlab authentication from environment."""
|
|
14
|
+
return clearskies.clients.GraphqlClient(
|
|
15
|
+
endpoint=f"{gitlab_host.rstrip('/')}/api/graphql",
|
|
16
|
+
authentication=gitlab_auth,
|
|
17
|
+
timeout=30,
|
|
18
|
+
)
|
|
@@ -47,4 +47,5 @@ class GitlabParamMissingError(ValueError):
|
|
|
47
47
|
"""Error if param is missing."""
|
|
48
48
|
|
|
49
49
|
def __init__(self, param_name: str, table_name: str) -> None:
|
|
50
|
+
"""Create error with param and table name."""
|
|
50
51
|
super().__init__(f"Must provide the {param_name} to add the member to when updating a {table_name}")
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from clearskies import configs, decorators
|
|
4
|
+
from clearskies.backends import GraphqlBackend
|
|
5
|
+
from clearskies.clients.graphql_client import GraphqlClient
|
|
6
|
+
from clearskies.di import inject
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class GitlabGraphqlBackend(GraphqlBackend):
|
|
10
|
+
"""Backend to gitlab using graphql."""
|
|
11
|
+
|
|
12
|
+
graphql_client_name = configs.String(default="gitlab_graphql_client")
|
|
13
|
+
|
|
14
|
+
api_to_model_map = configs.AnyDict(default={})
|
|
15
|
+
pagination_parameter_name = configs.String(default="page")
|
|
16
|
+
api_casing = configs.String(default="camelCase")
|
|
17
|
+
model_casing = configs.String(default="snake_case")
|
|
18
|
+
|
|
19
|
+
di = inject.Di()
|
|
20
|
+
|
|
21
|
+
@decorators.parameters_to_properties
|
|
22
|
+
def __init__(
|
|
23
|
+
self,
|
|
24
|
+
graphql_client: GraphqlClient | None = None,
|
|
25
|
+
graphql_client_name: str = "gitlab_graphql_client",
|
|
26
|
+
root_field: str = "",
|
|
27
|
+
pagination_style: str = "cursor",
|
|
28
|
+
api_case: str = "camelCase",
|
|
29
|
+
model_case: str = "snake_case",
|
|
30
|
+
is_collection: bool | None = None,
|
|
31
|
+
max_relationship_depth: int = 2,
|
|
32
|
+
relationship_limit: int = 10,
|
|
33
|
+
use_connection_for_relationships: bool = True,
|
|
34
|
+
id_argument_name: str | None = None,
|
|
35
|
+
id_argument_is_array: bool = False,
|
|
36
|
+
id_format_pattern: str = "",
|
|
37
|
+
):
|
|
38
|
+
self.finalize_and_validate_configuration()
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from clearskies_gitlab.graphql.models.gitlab_container_repository import GitlabContainerRepository
|
|
4
|
+
from clearskies_gitlab.graphql.models.gitlab_container_repository_tag import GitlabContainerRepositoryTag
|
|
5
|
+
from clearskies_gitlab.graphql.models.gitlab_group import GitlabGroup
|
|
6
|
+
from clearskies_gitlab.graphql.models.gitlab_project import GitlabProject
|
|
7
|
+
|
|
8
|
+
__all__ = [
|
|
9
|
+
"GitlabContainerRepository",
|
|
10
|
+
"GitlabContainerRepositoryTag",
|
|
11
|
+
"GitlabProject",
|
|
12
|
+
"GitlabGroup",
|
|
13
|
+
]
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from clearskies import Model
|
|
2
|
+
from clearskies.columns import BelongsToId, BelongsToModel, Datetime, HasMany, String
|
|
3
|
+
|
|
4
|
+
from clearskies_gitlab.graphql.backends import GitlabGraphqlBackend
|
|
5
|
+
from clearskies_gitlab.graphql.models import gitlab_container_repository_tag_reference, gitlab_project_reference
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class GitlabContainerRepository(Model):
|
|
9
|
+
"""Model for gitlab container repositories via GQL."""
|
|
10
|
+
|
|
11
|
+
id_column_name: str = "id"
|
|
12
|
+
|
|
13
|
+
backend = GitlabGraphqlBackend(
|
|
14
|
+
root_field="containerRepositories",
|
|
15
|
+
id_argument_is_array=True,
|
|
16
|
+
id_format_pattern="gid://gitlab/ContainerRepository/{id}",
|
|
17
|
+
id_argument_name="ids",
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
@classmethod
|
|
21
|
+
def destination_name(cls) -> str:
|
|
22
|
+
"""Return the slug of the api endpoint for this model."""
|
|
23
|
+
return "containerRepository"
|
|
24
|
+
|
|
25
|
+
name = String()
|
|
26
|
+
location = String()
|
|
27
|
+
path = String()
|
|
28
|
+
created_at = Datetime()
|
|
29
|
+
project_id = BelongsToId(gitlab_project_reference.GitlabProjectReference)
|
|
30
|
+
project = BelongsToModel("project_id")
|
|
31
|
+
tags = HasMany(
|
|
32
|
+
gitlab_container_repository_tag_reference.GitlabContainerRepositoryTagReference,
|
|
33
|
+
foreign_column_name="containerRepositoryId",
|
|
34
|
+
)
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
class GitlabContainerRepositoryReference:
|
|
2
|
+
"""Reference to GitlabContainerRepository model."""
|
|
3
|
+
|
|
4
|
+
def get_model_class(self) -> type:
|
|
5
|
+
"""Return the model class this reference points to."""
|
|
6
|
+
from clearskies_gitlab.graphql.models import gitlab_container_repository
|
|
7
|
+
|
|
8
|
+
return gitlab_container_repository.GitlabContainerRepository
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
from clearskies import Model
|
|
2
|
+
from clearskies.columns import BelongsToId, BelongsToModel, Datetime, String
|
|
3
|
+
|
|
4
|
+
from clearskies_gitlab.graphql.backends import GitlabGraphqlBackend
|
|
5
|
+
from clearskies_gitlab.graphql.models import gitlab_container_repository_reference
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class GitlabContainerRepositoryTag(Model):
|
|
9
|
+
"""Model for gitlab container repositories via GQL."""
|
|
10
|
+
|
|
11
|
+
id_column_name: str = "name"
|
|
12
|
+
|
|
13
|
+
backend = GitlabGraphqlBackend(
|
|
14
|
+
root_field="containerRepositories",
|
|
15
|
+
id_argument_is_array=True,
|
|
16
|
+
id_format_pattern="gid://gitlab/ContainerRepository/{id}",
|
|
17
|
+
id_argument_name="ids",
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
@classmethod
|
|
21
|
+
def destination_name(cls) -> str:
|
|
22
|
+
"""Return the slug of the api endpoint for this model."""
|
|
23
|
+
return "tag"
|
|
24
|
+
|
|
25
|
+
name = String()
|
|
26
|
+
digest = String()
|
|
27
|
+
location = String()
|
|
28
|
+
path = String()
|
|
29
|
+
created_at = Datetime()
|
|
30
|
+
published_at = Datetime()
|
|
31
|
+
container_repository_id = BelongsToId(gitlab_container_repository_reference.GitlabContainerRepositoryReference)
|
|
32
|
+
container_repository = BelongsToModel("container_repository_id")
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
class GitlabContainerRepositoryTagReference:
|
|
2
|
+
"""Reference to GitlabContainerRepositoryTag model."""
|
|
3
|
+
|
|
4
|
+
def get_model_class(self) -> type:
|
|
5
|
+
"""Return the model class this reference points to."""
|
|
6
|
+
from clearskies_gitlab.graphql.models import gitlab_container_repository_tag
|
|
7
|
+
|
|
8
|
+
return gitlab_container_repository_tag.GitlabContainerRepositoryTag
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from clearskies import Model
|
|
4
|
+
|
|
5
|
+
from clearskies_gitlab.graphql.backends import GitlabGraphqlBackend
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class GitlabGroup(Model):
|
|
9
|
+
"""Model for gitlab projects via GQL."""
|
|
10
|
+
|
|
11
|
+
gitlab_id_pattern: str = "gid://gitlab/Group/[ID]"
|
|
12
|
+
|
|
13
|
+
id_column_name: str = "id"
|
|
14
|
+
backend = GitlabGraphqlBackend(
|
|
15
|
+
root_field="groups",
|
|
16
|
+
id_argument_is_array=True,
|
|
17
|
+
id_format_pattern="gid://gitlab/Project/{id}",
|
|
18
|
+
id_argument_name="ids",
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
@classmethod
|
|
22
|
+
def destination_name(cls) -> str:
|
|
23
|
+
"""Return the slug of the api endpoint for this model."""
|
|
24
|
+
return "group"
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from clearskies import Model
|
|
4
|
+
from clearskies.columns import String
|
|
5
|
+
|
|
6
|
+
from clearskies_gitlab.graphql.backends import GitlabGraphqlBackend
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class GitlabProject(Model):
|
|
10
|
+
"""Model for gitlab projects via GQL."""
|
|
11
|
+
|
|
12
|
+
id_column_name: str = "id"
|
|
13
|
+
backend = GitlabGraphqlBackend(
|
|
14
|
+
root_field="projects",
|
|
15
|
+
id_argument_is_array=True,
|
|
16
|
+
id_format_pattern="gid://gitlab/Project/{id}",
|
|
17
|
+
id_argument_name="ids",
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
@classmethod
|
|
21
|
+
def destination_name(cls) -> str:
|
|
22
|
+
"""Return the slug of the api endpoint for this model."""
|
|
23
|
+
return "projects"
|
|
24
|
+
|
|
25
|
+
id = String()
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
class GitlabProjectReference:
|
|
2
|
+
"""Reference to GitlabProject model."""
|
|
3
|
+
|
|
4
|
+
def get_model_class(self) -> type:
|
|
5
|
+
"""Return the model class this reference points to."""
|
|
6
|
+
from clearskies_gitlab.graphql.models import gitlab_project
|
|
7
|
+
|
|
8
|
+
return gitlab_project.GitlabProject
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from clearskies_gitlab.rest import backends, models
|
|
4
|
+
from clearskies_gitlab.rest.gitlab_cicd_variable import GitlabCICDVariable
|
|
5
|
+
from clearskies_gitlab.rest.gitlab_member import GitlabMember
|
|
6
|
+
|
|
7
|
+
__all__ = [
|
|
8
|
+
"backends",
|
|
9
|
+
"models",
|
|
10
|
+
"GitlabMember",
|
|
11
|
+
"GitlabCICDVariable",
|
|
12
|
+
]
|
|
@@ -1,23 +1,16 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
import logging
|
|
4
3
|
import urllib
|
|
5
|
-
from
|
|
6
|
-
from typing import TYPE_CHECKING, Any, cast
|
|
4
|
+
from typing import TYPE_CHECKING, Any
|
|
7
5
|
|
|
8
|
-
import
|
|
9
|
-
from clearskies import Column, Model, configs
|
|
6
|
+
from clearskies import configs
|
|
10
7
|
from clearskies.backends import ApiBackend
|
|
11
8
|
from clearskies.decorators import parameters_to_properties
|
|
12
9
|
from clearskies.di import inject
|
|
13
|
-
from clearskies.functional import string
|
|
14
10
|
from clearskies.query import Query
|
|
15
11
|
from requests.structures import CaseInsensitiveDict
|
|
16
12
|
|
|
17
|
-
from clearskies_gitlab.exceptions import gitlab_error
|
|
18
|
-
|
|
19
13
|
if TYPE_CHECKING:
|
|
20
|
-
from clearskies import model
|
|
21
14
|
from clearskies.authentication import Authentication
|
|
22
15
|
from clearskies.query import Query
|
|
23
16
|
|
|
@@ -25,8 +18,8 @@ if TYPE_CHECKING:
|
|
|
25
18
|
class GitlabRestBackend(ApiBackend):
|
|
26
19
|
"""Backend for Gitlab.com."""
|
|
27
20
|
|
|
28
|
-
|
|
29
|
-
authentication = inject.ByName("gitlab_auth", cache=False)
|
|
21
|
+
gitlab_host = inject.ByName("gitlab_host", cache=True) # type: ignore[assignment]
|
|
22
|
+
authentication = inject.ByName("gitlab_auth", cache=False) # type: ignore[assignment]
|
|
30
23
|
requests = inject.Requests()
|
|
31
24
|
_auth_headers: dict[str, str] = {}
|
|
32
25
|
|
|
@@ -47,6 +40,17 @@ class GitlabRestBackend(ApiBackend):
|
|
|
47
40
|
):
|
|
48
41
|
self.finalize_and_validate_configuration()
|
|
49
42
|
|
|
43
|
+
@property
|
|
44
|
+
def base_url(self) -> str:
|
|
45
|
+
"""
|
|
46
|
+
Docstring for base_url.
|
|
47
|
+
|
|
48
|
+
:param self: Description
|
|
49
|
+
:return: Description
|
|
50
|
+
:rtype: str
|
|
51
|
+
"""
|
|
52
|
+
return f"{self.gitlab_host.rstrip('/')}/api/v4"
|
|
53
|
+
|
|
50
54
|
def count_method(self, query: Query) -> str:
|
|
51
55
|
"""Return the request method to use when making a request for a record count."""
|
|
52
56
|
return "HEAD"
|
|
@@ -90,6 +94,7 @@ class GitlabRestBackend(ApiBackend):
|
|
|
90
94
|
def conditions_to_request_parameters(
|
|
91
95
|
self, query: Query, used_routing_parameters: list[str]
|
|
92
96
|
) -> tuple[str, dict[str, str], dict[str, Any]]:
|
|
97
|
+
"""Convert query conditions to request parameters."""
|
|
93
98
|
route_id = ""
|
|
94
99
|
|
|
95
100
|
url_parameters = {}
|
|
@@ -111,7 +116,7 @@ class GitlabRestBackend(ApiBackend):
|
|
|
111
116
|
# self,
|
|
112
117
|
# next_page_data: dict[str, Any],
|
|
113
118
|
# query: Query,
|
|
114
|
-
# response: requests.Response,
|
|
119
|
+
# response: requests.Response,
|
|
115
120
|
# ) -> None:
|
|
116
121
|
# """
|
|
117
122
|
# Update the next_page_data dictionary with the appropriate data needed to fetch the next page of records.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from clearskies import Model
|
|
4
|
+
from clearskies.columns import Boolean, Datetime, Integer, Json, String
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class GitlabBranchRule(Model):
|
|
8
|
+
"""Model for GitLab branch rules."""
|
|
9
|
+
|
|
10
|
+
id = Integer()
|
|
11
|
+
name = String()
|
|
12
|
+
protected = Boolean()
|
|
13
|
+
developers_can_push = Boolean()
|
|
14
|
+
developers_can_merge = Boolean()
|
|
15
|
+
can_push = Boolean()
|
|
16
|
+
default = Boolean()
|
|
17
|
+
created_at = Datetime()
|
|
18
|
+
updated_at = Datetime()
|
|
19
|
+
code_owner_approval_required = Boolean()
|
|
20
|
+
unprotect_access_levels = Json()
|
|
21
|
+
push_access_levels = Json()
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from clearskies_gitlab.rest.models.gitlab_rest_advanced_search import GitlabRestAdvancedSearch
|
|
4
|
+
from clearskies_gitlab.rest.models.gitlab_rest_advanced_search_blob import GitlabRestAdvancedSearchBlob
|
|
5
|
+
from clearskies_gitlab.rest.models.gitlab_rest_current_user import GitlabRestCurrentUser
|
|
6
|
+
from clearskies_gitlab.rest.models.gitlab_rest_group import GitlabRestGroup
|
|
7
|
+
from clearskies_gitlab.rest.models.gitlab_rest_group_access_token import GitlabRestGroupAccessToken
|
|
8
|
+
from clearskies_gitlab.rest.models.gitlab_rest_group_project import GitlabRestGroupProject
|
|
9
|
+
from clearskies_gitlab.rest.models.gitlab_rest_group_search import GitlabRestGroupSearch
|
|
10
|
+
from clearskies_gitlab.rest.models.gitlab_rest_group_search_blob import GitlabRestGroupSearchBlob
|
|
11
|
+
from clearskies_gitlab.rest.models.gitlab_rest_group_subgroup import GitlabRestGroupSubgroup
|
|
12
|
+
from clearskies_gitlab.rest.models.gitlab_rest_group_variable import GitlabRestGroupVariable
|
|
13
|
+
from clearskies_gitlab.rest.models.gitlab_rest_project import GitlabRestProject
|
|
14
|
+
from clearskies_gitlab.rest.models.gitlab_rest_project_approval_config import GitlabRestProjectApprovalConfig
|
|
15
|
+
from clearskies_gitlab.rest.models.gitlab_rest_project_approval_rule import GitlabRestProjectApprovalRule
|
|
16
|
+
from clearskies_gitlab.rest.models.gitlab_rest_project_member import GitlabRestProjectMember
|
|
17
|
+
from clearskies_gitlab.rest.models.gitlab_rest_project_protected_branch import GitlabRestProjectProtectedBranch
|
|
18
|
+
from clearskies_gitlab.rest.models.gitlab_rest_project_repository_commit import GitlabRestProjectRepositoryCommit
|
|
19
|
+
from clearskies_gitlab.rest.models.gitlab_rest_project_repository_commit_diff import (
|
|
20
|
+
GitlabRestProjectRepositoryCommitDiff,
|
|
21
|
+
)
|
|
22
|
+
from clearskies_gitlab.rest.models.gitlab_rest_project_repository_contributor import (
|
|
23
|
+
GitlabRestProjectRepositoryContributor,
|
|
24
|
+
)
|
|
25
|
+
from clearskies_gitlab.rest.models.gitlab_rest_project_repository_file import GitlabRestProjectRepositoryFile
|
|
26
|
+
from clearskies_gitlab.rest.models.gitlab_rest_project_variable import GitlabRestProjectVariable
|
|
27
|
+
|
|
28
|
+
__all__ = [
|
|
29
|
+
"GitlabRestAdvancedSearch",
|
|
30
|
+
"GitlabRestAdvancedSearchBlob",
|
|
31
|
+
"GitlabRestCurrentUser",
|
|
32
|
+
"GitlabRestGroup",
|
|
33
|
+
"GitlabRestGroupAccessToken",
|
|
34
|
+
"GitlabRestGroupProject",
|
|
35
|
+
"GitlabRestGroupSearch",
|
|
36
|
+
"GitlabRestGroupSearchBlob",
|
|
37
|
+
"GitlabRestGroupSubgroup",
|
|
38
|
+
"GitlabRestGroupVariable",
|
|
39
|
+
"GitlabRestProject",
|
|
40
|
+
"GitlabRestProjectApprovalConfig",
|
|
41
|
+
"GitlabRestProjectApprovalRule",
|
|
42
|
+
"GitlabRestProjectMember",
|
|
43
|
+
"GitlabRestProjectProtectedBranch",
|
|
44
|
+
"GitlabRestProjectRepositoryCommit",
|
|
45
|
+
"GitlabRestProjectRepositoryCommitDiff",
|
|
46
|
+
"GitlabRestProjectRepositoryContributor",
|
|
47
|
+
"GitlabRestProjectRepositoryFile",
|
|
48
|
+
"GitlabRestProjectVariable",
|
|
49
|
+
]
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from
|
|
4
|
-
from typing import Any, Self
|
|
3
|
+
from typing import Self
|
|
5
4
|
|
|
5
|
+
from clearskies import Model
|
|
6
6
|
from clearskies.columns import Boolean, Json, Select, String
|
|
7
7
|
|
|
8
|
-
from clearskies_gitlab.
|
|
8
|
+
from clearskies_gitlab.rest.backends import GitlabRestBackend
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
class GitlabRestAdvancedSearch(
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
class GitlabRestAdvancedSearch(Model):
|
|
12
|
+
"""Model for advanced search."""
|
|
13
|
+
|
|
14
|
+
backend = GitlabRestBackend()
|
|
15
15
|
|
|
16
16
|
@classmethod
|
|
17
17
|
def destination_name(cls: type[Self]) -> str:
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from collections import OrderedDict
|
|
4
|
-
from typing import Any
|
|
5
|
-
|
|
6
3
|
from clearskies.columns import BelongsToId, BelongsToModel, Integer, String
|
|
7
4
|
|
|
8
|
-
from clearskies_gitlab.models
|
|
5
|
+
from clearskies_gitlab.rest.models import gitlab_rest_advanced_search, gitlab_rest_project
|
|
9
6
|
|
|
10
7
|
|
|
11
8
|
class GitlabRestAdvancedSearchBlob(
|