summaryrefslogtreecommitdiff
path: root/gitlab/v4/objects
diff options
context:
space:
mode:
authorLudwig Weiss <ludwig.weiss@umusic.com>2020-05-14 10:35:49 +0200
committerJohn Villalovos <john@sodarock.com>2021-05-30 15:03:12 -0700
commitfbbc0d400015d7366952a66e4401215adff709f0 (patch)
tree3064ccdda9265b9388ab9af0c770c3c7d7a47332 /gitlab/v4/objects
parent149953dc32c28fe413c9f3a0066575caeab12bc8 (diff)
downloadgitlab-fbbc0d400015d7366952a66e4401215adff709f0.tar.gz
feat(api): add deployment mergerequests interface
Diffstat (limited to 'gitlab/v4/objects')
-rw-r--r--gitlab/v4/objects/deployments.py13
-rw-r--r--gitlab/v4/objects/merge_requests.py24
2 files changed, 34 insertions, 3 deletions
diff --git a/gitlab/v4/objects/deployments.py b/gitlab/v4/objects/deployments.py
index dea8caf..8cf0fd9 100644
--- a/gitlab/v4/objects/deployments.py
+++ b/gitlab/v4/objects/deployments.py
@@ -1,6 +1,8 @@
from gitlab.base import RequiredOptional, RESTManager, RESTObject
from gitlab.mixins import CreateMixin, RetrieveMixin, SaveMixin, UpdateMixin
+from .merge_requests import ProjectDeploymentMergeRequestManager # noqa: F401
+
__all__ = [
"ProjectDeployment",
"ProjectDeploymentManager",
@@ -8,14 +10,21 @@ __all__ = [
class ProjectDeployment(SaveMixin, RESTObject):
- pass
+ _managers = (("mergerequests", "ProjectDeploymentMergeRequestManager"),)
class ProjectDeploymentManager(RetrieveMixin, CreateMixin, UpdateMixin, RESTManager):
_path = "/projects/%(project_id)s/deployments"
_obj_cls = ProjectDeployment
_from_parent_attrs = {"project_id": "id"}
- _list_filters = ("order_by", "sort")
+ _list_filters = (
+ "order_by",
+ "sort",
+ "updated_after",
+ "updated_before",
+ "environment",
+ "status",
+ )
_create_attrs = RequiredOptional(
required=("sha", "ref", "tag", "status", "environment")
)
diff --git a/gitlab/v4/objects/merge_requests.py b/gitlab/v4/objects/merge_requests.py
index 3a878e2..dd118d0 100644
--- a/gitlab/v4/objects/merge_requests.py
+++ b/gitlab/v4/objects/merge_requests.py
@@ -36,6 +36,8 @@ __all__ = [
"GroupMergeRequestManager",
"ProjectMergeRequest",
"ProjectMergeRequestManager",
+ "ProjectDeploymentMergeRequest",
+ "ProjectDeploymentMergeRequestManager",
"ProjectMergeRequestDiff",
"ProjectMergeRequestDiffManager",
]
@@ -48,7 +50,6 @@ class MergeRequest(RESTObject):
class MergeRequestManager(ListMixin, RESTManager):
_path = "/merge_requests"
_obj_cls = MergeRequest
- _from_parent_attrs = {"group_id": "id"}
_list_filters = (
"state",
"order_by",
@@ -56,24 +57,35 @@ class MergeRequestManager(ListMixin, RESTManager):
"milestone",
"view",
"labels",
+ "with_labels_details",
+ "with_merge_status_recheck",
"created_after",
"created_before",
"updated_after",
"updated_before",
"scope",
"author_id",
+ "author_username",
"assignee_id",
"approver_ids",
"approved_by_ids",
+ "reviewer_id",
+ "reviewer_username",
"my_reaction_emoji",
"source_branch",
"target_branch",
"search",
+ "in",
"wip",
+ "not",
+ "environment",
+ "deployed_before",
+ "deployed_after",
)
_types = {
"approver_ids": types.ListAttribute,
"approved_by_ids": types.ListAttribute,
+ "in": types.ListAttribute,
"labels": types.ListAttribute,
}
@@ -409,6 +421,16 @@ class ProjectMergeRequestManager(CRUDMixin, RESTManager):
}
+class ProjectDeploymentMergeRequest(MergeRequest):
+ pass
+
+
+class ProjectDeploymentMergeRequestManager(MergeRequestManager):
+ _path = "/projects/%(project_id)s/deployments/%(deployment_id)s/merge_requests"
+ _obj_cls = ProjectDeploymentMergeRequest
+ _from_parent_attrs = {"deployment_id": "id", "project_id": "project_id"}
+
+
class ProjectMergeRequestDiff(RESTObject):
pass