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,18 +1,21 @@
|
|
|
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, Datetime, Email, Integer, Json, String
|
|
7
7
|
|
|
8
|
-
from clearskies_gitlab.
|
|
8
|
+
from clearskies_gitlab.rest.backends import GitlabRestBackend
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class GitlabRestCurrentUser(
|
|
12
|
-
|
|
12
|
+
Model,
|
|
13
13
|
):
|
|
14
14
|
"""Model for current user."""
|
|
15
15
|
|
|
16
|
+
id_column_name = "id"
|
|
17
|
+
backend = GitlabRestBackend()
|
|
18
|
+
|
|
16
19
|
@classmethod
|
|
17
20
|
def destination_name(cls: type[Self]) -> str:
|
|
18
21
|
"""Return the slug of the api endpoint for this model."""
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Self
|
|
4
|
+
|
|
5
|
+
from clearskies.columns import (
|
|
6
|
+
HasMany,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
from clearskies_gitlab.rest.models import (
|
|
10
|
+
gitlab_rest_group_access_token_reference,
|
|
11
|
+
gitlab_rest_group_base,
|
|
12
|
+
gitlab_rest_group_member_reference,
|
|
13
|
+
gitlab_rest_group_project_reference,
|
|
14
|
+
gitlab_rest_group_subgroup_reference,
|
|
15
|
+
gitlab_rest_group_variable_reference,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class GitlabRestGroup(
|
|
20
|
+
gitlab_rest_group_base.GitlabRestGroupBase,
|
|
21
|
+
):
|
|
22
|
+
"""Model for groups."""
|
|
23
|
+
|
|
24
|
+
@classmethod
|
|
25
|
+
def destination_name(cls: type[Self]) -> str:
|
|
26
|
+
"""Return the slug of the api endpoint for this model."""
|
|
27
|
+
return "groups"
|
|
28
|
+
|
|
29
|
+
projects = HasMany(
|
|
30
|
+
gitlab_rest_group_project_reference.GitlabRestGroupProjectReference,
|
|
31
|
+
foreign_column_name="group_id",
|
|
32
|
+
)
|
|
33
|
+
access_tokens = HasMany(
|
|
34
|
+
gitlab_rest_group_access_token_reference.GitlabRestGroupAccessTokenReference,
|
|
35
|
+
foreign_column_name="group_id",
|
|
36
|
+
)
|
|
37
|
+
variables = HasMany(
|
|
38
|
+
gitlab_rest_group_variable_reference.GitlabRestGroupVariableReference,
|
|
39
|
+
foreign_column_name="group_id",
|
|
40
|
+
)
|
|
41
|
+
subgroups = HasMany(
|
|
42
|
+
gitlab_rest_group_subgroup_reference.GitlabRestGroupSubgroupReference,
|
|
43
|
+
foreign_column_name="group_id",
|
|
44
|
+
)
|
|
45
|
+
members = HasMany(
|
|
46
|
+
gitlab_rest_group_member_reference.GitlabRestGroupMemberReference,
|
|
47
|
+
foreign_column_name="group_id",
|
|
48
|
+
)
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from
|
|
4
|
-
from typing import Any, Self
|
|
3
|
+
from typing import Self
|
|
5
4
|
|
|
6
|
-
from clearskies
|
|
5
|
+
from clearskies import Model
|
|
6
|
+
from clearskies.columns import Boolean, Datetime, Integer, Json, String
|
|
7
7
|
|
|
8
|
-
from clearskies_gitlab.
|
|
9
|
-
from clearskies_gitlab.models.rest import gitlab_rest_group
|
|
8
|
+
from clearskies_gitlab.rest.backends import GitlabRestBackend
|
|
10
9
|
|
|
11
10
|
|
|
12
11
|
class GitlabRestGroupAccessToken(
|
|
13
|
-
|
|
12
|
+
Model,
|
|
14
13
|
):
|
|
15
14
|
"""Model for groups access tokens."""
|
|
16
15
|
|
|
16
|
+
id_column_name = "id"
|
|
17
|
+
backend = GitlabRestBackend()
|
|
18
|
+
|
|
17
19
|
@classmethod
|
|
18
20
|
def destination_name(cls: type[Self]) -> str:
|
|
19
21
|
"""Return the slug of the api endpoint for this model."""
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
class GitlabRestGroupAccessTokenReference:
|
|
2
|
+
"""Reference to GitlabRestGroupAccessToken model."""
|
|
3
|
+
|
|
4
|
+
def get_model_class(self) -> type:
|
|
5
|
+
"""Return the model class this reference points to."""
|
|
6
|
+
from clearskies_gitlab.rest.models import gitlab_rest_group_access_token
|
|
7
|
+
|
|
8
|
+
return gitlab_rest_group_access_token.GitlabRestGroupAccessToken
|
|
@@ -1,17 +1,36 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from
|
|
4
|
-
from typing import Any
|
|
3
|
+
from typing import Self
|
|
5
4
|
|
|
6
5
|
from clearskies import Model
|
|
7
|
-
from clearskies.columns import
|
|
6
|
+
from clearskies.columns import (
|
|
7
|
+
BelongsToModel,
|
|
8
|
+
BelongsToSelf,
|
|
9
|
+
Boolean,
|
|
10
|
+
Datetime,
|
|
11
|
+
Integer,
|
|
12
|
+
Json,
|
|
13
|
+
Select,
|
|
14
|
+
String,
|
|
15
|
+
)
|
|
8
16
|
|
|
17
|
+
from clearskies_gitlab.rest.backends import GitlabRestBackend
|
|
9
18
|
|
|
10
|
-
|
|
11
|
-
|
|
19
|
+
|
|
20
|
+
class GitlabRestGroupBase(
|
|
21
|
+
Model,
|
|
22
|
+
):
|
|
23
|
+
"""Model for groups."""
|
|
24
|
+
|
|
25
|
+
@classmethod
|
|
26
|
+
def destination_name(cls: type[Self]) -> str:
|
|
27
|
+
"""Return the slug of the api endpoint for this model."""
|
|
28
|
+
return "groups"
|
|
12
29
|
|
|
13
30
|
id_column_name = "id"
|
|
14
31
|
|
|
32
|
+
backend = GitlabRestBackend()
|
|
33
|
+
|
|
15
34
|
id = String()
|
|
16
35
|
web_url = String()
|
|
17
36
|
name = String()
|
|
@@ -67,3 +86,19 @@ class GitlabGroup(Model):
|
|
|
67
86
|
unique_project_download_limit_interval_in_seconds = Integer()
|
|
68
87
|
unique_project_download_limit_alertlist = Json()
|
|
69
88
|
auto_ban_user_on_excessive_projects_download = Boolean()
|
|
89
|
+
|
|
90
|
+
parent_id = BelongsToSelf()
|
|
91
|
+
parent = BelongsToModel("parent_id")
|
|
92
|
+
### Search params
|
|
93
|
+
skip_groups = Json()
|
|
94
|
+
all_available = Boolean()
|
|
95
|
+
search = String()
|
|
96
|
+
order_by = String()
|
|
97
|
+
sort = String()
|
|
98
|
+
visibility = Select(allowed_values=["public", "internal", "private"])
|
|
99
|
+
with_custom_attributes = Boolean()
|
|
100
|
+
owned = Boolean()
|
|
101
|
+
min_access_level = Integer()
|
|
102
|
+
top_level_only = Boolean()
|
|
103
|
+
repository_storage = String()
|
|
104
|
+
marked_for_deletion_on = Datetime(date_format="%Y-%m-%d")
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from
|
|
4
|
-
from typing import Any, Self
|
|
3
|
+
from typing import Self
|
|
5
4
|
|
|
6
|
-
from clearskies.columns import
|
|
5
|
+
from clearskies.columns import Boolean, Json, String
|
|
7
6
|
|
|
8
|
-
from clearskies_gitlab.
|
|
9
|
-
from clearskies_gitlab.
|
|
7
|
+
from clearskies_gitlab.rest import gitlab_member
|
|
8
|
+
from clearskies_gitlab.rest.backends import GitlabRestBackend
|
|
10
9
|
|
|
11
10
|
|
|
12
11
|
class GitlabRestGroupMember(
|
|
13
|
-
gitlab_rest_model.GitlabRestModel,
|
|
14
12
|
gitlab_member.GitlabMember,
|
|
15
13
|
):
|
|
16
14
|
"""Model for group members."""
|
|
17
15
|
|
|
16
|
+
id_column_name = "id"
|
|
17
|
+
backend = GitlabRestBackend()
|
|
18
|
+
|
|
18
19
|
@classmethod
|
|
19
20
|
def destination_name(cls: type[Self]) -> str:
|
|
20
21
|
"""Return the slug of the api endpoint for this model."""
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
class GitlabRestGroupMemberReference:
|
|
2
|
+
"""Reference to GitlabRestGroupMember model."""
|
|
3
|
+
|
|
4
|
+
def get_model_class(self) -> type:
|
|
5
|
+
"""Return the model class this reference points to."""
|
|
6
|
+
from clearskies_gitlab.rest.models import gitlab_rest_group_member
|
|
7
|
+
|
|
8
|
+
return gitlab_rest_group_member.GitlabRestGroupMember
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Self
|
|
4
|
+
|
|
5
|
+
from clearskies_gitlab.rest.models import gitlab_rest_project
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class GitlabRestGroupProject(
|
|
9
|
+
gitlab_rest_project.GitlabRestProject,
|
|
10
|
+
):
|
|
11
|
+
"""Model for groups projects."""
|
|
12
|
+
|
|
13
|
+
@classmethod
|
|
14
|
+
def destination_name(cls: type[Self]) -> str:
|
|
15
|
+
"""Return the slug of the api endpoint for this model."""
|
|
16
|
+
return "groups/:group_id/projects"
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
class GitlabRestGroupProjectReference:
|
|
2
|
+
"""Reference to GitlabRestGroupProject model."""
|
|
3
|
+
|
|
4
|
+
def get_model_class(self) -> type:
|
|
5
|
+
"""Return the model class this reference points to."""
|
|
6
|
+
from clearskies_gitlab.rest.models import gitlab_rest_group_project
|
|
7
|
+
|
|
8
|
+
return gitlab_rest_group_project.GitlabRestGroupProject
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from clearskies_gitlab.rest.models import gitlab_rest_group
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class GitlabRestGroupReference:
|
|
5
|
+
"""Reference to GitlabRestGroup model."""
|
|
6
|
+
|
|
7
|
+
def get_model_class(self) -> type:
|
|
8
|
+
"""Return the model class this reference points to."""
|
|
9
|
+
return gitlab_rest_group.GitlabRestGroup
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from
|
|
4
|
-
from typing import Any, Self
|
|
3
|
+
from typing import Self
|
|
5
4
|
|
|
6
5
|
from clearskies.columns import Integer
|
|
7
6
|
|
|
8
|
-
from clearskies_gitlab.models
|
|
7
|
+
from clearskies_gitlab.rest.models import gitlab_rest_advanced_search
|
|
9
8
|
|
|
10
9
|
|
|
11
10
|
class GitlabRestGroupSearch(
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Self
|
|
4
|
+
|
|
5
|
+
from clearskies.columns import HasMany, HasManySelf, String
|
|
6
|
+
|
|
7
|
+
from clearskies_gitlab.rest.models import (
|
|
8
|
+
gitlab_rest_group_access_token_reference,
|
|
9
|
+
gitlab_rest_group_base,
|
|
10
|
+
gitlab_rest_group_member_reference,
|
|
11
|
+
gitlab_rest_group_project_reference,
|
|
12
|
+
gitlab_rest_group_variable_reference,
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class GitlabRestGroupSubgroup(
|
|
17
|
+
gitlab_rest_group_base.GitlabRestGroupBase,
|
|
18
|
+
):
|
|
19
|
+
"""Model for Subgroups."""
|
|
20
|
+
|
|
21
|
+
# id_column_name = "group_id"
|
|
22
|
+
|
|
23
|
+
@classmethod
|
|
24
|
+
def destination_name(cls: type[Self]) -> str:
|
|
25
|
+
"""Return the slug of the api endpoint for this model."""
|
|
26
|
+
return "groups/:group_id/subgroups"
|
|
27
|
+
|
|
28
|
+
group_id = String()
|
|
29
|
+
|
|
30
|
+
projects = HasMany(
|
|
31
|
+
gitlab_rest_group_project_reference.GitlabRestGroupProjectReference,
|
|
32
|
+
foreign_column_name="group_id",
|
|
33
|
+
)
|
|
34
|
+
access_tokens = HasMany(
|
|
35
|
+
gitlab_rest_group_access_token_reference.GitlabRestGroupAccessTokenReference,
|
|
36
|
+
foreign_column_name="group_id",
|
|
37
|
+
)
|
|
38
|
+
variables = HasMany(
|
|
39
|
+
gitlab_rest_group_variable_reference.GitlabRestGroupVariableReference,
|
|
40
|
+
foreign_column_name="group_id",
|
|
41
|
+
)
|
|
42
|
+
subgroups = HasManySelf(
|
|
43
|
+
foreign_column_name="group_id",
|
|
44
|
+
)
|
|
45
|
+
members = HasMany(
|
|
46
|
+
gitlab_rest_group_member_reference.GitlabRestGroupMemberReference,
|
|
47
|
+
foreign_column_name="group_id",
|
|
48
|
+
)
|
|
49
|
+
# parent_id = BelongsToSelf()
|
|
50
|
+
# parent = BelongsToModel("parent_id")
|
|
51
|
+
# ### Search params
|
|
52
|
+
# skip_groups = Json()
|
|
53
|
+
# all_available = Boolean()
|
|
54
|
+
# search = String()
|
|
55
|
+
# order_by = String()
|
|
56
|
+
# sort = String()
|
|
57
|
+
# visibility = Select(allowed_values=["public", "internal", "private"])
|
|
58
|
+
# with_custom_attributes = Boolean()
|
|
59
|
+
# owned = Boolean()
|
|
60
|
+
# min_access_level = Integer()
|
|
61
|
+
# top_level_only = Boolean()
|
|
62
|
+
# repository_storage = String()
|
|
63
|
+
# marked_for_deletion_on = Datetime(date_format="%Y-%m-%d")
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
class GitlabRestGroupSubgroupReference:
|
|
2
|
+
"""Reference to GitlabRestGroupSubgroup model."""
|
|
3
|
+
|
|
4
|
+
def get_model_class(self) -> type:
|
|
5
|
+
"""Return the model class this reference points to."""
|
|
6
|
+
from clearskies_gitlab.rest.models import gitlab_rest_group_subgroup
|
|
7
|
+
|
|
8
|
+
return gitlab_rest_group_subgroup.GitlabRestGroupSubgroup
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from
|
|
4
|
-
from typing import TYPE_CHECKING, Any, Self
|
|
3
|
+
from typing import Self
|
|
5
4
|
|
|
6
|
-
from clearskies.columns import
|
|
5
|
+
from clearskies.columns import String
|
|
7
6
|
|
|
8
|
-
from clearskies_gitlab.
|
|
7
|
+
from clearskies_gitlab.rest import gitlab_cicd_variable
|
|
8
|
+
from clearskies_gitlab.rest.backends import GitlabRestBackend
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class GitlabRestGroupVariable(
|
|
12
|
-
gitlab_rest_model.GitlabRestModel,
|
|
13
12
|
gitlab_cicd_variable.GitlabCICDVariable,
|
|
14
13
|
):
|
|
15
14
|
"""Model for gitlab group variables."""
|
|
16
15
|
|
|
16
|
+
id_column_name = "id"
|
|
17
|
+
backend = GitlabRestBackend()
|
|
18
|
+
|
|
17
19
|
@classmethod
|
|
18
20
|
def destination_name(cls: type[Self]) -> str:
|
|
19
21
|
"""Return the slug of the api endpoint for this model."""
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
class GitlabRestGroupVariableReference:
|
|
2
|
+
"""Reference to GitlabRestGroupVariable model."""
|
|
3
|
+
|
|
4
|
+
def get_model_class(self) -> type:
|
|
5
|
+
"""Return the model class this reference points to."""
|
|
6
|
+
from clearskies_gitlab.rest.models import gitlab_rest_group_variable
|
|
7
|
+
|
|
8
|
+
return gitlab_rest_group_variable.GitlabRestGroupVariable
|
|
@@ -1,10 +1,9 @@
|
|
|
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 (
|
|
7
|
-
BelongsToId,
|
|
8
7
|
BelongsToModel,
|
|
9
8
|
BelongsToSelf,
|
|
10
9
|
Boolean,
|
|
@@ -16,8 +15,8 @@ from clearskies.columns import (
|
|
|
16
15
|
String,
|
|
17
16
|
)
|
|
18
17
|
|
|
19
|
-
from clearskies_gitlab.
|
|
20
|
-
from clearskies_gitlab.models
|
|
18
|
+
from clearskies_gitlab.rest.backends import GitlabRestBackend
|
|
19
|
+
from clearskies_gitlab.rest.models import (
|
|
21
20
|
gitlab_rest_group_access_token,
|
|
22
21
|
gitlab_rest_group_subgroup_reference,
|
|
23
22
|
gitlab_rest_group_variable,
|
|
@@ -25,17 +24,37 @@ from clearskies_gitlab.models.rest import (
|
|
|
25
24
|
)
|
|
26
25
|
|
|
27
26
|
|
|
28
|
-
class GitlabRestNamespace(
|
|
29
|
-
gitlab_rest_model.GitlabRestModel,
|
|
30
|
-
gitlab_namespace.GitlabNamespace,
|
|
31
|
-
):
|
|
27
|
+
class GitlabRestNamespace(Model):
|
|
32
28
|
"""Model for namespaces."""
|
|
33
29
|
|
|
30
|
+
backend = GitlabRestBackend()
|
|
31
|
+
|
|
34
32
|
@classmethod
|
|
35
33
|
def destination_name(cls: type[Self]) -> str:
|
|
36
34
|
"""Return the slug of the api endpoint for this model."""
|
|
37
35
|
return "namespaces"
|
|
38
36
|
|
|
37
|
+
id_column_name = "id"
|
|
38
|
+
|
|
39
|
+
id = String()
|
|
40
|
+
name = String()
|
|
41
|
+
path = String()
|
|
42
|
+
kind = Select(allowed_values=["group", "user"])
|
|
43
|
+
full_path = String()
|
|
44
|
+
avatar_url = String()
|
|
45
|
+
web_url = String()
|
|
46
|
+
billable_members_count = Integer()
|
|
47
|
+
plan = Select(allowed_values=["free", "premium", "ultimate", "bronze", "silver", "gold"])
|
|
48
|
+
end_date = Datetime()
|
|
49
|
+
trial_ends_on = Datetime()
|
|
50
|
+
trial = Boolean()
|
|
51
|
+
root_repository_size = Integer()
|
|
52
|
+
projects_count = Integer()
|
|
53
|
+
max_seats_used = Integer()
|
|
54
|
+
max_seats_used_changed_at = Datetime()
|
|
55
|
+
seats_in_use = Integer()
|
|
56
|
+
members_counts_with_descendants = Integer()
|
|
57
|
+
|
|
39
58
|
projects = HasMany(
|
|
40
59
|
gitlab_rest_project_reference.GitlabRestProjectReference,
|
|
41
60
|
foreign_column_name="group_id",
|
|
@@ -1,72 +1,101 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from
|
|
4
|
-
from typing import Any
|
|
3
|
+
from typing import Self
|
|
5
4
|
|
|
6
5
|
from clearskies import Model
|
|
7
|
-
from clearskies.columns import
|
|
6
|
+
from clearskies.columns import (
|
|
7
|
+
BelongsToId,
|
|
8
|
+
BelongsToModel,
|
|
9
|
+
Boolean,
|
|
10
|
+
Datetime,
|
|
11
|
+
HasMany,
|
|
12
|
+
HasOne,
|
|
13
|
+
Integer,
|
|
14
|
+
Json,
|
|
15
|
+
Select,
|
|
16
|
+
String,
|
|
17
|
+
)
|
|
8
18
|
|
|
9
|
-
from clearskies_gitlab.
|
|
19
|
+
from clearskies_gitlab.rest.backends import GitlabRestBackend
|
|
20
|
+
from clearskies_gitlab.rest.models import (
|
|
21
|
+
gitlab_rest_group_reference,
|
|
22
|
+
gitlab_rest_namespace,
|
|
23
|
+
gitlab_rest_project_approval_config_reference,
|
|
24
|
+
gitlab_rest_project_approval_rule_reference,
|
|
25
|
+
gitlab_rest_project_protected_branch_reference,
|
|
26
|
+
gitlab_rest_project_variable_reference,
|
|
27
|
+
)
|
|
10
28
|
|
|
11
29
|
|
|
12
|
-
class
|
|
13
|
-
"""
|
|
30
|
+
class GitlabRestProject(Model):
|
|
31
|
+
"""Model for projects."""
|
|
14
32
|
|
|
15
|
-
id_column_name = "id"
|
|
33
|
+
id_column_name: str = "id"
|
|
34
|
+
|
|
35
|
+
backend = GitlabRestBackend(
|
|
36
|
+
api_to_model_map={
|
|
37
|
+
"namespace.id": ["namespace_id", "group_id"],
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
@classmethod
|
|
42
|
+
def destination_name(cls: type[Self]) -> str:
|
|
43
|
+
"""Return the slug of the api endpoint for this model."""
|
|
44
|
+
return "projects"
|
|
16
45
|
|
|
17
46
|
id = String()
|
|
18
|
-
|
|
19
|
-
group = BelongsToModel("group_id")
|
|
20
|
-
user_id = String()
|
|
21
|
-
namespace_id = BelongsToId(gitlab_namespace.GitlabNamespace)
|
|
22
|
-
namespace = BelongsToModel("namespace_id")
|
|
47
|
+
|
|
23
48
|
description = String()
|
|
24
49
|
description_html = String()
|
|
25
|
-
default_branch = String()
|
|
26
50
|
visibility = String()
|
|
27
51
|
ssh_url_to_repo = String()
|
|
28
52
|
http_url_to_repo = String()
|
|
29
53
|
web_url = String()
|
|
30
|
-
readme_url = String()
|
|
31
54
|
topics = Json()
|
|
32
|
-
owner = Json()
|
|
33
55
|
name = String()
|
|
34
|
-
name_with_namespace = String()
|
|
35
56
|
path = String()
|
|
36
|
-
path_with_namespace = String()
|
|
37
57
|
issues_enabled = Boolean()
|
|
38
58
|
open_issues_count = Integer()
|
|
39
59
|
merge_requests_enabled = Boolean()
|
|
40
60
|
jobs_enabled = Boolean()
|
|
41
61
|
wiki_enabled = Boolean()
|
|
42
62
|
snippets_enabled = Boolean()
|
|
43
|
-
can_create_merge_request_in = Boolean()
|
|
44
|
-
resolve_outdated_diff_discussions = Boolean()
|
|
45
|
-
container_registry_access_level = Select(allowed_values=["disabled", "private", "enabled"])
|
|
46
|
-
container_security_and_compliance_access_level = Select(allowed_values=["disabled", "private", "enabled"])
|
|
47
|
-
container_expiration_policy = Json()
|
|
48
63
|
created_at = Datetime()
|
|
49
64
|
updated_at = Datetime()
|
|
50
65
|
last_activity_at = Datetime()
|
|
66
|
+
import_status = String()
|
|
67
|
+
archived = Boolean()
|
|
68
|
+
avatar_url = String()
|
|
69
|
+
shared_runners_enabled = Boolean()
|
|
70
|
+
forks_count = Integer()
|
|
71
|
+
star_count = Integer()
|
|
72
|
+
|
|
73
|
+
group_id = BelongsToId(gitlab_rest_group_reference.GitlabRestGroupReference)
|
|
74
|
+
group = BelongsToModel("group_id")
|
|
75
|
+
|
|
76
|
+
namespace_id = BelongsToId(gitlab_rest_namespace.GitlabRestNamespace)
|
|
77
|
+
namespace = BelongsToModel("namespace_id")
|
|
78
|
+
|
|
79
|
+
allow_pipeline_trigger_approve_deployment = Boolean()
|
|
80
|
+
|
|
81
|
+
# REST-specific fields not available in GraphQL
|
|
82
|
+
default_branch = String()
|
|
51
83
|
creator_id = Integer()
|
|
84
|
+
readme_url = String()
|
|
85
|
+
owner = Json()
|
|
86
|
+
resolve_outdated_diff_discussions = Boolean()
|
|
52
87
|
import_url = String()
|
|
53
88
|
import_type = String()
|
|
54
|
-
import_status = String()
|
|
55
89
|
import_error = String()
|
|
56
|
-
permissions = Json()
|
|
57
|
-
archived = Boolean()
|
|
58
|
-
avatar_url = String()
|
|
59
90
|
license_url = String()
|
|
60
91
|
license = Json()
|
|
61
|
-
shared_runners_enabled = Boolean()
|
|
62
92
|
group_runners_enabled = Boolean()
|
|
63
|
-
|
|
64
|
-
|
|
93
|
+
container_registry_access_level = Select(allowed_values=["disabled", "private", "enabled"])
|
|
94
|
+
container_security_and_compliance_access_level = Select(allowed_values=["disabled", "private", "enabled"])
|
|
95
|
+
container_expiration_policy = Json()
|
|
65
96
|
runners_token = String()
|
|
66
|
-
ci_default_git_depth = Integer()
|
|
67
97
|
ci_forward_deployment_enabled = Boolean()
|
|
68
98
|
ci_forward_deployment_rollback_allowed = Boolean()
|
|
69
|
-
ci_allow_fork_pipelines_to_run_in_parent_project = Boolean()
|
|
70
99
|
ci_separated_caches = Boolean()
|
|
71
100
|
ci_restrict_pipeline_cancellation_role = Select(allowed_values=["maintainer", "developer", "no_one"])
|
|
72
101
|
ci_pipeline_variables_minimum_override_role = Select(
|
|
@@ -78,17 +107,13 @@ class GitlabProject(Model):
|
|
|
78
107
|
repository_storage = String()
|
|
79
108
|
only_allow_merge_if_pipeline_succeeds = Boolean()
|
|
80
109
|
allow_merge_on_skipped_pipeline = Boolean()
|
|
81
|
-
allow_pipeline_trigger_approve_deployment = Boolean()
|
|
82
110
|
restrict_user_defined_variables = Boolean()
|
|
83
111
|
only_allow_merge_if_all_discussions_are_resolved = Boolean()
|
|
84
112
|
remove_source_branch_after_merge = Boolean()
|
|
85
113
|
printing_merge_requests_link_enabled = Boolean()
|
|
86
114
|
request_access_enabled = Boolean()
|
|
87
|
-
only_allow_merge_if_pipeline_succeeds = Boolean()
|
|
88
115
|
merge_method = Select(allowed_values=["merge", "rebase_merge", "ff"])
|
|
89
116
|
squash_option = Select(allowed_values=["never", "always", "default_on", "default_off"])
|
|
90
|
-
auto_devops_enabled = Boolean()
|
|
91
|
-
auto_devops_deploy_strategy = Select(allowed_values=["continuous", "manual", "timed_incremental"])
|
|
92
117
|
mirror = Boolean()
|
|
93
118
|
mirror_user_id = Integer()
|
|
94
119
|
mirror_trigger_builds = Boolean()
|
|
@@ -104,7 +129,75 @@ class GitlabProject(Model):
|
|
|
104
129
|
merge_commit_template = String()
|
|
105
130
|
squash_commit_template = String()
|
|
106
131
|
issue_branch_template = String()
|
|
107
|
-
marked_for_deletion_on = Datetime()
|
|
108
132
|
compliance_frameworks = Json()
|
|
109
133
|
statistics = Json()
|
|
110
134
|
container_registry_image_prefix = String()
|
|
135
|
+
|
|
136
|
+
can_create_merge_request_in = Boolean()
|
|
137
|
+
auto_devops_enabled = Boolean()
|
|
138
|
+
auto_devops_deploy_strategy = Select(allowed_values=["continuous", "manual", "timed_incremental"])
|
|
139
|
+
ci_allow_fork_pipelines_to_run_in_parent_project = Boolean()
|
|
140
|
+
ci_default_git_depth = Integer()
|
|
141
|
+
name_with_namespace = String()
|
|
142
|
+
path_with_namespace = String()
|
|
143
|
+
permissions = Json()
|
|
144
|
+
|
|
145
|
+
variables = HasMany(
|
|
146
|
+
gitlab_rest_project_variable_reference.GitlabRestProjectVariableReference,
|
|
147
|
+
foreign_column_name="project_id",
|
|
148
|
+
)
|
|
149
|
+
|
|
150
|
+
protected_branches = HasMany(
|
|
151
|
+
gitlab_rest_project_protected_branch_reference.GitlabRestProjectProtectedBranchReference,
|
|
152
|
+
foreign_column_name="project_id",
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
approval_config = HasOne(
|
|
156
|
+
gitlab_rest_project_approval_config_reference.GitlabRestProjectApprovalConfigReference,
|
|
157
|
+
foreign_column_name="project_id",
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
approval_rules = HasMany(
|
|
161
|
+
gitlab_rest_project_approval_rule_reference.GitlabRestProjectApprovalRuleReference,
|
|
162
|
+
foreign_column_name="project_id",
|
|
163
|
+
)
|
|
164
|
+
|
|
165
|
+
# contributors = HasMany(
|
|
166
|
+
### Search params
|
|
167
|
+
include_hidden = Boolean()
|
|
168
|
+
include_pending_delete = Boolean()
|
|
169
|
+
last_activity_after = Datetime()
|
|
170
|
+
last_activity_before = Datetime()
|
|
171
|
+
membership = Boolean()
|
|
172
|
+
min_access_level = Integer()
|
|
173
|
+
order_by = Select(
|
|
174
|
+
allowed_values=[
|
|
175
|
+
"id",
|
|
176
|
+
"name",
|
|
177
|
+
"path",
|
|
178
|
+
"created_at",
|
|
179
|
+
"updated_at",
|
|
180
|
+
"star_count",
|
|
181
|
+
"last_activity_at",
|
|
182
|
+
"similarity",
|
|
183
|
+
]
|
|
184
|
+
)
|
|
185
|
+
owned = Boolean()
|
|
186
|
+
repository_checksum_failed = Boolean()
|
|
187
|
+
repository_storage = String()
|
|
188
|
+
search_namespaces = Boolean()
|
|
189
|
+
search = String()
|
|
190
|
+
simple = Boolean()
|
|
191
|
+
sort = String()
|
|
192
|
+
starred = Boolean()
|
|
193
|
+
topic_id = Integer()
|
|
194
|
+
topic = String()
|
|
195
|
+
updated_after = Datetime()
|
|
196
|
+
updated_before = Datetime()
|
|
197
|
+
visibility = Select(allowed_values=["public", "internal", "private"])
|
|
198
|
+
wiki_checksum_failed = Boolean()
|
|
199
|
+
with_custom_attributes = Boolean()
|
|
200
|
+
with_issues_enabled = Boolean()
|
|
201
|
+
with_merge_requests_enabled = Boolean()
|
|
202
|
+
with_programming_language = String()
|
|
203
|
+
marked_for_deletion_on = Datetime(date_format="%Y-%m-%d")
|