Commit ecda9240 authored by Phil Hughes's avatar Phil Hughes

Merge branch 'ide-fix-detect-mr-from-fork' into 'master'

IDE fix MR detection from fork

See merge request gitlab-org/gitlab-ce!26986
parents ff648879 59ac0924
...@@ -4,10 +4,11 @@ import service from '../../services'; ...@@ -4,10 +4,11 @@ import service from '../../services';
import * as types from '../mutation_types'; import * as types from '../mutation_types';
import { activityBarViews } from '../../constants'; import { activityBarViews } from '../../constants';
export const getMergeRequestsForBranch = ({ commit }, { projectId, branchId } = {}) => export const getMergeRequestsForBranch = ({ commit, state }, { projectId, branchId } = {}) =>
service service
.getProjectMergeRequests(`${projectId}`, { .getProjectMergeRequests(`${projectId}`, {
source_branch: branchId, source_branch: branchId,
source_project_id: state.projects[projectId].id,
order_by: 'created_at', order_by: 'created_at',
per_page: 1, per_page: 1,
}) })
......
...@@ -40,7 +40,8 @@ class MergeRequestsFinder < IssuableFinder ...@@ -40,7 +40,8 @@ class MergeRequestsFinder < IssuableFinder
items = by_commit(super) items = by_commit(super)
items = by_source_branch(items) items = by_source_branch(items)
items = by_wip(items) items = by_wip(items)
by_target_branch(items) items = by_target_branch(items)
by_source_project_id(items)
end end
private private
...@@ -74,6 +75,16 @@ class MergeRequestsFinder < IssuableFinder ...@@ -74,6 +75,16 @@ class MergeRequestsFinder < IssuableFinder
items.where(target_branch: target_branch) items.where(target_branch: target_branch)
end end
def source_project_id
@source_project_id ||= params[:source_project_id].presence
end
def by_source_project_id(items)
return items unless source_project_id
items.where(source_project_id: source_project_id)
end
def by_wip(items) def by_wip(items)
if params[:wip] == 'yes' if params[:wip] == 'yes'
items.where(wip_match(items.arel_table)) items.where(wip_match(items.arel_table))
......
---
title: Fix IDE detection of MR from fork with same branch name
merge_request: 26986
author:
type: fixed
...@@ -111,6 +111,7 @@ module API ...@@ -111,6 +111,7 @@ module API
desc: 'Return merge requests for the given scope: `created_by_me`, `assigned_to_me` or `all`' desc: 'Return merge requests for the given scope: `created_by_me`, `assigned_to_me` or `all`'
optional :my_reaction_emoji, type: String, desc: 'Return issues reacted by the authenticated user by the given emoji' optional :my_reaction_emoji, type: String, desc: 'Return issues reacted by the authenticated user by the given emoji'
optional :source_branch, type: String, desc: 'Return merge requests with the given source branch' optional :source_branch, type: String, desc: 'Return merge requests with the given source branch'
optional :source_project_id, type: Integer, desc: 'Return merge requests with the given source project id'
optional :target_branch, type: String, desc: 'Return merge requests with the given target branch' optional :target_branch, type: String, desc: 'Return merge requests with the given target branch'
optional :search, type: String, desc: 'Search merge requests for text present in the title, description, or any combination of these' optional :search, type: String, desc: 'Search merge requests for text present in the title, description, or any combination of these'
optional :in, type: String, desc: '`title`, `description`, or a string joining them with comma' optional :in, type: String, desc: '`title`, `description`, or a string joining them with comma'
......
...@@ -83,6 +83,14 @@ describe MergeRequestsFinder do ...@@ -83,6 +83,14 @@ describe MergeRequestsFinder do
expect(merge_requests).to contain_exactly(merge_request2) expect(merge_requests).to contain_exactly(merge_request2)
end end
it 'filters by source project id' do
params = { source_project_id: merge_request2.source_project_id }
merge_requests = described_class.new(user, params).execute
expect(merge_requests).to contain_exactly(merge_request1, merge_request2, merge_request3)
end
it 'filters by state' do it 'filters by state' do
params = { state: 'locked' } params = { state: 'locked' }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment