python-gitlab 8.0.0__py3-none-any.whl → 8.2.0__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.
- gitlab/_version.py +1 -1
- gitlab/types.py +37 -3
- gitlab/utils.py +9 -1
- gitlab/v4/objects/__init__.py +2 -0
- gitlab/v4/objects/feature_flag_user_lists.py +27 -0
- gitlab/v4/objects/feature_flags.py +106 -0
- gitlab/v4/objects/merge_request_approvals.py +7 -1
- gitlab/v4/objects/projects.py +4 -0
- gitlab/v4/objects/repositories.py +2 -0
- gitlab/v4/objects/runners.py +1 -1
- {python_gitlab-8.0.0.dist-info → python_gitlab-8.2.0.dist-info}/METADATA +1 -1
- {python_gitlab-8.0.0.dist-info → python_gitlab-8.2.0.dist-info}/RECORD +17 -15
- {python_gitlab-8.0.0.dist-info → python_gitlab-8.2.0.dist-info}/WHEEL +1 -1
- {python_gitlab-8.0.0.dist-info → python_gitlab-8.2.0.dist-info}/entry_points.txt +0 -0
- {python_gitlab-8.0.0.dist-info → python_gitlab-8.2.0.dist-info}/licenses/AUTHORS +0 -0
- {python_gitlab-8.0.0.dist-info → python_gitlab-8.2.0.dist-info}/licenses/COPYING +0 -0
- {python_gitlab-8.0.0.dist-info → python_gitlab-8.2.0.dist-info}/top_level.txt +0 -0
gitlab/_version.py
CHANGED
gitlab/types.py
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import dataclasses
|
|
4
|
+
import json
|
|
4
5
|
from typing import Any, TYPE_CHECKING
|
|
5
6
|
|
|
7
|
+
from gitlab import exceptions
|
|
8
|
+
|
|
6
9
|
|
|
7
10
|
@dataclasses.dataclass(frozen=True)
|
|
8
11
|
class RequiredOptional:
|
|
@@ -36,6 +39,13 @@ class RequiredOptional:
|
|
|
36
39
|
|
|
37
40
|
|
|
38
41
|
class GitlabAttribute:
|
|
42
|
+
# Used in utils._transform_types() to decide if we should call get_for_api()
|
|
43
|
+
# on the attribute when transform_data is False (e.g. for POST/PUT/PATCH).
|
|
44
|
+
#
|
|
45
|
+
# This allows us to force transformation of data even when sending JSON bodies,
|
|
46
|
+
# which is useful for types like CommaSeparatedStringAttribute.
|
|
47
|
+
transform_in_body = False
|
|
48
|
+
|
|
39
49
|
def __init__(self, value: Any = None) -> None:
|
|
40
50
|
self._value = value
|
|
41
51
|
|
|
@@ -49,6 +59,16 @@ class GitlabAttribute:
|
|
|
49
59
|
return (key, self._value)
|
|
50
60
|
|
|
51
61
|
|
|
62
|
+
class JsonAttribute(GitlabAttribute):
|
|
63
|
+
def set_from_cli(self, cli_value: str) -> None:
|
|
64
|
+
try:
|
|
65
|
+
self._value = json.loads(cli_value)
|
|
66
|
+
except (ValueError, TypeError) as e:
|
|
67
|
+
raise exceptions.GitlabParsingError(
|
|
68
|
+
f"Could not parse JSON data: {e}"
|
|
69
|
+
) from e
|
|
70
|
+
|
|
71
|
+
|
|
52
72
|
class _ListArrayAttribute(GitlabAttribute):
|
|
53
73
|
"""Helper class to support `list` / `array` types."""
|
|
54
74
|
|
|
@@ -82,9 +102,23 @@ class ArrayAttribute(_ListArrayAttribute):
|
|
|
82
102
|
|
|
83
103
|
|
|
84
104
|
class CommaSeparatedListAttribute(_ListArrayAttribute):
|
|
85
|
-
"""
|
|
86
|
-
|
|
87
|
-
|
|
105
|
+
"""
|
|
106
|
+
For values which are sent to the server as a Comma Separated Values (CSV) string
|
|
107
|
+
in query parameters (GET), but as a list/array in JSON bodies (POST/PUT).
|
|
108
|
+
"""
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
class CommaSeparatedStringAttribute(_ListArrayAttribute):
|
|
112
|
+
"""
|
|
113
|
+
For values which are sent to the server as a Comma Separated Values (CSV) string.
|
|
114
|
+
Unlike CommaSeparatedListAttribute, this type ensures the value is converted
|
|
115
|
+
to a string even in JSON bodies (POST/PUT requests).
|
|
116
|
+
"""
|
|
117
|
+
|
|
118
|
+
# Used in utils._transform_types() to ensure the value is converted to a string
|
|
119
|
+
# via get_for_api() even when transform_data is False (e.g. for POST/PUT/PATCH).
|
|
120
|
+
# This is needed because some APIs require a CSV string instead of a JSON array.
|
|
121
|
+
transform_in_body = True
|
|
88
122
|
|
|
89
123
|
|
|
90
124
|
class LowercaseStringAttribute(GitlabAttribute):
|
gitlab/utils.py
CHANGED
|
@@ -198,7 +198,15 @@ def _transform_types(
|
|
|
198
198
|
files[attr_name] = (key, data.pop(attr_name))
|
|
199
199
|
continue
|
|
200
200
|
|
|
201
|
-
|
|
201
|
+
# If transform_data is False, it means we are preparing data for a JSON body
|
|
202
|
+
# (POST/PUT/PATCH). In this case, we normally skip transformation because
|
|
203
|
+
# most types (like ArrayAttribute) only need transformation for query
|
|
204
|
+
# parameters (GET).
|
|
205
|
+
#
|
|
206
|
+
# However, some types (like CommaSeparatedStringAttribute) need to be
|
|
207
|
+
# transformed even in JSON bodies (e.g. converting a list to a CSV string).
|
|
208
|
+
# The 'transform_in_body' flag on the attribute class controls this behavior.
|
|
209
|
+
if not transform_data and not gitlab_attribute.transform_in_body:
|
|
202
210
|
continue
|
|
203
211
|
|
|
204
212
|
if isinstance(gitlab_attribute, types.GitlabAttribute):
|
gitlab/v4/objects/__init__.py
CHANGED
|
@@ -24,6 +24,8 @@ from .environments import *
|
|
|
24
24
|
from .epics import *
|
|
25
25
|
from .events import *
|
|
26
26
|
from .export_import import *
|
|
27
|
+
from .feature_flag_user_lists import *
|
|
28
|
+
from .feature_flags import *
|
|
27
29
|
from .features import *
|
|
28
30
|
from .files import *
|
|
29
31
|
from .geo_nodes import *
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"""
|
|
2
|
+
GitLab API:
|
|
3
|
+
https://docs.gitlab.com/api/feature_flag_user_lists
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from gitlab import types
|
|
9
|
+
from gitlab.base import RESTObject
|
|
10
|
+
from gitlab.mixins import CRUDMixin, ObjectDeleteMixin, SaveMixin
|
|
11
|
+
from gitlab.types import RequiredOptional
|
|
12
|
+
|
|
13
|
+
__all__ = ["ProjectFeatureFlagUserList", "ProjectFeatureFlagUserListManager"]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class ProjectFeatureFlagUserList(SaveMixin, ObjectDeleteMixin, RESTObject):
|
|
17
|
+
_id_attr = "iid"
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class ProjectFeatureFlagUserListManager(CRUDMixin[ProjectFeatureFlagUserList]):
|
|
21
|
+
_path = "/projects/{project_id}/feature_flags_user_lists"
|
|
22
|
+
_obj_cls = ProjectFeatureFlagUserList
|
|
23
|
+
_from_parent_attrs = {"project_id": "id"}
|
|
24
|
+
_create_attrs = RequiredOptional(required=("name", "user_xids"))
|
|
25
|
+
_update_attrs = RequiredOptional(optional=("name", "user_xids"))
|
|
26
|
+
_list_filters = ("search",)
|
|
27
|
+
_types = {"user_xids": types.CommaSeparatedStringAttribute}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"""
|
|
2
|
+
GitLab API:
|
|
3
|
+
https://docs.gitlab.com/api/feature_flags
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from typing import Any
|
|
9
|
+
|
|
10
|
+
from gitlab import types, utils
|
|
11
|
+
from gitlab.base import RESTObject
|
|
12
|
+
from gitlab.mixins import CRUDMixin, ObjectDeleteMixin, SaveMixin
|
|
13
|
+
from gitlab.types import RequiredOptional
|
|
14
|
+
|
|
15
|
+
__all__ = ["ProjectFeatureFlag", "ProjectFeatureFlagManager"]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class ProjectFeatureFlag(SaveMixin, ObjectDeleteMixin, RESTObject):
|
|
19
|
+
_id_attr = "name"
|
|
20
|
+
manager: ProjectFeatureFlagManager
|
|
21
|
+
|
|
22
|
+
def _get_save_url_id(self) -> str | int | None:
|
|
23
|
+
"""Get the ID used to construct the API URL for the save operation.
|
|
24
|
+
|
|
25
|
+
For renames, this must be the *original* name of the flag. For other
|
|
26
|
+
updates, it is the current name.
|
|
27
|
+
"""
|
|
28
|
+
if self._id_attr in self._updated_attrs:
|
|
29
|
+
# If the name is being changed, use the original name for the URL.
|
|
30
|
+
obj_id = self._attrs.get(self._id_attr)
|
|
31
|
+
if isinstance(obj_id, str):
|
|
32
|
+
return utils.EncodedId(obj_id)
|
|
33
|
+
return obj_id
|
|
34
|
+
return self.encoded_id
|
|
35
|
+
|
|
36
|
+
def save(self, **kwargs: Any) -> dict[str, Any] | None:
|
|
37
|
+
"""Save the changes made to the object to the server.
|
|
38
|
+
|
|
39
|
+
This is the standard method to use when updating a feature flag object
|
|
40
|
+
that you have already retrieved.
|
|
41
|
+
|
|
42
|
+
It is overridden here to correctly handle renaming. When `name` is
|
|
43
|
+
changed, the API requires the *original* name in the URL, and this
|
|
44
|
+
method provides it.
|
|
45
|
+
|
|
46
|
+
Args:
|
|
47
|
+
**kwargs: Extra options to send to the server (e.g. sudo)
|
|
48
|
+
|
|
49
|
+
Returns:
|
|
50
|
+
The new object data (*not* a RESTObject)
|
|
51
|
+
|
|
52
|
+
Raises:
|
|
53
|
+
GitlabAuthenticationError: If authentication is not correct
|
|
54
|
+
GitlabUpdateError: If the server cannot perform the request
|
|
55
|
+
"""
|
|
56
|
+
updated_data = self._get_updated_data()
|
|
57
|
+
if not updated_data:
|
|
58
|
+
return None
|
|
59
|
+
|
|
60
|
+
obj_id = self._get_save_url_id()
|
|
61
|
+
server_data = self.manager.update(obj_id, updated_data, **kwargs)
|
|
62
|
+
self._update_attrs(server_data)
|
|
63
|
+
return server_data
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class ProjectFeatureFlagManager(CRUDMixin[ProjectFeatureFlag]):
|
|
67
|
+
_path = "/projects/{project_id}/feature_flags"
|
|
68
|
+
_obj_cls = ProjectFeatureFlag
|
|
69
|
+
_from_parent_attrs = {"project_id": "id"}
|
|
70
|
+
_create_attrs = RequiredOptional(
|
|
71
|
+
required=("name",), optional=("version", "description", "active", "strategies")
|
|
72
|
+
)
|
|
73
|
+
_update_attrs = RequiredOptional(
|
|
74
|
+
# new_name is used for renaming via CLI and mapped to 'name' in update()
|
|
75
|
+
optional=("name", "new_name", "description", "active", "strategies")
|
|
76
|
+
)
|
|
77
|
+
_list_filters = ("scope",)
|
|
78
|
+
_types = {"strategies": types.JsonAttribute}
|
|
79
|
+
|
|
80
|
+
def update(
|
|
81
|
+
self,
|
|
82
|
+
id: str | int | None = None,
|
|
83
|
+
new_data: dict[str, Any] | None = None,
|
|
84
|
+
**kwargs: Any,
|
|
85
|
+
) -> dict[str, Any]:
|
|
86
|
+
"""Update a Project Feature Flag.
|
|
87
|
+
|
|
88
|
+
This is a lower-level method called by `ProjectFeatureFlag.save()` and
|
|
89
|
+
is also used directly by the CLI.
|
|
90
|
+
|
|
91
|
+
The `new_name` parameter is a special case to support renaming via the
|
|
92
|
+
CLI (`--new-name`). It is converted to the `name` parameter that the
|
|
93
|
+
GitLab API expects in the request body.
|
|
94
|
+
|
|
95
|
+
Args:
|
|
96
|
+
id: The current name of the feature flag.
|
|
97
|
+
new_data: The dictionary of attributes to update.
|
|
98
|
+
**kwargs: Extra options to send to the server (e.g. sudo)
|
|
99
|
+
"""
|
|
100
|
+
# Avoid mutating the caller-provided new_data dict by working on a copy.
|
|
101
|
+
data = dict(new_data or {})
|
|
102
|
+
# When used via CLI, we have 'new_name' to distinguish from the ID 'name'.
|
|
103
|
+
# When used via .save(), the object passes 'name' directly in new_data.
|
|
104
|
+
if "new_name" in data:
|
|
105
|
+
data["name"] = data.pop("new_name")
|
|
106
|
+
return super().update(id, data, **kwargs)
|
|
@@ -90,7 +90,13 @@ class ProjectApprovalRuleManager(
|
|
|
90
90
|
_from_parent_attrs = {"project_id": "id"}
|
|
91
91
|
_create_attrs = RequiredOptional(
|
|
92
92
|
required=("name", "approvals_required"),
|
|
93
|
-
optional=(
|
|
93
|
+
optional=(
|
|
94
|
+
"user_ids",
|
|
95
|
+
"group_ids",
|
|
96
|
+
"protected_branch_ids",
|
|
97
|
+
"usernames",
|
|
98
|
+
"applies_to_all_protected_branches",
|
|
99
|
+
),
|
|
94
100
|
)
|
|
95
101
|
|
|
96
102
|
|
gitlab/v4/objects/projects.py
CHANGED
|
@@ -49,6 +49,8 @@ from .environments import ( # noqa: F401
|
|
|
49
49
|
)
|
|
50
50
|
from .events import ProjectEventManager # noqa: F401
|
|
51
51
|
from .export_import import ProjectExportManager, ProjectImportManager # noqa: F401
|
|
52
|
+
from .feature_flag_user_lists import ProjectFeatureFlagUserListManager # noqa: F401
|
|
53
|
+
from .feature_flags import ProjectFeatureFlagManager # noqa: F401
|
|
52
54
|
from .files import ProjectFileManager # noqa: F401
|
|
53
55
|
from .hooks import ProjectHookManager # noqa: F401
|
|
54
56
|
from .integrations import ProjectIntegrationManager, ProjectServiceManager # noqa: F401
|
|
@@ -201,6 +203,8 @@ class Project(
|
|
|
201
203
|
environments: ProjectEnvironmentManager
|
|
202
204
|
events: ProjectEventManager
|
|
203
205
|
exports: ProjectExportManager
|
|
206
|
+
feature_flags: ProjectFeatureFlagManager
|
|
207
|
+
feature_flags_user_lists: ProjectFeatureFlagUserListManager
|
|
204
208
|
files: ProjectFileManager
|
|
205
209
|
forks: ProjectForkManager
|
|
206
210
|
generic_packages: GenericPackageManager
|
gitlab/v4/objects/runners.py
CHANGED
|
@@ -38,7 +38,7 @@ class RunnerJobManager(ListMixin[RunnerJob]):
|
|
|
38
38
|
_path = "/runners/{runner_id}/jobs"
|
|
39
39
|
_obj_cls = RunnerJob
|
|
40
40
|
_from_parent_attrs = {"runner_id": "id"}
|
|
41
|
-
_list_filters = ("status",)
|
|
41
|
+
_list_filters = ("status", "order_by", "sort")
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
class Runner(SaveMixin, ObjectDeleteMixin, RESTObject):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-gitlab
|
|
3
|
-
Version: 8.
|
|
3
|
+
Version: 8.2.0
|
|
4
4
|
Summary: The python wrapper for the GitLab REST and GraphQL APIs.
|
|
5
5
|
Author-email: Gauvain Pocentek <gauvain@pocentek.net>
|
|
6
6
|
Maintainer-email: John Villalovos <john@sodarock.com>, Max Wittig <max.wittig@siemens.com>, Nejc Habjan <nejc.habjan@siemens.com>, Roger Meier <r.meier@siemens.com>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
gitlab/__init__.py,sha256=pdbvZNyXeXLn0fGXSTsBqi_ic7QLY7-9FL3uA6tvfdI,1416
|
|
2
2
|
gitlab/__main__.py,sha256=HTesNl0UAU6mPb9EXWkTKMy6Q6pAUxGi3iPnDHTE2uE,68
|
|
3
|
-
gitlab/_version.py,sha256=
|
|
3
|
+
gitlab/_version.py,sha256=lO0jawqMtdMHwi5iH_-GrOtH6EP6byD_JGN0JLWF6wA,249
|
|
4
4
|
gitlab/base.py,sha256=xynWUZcMIbxiWLO17nnvqCsbC-lBvsy0rvWtTJOpuug,13790
|
|
5
5
|
gitlab/cli.py,sha256=Bnu7T2RgDHUdxYiORBdwM4Qj9hYxoMNtmV9DtNYbWCI,12353
|
|
6
6
|
gitlab/client.py,sha256=2l5FZGp4n0XqTq73moLNGfsZTaQB7KMCFDTg_7waMjo,54385
|
|
@@ -9,15 +9,15 @@ gitlab/const.py,sha256=IKpS-AQeRpAXIdT_KpzhDuTR8-KilbUudL-TQv4njFk,5179
|
|
|
9
9
|
gitlab/exceptions.py,sha256=9Ql-z8qGQAmd_1rx1IAXzLRYmQThDeNq6vqOpCxXAjQ,8391
|
|
10
10
|
gitlab/mixins.py,sha256=Z1LqcgN-kZBaxXnhk3h_j8TAmUPDxP0sSymP00hjPYQ,35515
|
|
11
11
|
gitlab/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
|
-
gitlab/types.py,sha256=
|
|
13
|
-
gitlab/utils.py,sha256=
|
|
12
|
+
gitlab/types.py,sha256=fLexlOqtGDmHv1uqYlPzkFt2oHWtkpt6qjquionmFpk,4585
|
|
13
|
+
gitlab/utils.py,sha256=PcXYTr_IkE1pS0-91PtCh-v7ElprbuAMef7Kzgu3_Mg,9769
|
|
14
14
|
gitlab/_backends/__init__.py,sha256=WalQZRIDzw19FuNxraG7fvck6ddg4cdNd3bi53QKvZM,392
|
|
15
15
|
gitlab/_backends/graphql.py,sha256=wUEjrtz4KAFIFLc13cTj8D1757yeSeViX-xzoDy90Is,1450
|
|
16
16
|
gitlab/_backends/protocol.py,sha256=_53iLo017Reni0GoxUR4sQcM5pWxOFY0ljQsYUwpFCU,705
|
|
17
17
|
gitlab/_backends/requests_backend.py,sha256=BmIcITkrxfJtNTYrjqbT7ldXZsjlbGU2n8xBdBaPAQ0,5443
|
|
18
18
|
gitlab/v4/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
19
|
gitlab/v4/cli.py,sha256=kZh-VdoEZTd9dQ6t2MeUPGf26t5StlD-tnrcXptbp4k,22849
|
|
20
|
-
gitlab/v4/objects/__init__.py,sha256=
|
|
20
|
+
gitlab/v4/objects/__init__.py,sha256=xQG6MN27v4-4jdN0RMv832VhBFJBIA6YCThS5x-WS_k,2278
|
|
21
21
|
gitlab/v4/objects/access_requests.py,sha256=QQ7cj6W4VYE8UH5HIwBO47MjXemMnO6jOqhTQttfM5I,1040
|
|
22
22
|
gitlab/v4/objects/appearance.py,sha256=NGN4BJT5AqN3Ex1io7ZJjOK91oOkwvx_6JXjYG474MI,1815
|
|
23
23
|
gitlab/v4/objects/applications.py,sha256=WddNZhXWrQsb4IPwanQStAVVCLCaA_4QN6_VnggldFs,599
|
|
@@ -44,6 +44,8 @@ gitlab/v4/objects/environments.py,sha256=sg80VwquEWWQXMtQXEq6NOZFllodXeTNJs4YKBf
|
|
|
44
44
|
gitlab/v4/objects/epics.py,sha256=4H3mHQRQPitFmiGjgEelrKkeqBvJs3iWBscavY2AKlw,4018
|
|
45
45
|
gitlab/v4/objects/events.py,sha256=SsMI5btCfHVMFcrNE601-2rLEIVnyOpuFuKAYQftfh8,5009
|
|
46
46
|
gitlab/v4/objects/export_import.py,sha256=V0K4nOzDIm4NV1HB92kByvRjHojmfUP8m6KCR20opiI,1472
|
|
47
|
+
gitlab/v4/objects/feature_flag_user_lists.py,sha256=xQjzH0ZWRlJxI4Fh2SiGq5Hq15i-WbI59j59cljCIgY,921
|
|
48
|
+
gitlab/v4/objects/feature_flags.py,sha256=i3_r7OQPZ-MIAAcXBBKdHa1Ji7HEvg8ME4l6miEfHBY,3878
|
|
47
49
|
gitlab/v4/objects/features.py,sha256=ZwuvXWWOb5rrBOpMQ-B9oGGVbtyn-bjzW9K7BwJL3Rs,1955
|
|
48
50
|
gitlab/v4/objects/files.py,sha256=JWJ2FkyJLK2V5ATl6dhjVPv5JkDKuUSno6heJGIb4Ko,13148
|
|
49
51
|
gitlab/v4/objects/geo_nodes.py,sha256=ebCfIulBIbmwdp_CfLxANDzsUdeFoxQTjfshlz0t_-E,3511
|
|
@@ -61,7 +63,7 @@ gitlab/v4/objects/labels.py,sha256=3zO2LkITsMI7NQTYknWspZvTpy8nSU7j_F58SuWtxFY,4
|
|
|
61
63
|
gitlab/v4/objects/ldap.py,sha256=5UFQfP-2ULa2d025JlAwYFeLZGXpbAE6z2PX0Z_vQ_g,2171
|
|
62
64
|
gitlab/v4/objects/member_roles.py,sha256=c98LD4i2ZQyP3uMrZz_cWJbl3LV0ivwKiPzKw4y6tn4,2833
|
|
63
65
|
gitlab/v4/objects/members.py,sha256=0PEVwIcq4KzrA56a54NKdQFIKfd-OylCPNO7f4J1Y3k,3213
|
|
64
|
-
gitlab/v4/objects/merge_request_approvals.py,sha256=
|
|
66
|
+
gitlab/v4/objects/merge_request_approvals.py,sha256=TW3nvWIzQsaKin9ATfTJsJOQ7cofMJT6q1Ujdw1Aiow,6617
|
|
65
67
|
gitlab/v4/objects/merge_requests.py,sha256=P_QST0VT66UFbmDAOS84ROWE2w8RRdCiI1ypPRYj2cc,18279
|
|
66
68
|
gitlab/v4/objects/merge_trains.py,sha256=32LD41AGkS0G921BDHnJevCYNOgcjVW3bH3vNJY-HB4,404
|
|
67
69
|
gitlab/v4/objects/milestones.py,sha256=ZrW90nFEhNbIAS-8BNjHgBCeZ0FiCTS7ta9LGg4K8fY,6841
|
|
@@ -74,15 +76,15 @@ gitlab/v4/objects/pages.py,sha256=wUioc0uYDMIU_K9GpAiS9bG45WnS0NXC5874h6VUebk,15
|
|
|
74
76
|
gitlab/v4/objects/personal_access_tokens.py,sha256=bm-MawqOH1zH8PvVgxFpU9uQacUndhUCMMRQxBS8lSs,1147
|
|
75
77
|
gitlab/v4/objects/pipelines.py,sha256=01WpGWYU5JdkCvkA_UhYx94ukEbyOeMrE-Da_tTaLa8,10030
|
|
76
78
|
gitlab/v4/objects/project_access_tokens.py,sha256=FZMg0NIo5TpT_F_SBZ5nD76JjaYIBOL3RddfYTGwxt8,869
|
|
77
|
-
gitlab/v4/objects/projects.py,sha256
|
|
79
|
+
gitlab/v4/objects/projects.py,sha256=h4MTmf9OpjMkKc8GeEgtrAcN1HzLhfjHKS2HZ9FAGyI,49859
|
|
78
80
|
gitlab/v4/objects/push_rules.py,sha256=CWOCljZupz2K1Wd2A2WP648alD0ux2FJQBydxDsPZd4,2902
|
|
79
81
|
gitlab/v4/objects/registry_protection_repository_rules.py,sha256=T-8sO3Jg7ZL4KuI-paaQSrhx9gN22Hj3DD5Xa2FUAuw,1323
|
|
80
82
|
gitlab/v4/objects/registry_protection_rules.py,sha256=FkhVtR5ugFlpdu5UO0Xuiy3WKKbo0JzY6sSXOjU4DZ0,1121
|
|
81
83
|
gitlab/v4/objects/releases.py,sha256=H34LLpLaxneJkWL17j4AjCUnuVBr6gQPnN8ptYgkmP8,1557
|
|
82
|
-
gitlab/v4/objects/repositories.py,sha256=
|
|
84
|
+
gitlab/v4/objects/repositories.py,sha256=dFXhVQjcbY8JN_pFsyGiIMJN1Ucuovc5r0Iv0Xalv38,12935
|
|
83
85
|
gitlab/v4/objects/resource_groups.py,sha256=k1IabzkYY1TdMSXDUgd3zS86NoGoT_rSHWoSMkBui9Y,1246
|
|
84
86
|
gitlab/v4/objects/reviewers.py,sha256=BW87EGgnbUPGU41033QxMhaKG2JKYz_k7ZaVKKkjOb8,532
|
|
85
|
-
gitlab/v4/objects/runners.py,sha256=
|
|
87
|
+
gitlab/v4/objects/runners.py,sha256=BNlMI7EyogHxDCXmC-UwcbbEfS-m1IZ1irUOCgI0-3k,4804
|
|
86
88
|
gitlab/v4/objects/secure_files.py,sha256=XePX4HurVlxwmb07nIQ4kZrcn0ph23y7Jf2u-kOdZHY,3098
|
|
87
89
|
gitlab/v4/objects/service_accounts.py,sha256=-S_MKo7c7JGvxdJYZgj5K6e86nNf0eqdqXUFsLQcnpU,640
|
|
88
90
|
gitlab/v4/objects/settings.py,sha256=N1RyoX7oQ_zVhYkkEL4HM8z4OoWKLUkzDoqJnF0VAT8,4213
|
|
@@ -98,10 +100,10 @@ gitlab/v4/objects/triggers.py,sha256=1iYdlP8qpqwEctr6kKJSDanRulaKEHYnVwYwVGainI4
|
|
|
98
100
|
gitlab/v4/objects/users.py,sha256=0-aCUflt2Wzl338H_eIaTJ_ElsXwbkgoh_SEw38u6m0,20987
|
|
99
101
|
gitlab/v4/objects/variables.py,sha256=B7XHDKPrRg-sboVpClO0vYbxe6egH9U1-SPgVHv6tPc,2051
|
|
100
102
|
gitlab/v4/objects/wikis.py,sha256=fR4QG4WIBeG10eBNfCN3CG-w3qlEBJIBVsJFxVVVhEs,1364
|
|
101
|
-
python_gitlab-8.
|
|
102
|
-
python_gitlab-8.
|
|
103
|
-
python_gitlab-8.
|
|
104
|
-
python_gitlab-8.
|
|
105
|
-
python_gitlab-8.
|
|
106
|
-
python_gitlab-8.
|
|
107
|
-
python_gitlab-8.
|
|
103
|
+
python_gitlab-8.2.0.dist-info/licenses/AUTHORS,sha256=Z0P61GJSVnp7iFbRcMezhx3f4zMyPkVmG--TWaRo768,526
|
|
104
|
+
python_gitlab-8.2.0.dist-info/licenses/COPYING,sha256=2n6rt7r999OuXp8iOqW9we7ORaxWncIbOwN1ILRGR2g,7651
|
|
105
|
+
python_gitlab-8.2.0.dist-info/METADATA,sha256=72AgFjCm-EjnXopz9FVfARxiuqOqkjpOHK0Sy7gpQ7s,8503
|
|
106
|
+
python_gitlab-8.2.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
107
|
+
python_gitlab-8.2.0.dist-info/entry_points.txt,sha256=nhpKLLP_uQPFByn8UtE9zsvQQwa402t52o_Cw9IFXMo,43
|
|
108
|
+
python_gitlab-8.2.0.dist-info/top_level.txt,sha256=MvIaP8p_Oaf4gO_hXmHkX-5y2deHLp1pe6tJR3ukQ6o,7
|
|
109
|
+
python_gitlab-8.2.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|