clear-skies-gitlab 2.0.1__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/METADATA +75 -0
- clear_skies_gitlab-2.0.1.dist-info/RECORD +42 -0
- clear_skies_gitlab-2.0.1.dist-info/WHEEL +4 -0
- clear_skies_gitlab-2.0.1.dist-info/licenses/LICENSE +21 -0
- clearskies_gitlab/__init__.py +3 -0
- clearskies_gitlab/backends/__init__.py +9 -0
- clearskies_gitlab/backends/gitlab_rest_backend.py +150 -0
- clearskies_gitlab/defaults/__init__.py +7 -0
- clearskies_gitlab/defaults/gitlab_default_auth.py +7 -0
- clearskies_gitlab/defaults/gitlab_default_url.py +7 -0
- clearskies_gitlab/exceptions/__init__.py +13 -0
- clearskies_gitlab/exceptions/gitlab_error.py +50 -0
- clearskies_gitlab/models/__init__.py +19 -0
- clearskies_gitlab/models/gitlab_cicd_variable.py +23 -0
- clearskies_gitlab/models/gitlab_gql_model.py +9 -0
- clearskies_gitlab/models/gitlab_group.py +69 -0
- clearskies_gitlab/models/gitlab_member.py +24 -0
- clearskies_gitlab/models/gitlab_namespace.py +32 -0
- clearskies_gitlab/models/gitlab_project.py +110 -0
- clearskies_gitlab/models/gitlab_rest_model.py +11 -0
- clearskies_gitlab/models/rest/__init__.py +35 -0
- clearskies_gitlab/models/rest/gitlab_rest_advanced_search.py +38 -0
- clearskies_gitlab/models/rest/gitlab_rest_advanced_search_blob.py +26 -0
- clearskies_gitlab/models/rest/gitlab_rest_current_user.py +43 -0
- clearskies_gitlab/models/rest/gitlab_rest_group.py +75 -0
- clearskies_gitlab/models/rest/gitlab_rest_group_access_token.py +32 -0
- clearskies_gitlab/models/rest/gitlab_rest_group_member.py +28 -0
- clearskies_gitlab/models/rest/gitlab_rest_group_member_reference.py +6 -0
- clearskies_gitlab/models/rest/gitlab_rest_group_project.py +37 -0
- clearskies_gitlab/models/rest/gitlab_rest_group_reference.py +6 -0
- clearskies_gitlab/models/rest/gitlab_rest_group_search.py +21 -0
- clearskies_gitlab/models/rest/gitlab_rest_group_search_blob.py +13 -0
- clearskies_gitlab/models/rest/gitlab_rest_group_subgroup.py +65 -0
- clearskies_gitlab/models/rest/gitlab_rest_group_subgroup_reference.py +6 -0
- clearskies_gitlab/models/rest/gitlab_rest_group_variable.py +22 -0
- clearskies_gitlab/models/rest/gitlab_rest_namespace.py +69 -0
- clearskies_gitlab/models/rest/gitlab_rest_project.py +81 -0
- clearskies_gitlab/models/rest/gitlab_rest_project_reference.py +6 -0
- clearskies_gitlab/models/rest/gitlab_rest_project_repository_commit.py +44 -0
- clearskies_gitlab/models/rest/gitlab_rest_project_repository_commit_diff.py +34 -0
- clearskies_gitlab/models/rest/gitlab_rest_project_variable.py +24 -0
- clearskies_gitlab/models/rest/gitlab_rest_project_variable_refence.py +6 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections import OrderedDict
|
|
4
|
+
from typing import Any
|
|
5
|
+
|
|
6
|
+
from clearskies import Model
|
|
7
|
+
from clearskies.columns import BelongsToId, BelongsToModel, Boolean, Datetime, Integer, Json, Select, String
|
|
8
|
+
|
|
9
|
+
from clearskies_gitlab.models import gitlab_group, gitlab_namespace
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class GitlabProject(Model):
|
|
13
|
+
"""Base model for projects."""
|
|
14
|
+
|
|
15
|
+
id_column_name = "id"
|
|
16
|
+
|
|
17
|
+
id = String()
|
|
18
|
+
group_id = BelongsToId(gitlab_group.GitlabGroup)
|
|
19
|
+
group = BelongsToModel("group_id")
|
|
20
|
+
user_id = String()
|
|
21
|
+
namespace_id = BelongsToId(gitlab_namespace.GitlabNamespace)
|
|
22
|
+
namespace = BelongsToModel("namespace_id")
|
|
23
|
+
description = String()
|
|
24
|
+
description_html = String()
|
|
25
|
+
default_branch = String()
|
|
26
|
+
visibility = String()
|
|
27
|
+
ssh_url_to_repo = String()
|
|
28
|
+
http_url_to_repo = String()
|
|
29
|
+
web_url = String()
|
|
30
|
+
readme_url = String()
|
|
31
|
+
topics = Json()
|
|
32
|
+
owner = Json()
|
|
33
|
+
name = String()
|
|
34
|
+
name_with_namespace = String()
|
|
35
|
+
path = String()
|
|
36
|
+
path_with_namespace = String()
|
|
37
|
+
issues_enabled = Boolean()
|
|
38
|
+
open_issues_count = Integer()
|
|
39
|
+
merge_requests_enabled = Boolean()
|
|
40
|
+
jobs_enabled = Boolean()
|
|
41
|
+
wiki_enabled = Boolean()
|
|
42
|
+
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
|
+
created_at = Datetime()
|
|
49
|
+
updated_at = Datetime()
|
|
50
|
+
last_activity_at = Datetime()
|
|
51
|
+
creator_id = Integer()
|
|
52
|
+
import_url = String()
|
|
53
|
+
import_type = String()
|
|
54
|
+
import_status = String()
|
|
55
|
+
import_error = String()
|
|
56
|
+
permissions = Json()
|
|
57
|
+
archived = Boolean()
|
|
58
|
+
avatar_url = String()
|
|
59
|
+
license_url = String()
|
|
60
|
+
license = Json()
|
|
61
|
+
shared_runners_enabled = Boolean()
|
|
62
|
+
group_runners_enabled = Boolean()
|
|
63
|
+
forks_count = Integer()
|
|
64
|
+
star_count = Integer()
|
|
65
|
+
runners_token = String()
|
|
66
|
+
ci_default_git_depth = Integer()
|
|
67
|
+
ci_forward_deployment_enabled = Boolean()
|
|
68
|
+
ci_forward_deployment_rollback_allowed = Boolean()
|
|
69
|
+
ci_allow_fork_pipelines_to_run_in_parent_project = Boolean()
|
|
70
|
+
ci_separated_caches = Boolean()
|
|
71
|
+
ci_restrict_pipeline_cancellation_role = Select(allowed_values=["maintainer", "developer", "no_one"])
|
|
72
|
+
ci_pipeline_variables_minimum_override_role = Select(
|
|
73
|
+
allowed_values=["owner", "developer", "maintainer", "no_one_allowed"]
|
|
74
|
+
)
|
|
75
|
+
ci_push_repository_for_job_token_allowed = Boolean()
|
|
76
|
+
public_jobs = Boolean()
|
|
77
|
+
shared_with_groups = Json()
|
|
78
|
+
repository_storage = String()
|
|
79
|
+
only_allow_merge_if_pipeline_succeeds = Boolean()
|
|
80
|
+
allow_merge_on_skipped_pipeline = Boolean()
|
|
81
|
+
allow_pipeline_trigger_approve_deployment = Boolean()
|
|
82
|
+
restrict_user_defined_variables = Boolean()
|
|
83
|
+
only_allow_merge_if_all_discussions_are_resolved = Boolean()
|
|
84
|
+
remove_source_branch_after_merge = Boolean()
|
|
85
|
+
printing_merge_requests_link_enabled = Boolean()
|
|
86
|
+
request_access_enabled = Boolean()
|
|
87
|
+
only_allow_merge_if_pipeline_succeeds = Boolean()
|
|
88
|
+
merge_method = Select(allowed_values=["merge", "rebase_merge", "ff"])
|
|
89
|
+
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
|
+
mirror = Boolean()
|
|
93
|
+
mirror_user_id = Integer()
|
|
94
|
+
mirror_trigger_builds = Boolean()
|
|
95
|
+
only_mirror_protected_branches = Boolean()
|
|
96
|
+
mirror_overwrites_diverged_branches = Boolean()
|
|
97
|
+
external_authorization_classification_label = String()
|
|
98
|
+
packages_enabled = Boolean()
|
|
99
|
+
service_desk_enabled = Boolean()
|
|
100
|
+
service_desk_address = String()
|
|
101
|
+
autoclose_referenced_issues = Boolean()
|
|
102
|
+
suggestion_commit_message = String()
|
|
103
|
+
enforce_auth_checks_on_uploads = Boolean()
|
|
104
|
+
merge_commit_template = String()
|
|
105
|
+
squash_commit_template = String()
|
|
106
|
+
issue_branch_template = String()
|
|
107
|
+
marked_for_deletion_on = Datetime()
|
|
108
|
+
compliance_frameworks = Json()
|
|
109
|
+
statistics = Json()
|
|
110
|
+
container_registry_image_prefix = String()
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from clearskies_gitlab.models.rest.gitlab_rest_advanced_search import GitlabRestAdvancedSearch
|
|
4
|
+
from clearskies_gitlab.models.rest.gitlab_rest_advanced_search_blob import GitlabRestAdvancedSearchBlob
|
|
5
|
+
from clearskies_gitlab.models.rest.gitlab_rest_current_user import GitlabRestCurrentUser
|
|
6
|
+
from clearskies_gitlab.models.rest.gitlab_rest_group import GitlabRestGroup
|
|
7
|
+
from clearskies_gitlab.models.rest.gitlab_rest_group_access_token import GitlabRestGroupAccessToken
|
|
8
|
+
from clearskies_gitlab.models.rest.gitlab_rest_group_project import GitlabRestGroupProject
|
|
9
|
+
from clearskies_gitlab.models.rest.gitlab_rest_group_search import GitlabRestGroupSearch
|
|
10
|
+
from clearskies_gitlab.models.rest.gitlab_rest_group_search_blob import GitlabRestGroupSearchBlob
|
|
11
|
+
from clearskies_gitlab.models.rest.gitlab_rest_group_subgroup import GitlabRestGroupSubgroup
|
|
12
|
+
from clearskies_gitlab.models.rest.gitlab_rest_group_variable import GitlabRestGroupVariable
|
|
13
|
+
from clearskies_gitlab.models.rest.gitlab_rest_project import GitlabRestProject
|
|
14
|
+
from clearskies_gitlab.models.rest.gitlab_rest_project_repository_commit import GitlabRestProjectRepositoryCommit
|
|
15
|
+
from clearskies_gitlab.models.rest.gitlab_rest_project_repository_commit_diff import (
|
|
16
|
+
GitlabRestProjectRepositoryCommitDiff,
|
|
17
|
+
)
|
|
18
|
+
from clearskies_gitlab.models.rest.gitlab_rest_project_variable import GitlabRestProjectVariable
|
|
19
|
+
|
|
20
|
+
__all__ = [
|
|
21
|
+
"GitlabRestAdvancedSearch",
|
|
22
|
+
"GitlabRestAdvancedSearchBlob",
|
|
23
|
+
"GitlabRestCurrentUser",
|
|
24
|
+
"GitlabRestGroup",
|
|
25
|
+
"GitlabRestGroupAccessToken",
|
|
26
|
+
"GitlabRestGroupProject",
|
|
27
|
+
"GitlabRestGroupSearch",
|
|
28
|
+
"GitlabRestGroupSearchBlob",
|
|
29
|
+
"GitlabRestGroupSubgroup",
|
|
30
|
+
"GitlabRestGroupVariable",
|
|
31
|
+
"GitlabRestProject",
|
|
32
|
+
"GitlabRestProjectRepositoryCommit",
|
|
33
|
+
"GitlabRestProjectRepositoryCommitDiff",
|
|
34
|
+
"GitlabRestProjectVariable",
|
|
35
|
+
]
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections import OrderedDict
|
|
4
|
+
from typing import Any, Self
|
|
5
|
+
|
|
6
|
+
from clearskies.columns import Boolean, Json, Select, String
|
|
7
|
+
|
|
8
|
+
from clearskies_gitlab.models import gitlab_rest_model
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class GitlabRestAdvancedSearch(
|
|
12
|
+
gitlab_rest_model.GitlabRestModel,
|
|
13
|
+
):
|
|
14
|
+
"""Model for groups access tokens."""
|
|
15
|
+
|
|
16
|
+
@classmethod
|
|
17
|
+
def destination_name(cls: type[Self]) -> str:
|
|
18
|
+
"""Return the slug of the api endpoint for this model."""
|
|
19
|
+
return "search"
|
|
20
|
+
|
|
21
|
+
scope = Select(
|
|
22
|
+
allowed_values=[
|
|
23
|
+
"projects",
|
|
24
|
+
"issues",
|
|
25
|
+
"merge_requests",
|
|
26
|
+
"milestones",
|
|
27
|
+
"snippet_titles",
|
|
28
|
+
"users",
|
|
29
|
+
"wiki_blobs",
|
|
30
|
+
"commits",
|
|
31
|
+
"blobs",
|
|
32
|
+
"notes",
|
|
33
|
+
]
|
|
34
|
+
)
|
|
35
|
+
search = String()
|
|
36
|
+
confidential = Boolean()
|
|
37
|
+
state = String()
|
|
38
|
+
fields = Json()
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections import OrderedDict
|
|
4
|
+
from typing import Any
|
|
5
|
+
|
|
6
|
+
from clearskies.columns import BelongsToId, BelongsToModel, Integer, String
|
|
7
|
+
|
|
8
|
+
from clearskies_gitlab.models.rest import gitlab_rest_advanced_search, gitlab_rest_project
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class GitlabRestAdvancedSearchBlob(
|
|
12
|
+
gitlab_rest_advanced_search.GitlabRestAdvancedSearch,
|
|
13
|
+
):
|
|
14
|
+
"""Model for advanced searching blobs."""
|
|
15
|
+
|
|
16
|
+
basename = String()
|
|
17
|
+
data = String()
|
|
18
|
+
path = String()
|
|
19
|
+
filename = String()
|
|
20
|
+
id = Integer()
|
|
21
|
+
ref = String()
|
|
22
|
+
startline = Integer()
|
|
23
|
+
project_id = BelongsToId(
|
|
24
|
+
gitlab_rest_project.GitlabRestProject,
|
|
25
|
+
)
|
|
26
|
+
project = BelongsToModel("project_id")
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections import OrderedDict
|
|
4
|
+
from typing import Any, Self
|
|
5
|
+
|
|
6
|
+
from clearskies.columns import Boolean, Datetime, Email, Integer, Json, String
|
|
7
|
+
|
|
8
|
+
from clearskies_gitlab.models import gitlab_rest_model
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class GitlabRestCurrentUser(
|
|
12
|
+
gitlab_rest_model.GitlabRestModel,
|
|
13
|
+
):
|
|
14
|
+
"""Model for current user."""
|
|
15
|
+
|
|
16
|
+
@classmethod
|
|
17
|
+
def destination_name(cls: type[Self]) -> str:
|
|
18
|
+
"""Return the slug of the api endpoint for this model."""
|
|
19
|
+
return "user"
|
|
20
|
+
|
|
21
|
+
id = Integer()
|
|
22
|
+
username = String()
|
|
23
|
+
email = Email()
|
|
24
|
+
name = String()
|
|
25
|
+
state = String()
|
|
26
|
+
locked = Boolean()
|
|
27
|
+
avatar_url = String()
|
|
28
|
+
web_url = String()
|
|
29
|
+
created_at = Datetime()
|
|
30
|
+
bio = String()
|
|
31
|
+
public_email = Email()
|
|
32
|
+
organization = String()
|
|
33
|
+
bot = Boolean()
|
|
34
|
+
last_sign_in_at = Datetime()
|
|
35
|
+
confirmed_at = Datetime()
|
|
36
|
+
last_activity_on = Datetime()
|
|
37
|
+
identities = Json()
|
|
38
|
+
can_create_group = Boolean()
|
|
39
|
+
can_create_project = Boolean()
|
|
40
|
+
two_factor_enabled = Boolean()
|
|
41
|
+
external = Boolean()
|
|
42
|
+
private_profile = Boolean()
|
|
43
|
+
commit_email = Email()
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections import OrderedDict
|
|
4
|
+
from typing import Any, Self
|
|
5
|
+
|
|
6
|
+
from clearskies.columns import (
|
|
7
|
+
BelongsToId,
|
|
8
|
+
BelongsToModel,
|
|
9
|
+
BelongsToSelf,
|
|
10
|
+
Boolean,
|
|
11
|
+
Datetime,
|
|
12
|
+
HasMany,
|
|
13
|
+
Integer,
|
|
14
|
+
Json,
|
|
15
|
+
Select,
|
|
16
|
+
String,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
from clearskies_gitlab.models import gitlab_group, gitlab_rest_model
|
|
20
|
+
from clearskies_gitlab.models.rest import (
|
|
21
|
+
gitlab_rest_group_access_token,
|
|
22
|
+
gitlab_rest_group_member_reference,
|
|
23
|
+
gitlab_rest_group_project,
|
|
24
|
+
gitlab_rest_group_subgroup_reference,
|
|
25
|
+
gitlab_rest_group_variable,
|
|
26
|
+
gitlab_rest_project_reference,
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class GitlabRestGroup(
|
|
31
|
+
gitlab_rest_model.GitlabRestModel,
|
|
32
|
+
gitlab_group.GitlabGroup,
|
|
33
|
+
):
|
|
34
|
+
"""Model for groups."""
|
|
35
|
+
|
|
36
|
+
@classmethod
|
|
37
|
+
def destination_name(cls: type[Self]) -> str:
|
|
38
|
+
"""Return the slug of the api endpoint for this model."""
|
|
39
|
+
return "groups"
|
|
40
|
+
|
|
41
|
+
projects = HasMany(
|
|
42
|
+
gitlab_rest_group_project.GitlabRestGroupProject,
|
|
43
|
+
foreign_column_name="group_id",
|
|
44
|
+
)
|
|
45
|
+
access_tokens = HasMany(
|
|
46
|
+
gitlab_rest_group_access_token.GitlabRestGroupAccessToken,
|
|
47
|
+
foreign_column_name="group_id",
|
|
48
|
+
)
|
|
49
|
+
variables = HasMany(
|
|
50
|
+
gitlab_rest_group_variable.GitlabRestGroupVariable,
|
|
51
|
+
foreign_column_name="group_id",
|
|
52
|
+
)
|
|
53
|
+
subgroups = HasMany(
|
|
54
|
+
gitlab_rest_group_subgroup_reference.GitlabRestGroupSubgroupReference,
|
|
55
|
+
foreign_column_name="group_id",
|
|
56
|
+
)
|
|
57
|
+
members = HasMany(
|
|
58
|
+
gitlab_rest_group_member_reference.GitlabRestGroupMemberReference,
|
|
59
|
+
foreign_column_name="group_id",
|
|
60
|
+
)
|
|
61
|
+
parent_id = BelongsToSelf()
|
|
62
|
+
parent = BelongsToModel("parent_id")
|
|
63
|
+
### Search params
|
|
64
|
+
skip_groups = Json()
|
|
65
|
+
all_available = Boolean()
|
|
66
|
+
search = String()
|
|
67
|
+
order_by = String()
|
|
68
|
+
sort = String()
|
|
69
|
+
visibility = Select(allowed_values=["public", "internal", "private"])
|
|
70
|
+
with_custom_attributes = Boolean()
|
|
71
|
+
owned = Boolean()
|
|
72
|
+
min_access_level = Integer()
|
|
73
|
+
top_level_only = Boolean()
|
|
74
|
+
repository_storage = String()
|
|
75
|
+
marked_for_deletion_on = Datetime(date_format="%Y-%m-%d")
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections import OrderedDict
|
|
4
|
+
from typing import Any, Self
|
|
5
|
+
|
|
6
|
+
from clearskies.columns import BelongsToId, BelongsToModel, Boolean, Datetime, Integer, Json, String
|
|
7
|
+
|
|
8
|
+
from clearskies_gitlab.models import gitlab_rest_model
|
|
9
|
+
from clearskies_gitlab.models.rest import gitlab_rest_group
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class GitlabRestGroupAccessToken(
|
|
13
|
+
gitlab_rest_model.GitlabRestModel,
|
|
14
|
+
):
|
|
15
|
+
"""Model for groups access tokens."""
|
|
16
|
+
|
|
17
|
+
@classmethod
|
|
18
|
+
def destination_name(cls: type[Self]) -> str:
|
|
19
|
+
"""Return the slug of the api endpoint for this model."""
|
|
20
|
+
return "groups/:group_id/access_tokens"
|
|
21
|
+
|
|
22
|
+
group_id = String()
|
|
23
|
+
id = Integer()
|
|
24
|
+
user_id = Integer()
|
|
25
|
+
name = String()
|
|
26
|
+
created_at = Datetime()
|
|
27
|
+
expires_at = Datetime(date_format="%Y-%m-%d")
|
|
28
|
+
active = Boolean()
|
|
29
|
+
revoked = Boolean()
|
|
30
|
+
access_level = Integer()
|
|
31
|
+
token = String()
|
|
32
|
+
scopes = Json()
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections import OrderedDict
|
|
4
|
+
from typing import Any, Self
|
|
5
|
+
|
|
6
|
+
from clearskies.columns import BelongsToId, BelongsToModel, Boolean, Json, String
|
|
7
|
+
|
|
8
|
+
from clearskies_gitlab.models import gitlab_member, gitlab_rest_model
|
|
9
|
+
from clearskies_gitlab.models.rest import gitlab_rest_group
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class GitlabRestGroupMember(
|
|
13
|
+
gitlab_rest_model.GitlabRestModel,
|
|
14
|
+
gitlab_member.GitlabMember,
|
|
15
|
+
):
|
|
16
|
+
"""Model for group members."""
|
|
17
|
+
|
|
18
|
+
@classmethod
|
|
19
|
+
def destination_name(cls: type[Self]) -> str:
|
|
20
|
+
"""Return the slug of the api endpoint for this model."""
|
|
21
|
+
return "groups/:group_id/members"
|
|
22
|
+
|
|
23
|
+
group_id = String()
|
|
24
|
+
query = String()
|
|
25
|
+
user_ids = Json()
|
|
26
|
+
skip_users = Json()
|
|
27
|
+
show_seat_info = Boolean()
|
|
28
|
+
all = Boolean()
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections import OrderedDict
|
|
4
|
+
from typing import Any, Self
|
|
5
|
+
|
|
6
|
+
from clearskies.columns import (
|
|
7
|
+
BelongsToId,
|
|
8
|
+
BelongsToModel,
|
|
9
|
+
BelongsToSelf,
|
|
10
|
+
Boolean,
|
|
11
|
+
Datetime,
|
|
12
|
+
HasMany,
|
|
13
|
+
Integer,
|
|
14
|
+
Json,
|
|
15
|
+
Select,
|
|
16
|
+
String,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
from clearskies_gitlab.models import gitlab_project, gitlab_rest_model
|
|
20
|
+
from clearskies_gitlab.models.rest import (
|
|
21
|
+
gitlab_rest_group_access_token,
|
|
22
|
+
gitlab_rest_group_subgroup_reference,
|
|
23
|
+
gitlab_rest_group_variable,
|
|
24
|
+
gitlab_rest_project_reference,
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class GitlabRestGroupProject(
|
|
29
|
+
gitlab_rest_model.GitlabRestModel,
|
|
30
|
+
gitlab_project.GitlabProject,
|
|
31
|
+
):
|
|
32
|
+
"""Model for groups projects."""
|
|
33
|
+
|
|
34
|
+
@classmethod
|
|
35
|
+
def destination_name(cls: type[Self]) -> str:
|
|
36
|
+
"""Return the slug of the api endpoint for this model."""
|
|
37
|
+
return "groups/:group_id/projects"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections import OrderedDict
|
|
4
|
+
from typing import Any, Self
|
|
5
|
+
|
|
6
|
+
from clearskies.columns import Integer
|
|
7
|
+
|
|
8
|
+
from clearskies_gitlab.models.rest import gitlab_rest_advanced_search
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class GitlabRestGroupSearch(
|
|
12
|
+
gitlab_rest_advanced_search.GitlabRestAdvancedSearch,
|
|
13
|
+
):
|
|
14
|
+
"""Model for groups access tokens."""
|
|
15
|
+
|
|
16
|
+
@classmethod
|
|
17
|
+
def destination_name(cls: type[Self]) -> str:
|
|
18
|
+
"""Return the slug of the api endpoint for this model."""
|
|
19
|
+
return "groups/:group_id/search"
|
|
20
|
+
|
|
21
|
+
group_id = Integer()
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from clearskies_gitlab.models.rest import (
|
|
4
|
+
gitlab_rest_advanced_search_blob,
|
|
5
|
+
gitlab_rest_group_search,
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class GitlabRestGroupSearchBlob(
|
|
10
|
+
gitlab_rest_group_search.GitlabRestGroupSearch,
|
|
11
|
+
gitlab_rest_advanced_search_blob.GitlabRestAdvancedSearchBlob,
|
|
12
|
+
):
|
|
13
|
+
"""Model for advanced searching blobs."""
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections import OrderedDict
|
|
4
|
+
from typing import Any, Self
|
|
5
|
+
|
|
6
|
+
from clearskies.columns import (
|
|
7
|
+
BelongsToId,
|
|
8
|
+
BelongsToModel,
|
|
9
|
+
BelongsToSelf,
|
|
10
|
+
Boolean,
|
|
11
|
+
Datetime,
|
|
12
|
+
HasMany,
|
|
13
|
+
Integer,
|
|
14
|
+
Json,
|
|
15
|
+
Select,
|
|
16
|
+
String,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
from clearskies_gitlab.models import gitlab_group, gitlab_rest_model
|
|
20
|
+
from clearskies_gitlab.models.rest import (
|
|
21
|
+
gitlab_rest_group_access_token,
|
|
22
|
+
gitlab_rest_group_variable,
|
|
23
|
+
gitlab_rest_project_reference,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class GitlabRestGroupSubgroup(gitlab_rest_model.GitlabRestModel, gitlab_group.GitlabGroup):
|
|
28
|
+
"""Model for Subgroups."""
|
|
29
|
+
|
|
30
|
+
id_column_name = "group_id"
|
|
31
|
+
|
|
32
|
+
@classmethod
|
|
33
|
+
def destination_name(cls: type[Self]) -> str:
|
|
34
|
+
"""Return the slug of the api endpoint for this model."""
|
|
35
|
+
return "groups/:group_id/subgroups"
|
|
36
|
+
|
|
37
|
+
group_id = String()
|
|
38
|
+
|
|
39
|
+
projects = HasMany(
|
|
40
|
+
gitlab_rest_project_reference.GitlabRestProjectReference,
|
|
41
|
+
foreign_column_name="group_id",
|
|
42
|
+
)
|
|
43
|
+
access_tokens = HasMany(
|
|
44
|
+
gitlab_rest_group_access_token.GitlabRestGroupAccessToken,
|
|
45
|
+
foreign_column_name="group_id",
|
|
46
|
+
)
|
|
47
|
+
variables = HasMany(
|
|
48
|
+
gitlab_rest_group_variable.GitlabRestGroupVariable,
|
|
49
|
+
foreign_column_name="group_id",
|
|
50
|
+
)
|
|
51
|
+
parent_id = BelongsToSelf()
|
|
52
|
+
parent = BelongsToModel("parent_id")
|
|
53
|
+
### Search params
|
|
54
|
+
skip_groups = Json()
|
|
55
|
+
all_available = Boolean()
|
|
56
|
+
search = String()
|
|
57
|
+
order_by = String()
|
|
58
|
+
sort = String()
|
|
59
|
+
visibility = Select(allowed_values=["public", "internal", "private"])
|
|
60
|
+
with_custom_attributes = Boolean()
|
|
61
|
+
owned = Boolean()
|
|
62
|
+
min_access_level = Integer()
|
|
63
|
+
top_level_only = Boolean()
|
|
64
|
+
repository_storage = String()
|
|
65
|
+
marked_for_deletion_on = Datetime(date_format="%Y-%m-%d")
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections import OrderedDict
|
|
4
|
+
from typing import TYPE_CHECKING, Any, Self
|
|
5
|
+
|
|
6
|
+
from clearskies.columns import BelongsToId, BelongsToModel, String
|
|
7
|
+
|
|
8
|
+
from clearskies_gitlab.models import gitlab_cicd_variable, gitlab_rest_model
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class GitlabRestGroupVariable(
|
|
12
|
+
gitlab_rest_model.GitlabRestModel,
|
|
13
|
+
gitlab_cicd_variable.GitlabCICDVariable,
|
|
14
|
+
):
|
|
15
|
+
"""Model for gitlab group variables."""
|
|
16
|
+
|
|
17
|
+
@classmethod
|
|
18
|
+
def destination_name(cls: type[Self]) -> str:
|
|
19
|
+
"""Return the slug of the api endpoint for this model."""
|
|
20
|
+
return "groups/:group_id/variables"
|
|
21
|
+
|
|
22
|
+
group_id = String()
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections import OrderedDict
|
|
4
|
+
from typing import Any, Self
|
|
5
|
+
|
|
6
|
+
from clearskies.columns import (
|
|
7
|
+
BelongsToId,
|
|
8
|
+
BelongsToModel,
|
|
9
|
+
BelongsToSelf,
|
|
10
|
+
Boolean,
|
|
11
|
+
Datetime,
|
|
12
|
+
HasMany,
|
|
13
|
+
Integer,
|
|
14
|
+
Json,
|
|
15
|
+
Select,
|
|
16
|
+
String,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
from clearskies_gitlab.models import gitlab_namespace, gitlab_rest_model
|
|
20
|
+
from clearskies_gitlab.models.rest import (
|
|
21
|
+
gitlab_rest_group_access_token,
|
|
22
|
+
gitlab_rest_group_subgroup_reference,
|
|
23
|
+
gitlab_rest_group_variable,
|
|
24
|
+
gitlab_rest_project_reference,
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class GitlabRestNamespace(
|
|
29
|
+
gitlab_rest_model.GitlabRestModel,
|
|
30
|
+
gitlab_namespace.GitlabNamespace,
|
|
31
|
+
):
|
|
32
|
+
"""Model for namespaces."""
|
|
33
|
+
|
|
34
|
+
@classmethod
|
|
35
|
+
def destination_name(cls: type[Self]) -> str:
|
|
36
|
+
"""Return the slug of the api endpoint for this model."""
|
|
37
|
+
return "namespaces"
|
|
38
|
+
|
|
39
|
+
projects = HasMany(
|
|
40
|
+
gitlab_rest_project_reference.GitlabRestProjectReference,
|
|
41
|
+
foreign_column_name="group_id",
|
|
42
|
+
)
|
|
43
|
+
access_tokens = HasMany(
|
|
44
|
+
gitlab_rest_group_access_token.GitlabRestGroupAccessToken,
|
|
45
|
+
foreign_column_name="group_id",
|
|
46
|
+
)
|
|
47
|
+
variables = HasMany(
|
|
48
|
+
gitlab_rest_group_variable.GitlabRestGroupVariable,
|
|
49
|
+
foreign_column_name="group_id",
|
|
50
|
+
)
|
|
51
|
+
subgroups = HasMany(
|
|
52
|
+
gitlab_rest_group_subgroup_reference.GitlabRestGroupSubgroupReference,
|
|
53
|
+
foreign_column_name="group_id",
|
|
54
|
+
)
|
|
55
|
+
parent_id = BelongsToSelf()
|
|
56
|
+
parent = BelongsToModel("parent_id")
|
|
57
|
+
### Search params
|
|
58
|
+
skip_groups = Json()
|
|
59
|
+
all_available = Boolean()
|
|
60
|
+
search = String()
|
|
61
|
+
order_by = String()
|
|
62
|
+
sort = String()
|
|
63
|
+
visibility = Select(allowed_values=["public", "internal", "private"])
|
|
64
|
+
with_custom_attributes = Boolean()
|
|
65
|
+
owned = Boolean()
|
|
66
|
+
min_access_level = Integer()
|
|
67
|
+
top_level_only = Boolean()
|
|
68
|
+
repository_storage = String()
|
|
69
|
+
marked_for_deletion_on = Datetime(date_format="%Y-%m-%d")
|