clear-skies-gitlab 2.0.2__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clear-skies-gitlab
3
- Version: 2.0.2
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
@@ -27,8 +27,10 @@ clearskies_gitlab/rest/models/__init__.py,sha256=mcfdh04R8Fu5T-6Cz-Iy3CJ2LLttgkw
27
27
  clearskies_gitlab/rest/models/gitlab_rest_advanced_search.py,sha256=iFxCGDaqzRxl2a9g91P7zpj2ZAxuRbYoSiz_hsXMavY,883
28
28
  clearskies_gitlab/rest/models/gitlab_rest_advanced_search_blob.py,sha256=R3DFxbAcm3Em8S6dZ51EG6m-OSaM-BQmuo035SHV5NU,628
29
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=Qt8TBf9EDdtbfj54k1h0gawvanCQdBzuXC-hU5BSR84,4062
30
+ clearskies_gitlab/rest/models/gitlab_rest_group.py,sha256=iJgz78APzdlK9TOv0OmqVU_3qg-lJ3cdUBkMjyqhYho,1410
31
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
32
34
  clearskies_gitlab/rest/models/gitlab_rest_group_member.py,sha256=CLkslCom4Deo2c3GdkoM8cuVYLOsvfreYzOUm64DTNs,707
33
35
  clearskies_gitlab/rest/models/gitlab_rest_group_member_reference.py,sha256=XrhG_hiqGQf8vIosss2Vp4RWvNNtHxIn-TzXtPGQvgU,331
34
36
  clearskies_gitlab/rest/models/gitlab_rest_group_project.py,sha256=33hEMN08aIsl4-tcIgNmruGLRYr0XqIuD9nQZ3Xs_CY,415
@@ -36,9 +38,10 @@ clearskies_gitlab/rest/models/gitlab_rest_group_project_reference.py,sha256=fp45
36
38
  clearskies_gitlab/rest/models/gitlab_rest_group_reference.py,sha256=UiHQpQNuVM3WotCNEFIlEqLwXMdy-8YqYRil-S84MQI,292
37
39
  clearskies_gitlab/rest/models/gitlab_rest_group_search.py,sha256=VgpGDRwe3UhY2AXfqWpGYYY6ghUhoDNKJqeLsrNtwcA,506
38
40
  clearskies_gitlab/rest/models/gitlab_rest_group_search_blob.py,sha256=_tIkwwDzJF9nGV0LL9fVqY5Tn4SSBXNg1C0dKlUQ-oM,353
39
- clearskies_gitlab/rest/models/gitlab_rest_group_subgroup.py,sha256=E7hAF1kfLuqXBh6zRz2B62ZQTCoyX6TaD51diC57dBk,1488
41
+ clearskies_gitlab/rest/models/gitlab_rest_group_subgroup.py,sha256=x0h_alIV3QFbslXIlqHC48HAOmmFw5T96XAwWh31-uA,1937
40
42
  clearskies_gitlab/rest/models/gitlab_rest_group_subgroup_reference.py,sha256=vFAlOmQ8wJswlcNGJ9zrrxidsFXC70hDfYNrNZ5VQ9g,341
41
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
42
45
  clearskies_gitlab/rest/models/gitlab_rest_namespace.py,sha256=AIh56mDeB8LtrKVhWEtZ1Gop_V9enBdObjpKfK5b-0g,2484
43
46
  clearskies_gitlab/rest/models/gitlab_rest_project.py,sha256=Nc6u-R3Pb4NO6pZUYtZ6RYkygqizyiTybIkpFN47aXM,6687
44
47
  clearskies_gitlab/rest/models/gitlab_rest_project_approval_config.py,sha256=E1Yhk4kWQfWA1Peyml0yrJuJeqkFfMvYffQ7vmfNmoc,1099
@@ -59,7 +62,7 @@ clearskies_gitlab/rest/models/gitlab_rest_project_repository_file_raw.py,sha256=
59
62
  clearskies_gitlab/rest/models/gitlab_rest_project_repository_file_reference.py,sha256=WiK7aOhBZD_8HRvvlTQ6oWk3hXOJAyfEKdqmCIUIM9M,383
60
63
  clearskies_gitlab/rest/models/gitlab_rest_project_variable.py,sha256=rfmk38ndgtdzoaoUFxRDPLhrRc5JWuNa2B2mWO1q4aM,813
61
64
  clearskies_gitlab/rest/models/gitlab_rest_project_variable_reference.py,sha256=6P-9TbvhYMZGoBMM-BFFDFKsN40LEXd9FKYNTFpNayU,351
62
- clear_skies_gitlab-2.0.2.dist-info/METADATA,sha256=4q5WnIUQwk_f67YUw8xGTr6_bdsEwcvQ__jUmjuBARs,2143
63
- clear_skies_gitlab-2.0.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
64
- clear_skies_gitlab-2.0.2.dist-info/licenses/LICENSE,sha256=MkEX8JF8kZxdyBpTTcB0YTd-xZpWnHvbRlw-pQh8u58,1069
65
- clear_skies_gitlab-2.0.2.dist-info/RECORD,,
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,,
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025, Tom Nijboer
3
+ Copyright (c) 2026, Tom Nijboer
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -2,31 +2,22 @@ from __future__ import annotations
2
2
 
3
3
  from typing import Self
4
4
 
5
- from clearskies import Model
6
5
  from clearskies.columns import (
7
- BelongsToModel,
8
- BelongsToSelf,
9
- Boolean,
10
- Datetime,
11
6
  HasMany,
12
- Integer,
13
- Json,
14
- Select,
15
- String,
16
7
  )
17
8
 
18
- from clearskies_gitlab.rest.backends import GitlabRestBackend
19
9
  from clearskies_gitlab.rest.models import (
20
- gitlab_rest_group_access_token,
10
+ gitlab_rest_group_access_token_reference,
11
+ gitlab_rest_group_base,
21
12
  gitlab_rest_group_member_reference,
22
13
  gitlab_rest_group_project_reference,
23
14
  gitlab_rest_group_subgroup_reference,
24
- gitlab_rest_group_variable,
15
+ gitlab_rest_group_variable_reference,
25
16
  )
26
17
 
27
18
 
28
19
  class GitlabRestGroup(
29
- Model,
20
+ gitlab_rest_group_base.GitlabRestGroupBase,
30
21
  ):
31
22
  """Model for groups."""
32
23
 
@@ -35,76 +26,16 @@ class GitlabRestGroup(
35
26
  """Return the slug of the api endpoint for this model."""
36
27
  return "groups"
37
28
 
38
- id_column_name = "id"
39
-
40
- backend = GitlabRestBackend()
41
-
42
- id = String()
43
- web_url = String()
44
- name = String()
45
- path = String()
46
- description = String()
47
- visibility = String()
48
- share_with_group_lock = Boolean()
49
- require_two_factor_authentication = Boolean()
50
- two_factor_grace_period = Integer()
51
- project_creation_level = String()
52
- auto_devops_enabled = Boolean()
53
- subgroup_creation_level = String()
54
- emails_disabled = Boolean()
55
- emails_enabled = Boolean()
56
- mentions_disabled = String()
57
- lfs_enabled = String()
58
- math_rendering_limits_enabled = Boolean()
59
- lock_math_rendering_limits_enabled = Boolean()
60
- default_branch = String()
61
- default_branch_protection = String()
62
- default_branch_protection_defaults = String()
63
- avatar_url = String()
64
- request_access_enabled = Boolean()
65
- full_name = String()
66
- full_path = String()
67
- created_at = Datetime()
68
- parent_id = String()
69
- organization_id = String()
70
- shared_runners_setting = String()
71
- custom_attributes = Json()
72
- statistics = Json()
73
- ldap_cn = String()
74
- ldap_access = String()
75
- ldap_group_links = Json()
76
- saml_group_links = Json()
77
- file_template_project_id = String()
78
- marked_for_deletion_on = Datetime()
79
- wiki_access_level = String()
80
- repository_storage = String()
81
- duo_features_enabled = Boolean()
82
- lock_duo_features_enabled = Boolean()
83
- shared_with_groups = Json()
84
- runners_token = String()
85
- enabled_git_access_protocol = String()
86
- prevent_sharing_groups_outside_hierarchy = Boolean()
87
- shared_runners_minutes_limit = Integer()
88
- extra_shared_runners_minutes_limit = Integer()
89
- prevent_forking_outside_group = Boolean()
90
- service_access_tokens_expiration_enforced = Boolean()
91
- membership_lock = Boolean()
92
- ip_restriction_ranges = Json()
93
- unique_project_download_limit = String()
94
- unique_project_download_limit_interval_in_seconds = Integer()
95
- unique_project_download_limit_alertlist = Json()
96
- auto_ban_user_on_excessive_projects_download = Boolean()
97
-
98
29
  projects = HasMany(
99
30
  gitlab_rest_group_project_reference.GitlabRestGroupProjectReference,
100
31
  foreign_column_name="group_id",
101
32
  )
102
33
  access_tokens = HasMany(
103
- gitlab_rest_group_access_token.GitlabRestGroupAccessToken,
34
+ gitlab_rest_group_access_token_reference.GitlabRestGroupAccessTokenReference,
104
35
  foreign_column_name="group_id",
105
36
  )
106
37
  variables = HasMany(
107
- gitlab_rest_group_variable.GitlabRestGroupVariable,
38
+ gitlab_rest_group_variable_reference.GitlabRestGroupVariableReference,
108
39
  foreign_column_name="group_id",
109
40
  )
110
41
  subgroups = HasMany(
@@ -115,18 +46,3 @@ class GitlabRestGroup(
115
46
  gitlab_rest_group_member_reference.GitlabRestGroupMemberReference,
116
47
  foreign_column_name="group_id",
117
48
  )
118
- parent_id = BelongsToSelf()
119
- parent = BelongsToModel("parent_id")
120
- ### Search params
121
- skip_groups = Json()
122
- all_available = Boolean()
123
- search = String()
124
- order_by = String()
125
- sort = String()
126
- visibility = Select(allowed_values=["public", "internal", "private"])
127
- with_custom_attributes = Boolean()
128
- owned = Boolean()
129
- min_access_level = Integer()
130
- top_level_only = Boolean()
131
- repository_storage = String()
132
- marked_for_deletion_on = Datetime(date_format="%Y-%m-%d")
@@ -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
@@ -0,0 +1,104 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Self
4
+
5
+ from clearskies import Model
6
+ from clearskies.columns import (
7
+ BelongsToModel,
8
+ BelongsToSelf,
9
+ Boolean,
10
+ Datetime,
11
+ Integer,
12
+ Json,
13
+ Select,
14
+ String,
15
+ )
16
+
17
+ from clearskies_gitlab.rest.backends import GitlabRestBackend
18
+
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"
29
+
30
+ id_column_name = "id"
31
+
32
+ backend = GitlabRestBackend()
33
+
34
+ id = String()
35
+ web_url = String()
36
+ name = String()
37
+ path = String()
38
+ description = String()
39
+ visibility = String()
40
+ share_with_group_lock = Boolean()
41
+ require_two_factor_authentication = Boolean()
42
+ two_factor_grace_period = Integer()
43
+ project_creation_level = String()
44
+ auto_devops_enabled = Boolean()
45
+ subgroup_creation_level = String()
46
+ emails_disabled = Boolean()
47
+ emails_enabled = Boolean()
48
+ mentions_disabled = String()
49
+ lfs_enabled = String()
50
+ math_rendering_limits_enabled = Boolean()
51
+ lock_math_rendering_limits_enabled = Boolean()
52
+ default_branch = String()
53
+ default_branch_protection = String()
54
+ default_branch_protection_defaults = String()
55
+ avatar_url = String()
56
+ request_access_enabled = Boolean()
57
+ full_name = String()
58
+ full_path = String()
59
+ created_at = Datetime()
60
+ parent_id = String()
61
+ organization_id = String()
62
+ shared_runners_setting = String()
63
+ custom_attributes = Json()
64
+ statistics = Json()
65
+ ldap_cn = String()
66
+ ldap_access = String()
67
+ ldap_group_links = Json()
68
+ saml_group_links = Json()
69
+ file_template_project_id = String()
70
+ marked_for_deletion_on = Datetime()
71
+ wiki_access_level = String()
72
+ repository_storage = String()
73
+ duo_features_enabled = Boolean()
74
+ lock_duo_features_enabled = Boolean()
75
+ shared_with_groups = Json()
76
+ runners_token = String()
77
+ enabled_git_access_protocol = String()
78
+ prevent_sharing_groups_outside_hierarchy = Boolean()
79
+ shared_runners_minutes_limit = Integer()
80
+ extra_shared_runners_minutes_limit = Integer()
81
+ prevent_forking_outside_group = Boolean()
82
+ service_access_tokens_expiration_enforced = Boolean()
83
+ membership_lock = Boolean()
84
+ ip_restriction_ranges = Json()
85
+ unique_project_download_limit = String()
86
+ unique_project_download_limit_interval_in_seconds = Integer()
87
+ unique_project_download_limit_alertlist = Json()
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")
@@ -2,15 +2,19 @@ from __future__ import annotations
2
2
 
3
3
  from typing import Self
4
4
 
5
- from clearskies.columns import String
5
+ from clearskies.columns import HasMany, HasManySelf, String
6
6
 
7
7
  from clearskies_gitlab.rest.models import (
8
- gitlab_rest_group,
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,
9
13
  )
10
14
 
11
15
 
12
16
  class GitlabRestGroupSubgroup(
13
- gitlab_rest_group.GitlabRestGroup,
17
+ gitlab_rest_group_base.GitlabRestGroupBase,
14
18
  ):
15
19
  """Model for Subgroups."""
16
20
 
@@ -23,18 +27,25 @@ class GitlabRestGroupSubgroup(
23
27
 
24
28
  group_id = String()
25
29
 
26
- # projects = HasMany(
27
- # gitlab_rest_project_reference.GitlabRestProjectReference,
28
- # foreign_column_name="group_id",
29
- # )
30
- # access_tokens = HasMany(
31
- # gitlab_rest_group_access_token.GitlabRestGroupAccessToken,
32
- # foreign_column_name="group_id",
33
- # )
34
- # variables = HasMany(
35
- # gitlab_rest_group_variable.GitlabRestGroupVariable,
36
- # foreign_column_name="group_id",
37
- # )
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
+ )
38
49
  # parent_id = BelongsToSelf()
39
50
  # parent = BelongsToModel("parent_id")
40
51
  # ### Search params
@@ -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