gitlab-org--gitlab-foss/config/routes.rb

153 lines
4.1 KiB
Ruby
Raw Normal View History

2013-01-09 00:14:05 -05:00
require 'sidekiq/web'
require 'sidekiq/cron/web'
2013-01-09 00:14:05 -05:00
2015-11-25 11:18:44 -05:00
Rails.application.routes.draw do
concern :access_requestable do
post :request_access, on: :collection
post :approve_access_request, on: :member
end
2016-09-19 03:26:37 -04:00
concern :awardable do
post :toggle_award_emoji, on: :member
end
favicon_redirect = redirect do |_params, _request|
ActionController::Base.helpers.asset_url(Gitlab::Favicon.main)
end
get 'favicon.png', to: favicon_redirect
get 'favicon.ico', to: favicon_redirect
draw :sherlock
draw :development
draw :ci
2015-08-25 21:42:46 -04:00
2014-12-19 09:15:29 -05:00
use_doorkeeper do
2015-02-02 22:30:09 -05:00
controllers applications: 'oauth/applications',
authorized_applications: 'oauth/authorized_applications',
authorizations: 'oauth/authorizations'
2014-12-19 09:15:29 -05:00
end
2015-03-08 17:46:22 -04:00
2018-08-16 21:05:07 -04:00
# This is here so we can "reserve" the path for the Jira integration in GitLab EE
# Having a non-existent controller here does not affect the scope in any way since all possible routes
# get a 404 proc returned. It is written in this way to minimize merge conflicts with EE
scope path: '/login/oauth', controller: 'oauth/jira/authorizations', as: :oauth_jira do
match '*all', via: [:get, :post], to: proc { [404, {}, ['']] }
2018-08-16 21:05:07 -04:00
end
draw :oauth
use_doorkeeper_openid_connect
2015-03-26 22:06:19 -04:00
# Autocomplete
get '/autocomplete/users' => 'autocomplete#users'
get '/autocomplete/users/:id' => 'autocomplete#user'
get '/autocomplete/projects' => 'autocomplete#projects'
2017-08-30 03:48:55 -04:00
get '/autocomplete/award_emojis' => 'autocomplete#award_emojis'
2019-03-09 07:22:58 -05:00
get '/autocomplete/merge_request_target_branches' => 'autocomplete#merge_request_target_branches'
2015-03-26 22:06:19 -04:00
# Search
get 'search' => 'search#show'
get 'search/autocomplete' => 'search#autocomplete', as: :search_autocomplete
2012-02-19 09:35:31 -05:00
2016-05-02 07:29:17 -04:00
# JSON Web Token
get 'jwt/auth' => 'jwt#auth'
# Health check
2016-05-13 03:51:13 -04:00
get 'health_check(/:checks)' => 'health_check#index', as: :health_check
scope path: '-' do
# '/-/health' implemented by BasicHealthMiddleware
get 'liveness' => 'health#liveness'
get 'readiness' => 'health#readiness'
resources :metrics, only: [:index]
mount Peek::Railtie => '/peek', as: 'peek_routes'
# Boards resources shared between group and projects
resources :boards, only: [] do
resources :lists, module: :boards, only: [:index, :create, :update, :destroy] do
collection do
post :generate
end
resources :issues, only: [:index, :create, :update]
end
resources :issues, module: :boards, only: [:index, :update]
end
2018-01-27 12:44:14 -05:00
# UserCallouts
resources :user_callouts, only: [:create]
get 'ide' => 'ide#index'
get 'ide/*vueroute' => 'ide#index', format: false
draw :operations
draw :instance_statistics
2018-11-01 13:20:34 -04:00
if ENV['GITLAB_ENABLE_CHAOS_ENDPOINTS']
get '/chaos/leakmem' => 'chaos#leakmem'
get '/chaos/cpuspin' => 'chaos#cpuspin'
get '/chaos/sleep' => 'chaos#sleep'
get '/chaos/kill' => 'chaos#kill'
end
end
concern :clusterable do
resources :clusters, only: [:index, :new, :show, :update, :destroy] do
collection do
post :create_user
post :create_gcp
end
member do
scope :applications do
post '/:application', to: 'clusters/applications#create', as: :install_applications
patch '/:application', to: 'clusters/applications#update', as: :update_applications
end
get :cluster_status, format: :json
end
end
end
draw :api
draw :sidekiq
draw :help
draw :snippets
2013-03-24 18:17:20 -04:00
2015-04-10 09:22:31 -04:00
# Invites
resources :invites, only: [:show], constraints: { id: /[A-Za-z0-9_-]+/ } do
member do
post :accept
2015-04-10 10:37:02 -04:00
match :decline, via: [:get, :post]
2015-04-10 09:22:31 -04:00
end
end
2015-02-11 20:34:41 -05:00
resources :sent_notifications, only: [], constraints: { id: /\h{32}/ } do
member do
get :unsubscribe
end
end
# Spam reports
resources :abuse_reports, only: [:new, :create]
# Notification settings
resources :notification_settings, only: [:create, :update]
draw :google_api
draw :import
draw :uploads
draw :explore
draw :admin
draw :profile
draw :dashboard
draw :group
draw :user
draw :project
2011-10-08 17:36:38 -04:00
root to: "root#index"
get '*unmatched_route', to: 'application#route_not_found'
2011-10-08 17:36:38 -04:00
end