summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/initializers/1_settings.rb1
-rw-r--r--config/initializers/static_files.rb15
-rw-r--r--config/routes.rb333
3 files changed, 220 insertions, 129 deletions
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index d7c1a8428ac..6a8bbb80b9c 100644
--- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb
@@ -112,6 +112,7 @@ end
Settings.gitlab['time_zone'] ||= nil
Settings.gitlab['signup_enabled'] ||= true if Settings.gitlab['signup_enabled'].nil?
Settings.gitlab['signin_enabled'] ||= true if Settings.gitlab['signin_enabled'].nil?
+Settings.gitlab['twitter_sharing_enabled'] ||= true if Settings.gitlab['twitter_sharing_enabled'].nil?
Settings.gitlab['restricted_visibility_levels'] = Settings.send(:verify_constant_array, Gitlab::VisibilityLevel, Settings.gitlab['restricted_visibility_levels'], [])
Settings.gitlab['username_changing_enabled'] = true if Settings.gitlab['username_changing_enabled'].nil?
Settings.gitlab['issue_closing_pattern'] = '((?:[Cc]los(?:e[sd]?|ing)|[Ff]ix(?:e[sd]|ing)?|[Rr]esolv(?:e[sd]?|ing)) +(?:(?:issues? +)?#\d+(?:(?:, *| +and +)?))+)' if Settings.gitlab['issue_closing_pattern'].nil?
diff --git a/config/initializers/static_files.rb b/config/initializers/static_files.rb
new file mode 100644
index 00000000000..d9042c652bb
--- /dev/null
+++ b/config/initializers/static_files.rb
@@ -0,0 +1,15 @@
+app = Rails.application
+
+if app.config.serve_static_assets
+ # The `ActionDispatch::Static` middleware intercepts requests for static files
+ # by checking if they exist in the `/public` directory.
+ # We're replacing it with our `Gitlab::Middleware::Static` that does the same,
+ # except ignoring `/uploads`, letting those go through to the GitLab Rails app.
+
+ app.config.middleware.swap(
+ ActionDispatch::Static,
+ Gitlab::Middleware::Static,
+ app.paths["public"].first,
+ app.config.static_cache_control
+ )
+end
diff --git a/config/routes.rb b/config/routes.rb
index c8a8415ae77..ecd439aecea 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -51,7 +51,7 @@ Gitlab::Application.routes.draw do
end
get '/s/:username' => 'snippets#user_index', as: :user_snippets, constraints: { username: /.*/ }
-
+
#
# Import
#
@@ -67,9 +67,29 @@ Gitlab::Application.routes.draw do
get :callback
get :jobs
end
+
+ resource :gitorious, only: [:create, :new], controller: :gitorious do
+ get :status
+ get :callback
+ get :jobs
+ end
+ end
+
+ #
+ # Uploads
+ #
+
+ scope path: :uploads do
+ # Note attachments and User/Group/Project avatars
+ get ":model/:mounted_as/:id/:filename",
+ to: "uploads#show",
+ constraints: { model: /note|user|group|project/, mounted_as: /avatar|attachment/, filename: /.+/ }
+
+ # Project markdown uploads
+ get ":namespace_id/:id/:secret/:filename",
+ to: "projects/uploads#show",
+ constraints: { namespace_id: /[a-zA-Z.0-9_\-]+/, id: /[a-zA-Z.0-9_\-]+/, filename: /.+/ }
end
-
-
#
# Explore area
@@ -125,13 +145,24 @@ Gitlab::Application.routes.draw do
resource :logs, only: [:show]
resource :background_jobs, controller: 'background_jobs', only: [:show]
- resources :projects, constraints: { id: /[a-zA-Z.\/0-9_\-]+/ }, only: [:index, :show] do
- member do
- put :transfer
+ resources :namespaces, path: '/projects', constraints: { id: /[a-zA-Z.0-9_\-]+/ }, only: [] do
+ root to: 'projects#index', as: :projects
+
+ resources(:projects,
+ path: '/',
+ constraints: { id: /[a-zA-Z.0-9_\-]+/ },
+ only: [:index, :show]) do
+ root to: 'projects#show'
+
+ member do
+ put :transfer
+ end
end
end
- resource :application_settings, only: [:show, :update]
+ resource :application_settings, only: [:show, :update] do
+ resources :services
+ end
root to: 'dashboard#index'
end
@@ -210,167 +241,213 @@ Gitlab::Application.routes.draw do
devise_scope :user do
get '/users/auth/:provider/omniauth_error' => 'omniauth_callbacks#omniauth_error', as: :omniauth_error
end
+
+ root to: "dashboard#show"
+
#
# Project Area
#
- resources :projects, constraints: { id: /[a-zA-Z.0-9_\-]+\/[a-zA-Z.0-9_\-]+/ }, except: [:new, :create, :index], path: '/' do
- member do
- put :transfer
- post :archive
- post :unarchive
- post :upload_image
- post :toggle_star
- post :markdown_preview
- get :autocomplete_sources
- end
-
- scope module: :projects do
- # Blob routes:
- get '/new/:id', to: 'blob#new', constraints: { id: /.+/ }, as: 'new_blob'
- post '/create/:id', to: 'blob#create', constraints: { id: /.+/ }, as: 'create_blob'
- get '/edit/:id', to: 'blob#edit', constraints: { id: /.+/ }, as: 'edit_blob'
- put '/update/:id', to: 'blob#update', constraints: { id: /.+/ }, as: 'update_blob'
- post '/preview/:id', to: 'blob#preview', constraints: { id: /.+/ }, as: 'preview_blob'
-
- resources :blob, only: [:show, :destroy], constraints: { id: /.+/, format: false } do
- get :diff, on: :member
+ resources :namespaces, path: '/', constraints: { id: /[a-zA-Z.0-9_\-]+/ }, only: [] do
+ resources(:projects, constraints: { id: /[a-zA-Z.0-9_\-]+/ }, except:
+ [:new, :create, :index], path: "/") do
+ member do
+ put :transfer
+ post :archive
+ post :unarchive
+ post :upload_image
+ post :toggle_star
+ post :markdown_preview
+ get :autocomplete_sources
end
- resources :raw, only: [:show], constraints: { id: /.+/ }
- resources :tree, only: [:show], constraints: { id: /.+/, format: /(html|js)/ }
- resource :avatar, only: [:show, :destroy]
-
- resources :commit, only: [:show], constraints: { id: /[[:alnum:]]{6,40}/ } do
- get :branches, on: :member
- end
+ scope module: :projects do
+ # Blob routes:
+ get '/new/*id', to: 'blob#new', constraints: { id: /.+/ }, as: 'new_blob'
+ post '/create/*id', to: 'blob#create', constraints: { id: /.+/ }, as: 'create_blob'
+ get '/edit/*id', to: 'blob#edit', constraints: { id: /.+/ }, as: 'edit_blob'
+ put '/update/*id', to: 'blob#update', constraints: { id: /.+/ }, as: 'update_blob'
+ post '/preview/*id', to: 'blob#preview', constraints: { id: /.+/ }, as: 'preview_blob'
+
+ scope do
+ get(
+ '/blob/*id/diff',
+ to: 'blob#diff',
+ constraints: { id: /.+/, format: false },
+ as: :blob_diff
+ )
+ get(
+ '/blob/*id',
+ to: 'blob#show',
+ constraints: { id: /.+/, format: false },
+ as: :blob
+ )
+ delete(
+ '/blob/*id',
+ to: 'blob#destroy',
+ constraints: { id: /.+/, format: false }
+ )
+ end
- resources :commits, only: [:show], constraints: { id: /(?:[^.]|\.(?!atom$))+/, format: /atom/ }
- resources :compare, only: [:index, :create]
- resources :blame, only: [:show], constraints: { id: /.+/ }
- resources :network, only: [:show], constraints: { id: /(?:[^.]|\.(?!json$))+/, format: /json/ }
- resources :graphs, only: [:show], constraints: { id: /(?:[^.]|\.(?!json$))+/, format: /json/ } do
- member do
- get :commits
+ scope do
+ get(
+ '/raw/*id',
+ to: 'raw#show',
+ constraints: { id: /.+/, format: /(html|js)/ },
+ as: :raw
+ )
end
- end
- get '/compare/:from...:to' => 'compare#show', :as => 'compare',
- :constraints => { from: /.+/, to: /.+/ }
+ scope do
+ get(
+ '/tree/*id',
+ to: 'tree#show',
+ constraints: { id: /.+/, format: /(html|js)/ },
+ as: :tree
+ )
+ end
+ resource :avatar, only: [:show, :destroy]
- resources :snippets, constraints: { id: /\d+/ } do
- member do
- get 'raw'
+ resources :commit, only: [:show], constraints: { id: /[[:alnum:]]{6,40}/ } do
+ get :branches, on: :member
end
- end
- resources :wikis, only: [:show, :edit, :destroy, :create], constraints: { id: /[a-zA-Z.0-9_\-\/]+/ } do
- collection do
- get :pages
- put ':id' => 'wikis#update'
- get :git_access
+ resources :commits, only: [:show], constraints: { id: /(?:[^.]|\.(?!atom$))+/, format: /atom/ }
+ resources :compare, only: [:index, :create]
+
+ scope do
+ get(
+ '/blame/*id',
+ to: 'blame#show',
+ constraints: { id: /.+/, format: /(html|js)/ },
+ as: :blame
+ )
end
- member do
- get 'history'
+ resources :network, only: [:show], constraints: { id: /(?:[^.]|\.(?!json$))+/, format: /json/ }
+ resources :graphs, only: [:show], constraints: { id: /(?:[^.]|\.(?!json$))+/, format: /json/ } do
+ member do
+ get :commits
+ end
end
- end
- resource :fork, only: [:new, :create]
- resource :import, only: [:new, :create, :show]
+ get '/compare/:from...:to' => 'compare#show', :as => 'compare',
+ :constraints => { from: /.+/, to: /.+/ }
- resource :repository, only: [:show, :create] do
- member do
- get 'archive', constraints: { format: Gitlab::Regex.archive_formats_regex }
+ resources :snippets, constraints: { id: /\d+/ } do
+ member do
+ get 'raw'
+ end
end
- end
- resources :services, constraints: { id: /[^\/]+/ }, only: [:index, :edit, :update] do
- member do
- get :test
- end
- end
+ resources :wikis, only: [:show, :edit, :destroy, :create], constraints: { id: /[a-zA-Z.0-9_\-\/]+/ } do
+ collection do
+ get :pages
+ put ':id' => 'wikis#update'
+ get :git_access
+ end
- resources :deploy_keys, constraints: { id: /\d+/ } do
- member do
- put :enable
- put :disable
+ member do
+ get 'history'
+ end
end
- end
- resources :branches, only: [:index, :new, :create, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex }
- resources :tags, only: [:index, :new, :create, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex }
- resources :protected_branches, only: [:index, :create, :update, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex }
+ resource :repository, only: [:show, :create] do
+ member do
+ get 'archive', constraints: { format: Gitlab::Regex.archive_formats_regex }
+ end
+ end
- resources :refs, only: [] do
- collection do
- get 'switch'
+ resources :services, constraints: { id: /[^\/]+/ }, only: [:index, :edit, :update] do
+ member do
+ get :test
+ end
end
- member do
- # tree viewer logs
- get 'logs_tree', constraints: { id: Gitlab::Regex.git_reference_regex }
- get 'logs_tree/:path' => 'refs#logs_tree', as: :logs_file, constraints: {
- id: Gitlab::Regex.git_reference_regex,
- path: /.*/
- }
+ resources :deploy_keys, constraints: { id: /\d+/ } do
+ member do
+ put :enable
+ put :disable
+ end
end
- end
- resources :merge_requests, constraints: { id: /\d+/ }, except: [:destroy] do
- member do
- get :diffs
- post :automerge
- get :automerge_check
- get :ci_status
+ resource :fork, only: [:new, :create]
+ resource :import, only: [:new, :create, :show]
+
+ resources :refs, only: [] do
+ collection do
+ get 'switch'
+ end
+
+ member do
+ # tree viewer logs
+ get 'logs_tree', constraints: { id: Gitlab::Regex.git_reference_regex }
+ get 'logs_tree/:path' => 'refs#logs_tree', as: :logs_file, constraints: {
+ id: Gitlab::Regex.git_reference_regex,
+ path: /.*/
+ }
+ end
end
- collection do
- get :branch_from
- get :branch_to
- get :update_branches
+ resources :merge_requests, constraints: { id: /\d+/ }, except: [:destroy] do
+ member do
+ get :diffs
+ post :automerge
+ get :automerge_check
+ get :ci_status
+ end
+
+ collection do
+ get :branch_from
+ get :branch_to
+ get :update_branches
+ end
end
- end
- resources :hooks, only: [:index, :create, :destroy], constraints: { id: /\d+/ } do
- member do
- get :test
+ resources :branches, only: [:index, :new, :create, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex }
+ resources :tags, only: [:index, :new, :create, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex }
+ resources :protected_branches, only: [:index, :create, :update, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex }
+
+ resources :hooks, only: [:index, :create, :destroy], constraints: { id: /\d+/ } do
+ member do
+ get :test
+ end
end
- end
- resources :team, controller: 'team_members', only: [:index]
- resources :milestones, except: [:destroy], constraints: { id: /\d+/ } do
- member do
- put :sort_issues
- put :sort_merge_requests
+ resources :team, controller: 'team_members', only: [:index]
+ resources :milestones, except: [:destroy], constraints: { id: /\d+/ } do
+ member do
+ put :sort_issues
+ put :sort_merge_requests
+ end
end
- end
- resources :labels, constraints: { id: /\d+/ } do
- collection do
- post :generate
+ resources :labels, constraints: { id: /\d+/ } do
+ collection do
+ post :generate
+ end
end
- end
- resources :issues, constraints: { id: /\d+/ }, except: [:destroy] do
- collection do
- post :bulk_update
+ resources :issues, constraints: { id: /\d+/ }, except: [:destroy] do
+ collection do
+ post :bulk_update
+ end
end
- end
- resources :team_members, except: [:index, :edit], constraints: { id: /[a-zA-Z.\/0-9_\-#%+]+/ } do
- collection do
- delete :leave
+ resources :team_members, except: [:index, :edit], constraints: { id: /[a-zA-Z.\/0-9_\-#%+]+/ } do
+ collection do
+ delete :leave
- # Used for import team
- # from another project
- get :import
- post :apply_import
+ # Used for import team
+ # from another project
+ get :import
+ post :apply_import
+ end
end
- end
- resources :notes, only: [:index, :create, :destroy, :update], constraints: { id: /\d+/ } do
- member do
- delete :delete_attachment
+ resources :notes, only: [:index, :create, :destroy, :update], constraints: { id: /\d+/ } do
+ member do
+ delete :delete_attachment
+ end
end
end
@@ -378,6 +455,4 @@ Gitlab::Application.routes.draw do
end
get ':id' => 'namespaces#show', constraints: { id: /(?:[^.]|\.(?!atom$))+/, format: /atom/ }
-
- root to: 'dashboard#show'
end