summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gitlab/v4/objects/environments.py1
-rw-r--r--gitlab/v4/objects/members.py22
-rw-r--r--tests/functional/cli/test_cli_v4.py28
3 files changed, 45 insertions, 6 deletions
diff --git a/gitlab/v4/objects/environments.py b/gitlab/v4/objects/environments.py
index 1dbfe08..681e7ee 100644
--- a/gitlab/v4/objects/environments.py
+++ b/gitlab/v4/objects/environments.py
@@ -48,6 +48,7 @@ class ProjectEnvironmentManager(
_from_parent_attrs = {"project_id": "id"}
_create_attrs = RequiredOptional(required=("name",), optional=("external_url",))
_update_attrs = RequiredOptional(optional=("name", "external_url"))
+ _list_filters = ("name", "search", "states")
def get(
self, id: Union[str, int], lazy: bool = False, **kwargs: Any
diff --git a/gitlab/v4/objects/members.py b/gitlab/v4/objects/members.py
index 8fa2bb3..c7be039 100644
--- a/gitlab/v4/objects/members.py
+++ b/gitlab/v4/objects/members.py
@@ -17,9 +17,11 @@ __all__ = [
"GroupBillableMemberMembership",
"GroupBillableMemberMembershipManager",
"GroupMember",
+ "GroupMemberAll",
"GroupMemberManager",
"GroupMemberAllManager",
"ProjectMember",
+ "ProjectMemberAll",
"ProjectMemberManager",
"ProjectMemberAllManager",
]
@@ -70,15 +72,19 @@ class GroupBillableMemberMembershipManager(ListMixin, RESTManager):
_from_parent_attrs = {"group_id": "group_id", "user_id": "id"}
+class GroupMemberAll(RESTObject):
+ _short_print_attr = "username"
+
+
class GroupMemberAllManager(RetrieveMixin, RESTManager):
_path = "/groups/{group_id}/members/all"
- _obj_cls = GroupMember
+ _obj_cls = GroupMemberAll
_from_parent_attrs = {"group_id": "id"}
def get(
self, id: Union[str, int], lazy: bool = False, **kwargs: Any
- ) -> GroupMember:
- return cast(GroupMember, super().get(id=id, lazy=lazy, **kwargs))
+ ) -> GroupMemberAll:
+ return cast(GroupMemberAll, super().get(id=id, lazy=lazy, **kwargs))
class ProjectMember(SaveMixin, ObjectDeleteMixin, RESTObject):
@@ -103,12 +109,16 @@ class ProjectMemberManager(CRUDMixin, RESTManager):
return cast(ProjectMember, super().get(id=id, lazy=lazy, **kwargs))
+class ProjectMemberAll(RESTObject):
+ _short_print_attr = "username"
+
+
class ProjectMemberAllManager(RetrieveMixin, RESTManager):
_path = "/projects/{project_id}/members/all"
- _obj_cls = ProjectMember
+ _obj_cls = ProjectMemberAll
_from_parent_attrs = {"project_id": "id"}
def get(
self, id: Union[str, int], lazy: bool = False, **kwargs: Any
- ) -> ProjectMember:
- return cast(ProjectMember, super().get(id=id, lazy=lazy, **kwargs))
+ ) -> ProjectMemberAll:
+ return cast(ProjectMemberAll, super().get(id=id, lazy=lazy, **kwargs))
diff --git a/tests/functional/cli/test_cli_v4.py b/tests/functional/cli/test_cli_v4.py
index 91c0afa..da64957 100644
--- a/tests/functional/cli/test_cli_v4.py
+++ b/tests/functional/cli/test_cli_v4.py
@@ -701,6 +701,31 @@ def test_delete_group_deploy_token(gitlab_cli, group_deploy_token):
# TODO assert not in list
+def test_project_member_all(gitlab_cli, project):
+ cmd = [
+ "project-member-all",
+ "list",
+ "--project-id",
+ project.id,
+ ]
+ ret = gitlab_cli(cmd)
+
+ assert ret.success
+
+
+def test_group_member_all(gitlab_cli, group):
+ cmd = [
+ "group-member-all",
+ "list",
+ "--group-id",
+ group.id,
+ ]
+ ret = gitlab_cli(cmd)
+
+ assert ret.success
+
+
+# Deleting the project and group. Add your tests above here.
def test_delete_project(gitlab_cli, project):
cmd = ["project", "delete", "--id", project.id]
ret = gitlab_cli(cmd)
@@ -713,3 +738,6 @@ def test_delete_group(gitlab_cli, group):
ret = gitlab_cli(cmd)
assert ret.success
+
+
+# Don't add tests below here as the group and project have been deleted