Delta between CE and EE in config/routes/group.rb is weird
Currently, the diff between CE and EE for the config/routes/group.rb file is really weird:
- CE: https://gitlab.com/gitlab-org/gitlab-ce/blob/4733570c3d710f3124718fa1173f3068eb932281/config/routes/group.rb
- EE: https://gitlab.com/gitlab-org/gitlab-ee/blob/6ccdf35440243ff37900a96870feb0da79db7a47/config/routes/group.rb
The order of blocks is different and in EE, all the routes are wrapped in a constraints(GroupUrlConstrainer.new) do block (which is probably a good idea?).
diff --git a/config/routes/group.rb b/config/routes/group.rb
index 8cc30bfcc5..fa1409b0cc 100644
--- a/config/routes/group.rb
+++ b/config/routes/group.rb
@@ -4,50 +4,87 @@ resources :groups, only: [:index, :new, :create] do
post :preview_markdown
end
-scope(path: 'groups/*group_id',
- module: :groups,
- as: :group,
- constraints: { group_id: Gitlab::PathRegex.full_namespace_route_regex }) do
- resources :group_members, only: [:index, :create, :update, :destroy], concerns: :access_requestable do
- post :resend_invite, on: :member
- delete :leave, on: :collection
+constraints(GroupUrlConstrainer.new) do
+ scope(path: 'groups/*id',
+ controller: :groups,
+ constraints: { id: Gitlab::PathRegex.full_namespace_route_regex, format: /(html|json|atom)/ }) do
+ get :edit, as: :edit_group
+ get :issues, as: :issues_group
+ get :merge_requests, as: :merge_requests_group
+ get :projects, as: :projects_group
+ get :activity, as: :activity_group
+ get :subgroups, as: :subgroups_group
+ get '/', action: :show, as: :group_canonical
end
- resource :avatar, only: [:destroy]
- resources :milestones, constraints: { id: /[^\/]+/ }, only: [:index, :show, :edit, :update, :new, :create] do
- member do
- get :merge_requests
- get :participants
- get :labels
+ scope(path: 'groups/*group_id',
+ module: :groups,
+ as: :group,
+ constraints: { group_id: Gitlab::PathRegex.full_namespace_route_regex }) do
+
+ ## EE-specific
+ resource :analytics, only: [:show]
+ resource :ldap, only: [] do
+ member do
+ put :sync
+ end
end
- end
- resources :labels, except: [:show] do
- post :toggle_subscription, on: :member
- end
+ resources :ldap_group_links, only: [:index, :create, :destroy]
+ ## EE-specific
+
+ resources :group_members, only: [:index, :create, :update, :destroy], concerns: :access_requestable do
+ post :resend_invite, on: :member
+ delete :leave, on: :collection
- scope path: '-' do
- namespace :settings do
- resource :ci_cd, only: [:show], controller: 'ci_cd'
+ ## EE-specific
+ patch :override, on: :member
+ ## EE-specific
end
- resources :variables, only: [:index, :show, :update, :create, :destroy]
- end
-end
+ resource :avatar, only: [:destroy]
+ resources :milestones, constraints: { id: /[^\/]+/ }, only: [:index, :show, :edit, :update, :new, :create] do
+ member do
+ get :merge_requests
+ get :participants
+ get :labels
+ end
+ end
-scope(path: 'groups/*id',
- controller: :groups,
- constraints: { id: Gitlab::PathRegex.full_namespace_route_regex, format: /(html|json|atom)/ }) do
- get :edit, as: :edit_group
- get :issues, as: :issues_group
- get :merge_requests, as: :merge_requests_group
- get :projects, as: :projects_group
- get :activity, as: :activity_group
- get :subgroups, as: :subgroups_group
- get '/', action: :show, as: :group_canonical
-end
+ ## EE-specific
+ resource :notification_setting, only: [:update]
+ resources :audit_events, only: [:index]
+ resources :pipeline_quota, only: [:index]
+ ## EE-specific
+
+ ## EE-specific
+ resources :hooks, only: [:index, :create, :destroy], constraints: { id: /\d+/ } do
+ member do
+ get :test
+ end
+ end
+ ## EE-specific
+
+ resources :labels, except: [:show] do
+ post :toggle_subscription, on: :member
+ end
+
+ scope path: '-' do
+ namespace :settings do
+ resource :ci_cd, only: [:show], controller: 'ci_cd'
+ end
+
+ resources :variables, only: [:index, :show, :update, :create, :destroy]
+ resources :billings, only: [:index]
+
+ ## EE-specific
+ resources :boards, only: [:index, :show, :create, :update, :destroy]
+ end
+
+ ## EE-specific
+ get :boards, to: redirect('/groups/%{group_id}/-/boards')
+ end
-constraints(GroupUrlConstrainer.new) do
scope(path: '*id',
as: :group,
constraints: { id: Gitlab::PathRegex.full_namespace_route_regex, format: /(html|json|atom)/ },
We might want to harmonize that.