From d2f9850f983ebebe0a787ac77328fd55ef9aa647 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Mon, 22 Jun 2020 13:32:17 +0300 Subject: [PATCH] Copy project snippet routes under - scope Signed-off-by: Dmitriy Zaporozhets --- .../unreleased/dz-scope-project-snippet-routes.yml | 5 +++++ config/routes/project.rb | 13 +++++++++++++ spec/routing/project_routing_spec.rb | 4 ++++ 3 files changed, 22 insertions(+) create mode 100644 changelogs/unreleased/dz-scope-project-snippet-routes.yml diff --git a/changelogs/unreleased/dz-scope-project-snippet-routes.yml b/changelogs/unreleased/dz-scope-project-snippet-routes.yml new file mode 100644 index 00000000000000..66902b26bd9fc9 --- /dev/null +++ b/changelogs/unreleased/dz-scope-project-snippet-routes.yml @@ -0,0 +1,5 @@ +--- +title: Copy project snippet routes under - scope +merge_request: 35022 +author: +type: other diff --git a/config/routes/project.rb b/config/routes/project.rb index d00e0ab1d04daf..48279b36fc16e3 100644 --- a/config/routes/project.rb +++ b/config/routes/project.rb @@ -369,6 +369,19 @@ end end + # Serve snippet routes under /-/snippets. + # 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 routing. + # Issue https://gitlab.com/gitlab-org/gitlab/-/issues/29572 + scope '-', as: :scoped do + resources :snippets, concerns: :awardable, constraints: { id: /\d+/ } do # rubocop: disable Cop/PutProjectRoutesUnderScope + member do + get :raw + post :mark_as_spam + end + end + end + namespace :prometheus do resources :alerts, constraints: { id: /\d+/ }, only: [:index, :create, :show, :update, :destroy] do # rubocop: disable Cop/PutProjectRoutesUnderScope post :notify, on: :collection diff --git a/spec/routing/project_routing_spec.rb b/spec/routing/project_routing_spec.rb index 966d6f7b106860..0a57c76ee75aa6 100644 --- a/spec/routing/project_routing_spec.rb +++ b/spec/routing/project_routing_spec.rb @@ -407,6 +407,10 @@ it 'to #destroy' do expect(delete('/gitlab/gitlabhq/snippets/1')).to route_to('projects/snippets#destroy', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1') end + + it 'to #show from scope routing' do + expect(get('/gitlab/gitlabhq/-/snippets/1')).to route_to('projects/snippets#show', namespace_id: 'gitlab', project_id: 'gitlabhq', id: '1') + end end # test_project_hook POST /:project_id/hooks/:id/test(.:format) hooks#test -- GitLab