Commit 8fb9ea95 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Copy merge request routes to - scope

Signed-off-by: default avatarDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
parent f588407e
---
title: Copy merge request routes to the - scope
merge_request: 22082
author:
type: changed
# frozen_string_literal: true
resources :merge_requests, concerns: :awardable, except: [:new, :create, :show], constraints: { id: /\d+/ } do
member do
get :show # Insert this first to ensure redirections using merge_requests#show match this route
get :commit_change_content
post :merge
post :cancel_auto_merge
get :pipeline_status
get :ci_environments_status
post :toggle_subscription
post :remove_wip
post :assign_related_issues
get :discussions, format: :json
post :rebase
get :test_reports
get :exposed_artifacts
scope constraints: ->(req) { req.format == :json }, as: :json do
get :commits
get :pipelines
get :diffs, to: 'merge_requests/diffs#show'
get :diffs_batch, to: 'merge_requests/diffs#diffs_batch'
get :diffs_metadata, to: 'merge_requests/diffs#diffs_metadata'
get :widget, to: 'merge_requests/content#widget'
get :cached_widget, to: 'merge_requests/content#cached_widget'
end
scope action: :show do
get :commits, defaults: { tab: 'commits' }
get :pipelines, defaults: { tab: 'pipelines' }
get :diffs, defaults: { tab: 'diffs' }
end
get :diff_for_path, controller: 'merge_requests/diffs'
scope controller: 'merge_requests/conflicts' do
get :conflicts, action: :show
get :conflict_for_path
post :resolve_conflicts
end
end
collection do
get :diff_for_path
post :bulk_update
end
resources :discussions, only: [:show], constraints: { id: /\h{40}/ } do
member do
post :resolve
delete :resolve, action: :unresolve
end
end
end
scope path: 'merge_requests', controller: 'merge_requests/creations' do
post '', action: :create, as: nil
scope path: 'new', as: :new_merge_request do
get '', action: :new
scope constraints: ->(req) { req.format == :json }, as: :json do
get :diffs
get :pipelines
end
scope action: :new do
get :diffs, defaults: { tab: 'diffs' }
get :pipelines, defaults: { tab: 'pipelines' }
end
get :diff_for_path
get :branch_from
get :branch_to
end
end
......@@ -328,80 +328,15 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do
end
end
resources :merge_requests, concerns: :awardable, except: [:new, :create, :show], constraints: { id: /\d+/ } do
member do
get :show # Insert this first to ensure redirections using merge_requests#show match this route
get :commit_change_content
post :merge
post :cancel_auto_merge
get :pipeline_status
get :ci_environments_status
post :toggle_subscription
post :remove_wip
post :assign_related_issues
get :discussions, format: :json
post :rebase
get :test_reports
get :exposed_artifacts
scope constraints: ->(req) { req.format == :json }, as: :json do
get :commits
get :pipelines
get :diffs, to: 'merge_requests/diffs#show'
get :diffs_batch, to: 'merge_requests/diffs#diffs_batch'
get :diffs_metadata, to: 'merge_requests/diffs#diffs_metadata'
get :widget, to: 'merge_requests/content#widget'
get :cached_widget, to: 'merge_requests/content#cached_widget'
end
scope action: :show do
get :commits, defaults: { tab: 'commits' }
get :pipelines, defaults: { tab: 'pipelines' }
get :diffs, defaults: { tab: 'diffs' }
end
get :diff_for_path, controller: 'merge_requests/diffs'
scope controller: 'merge_requests/conflicts' do
get :conflicts, action: :show
get :conflict_for_path
post :resolve_conflicts
end
end
collection do
get :diff_for_path
post :bulk_update
end
resources :discussions, only: [:show], constraints: { id: /\h{40}/ } do
member do
post :resolve
delete :resolve, action: :unresolve
end
end
end
scope path: 'merge_requests', controller: 'merge_requests/creations' do
post '', action: :create, as: nil
scope path: 'new', as: :new_merge_request do
get '', action: :new
scope constraints: ->(req) { req.format == :json }, as: :json do
get :diffs
get :pipelines
end
scope action: :new do
get :diffs, defaults: { tab: 'diffs' }
get :pipelines, defaults: { tab: 'pipelines' }
end
get :diff_for_path
get :branch_from
get :branch_to
end
# Unscoped route. It will be replaced with redirect to /-/merge_requests/
# Issue https://gitlab.com/gitlab-org/gitlab/issues/118849
draw :merge_requests
# To ensure an old unscoped routing is used for the UI we need to
# add prefix 'as' to the scope routing and place it below original MR routing.
# Issue https://gitlab.com/gitlab-org/gitlab/issues/118849
scope '-', as: 'scoped' do
draw :merge_requests
end
resources :pipelines, only: [:index, :new, :create, :show] do
......
# frozen_string_literal: true
resources :merge_requests, only: [], constraints: { id: /\d+/ } do
member do
get '/descriptions/:version_id/diff', action: :description_diff, as: :description_diff
get :metrics_reports
get :license_management_reports
get :container_scanning_reports
get :dependency_scanning_reports
get :sast_reports
get :dast_reports
get :approvals
post :approvals, action: :approve
delete :approvals, action: :unapprove
post :rebase
end
resources :approvers, only: :destroy
delete 'approvers', to: 'approvers#destroy_via_user_id', as: :approver_via_user_id
resources :approver_groups, only: :destroy
scope module: :merge_requests do
resources :drafts, only: [:index, :update, :create, :destroy] do
collection do
post :publish
delete :discard
end
end
end
end
......@@ -137,35 +137,15 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do
get '/service_desk' => 'service_desk#show', as: :service_desk
put '/service_desk' => 'service_desk#update', as: :service_desk_refresh
resources :merge_requests, only: [], constraints: { id: /\d+/ } do
member do
get '/descriptions/:version_id/diff', action: :description_diff, as: :description_diff
get :metrics_reports
get :license_management_reports
get :container_scanning_reports
get :dependency_scanning_reports
get :sast_reports
get :dast_reports
get :approvals
post :approvals, action: :approve
delete :approvals, action: :unapprove
post :rebase
end
resources :approvers, only: :destroy
delete 'approvers', to: 'approvers#destroy_via_user_id', as: :approver_via_user_id
resources :approver_groups, only: :destroy
scope module: :merge_requests do
resources :drafts, only: [:index, :update, :create, :destroy] do
collection do
post :publish
delete :discard
end
end
end
# Unscoped route. It will be replaced with redirect to /-/merge_requests/
# Issue https://gitlab.com/gitlab-org/gitlab/issues/118849
draw :merge_requests_ee
# To ensure an old unscoped routing is used for the UI we need to
# add prefix 'as' to the scope routing and place it below original MR routing.
# Issue https://gitlab.com/gitlab-org/gitlab/issues/118849
scope '-', as: 'scoped' do
draw :merge_requests_ee
end
post '/restore' => '/projects#restore', as: :restore
......
......@@ -314,6 +314,12 @@ describe 'project routing' do
expect(get('/gitlab/gitlabhq/merge_requests/1/pipelines')).to route_to('projects/merge_requests#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', tab: 'pipelines')
end
it 'to #show from scoped route' do
expect(get('/gitlab/gitlabhq/-/merge_requests/1.diff')).to route_to('projects/merge_requests#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', format: 'diff')
expect(get('/gitlab/gitlabhq/-/merge_requests/1.patch')).to route_to('projects/merge_requests#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', format: 'patch')
expect(get('/gitlab/gitlabhq/-/merge_requests/1/diffs')).to route_to('projects/merge_requests#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1', tab: 'diffs')
end
it_behaves_like 'RESTful project resources' do
let(:controller) { 'merge_requests' }
let(:actions) { [:index, :edit, :show, :update] }
......
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