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

153 lines
3.8 KiB
Ruby
Raw Normal View History

2013-01-09 00:14:05 -05:00
require 'sidekiq/web'
require 'sidekiq/cron/web'
require 'api/api'
2013-01-09 00:14:05 -05:00
class ActionDispatch::Routing::Mapper
def draw(routes_name)
instance_eval(File.read(Rails.root.join("config/routes/#{routes_name}.rb")))
end
end
2015-11-25 11:18:44 -05:00
Rails.application.routes.draw do
if Gitlab::Sherlock.enabled?
namespace :sherlock do
resources :transactions, only: [:index, :show] do
resources :queries, only: [:show]
resources :file_samples, only: [:show]
collection do
delete :destroy_all
end
end
end
end
if Rails.env.development?
# Make the built-in Rails routes available in development, otherwise they'd
# get swallowed by the `namespace/project` route matcher below.
#
# See https://git.io/va79N
get '/rails/mailers' => 'rails/mailers#index'
get '/rails/mailers/:path' => 'rails/mailers#preview'
get '/rails/info/properties' => 'rails/info#properties'
get '/rails/info/routes' => 'rails/info#routes'
get '/rails/info' => 'rails/info#index'
mount LetterOpenerWeb::Engine, at: '/rails/letter_opener'
end
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
2015-08-25 21:42:46 -04:00
namespace :ci do
# CI API
Ci::API::API.logger Rails.logger
mount Ci::API::API => '/api'
resource :lint, only: [:show, :create]
2016-05-03 18:32:14 -04:00
resources :projects, only: [:index, :show] do
2015-08-25 21:42:46 -04:00
member do
get :status, to: 'projects#badge'
end
end
root to: 'projects#index'
end
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
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'
2015-03-26 22:06:19 -04:00
2016-02-22 21:16:00 -05:00
# Emojis
resources :emojis, only: :index
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'
2012-06-27 05:26:16 -04:00
# API
API::API.logger Rails.logger
mount API::API => '/api'
2012-06-27 05:26:16 -04:00
constraint = lambda { |request| request.env['warden'].authenticate? and request.env['warden'].user.admin? }
2013-01-09 00:14:05 -05:00
constraints constraint do
mount Sidekiq::Web, at: '/admin/sidekiq', as: :sidekiq
2013-01-09 00:14:05 -05:00
end
# Health check
2016-05-13 03:51:13 -04:00
get 'health_check(/:checks)' => 'health_check#index', as: :health_check
# Help
get 'help' => 'help#index'
get 'help/shortcuts' => 'help#shortcuts'
get 'help/ui' => 'help#ui'
get 'help/*path' => 'help#show', as: :help_page
Support integration with Koding (online IDE) Koding: #index: landing page for Koding integration If enabled it will provide a link to open remote Koding instance url for now we are also providing the sneak preview video for how integration works in detail. Repository: check whether .koding.yml file exists on repository Projects: landing page: show Run in IDE (Koding) button if repo has stack file Projects: MR: show Run in IDE Koding button if repo has stack file on active branch ProjectHelpers: add_koding_stack: stack generator for provided project With this helper we will auto-generate the required stack template for a given project. For the feature we can request this base template from the running Koding instance on integration. Currently this will provide users to create a t2.nano instance on aws and it'll automatically configures the instance for basic requirements. Projects: empty state and landing page provide shortcuts to create stack projects_helper: use branch on checkout and provide an entry point This ${var.koding_queryString_branch} will be replaced with the branch provided in query string which will allow us to use same stack template for different branches of the same repository. ref: https://github.com/koding/koding/pull/8597/commits/b8c0e43c4c24bf132670aa8a3cfb0d634acfd09b projects_helper: provide sha info in query string to use existing vms With this change we'll be able to query existing vms on Koding side based on the commit id that they've created. ref: https://github.com/koding/koding/pull/8597/commits/1d630fadf31963fa6ccd3bed92e526761a30a343 Integration: Docs: Koding documentation added Disable /koding route if integration is disabled Use application settings to enable Koding Projects_helper: better indentation with strip_heredoc usage Projects_helper: return koding_url as is if there is no project provided current_settings: set koding_enabled: false by default Koding_Controller: to render not_found once integration is disabled Dashboard_specs: update spec for Koding enabled case Projects_Helper: make repo dynamic ref: https://github.com/koding/koding/pull/8597/commits/4d615242f45aaea4c4986be84ecc612b0bb1514c Updated documentation to have right format
2016-07-25 23:59:39 -04:00
# Koding route
get 'koding' => 'koding#index'
2013-03-24 18:17:20 -04:00
# Global snippets
2016-09-19 03:26:37 -04:00
resources :snippets, concerns: :awardable do
2013-03-24 18:17:20 -04:00
member do
get 'raw'
2013-03-24 18:17:20 -04:00
end
end
2016-05-08 04:29:51 -04:00
get '/s/:username', to: redirect('/u/%{username}/snippets'),
2016-05-08 04:27:33 -04:00
constraints: { username: /[a-zA-Z.0-9_\-]+(?<!\.atom)/ }
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 :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
# Get all keys of user
get ':username.keys' => 'profiles/keys#get_keys', constraints: { username: /.*/ }
get ':id' => 'namespaces#show', constraints: { id: /(?:[^.]|\.(?!atom$))+/, format: /atom/ }
root to: "root#index"
2011-10-08 17:36:38 -04:00
end