From 2129179a30ded192b94a3f04f364729dc8b0d849 Mon Sep 17 00:00:00 2001 From: Timo Furrer Date: Wed, 10 Aug 2022 15:22:04 +0200 Subject: [PATCH] Implement missing options for `RemoveGroupMembers` API This endpoint allows for two optional options: https://docs.gitlab.com/ee/api/members.html#remove-a-member-from-a-group-or-project --- group_members.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/group_members.go b/group_members.go index 843f4d9b5..16bcdeb5a 100644 --- a/group_members.go +++ b/group_members.go @@ -328,18 +328,26 @@ func (s *GroupMembersService) EditGroupMember(gid interface{}, user int, opt *Ed return gm, resp, err } +// RemoveGroupMemberOptions represents the available options to remove a group member. +// +// GitLab API docs: https://docs.gitlab.com/ee/api/members.html#remove-a-member-from-a-group-or-project +type RemoveGroupMemberOptions struct { + SkipSubresources *bool `url:"skip_subresources,omitempty" json:"skip_subresources,omitempty"` + UnassignIssuables *bool `url:"unassign_issuables,omitempty" json:"unassign_issuables,omitempty"` +} + // RemoveGroupMember removes user from user team. // // GitLab API docs: // https://docs.gitlab.com/ce/api/members.html#remove-a-member-from-a-group-or-project -func (s *GroupMembersService) RemoveGroupMember(gid interface{}, user int, options ...RequestOptionFunc) (*Response, error) { +func (s *GroupMembersService) RemoveGroupMember(gid interface{}, user int, opt *RemoveGroupMemberOptions, options ...RequestOptionFunc) (*Response, error) { group, err := parseID(gid) if err != nil { return nil, err } u := fmt.Sprintf("groups/%s/members/%d", PathEscape(group), user) - req, err := s.client.NewRequest(http.MethodDelete, u, nil, options) + req, err := s.client.NewRequest(http.MethodDelete, u, opt, options) if err != nil { return nil, err }