From 068cc77e88b60b7a9da3a78db49e442413e35360 Mon Sep 17 00:00:00 2001 From: Gustavo Araujo Date: Mon, 25 Apr 2022 15:05:04 -0300 Subject: [PATCH 1/2] Add spec for `.all_group_members` --- spec/gitlab/client/groups_spec.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/spec/gitlab/client/groups_spec.rb b/spec/gitlab/client/groups_spec.rb index c3435b18d..351ce7682 100644 --- a/spec/gitlab/client/groups_spec.rb +++ b/spec/gitlab/client/groups_spec.rb @@ -126,6 +126,23 @@ end end + describe '.all_group_members' do + before do + stub_get('/groups/3/members/all', 'group_members') + @all_members = Gitlab.all_group_members(3) + end + + it 'gets the correct resource' do + expect(a_get('/groups/3/members/all')).to have_been_made + end + + it "returns information about a group's members" do + expect(@all_members).to be_a Gitlab::PaginatedResponse + expect(@all_members.size).to eq(2) + expect(@all_members[1].name).to eq('John Smith') + end + end + describe '.group_descendants' do before do stub_get('/groups/3/descendant_groups', 'group_descendants') From c1a39300715ae68f61bbd8c0eeffc6e65c4aa6c6 Mon Sep 17 00:00:00 2001 From: Gustavo Araujo Date: Mon, 25 Apr 2022 15:05:23 -0300 Subject: [PATCH 2/2] Add `members/all` endpoint for Group module --- lib/gitlab/client/groups.rb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/gitlab/client/groups.rb b/lib/gitlab/client/groups.rb index 03a756aa1..7a0bf216a 100644 --- a/lib/gitlab/client/groups.rb +++ b/lib/gitlab/client/groups.rb @@ -71,6 +71,21 @@ def group_members(id, options = {}) get("/groups/#{url_encode id}/members", query: options) end + # Gets a list of all group members including inherited members. + # + # @example + # Gitlab.all_group_members(1) + # Gitlab.all_group_members(1, { per_page: 40 }) + # + # @param [Integer] id The ID of a group. + # @param [Hash] options A customizable set of options. + # @option options [Integer] :page The page number. + # @option options [Integer] :per_page The number of results per page. + # @return [Array] + def all_group_members(id, options = {}) + get("/groups/#{url_encode id}/members/all", query: options) + end + # Get a list of descendant groups of a group. # # @example