diff options
author | Stan Hu <stanhu@gmail.com> | 2016-06-11 07:16:32 -0700 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2016-06-11 19:50:08 -0700 |
commit | a85dde9182f177cc2fdabd90ccdad870bf4d84c3 (patch) | |
tree | b1658e39b1ea6f4807c8e3cd275b39a9eee5f8f6 /lib | |
parent | ff345f8ba11658c679b423e06bbc42b90af158eb (diff) | |
download | gitlab-ce-a85dde9182f177cc2fdabd90ccdad870bf4d84c3.tar.gz |
Fix Error 500 when using closes_issues API with an external issue tracker
Closes #18484
Diffstat (limited to 'lib')
-rw-r--r-- | lib/api/entities.rb | 5 | ||||
-rw-r--r-- | lib/api/helpers.rb | 8 | ||||
-rw-r--r-- | lib/api/merge_requests.rb | 2 |
3 files changed, 14 insertions, 1 deletions
diff --git a/lib/api/entities.rb b/lib/api/entities.rb index 50d69274b2e..14370ac218d 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -179,6 +179,11 @@ module API expose :upvotes, :downvotes end + class ExternalIssue < Grape::Entity + expose :title + expose :id + end + class MergeRequest < ProjectEntity expose :target_branch, :source_branch expose :upvotes, :downvotes diff --git a/lib/api/helpers.rb b/lib/api/helpers.rb index e1d3bbcc02d..de5959e3aae 100644 --- a/lib/api/helpers.rb +++ b/lib/api/helpers.rb @@ -418,5 +418,13 @@ module API def send_git_archive(repository, ref:, format:) header(*Gitlab::Workhorse.send_git_archive(repository, ref: ref, format: format)) end + + def issue_entity(project) + if project.has_external_issue_tracker? + Entities::ExternalIssue + else + Entities::Issue + end + end end end diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb index 24df3e397e0..0e94efd4acd 100644 --- a/lib/api/merge_requests.rb +++ b/lib/api/merge_requests.rb @@ -329,7 +329,7 @@ module API get "#{path}/closes_issues" do merge_request = user_project.merge_requests.find(params[:merge_request_id]) issues = ::Kaminari.paginate_array(merge_request.closes_issues(current_user)) - present paginate(issues), with: Entities::Issue, current_user: current_user + present paginate(issues), with: issue_entity(user_project), current_user: current_user end end end |