diff options
Diffstat (limited to 'gitlab/v4/objects')
-rw-r--r-- | gitlab/v4/objects/__init__.py | 1 | ||||
-rw-r--r-- | gitlab/v4/objects/projects.py | 3 | ||||
-rw-r--r-- | gitlab/v4/objects/releases.py | 36 | ||||
-rw-r--r-- | gitlab/v4/objects/tags.py | 13 |
4 files changed, 39 insertions, 14 deletions
diff --git a/gitlab/v4/objects/__init__.py b/gitlab/v4/objects/__init__.py index 9f91f53..8a2ed7c 100644 --- a/gitlab/v4/objects/__init__.py +++ b/gitlab/v4/objects/__init__.py @@ -56,6 +56,7 @@ from .pages import * from .pipelines import * from .projects import * from .push_rules import * +from .releases import * from .runners import * from .services import * from .settings import * diff --git a/gitlab/v4/objects/projects.py b/gitlab/v4/objects/projects.py index 722b9ea..b354af9 100644 --- a/gitlab/v4/objects/projects.py +++ b/gitlab/v4/objects/projects.py @@ -33,6 +33,7 @@ from .packages import ProjectPackageManager from .pages import ProjectPagesDomainManager from .pipelines import ProjectPipelineManager, ProjectPipelineScheduleManager from .push_rules import ProjectPushRulesManager +from .releases import ProjectReleaseManager from .runners import ProjectRunnerManager from .services import ProjectServiceManager from .snippets import ProjectSnippetManager @@ -40,7 +41,7 @@ from .statistics import ( ProjectAdditionalStatisticsManager, ProjectIssuesStatisticsManager, ) -from .tags import ProjectProtectedTagManager, ProjectReleaseManager, ProjectTagManager +from .tags import ProjectProtectedTagManager, ProjectTagManager from .triggers import ProjectTriggerManager from .users import ProjectUserManager from .variables import ProjectVariableManager diff --git a/gitlab/v4/objects/releases.py b/gitlab/v4/objects/releases.py new file mode 100644 index 0000000..d9112e4 --- /dev/null +++ b/gitlab/v4/objects/releases.py @@ -0,0 +1,36 @@ +from gitlab import cli +from gitlab import exceptions as exc +from gitlab.base import * # noqa +from gitlab.mixins import * # noqa + + +__all__ = [ + "ProjectRelease", + "ProjectReleaseManager", + "ProjectReleaseLink", + "ProjectReleaseLinkManager", +] + + +class ProjectRelease(RESTObject): + _id_attr = "tag_name" + _managers = (("links", "ProjectReleaseLinkManager"),) + + +class ProjectReleaseManager(NoUpdateMixin, RESTManager): + _path = "/projects/%(project_id)s/releases" + _obj_cls = ProjectRelease + _from_parent_attrs = {"project_id": "id"} + _create_attrs = (("name", "tag_name", "description"), ("ref", "assets")) + + +class ProjectReleaseLink(RESTObject, ObjectDeleteMixin, SaveMixin): + pass + + +class ProjectReleaseLinkManager(CRUDMixin, RESTManager): + _path = "/projects/%(project_id)s/releases/%(tag_name)s/assets/links" + _obj_cls = ProjectReleaseLink + _from_parent_attrs = {"project_id": "project_id", "tag_name": "tag_name"} + _create_attrs = (("name", "url"), ("filepath", "link_type")) + _update_attrs = ((), ("name", "url", "filepath", "link_type")) diff --git a/gitlab/v4/objects/tags.py b/gitlab/v4/objects/tags.py index c4d60db..1f333c5 100644 --- a/gitlab/v4/objects/tags.py +++ b/gitlab/v4/objects/tags.py @@ -9,8 +9,6 @@ __all__ = [ "ProjectTagManager", "ProjectProtectedTag", "ProjectProtectedTagManager", - "ProjectRelease", - "ProjectReleaseManager", ] @@ -71,14 +69,3 @@ class ProjectProtectedTagManager(NoUpdateMixin, RESTManager): _obj_cls = ProjectProtectedTag _from_parent_attrs = {"project_id": "id"} _create_attrs = (("name",), ("create_access_level",)) - - -class ProjectRelease(RESTObject): - _id_attr = "tag_name" - - -class ProjectReleaseManager(NoUpdateMixin, RESTManager): - _path = "/projects/%(project_id)s/releases" - _obj_cls = ProjectRelease - _from_parent_attrs = {"project_id": "id"} - _create_attrs = (("name", "tag_name", "description"), ("ref", "assets")) |