From 5a2f2dc1b6eee183ce41bf0e7aa03c21951c0811 Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Sat, 16 Dec 2017 02:26:19 +0900 Subject: [PATCH 1/4] Add get-group-issues --- lib/gitlab/client/issues.rb | 12 +++ spec/fixtures/group_issues.json | 118 ++++++++++++++++++++++++++++++ spec/gitlab/client/issues_spec.rb | 18 ++++- 3 files changed, 147 insertions(+), 1 deletion(-) create mode 100644 spec/fixtures/group_issues.json diff --git a/lib/gitlab/client/issues.rb b/lib/gitlab/client/issues.rb index 6c87b963e..f9c2b05ba 100644 --- a/lib/gitlab/client/issues.rb +++ b/lib/gitlab/client/issues.rb @@ -25,6 +25,18 @@ def issues(project = nil, options = {}) end end + # Gets a list of issues of a group. + # + # @example + # Gitlab.group_issues(5) + # + # @param [Integer, String] group_id The ID or name of a group. + # @param [Hash] options A customizable set of options. + # @return [Array] + def group_issues(group=nil, options={}) + get("/groups/#{group}/issues", query: options) + end + # Gets a single issue. # # @example diff --git a/spec/fixtures/group_issues.json b/spec/fixtures/group_issues.json new file mode 100644 index 000000000..61a0acf06 --- /dev/null +++ b/spec/fixtures/group_issues.json @@ -0,0 +1,118 @@ +[ + { + "project_id" : 4, + "milestone" : { + "due_date" : null, + "project_id" : 4, + "state" : "closed", + "description" : "Rerum est voluptatem provident consequuntur molestias similique ipsum dolor.", + "iid" : 3, + "id" : 11, + "title" : "v3.0", + "created_at" : "2016-01-04T15:31:39.788Z", + "updated_at" : "2016-01-04T15:31:39.788Z" + }, + "author" : { + "state" : "active", + "web_url" : "https://gitlab.example.com/root", + "avatar_url" : null, + "username" : "root", + "id" : 1, + "name" : "Administrator" + }, + "description" : "Omnis vero earum sunt corporis dolor et placeat.", + "state" : "closed", + "iid" : 1, + "assignees" : [{ + "avatar_url" : null, + "web_url" : "https://gitlab.example.com/lennie", + "state" : "active", + "username" : "lennie", + "id" : 9, + "name" : "Dr. Luella Kovacek" + }], + "assignee" : { + "avatar_url" : null, + "web_url" : "https://gitlab.example.com/lennie", + "state" : "active", + "username" : "lennie", + "id" : 9, + "name" : "Dr. Luella Kovacek" + }, + "labels" : [], + "id" : 41, + "title" : "Ut commodi ullam eos dolores perferendis nihil sunt.", + "updated_at" : "2016-01-04T15:31:46.176Z", + "created_at" : "2016-01-04T15:31:46.176Z", + "closed_at" : null, + "user_notes_count": 1, + "due_date": null, + "web_url": "http://example.com/example/example/issues/1", + "time_stats": { + "time_estimate": 0, + "total_time_spent": 0, + "human_time_estimate": null, + "human_total_time_spent": null + }, + "confidential": false, + "discussion_locked": false + }, + { + "project_id" : 4, + "milestone" : { + "due_date" : null, + "project_id" : 4, + "state" : "closed", + "description" : "Rerum est voluptatem provident consequuntur molestias similique ipsum dolor.", + "iid" : 3, + "id" : 11, + "title" : "v3.0", + "created_at" : "2016-01-04T15:31:39.788Z", + "updated_at" : "2016-01-04T15:31:39.788Z" + }, + "author" : { + "state" : "active", + "web_url" : "https://gitlab.example.com/root", + "avatar_url" : null, + "username" : "root", + "id" : 1, + "name" : "Administrator" + }, + "description" : "different", + "state" : "closed", + "iid" : 1, + "assignees" : [{ + "avatar_url" : null, + "web_url" : "https://gitlab.example.com/lennie", + "state" : "active", + "username" : "lennie", + "id" : 9, + "name" : "Dr. Luella Kovacek" + }], + "assignee" : { + "avatar_url" : null, + "web_url" : "https://gitlab.example.com/lennie", + "state" : "active", + "username" : "lennie", + "id" : 9, + "name" : "Dr. Luella Kovacek" + }, + "labels" : [], + "id" : 41, + "title" : "different", + "updated_at" : "2016-01-04T15:31:46.176Z", + "created_at" : "2016-01-04T15:31:46.176Z", + "closed_at" : null, + "user_notes_count": 1, + "due_date": null, + "web_url": "http://example.com/example/example/issues/1", + "time_stats": { + "time_estimate": 0, + "total_time_spent": 0, + "human_time_estimate": null, + "human_total_time_spent": null + }, + "confidential": false, + "discussion_locked": false + } +] \ No newline at end of file diff --git a/spec/gitlab/client/issues_spec.rb b/spec/gitlab/client/issues_spec.rb index 9ec4439f2..dad391caa 100644 --- a/spec/gitlab/client/issues_spec.rb +++ b/spec/gitlab/client/issues_spec.rb @@ -54,7 +54,23 @@ end end - describe '.issue' do + describe ".group_issues" do + before do + stub_get("/groups/3/issues", "group_issues") + @issues = Gitlab.group_issues(3) + end + + it "gets the correct resource" do + expect(a_get("/groups/3/issues")).to have_been_made + end + + it "returns a paginated response of project's issues" do + expect(@issues).to be_a Gitlab::PaginatedResponse + expect(@issues.first.project_id).to eq(4) + end + end + + describe ".issue" do before do stub_get('/projects/3/issues/33', 'issue') @issue = Gitlab.issue(3, 33) From 56556eb73bfb2c84be6131c000393f2b944a3a0a Mon Sep 17 00:00:00 2001 From: Sean Smith Date: Thu, 31 Jan 2019 14:06:23 -0500 Subject: [PATCH 2/4] Fix failing shell_spec test for completions --- spec/gitlab/shell_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/gitlab/shell_spec.rb b/spec/gitlab/shell_spec.rb index d7decb8f1..091fefc94 100644 --- a/spec/gitlab/shell_spec.rb +++ b/spec/gitlab/shell_spec.rb @@ -58,7 +58,7 @@ it 'returns an Array of matching commands' do completed_cmds = @comp.call 'group' expect(completed_cmds).to be_a Array - expect(completed_cmds.sort).to eq(%w[group group_access_requests group_member group_members group_milestone group_milestone_issues group_milestone_merge_requests group_milestones group_projects group_search group_subgroups group_variable group_variables groups]) + expect(completed_cmds.sort).to eq(%w[group group_access_requests group_issues group_member group_members group_milestone group_milestone_issues group_milestone_merge_requests group_milestones group_projects group_search group_subgroups group_variable group_variables groups]) end end end From bac5409a3f930737bc762342ec90b6b5ca7bc127 Mon Sep 17 00:00:00 2001 From: Sean Smith Date: Thu, 7 Feb 2019 11:22:45 -0500 Subject: [PATCH 3/4] Moved group_issues to Gitlab::Client::Groups - Per @NARKOZ's comments on #465, moved `group_issues` into lib/gitlab/client/groups.rb - Following with the above, moved the test to groups_spec.rb, as well. - Corrected linting failures noted by @NARKOZ and rspec. --- lib/gitlab/client/groups.rb | 12 ++++++++++++ lib/gitlab/client/issues.rb | 12 ------------ spec/gitlab/client/groups_spec.rb | 16 ++++++++++++++++ spec/gitlab/client/issues_spec.rb | 18 +----------------- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/lib/gitlab/client/groups.rb b/lib/gitlab/client/groups.rb index 6dd4b26a6..5f0fc67bd 100644 --- a/lib/gitlab/client/groups.rb +++ b/lib/gitlab/client/groups.rb @@ -191,5 +191,17 @@ def group_subgroups(id, options = {}) def edit_group(id, options = {}) put("/groups/#{url_encode id}", body: options) end + + # Gets a list of issues of a group. + # + # @example + # Gitlab.group_issues(5) + # + # @param [Integer, String] group_id The ID or name of a group. + # @param [Hash] options A customizable set of options. + # @return [Array] + def group_issues(group = nil, options = {}) + get("/groups/#{group}/issues", query: options) + end end end diff --git a/lib/gitlab/client/issues.rb b/lib/gitlab/client/issues.rb index f9c2b05ba..6c87b963e 100644 --- a/lib/gitlab/client/issues.rb +++ b/lib/gitlab/client/issues.rb @@ -25,18 +25,6 @@ def issues(project = nil, options = {}) end end - # Gets a list of issues of a group. - # - # @example - # Gitlab.group_issues(5) - # - # @param [Integer, String] group_id The ID or name of a group. - # @param [Hash] options A customizable set of options. - # @return [Array] - def group_issues(group=nil, options={}) - get("/groups/#{group}/issues", query: options) - end - # Gets a single issue. # # @example diff --git a/spec/gitlab/client/groups_spec.rb b/spec/gitlab/client/groups_spec.rb index bba9c0687..a29c96c38 100644 --- a/spec/gitlab/client/groups_spec.rb +++ b/spec/gitlab/client/groups_spec.rb @@ -245,4 +245,20 @@ end end end + + describe '.group_issues' do + before do + stub_get('/groups/3/issues', 'group_issues') + @issues = Gitlab.group_issues(3) + end + + it 'gets the correct resource' do + expect(a_get('/groups/3/issues')).to have_been_made + end + + it "returns a paginated response of project's issues" do + expect(@issues).to be_a Gitlab::PaginatedResponse + expect(@issues.first.project_id).to eq(4) + end + end end diff --git a/spec/gitlab/client/issues_spec.rb b/spec/gitlab/client/issues_spec.rb index dad391caa..9ec4439f2 100644 --- a/spec/gitlab/client/issues_spec.rb +++ b/spec/gitlab/client/issues_spec.rb @@ -54,23 +54,7 @@ end end - describe ".group_issues" do - before do - stub_get("/groups/3/issues", "group_issues") - @issues = Gitlab.group_issues(3) - end - - it "gets the correct resource" do - expect(a_get("/groups/3/issues")).to have_been_made - end - - it "returns a paginated response of project's issues" do - expect(@issues).to be_a Gitlab::PaginatedResponse - expect(@issues.first.project_id).to eq(4) - end - end - - describe ".issue" do + describe '.issue' do before do stub_get('/projects/3/issues/33', 'issue') @issue = Gitlab.issue(3, 33) From d4d4b73857ed3409f6deea7f96993ece9295b9b4 Mon Sep 17 00:00:00 2001 From: Sean Smith Date: Fri, 8 Feb 2019 09:06:16 -0500 Subject: [PATCH 4/4] group_issues: Removed default for 'group' parameter --- lib/gitlab/client/groups.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/gitlab/client/groups.rb b/lib/gitlab/client/groups.rb index 5f0fc67bd..be4ff078a 100644 --- a/lib/gitlab/client/groups.rb +++ b/lib/gitlab/client/groups.rb @@ -200,7 +200,7 @@ def edit_group(id, options = {}) # @param [Integer, String] group_id The ID or name of a group. # @param [Hash] options A customizable set of options. # @return [Array] - def group_issues(group = nil, options = {}) + def group_issues(group, options = {}) get("/groups/#{group}/issues", query: options) end end