clear-skies-gitlab 2.0.2__tar.gz → 2.0.4__tar.gz

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.
Files changed (88) hide show
  1. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/.copier-answers.yml +1 -1
  2. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/.github/workflows/create-version.yaml +1 -1
  3. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/.github/workflows/run-tests.yml +2 -1
  4. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/.github/workflows/tests-matrix.yaml +6 -19
  5. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/.pre-commit-config.yaml +0 -6
  6. clear_skies_gitlab-2.0.4/.vscode/settings.json +21 -0
  7. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/CHANGELOG.md +19 -0
  8. clear_skies_gitlab-2.0.4/LATEST_CHANGELOG.md +7 -0
  9. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/LICENSE +1 -1
  10. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/PKG-INFO +1 -1
  11. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/pyproject.toml +1 -1
  12. clear_skies_gitlab-2.0.4/ruff.toml +29 -0
  13. clear_skies_gitlab-2.0.4/src/clearskies_gitlab/rest/models/gitlab_rest_group.py +48 -0
  14. clear_skies_gitlab-2.0.4/src/clearskies_gitlab/rest/models/gitlab_rest_group_access_token_reference.py +8 -0
  15. clear_skies_gitlab-2.0.2/src/clearskies_gitlab/rest/models/gitlab_rest_group.py → clear_skies_gitlab-2.0.4/src/clearskies_gitlab/rest/models/gitlab_rest_group_base.py +1 -29
  16. clear_skies_gitlab-2.0.4/src/clearskies_gitlab/rest/models/gitlab_rest_group_subgroup.py +63 -0
  17. clear_skies_gitlab-2.0.4/src/clearskies_gitlab/rest/models/gitlab_rest_group_variable_reference.py +8 -0
  18. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/uv.lock +295 -288
  19. clear_skies_gitlab-2.0.2/LATEST_CHANGELOG.md +0 -6
  20. clear_skies_gitlab-2.0.2/ruff.toml +0 -117
  21. clear_skies_gitlab-2.0.2/src/clearskies_gitlab/rest/models/gitlab_rest_group_subgroup.py +0 -52
  22. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/.editorconfig +0 -0
  23. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/.github/workflows/docs.yaml +0 -0
  24. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/.github/workflows/tests.yaml +0 -0
  25. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/.gitignore +0 -0
  26. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/.python-version +0 -0
  27. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/README.md +0 -0
  28. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/cliff.toml +0 -0
  29. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/local.py +0 -0
  30. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/__init__.py +0 -0
  31. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/defaults/__init__.py +0 -0
  32. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/defaults/gitlab_default_auth.py +0 -0
  33. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/defaults/gitlab_default_host.py +0 -0
  34. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/defaults/gitlab_graphql_client.py +0 -0
  35. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/exceptions/__init__.py +0 -0
  36. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/exceptions/gitlab_error.py +0 -0
  37. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/graphql/__init__.py +0 -0
  38. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/graphql/backends/__init__.py +0 -0
  39. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/graphql/backends/gitlab_graphql_backend.py +0 -0
  40. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/graphql/models/__init__.py +0 -0
  41. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/graphql/models/gitlab_container_repository.py +0 -0
  42. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/graphql/models/gitlab_container_repository_reference.py +0 -0
  43. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/graphql/models/gitlab_container_repository_tag.py +0 -0
  44. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/graphql/models/gitlab_container_repository_tag_reference.py +0 -0
  45. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/graphql/models/gitlab_group.py +0 -0
  46. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/graphql/models/gitlab_group_reference.py +0 -0
  47. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/graphql/models/gitlab_project.py +0 -0
  48. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/graphql/models/gitlab_project_reference.py +0 -0
  49. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/__init__.py +0 -0
  50. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/backends/__init__.py +0 -0
  51. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/backends/gitlab_rest_backend.py +0 -0
  52. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/gitlab_branch_rule.py +0 -0
  53. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/gitlab_cicd_variable.py +0 -0
  54. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/gitlab_member.py +0 -0
  55. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/__init__.py +0 -0
  56. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_advanced_search.py +0 -0
  57. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_advanced_search_blob.py +0 -0
  58. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_current_user.py +0 -0
  59. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_group_access_token.py +0 -0
  60. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_group_member.py +0 -0
  61. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_group_member_reference.py +0 -0
  62. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_group_project.py +0 -0
  63. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_group_project_reference.py +0 -0
  64. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_group_reference.py +0 -0
  65. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_group_search.py +0 -0
  66. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_group_search_blob.py +0 -0
  67. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_group_subgroup_reference.py +0 -0
  68. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_group_variable.py +0 -0
  69. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_namespace.py +0 -0
  70. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project.py +0 -0
  71. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project_approval_config.py +0 -0
  72. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project_approval_config_reference.py +0 -0
  73. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project_approval_rule.py +0 -0
  74. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project_approval_rule_reference.py +0 -0
  75. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project_member.py +0 -0
  76. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project_member_reference.py +0 -0
  77. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project_protected_branch.py +0 -0
  78. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project_protected_branch_reference.py +0 -0
  79. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project_reference.py +0 -0
  80. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project_repository_commit.py +0 -0
  81. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project_repository_commit_diff.py +0 -0
  82. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project_repository_contributor.py +0 -0
  83. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project_repository_contributor_reference.py +0 -0
  84. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project_repository_file.py +0 -0
  85. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project_repository_file_raw.py +0 -0
  86. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project_repository_file_reference.py +0 -0
  87. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project_variable.py +0 -0
  88. {clear_skies_gitlab-2.0.2 → clear_skies_gitlab-2.0.4}/src/clearskies_gitlab/rest/models/gitlab_rest_project_variable_reference.py +0 -0
@@ -1,5 +1,5 @@
1
1
  # Changes here will be overwritten by Copier; NEVER EDIT MANUALLY
2
- _commit: v0.0.35
2
+ _commit: v0.0.45
3
3
  _src_path: gh:clearskies-py/clearskies-module-template
4
4
  author_email: tom.nijboer@cimpress.com
5
5
  author_name: Tom Nijboer
@@ -79,7 +79,7 @@ jobs:
79
79
  # STEP 2: Commit all file changes together
80
80
  - name: Commit All Changes
81
81
  run: |
82
- git add pyproject.toml CHANGELOG.md
82
+ git add pyproject.toml CHANGELOG.md uv.lock
83
83
  git commit -m "chore(release): bump version to ${{ steps.bump.outputs.tag }}"
84
84
 
85
85
  # STEP 3: Create the tag for the final commit
@@ -67,7 +67,7 @@ jobs:
67
67
  python-version: ${{ matrix.python-version }}
68
68
  run-mypy: ${{ needs.changes.outputs.tests == 'true' }}
69
69
  run-pytest: ${{ needs.changes.outputs.tests == 'true' }}
70
- run-black: ${{ needs.changes.outputs.tests == 'true' }}
70
+ run-ruff-format: ${{ needs.changes.outputs.tests == 'true' }}
71
71
  run-ruff-check: ${{ needs.changes.outputs.tests == 'true' }}
72
72
  secrets: inherit
73
73
  strategy:
@@ -76,6 +76,7 @@ jobs:
76
76
  - '3.11'
77
77
  - '3.12'
78
78
  - '3.13'
79
+ - '3.14'
79
80
  fail-fast: false
80
81
 
81
82
  status:
@@ -14,7 +14,7 @@ on:
14
14
  run-pytest:
15
15
  required: true
16
16
  type: boolean
17
- run-black:
17
+ run-ruff-format:
18
18
  required: true
19
19
  type: boolean
20
20
  run-ruff-check:
@@ -66,27 +66,14 @@ jobs:
66
66
  - run: uv run pytest -v
67
67
  - run: git diff --exit-code --stat HEAD
68
68
 
69
- black:
70
- name: black
69
+ ruff-format:
70
+ name: ruff-format
71
71
  runs-on: ${{ inputs.runner }}
72
- if: inputs.run-black
72
+ if: inputs.run-ruff-format
73
73
  steps:
74
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
75
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
76
- with:
77
- persist-credentials: false
78
-
79
- - name: Install uv and set the python version
80
- uses: astral-sh/setup-uv@v6
81
- with:
82
- python-version: ${{ inputs.python-version }}
83
- enable-cache: true
84
- - name: Install dependencies
85
- run: uv sync --locked --all-extras --dev
86
- - uses: psf/black@stable
74
+ - uses: astral-sh/ruff-action@v3
87
75
  with:
88
- options: "--check --verbose"
89
- src: "./src"
76
+ args: "format --diff"
90
77
 
91
78
  ruff-check:
92
79
  name: ruff-check
@@ -38,12 +38,6 @@ repos:
38
38
  hooks:
39
39
  - id: uv-lock
40
40
 
41
- - repo: https://github.com/psf/black
42
- rev: 25.1.0
43
- hooks:
44
- - id: black
45
- files: \.py$
46
-
47
41
  - repo: https://github.com/astral-sh/ruff-pre-commit
48
42
  rev: v0.12.1
49
43
  hooks:
@@ -0,0 +1,21 @@
1
+ {
2
+ "python.testing.pytestArgs": ["tests"],
3
+ "python.testing.unittestEnabled": false,
4
+ "python.testing.pytestEnabled": true,
5
+ "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
6
+ "ruff.interpreter": ["${workspaceFolder}/.venv/bin/python"],
7
+ "ruff.path": ["${workspaceFolder}/.venv/bin/ruff"],
8
+ "ruff.configuration": "${workspaceFolder}/ruff.toml",
9
+ "ruff.nativeServer": "on",
10
+ "[python]": {
11
+ "editor.formatOnSave": true,
12
+ "editor.codeActionsOnSave": {
13
+ "source.fixAll": "explicit",
14
+ "source.organizeImports": "explicit"
15
+ },
16
+ "editor.defaultFormatter": "charliermarsh.ruff"
17
+ },
18
+ "mypy-type-checker.args": [
19
+ "--config-file=${workspaceFolder}/pyproject.toml"
20
+ ]
21
+ }
@@ -5,9 +5,26 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.0.4] - 2026-01-26
9
+
10
+ ### Changed
11
+ - Update to latest copier version
12
+ - Update to latest copier version
13
+ - Update to latest copier version
14
+
15
+ ## [2.0.3] - 2026-01-14
16
+
17
+ ### Changed
18
+ - Bump version to v2.0.3 by @github-actions[bot]
19
+ - Update to v0.0.36
20
+
21
+ ### Fixed
22
+ - Gitlab rest groups
23
+
8
24
  ## [2.0.2] - 2026-01-07
9
25
 
10
26
  ### Changed
27
+ - Bump version to v2.0.2 by @github-actions[bot]
11
28
  - Rewrite modules
12
29
  - More models
13
30
 
@@ -28,6 +45,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
28
45
  ## New Contributors
29
46
  * @github-actions[bot] made their first contribution
30
47
  * @ made their first contribution
48
+ [2.0.4]: https://github.com/clearskies-py/gitlab/compare/v2.0.3..v2.0.4
49
+ [2.0.3]: https://github.com/clearskies-py/gitlab/compare/v2.0.2..v2.0.3
31
50
  [2.0.2]: https://github.com/clearskies-py/gitlab/compare/v2.0.1..v2.0.2
32
51
 
33
52
  <!-- generated by git-cliff -->
@@ -0,0 +1,7 @@
1
+ ## [2.0.4] - 2026-01-26
2
+
3
+ ### Changed
4
+ - Update to latest copier version
5
+ - Update to latest copier version
6
+ - Update to latest copier version
7
+
@@ -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
@@ -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.4
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
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "clear-skies-gitlab"
3
3
  description = "Gitlab module for Clearskies"
4
- version = "2.0.2"
4
+ version = "2.0.4"
5
5
  license = "MIT"
6
6
  readme = "./README.md"
7
7
  authors = [{name = "Tom Nijboer", email = "tom.nijboer@cimpress.com"}]
@@ -0,0 +1,29 @@
1
+ indent-width = 4
2
+ extend-exclude = [".vscode", ".idea", "__pycache__", ".python-version", ".ruff.toml", "ruff.toml", "setup.cfg", "pyproject.toml", "*_test.py", "docs/*"]
3
+ line-length = 120
4
+ show-fixes = true
5
+
6
+ [format]
7
+ quote-style = "double"
8
+ indent-style = "space"
9
+ docstring-code-format = true
10
+ preview = false
11
+ skip-magic-trailing-comma = false
12
+ docstring-code-line-length = 100
13
+ line-ending = "lf"
14
+
15
+ [lint]
16
+ # D - Enable all `pydocstyle` rules, limiting to those that adhere to the Pep257 convention enabled via `convention = "pep257"` below
17
+ select = ["I", "D"]
18
+ ignore = [
19
+ "D100", # pydocstyle: Missing docstring in public module.
20
+ "D101", # pydocstyle: Missing docstring in public class.
21
+ "D103", # pydocstyle: Missing docstring in public function
22
+ "D102", # pydocstyle: Missing docstring in public method.
23
+ "D104", # pydocstyle: Missing docstring in public package.
24
+ "D105", # pydocstyle: Missing docstring in magic method (e.g., `__init__`).
25
+ "D107", # pydocstyle: Missing docstring in `__init__` method.
26
+ ]
27
+
28
+ [lint.pydocstyle]
29
+ convention = "pep257"
@@ -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
+ )
@@ -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
@@ -8,7 +8,6 @@ from clearskies.columns import (
8
8
  BelongsToSelf,
9
9
  Boolean,
10
10
  Datetime,
11
- HasMany,
12
11
  Integer,
13
12
  Json,
14
13
  Select,
@@ -16,16 +15,9 @@ from clearskies.columns import (
16
15
  )
17
16
 
18
17
  from clearskies_gitlab.rest.backends import GitlabRestBackend
19
- from clearskies_gitlab.rest.models import (
20
- gitlab_rest_group_access_token,
21
- gitlab_rest_group_member_reference,
22
- gitlab_rest_group_project_reference,
23
- gitlab_rest_group_subgroup_reference,
24
- gitlab_rest_group_variable,
25
- )
26
18
 
27
19
 
28
- class GitlabRestGroup(
20
+ class GitlabRestGroupBase(
29
21
  Model,
30
22
  ):
31
23
  """Model for groups."""
@@ -95,26 +87,6 @@ class GitlabRestGroup(
95
87
  unique_project_download_limit_alertlist = Json()
96
88
  auto_ban_user_on_excessive_projects_download = Boolean()
97
89
 
98
- projects = HasMany(
99
- gitlab_rest_group_project_reference.GitlabRestGroupProjectReference,
100
- foreign_column_name="group_id",
101
- )
102
- access_tokens = HasMany(
103
- gitlab_rest_group_access_token.GitlabRestGroupAccessToken,
104
- foreign_column_name="group_id",
105
- )
106
- variables = HasMany(
107
- gitlab_rest_group_variable.GitlabRestGroupVariable,
108
- foreign_column_name="group_id",
109
- )
110
- subgroups = HasMany(
111
- gitlab_rest_group_subgroup_reference.GitlabRestGroupSubgroupReference,
112
- foreign_column_name="group_id",
113
- )
114
- members = HasMany(
115
- gitlab_rest_group_member_reference.GitlabRestGroupMemberReference,
116
- foreign_column_name="group_id",
117
- )
118
90
  parent_id = BelongsToSelf()
119
91
  parent = BelongsToModel("parent_id")
120
92
  ### Search params
@@ -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 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