diff options
| author | Nejc Habjan <nejc.habjan@siemens.com> | 2022-11-27 00:11:32 +0100 |
|---|---|---|
| committer | John Villalovos <john@sodarock.com> | 2022-12-18 01:13:20 -0600 |
| commit | 5f8b8f5be901e944dfab2257f9e0cc4b2b1d2cd5 (patch) | |
| tree | 30d3b0fa7103cc52829979af1578f2c4bebff4b5 /gitlab | |
| parent | 1816107b8d87614e7947837778978d8de8da450f (diff) | |
| download | gitlab-5f8b8f5be901e944dfab2257f9e0cc4b2b1d2cd5.tar.gz | |
feat(api): add support for resource groups
Diffstat (limited to 'gitlab')
| -rw-r--r-- | gitlab/v4/objects/__init__.py | 1 | ||||
| -rw-r--r-- | gitlab/v4/objects/projects.py | 2 | ||||
| -rw-r--r-- | gitlab/v4/objects/resource_groups.py | 45 |
3 files changed, 48 insertions, 0 deletions
diff --git a/gitlab/v4/objects/__init__.py b/gitlab/v4/objects/__init__.py index 56c17d5..b6f7afc 100644 --- a/gitlab/v4/objects/__init__.py +++ b/gitlab/v4/objects/__init__.py @@ -52,6 +52,7 @@ from .projects import * from .push_rules import * from .releases import * from .repositories import * +from .resource_groups import * from .runners import * from .secure_files import * from .settings import * diff --git a/gitlab/v4/objects/projects.py b/gitlab/v4/objects/projects.py index f19b845..588109f 100644 --- a/gitlab/v4/objects/projects.py +++ b/gitlab/v4/objects/projects.py @@ -81,6 +81,7 @@ from .project_access_tokens import ProjectAccessTokenManager # noqa: F401 from .push_rules import ProjectPushRulesManager # noqa: F401 from .releases import ProjectReleaseManager # noqa: F401 from .repositories import RepositoryMixin +from .resource_groups import ProjectResourceGroupManager from .runners import ProjectRunnerManager # noqa: F401 from .secure_files import ProjectSecureFileManager # noqa: F401 from .snippets import ProjectSnippetManager # noqa: F401 @@ -207,6 +208,7 @@ class Project(RefreshMixin, SaveMixin, ObjectDeleteMixin, RepositoryMixin, RESTO protectedtags: ProjectProtectedTagManager pushrules: ProjectPushRulesManager releases: ProjectReleaseManager + resource_groups: ProjectResourceGroupManager remote_mirrors: "ProjectRemoteMirrorManager" repositories: ProjectRegistryRepositoryManager runners: ProjectRunnerManager diff --git a/gitlab/v4/objects/resource_groups.py b/gitlab/v4/objects/resource_groups.py new file mode 100644 index 0000000..1ca34f6 --- /dev/null +++ b/gitlab/v4/objects/resource_groups.py @@ -0,0 +1,45 @@ +from typing import Any, cast, Union + +from gitlab.base import RESTManager, RESTObject +from gitlab.mixins import ListMixin, RetrieveMixin, SaveMixin, UpdateMixin +from gitlab.types import RequiredOptional + +__all__ = [ + "ProjectResourceGroup", + "ProjectResourceGroupManager", + "ProjectResourceGroupUpcomingJob", + "ProjectResourceGroupUpcomingJobManager", +] + + +class ProjectResourceGroup(SaveMixin, RESTObject): + _id_attr = "key" + + upcoming_jobs: "ProjectResourceGroupUpcomingJobManager" + + +class ProjectResourceGroupManager(RetrieveMixin, UpdateMixin, RESTManager): + _path = "/projects/{project_id}/resource_groups" + _obj_cls = ProjectResourceGroup + _from_parent_attrs = {"project_id": "id"} + _list_filters = ( + "order_by", + "sort", + "include_html_description", + ) + _update_attrs = RequiredOptional(optional=("process_mode",)) + + def get( + self, id: Union[str, int], lazy: bool = False, **kwargs: Any + ) -> ProjectResourceGroup: + return cast(ProjectResourceGroup, super().get(id=id, lazy=lazy, **kwargs)) + + +class ProjectResourceGroupUpcomingJob(RESTObject): + pass + + +class ProjectResourceGroupUpcomingJobManager(ListMixin, RESTManager): + _path = "/projects/{project_id}/resource_groups/{resource_group_key}/upcoming_jobs" + _obj_cls = ProjectResourceGroupUpcomingJob + _from_parent_attrs = {"project_id": "project_id", "resource_group_key": "key"} |
