diff options
author | Helmut Januschka <helmut@januschka.com> | 2018-09-19 10:06:03 +0200 |
---|---|---|
committer | Helmut Januschka <helmut@januschka.com> | 2018-11-01 12:36:01 +0100 |
commit | 17a7b4113290435560275e408b1764f4b308295f (patch) | |
tree | 1a7b577a21cb29d3514cdef7786b0a837110db8b /lib/api/issues.rb | |
parent | 8e674510c582c75cab55d80a6253a6c9fb6addc2 (diff) | |
download | gitlab-ce-17a7b4113290435560275e408b1764f4b308295f.tar.gz |
add related merge request endpoint
Diffstat (limited to 'lib/api/issues.rb')
-rw-r--r-- | lib/api/issues.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/api/issues.rb b/lib/api/issues.rb index e37083165f5..7909f9c7a00 100644 --- a/lib/api/issues.rb +++ b/lib/api/issues.rb @@ -294,6 +294,30 @@ module API end # rubocop: enable CodeReuse/ActiveRecord + desc 'List merge requests that are related to the issue' do + success Entities::MergeRequestBasic + end + params do + requires :issue_iid, type: Integer, desc: 'The internal ID of a project issue' + end + get ':id/issues/:issue_iid/related_merge_requests' do + issue = find_project_issue(params[:issue_iid]) + + merge_request_iids = ::Issues::ReferencedMergeRequestsService.new(user_project, current_user) + .execute(issue) + .flatten + .map(&:iid) + + merge_requests = + if merge_request_iids.present? + MergeRequestsFinder.new(current_user, project_id: user_project.id, iids: merge_request_iids).execute + else + MergeRequest.none + end + + present paginate(merge_requests), with: Entities::MergeRequestBasic, current_user: current_user, project: user_project + end + desc 'List merge requests closing issue' do success Entities::MergeRequestBasic end |