ea9b3687db
This commit replaces the old database backed Wiki system with the excellent Gollum git based Wiki system. The UI has been updated to allow for utilizing the extra features that Gollum provides. Specifically: * Edit page now allows you to choose the content format. * Edit page allows you to provide a commit message for the change. * History page now shows Format, Commit Message, and Commit Hash. * A new Git Access page has been added with the Wiki Repo URL. * The default page has been changed to Home from Index to match the Gollum standard. The old Wiki model has been left in tact to provide for the development of a migration script that will move all content stored in the old Wiki system into new Gollum Wikis.
300 lines
7.2 KiB
Ruby
300 lines
7.2 KiB
Ruby
require 'sidekiq/web'
|
|
|
|
Gitlab::Application.routes.draw do
|
|
#
|
|
# Search
|
|
#
|
|
get 'search' => "search#show"
|
|
|
|
# API
|
|
require 'api'
|
|
Gitlab::API.logger Rails.logger
|
|
mount Gitlab::API => '/api'
|
|
|
|
constraint = lambda { |request| request.env["warden"].authenticate? and request.env['warden'].user.admin? }
|
|
constraints constraint do
|
|
mount Sidekiq::Web, at: "/admin/sidekiq", as: :sidekiq
|
|
end
|
|
|
|
# Enable Grack support
|
|
mount Grack::Bundle.new({
|
|
git_path: Gitlab.config.git.bin_path,
|
|
project_root: Gitlab.config.gitlab_shell.repos_path,
|
|
upload_pack: Gitlab.config.gitlab_shell.upload_pack,
|
|
receive_pack: Gitlab.config.gitlab_shell.receive_pack
|
|
}), at: '/', constraints: lambda { |request| /[-\/\w\.]+\.git\//.match(request.path_info) }
|
|
|
|
#
|
|
# Help
|
|
#
|
|
get 'help' => 'help#index'
|
|
get 'help/api' => 'help#api'
|
|
get 'help/markdown' => 'help#markdown'
|
|
get 'help/permissions' => 'help#permissions'
|
|
get 'help/public_access' => 'help#public_access'
|
|
get 'help/raketasks' => 'help#raketasks'
|
|
get 'help/ssh' => 'help#ssh'
|
|
get 'help/system_hooks' => 'help#system_hooks'
|
|
get 'help/web_hooks' => 'help#web_hooks'
|
|
get 'help/workflow' => 'help#workflow'
|
|
|
|
#
|
|
# Public namespace
|
|
#
|
|
namespace :public do
|
|
resources :projects, only: [:index]
|
|
root to: "projects#index"
|
|
end
|
|
|
|
#
|
|
# Attachments serving
|
|
#
|
|
get 'files/:type/:id/:filename' => 'files#download', constraints: { id: /\d+/, type: /[a-z]+/, filename: /.+/ }
|
|
|
|
#
|
|
# Admin Area
|
|
#
|
|
namespace :admin do
|
|
resources :users, constraints: { id: /[a-zA-Z.\/0-9_\-]+/ } do
|
|
member do
|
|
put :team_update
|
|
put :block
|
|
put :unblock
|
|
end
|
|
end
|
|
|
|
resources :groups, constraints: { id: /[^\/]+/ } do
|
|
member do
|
|
put :project_update
|
|
put :project_teams_update
|
|
delete :remove_project
|
|
end
|
|
end
|
|
|
|
resources :teams, constraints: { id: /[^\/]+/ } do
|
|
scope module: :teams do
|
|
resources :members, only: [:edit, :update, :destroy, :new, :create]
|
|
resources :projects, only: [:edit, :update, :destroy, :new, :create], constraints: { id: /[a-zA-Z.\/0-9_\-]+/ }
|
|
end
|
|
end
|
|
|
|
resources :hooks, only: [:index, :create, :destroy] do
|
|
get :test
|
|
end
|
|
|
|
resource :logs, only: [:show]
|
|
resource :resque, controller: 'resque', only: [:show]
|
|
|
|
resources :projects, constraints: { id: /[a-zA-Z.\/0-9_\-]+/ }, except: [:new, :create] do
|
|
member do
|
|
get :team
|
|
put :team_update
|
|
end
|
|
scope module: :projects, constraints: { id: /[a-zA-Z.\/0-9_\-]+/ } do
|
|
resources :members, only: [:edit, :update, :destroy]
|
|
end
|
|
end
|
|
|
|
root to: "dashboard#index"
|
|
end
|
|
|
|
get "errors/githost"
|
|
|
|
#
|
|
# Profile Area
|
|
#
|
|
resource :profile, only: [:show, :update] do
|
|
member do
|
|
get :account
|
|
get :history
|
|
get :token
|
|
get :design
|
|
|
|
put :update_password
|
|
put :reset_private_token
|
|
put :update_username
|
|
end
|
|
end
|
|
|
|
resources :keys
|
|
match "/u/:username" => "users#show", as: :user, constraints: { username: /.*/ }
|
|
|
|
|
|
|
|
#
|
|
# Dashboard Area
|
|
#
|
|
resource :dashboard, controller: "dashboard" do
|
|
member do
|
|
get :projects
|
|
get :issues
|
|
get :merge_requests
|
|
end
|
|
end
|
|
|
|
#
|
|
# Groups Area
|
|
#
|
|
resources :groups, constraints: { id: /[^\/]+/ } do
|
|
member do
|
|
get :issues
|
|
get :merge_requests
|
|
get :search
|
|
get :people
|
|
post :team_members
|
|
end
|
|
end
|
|
|
|
#
|
|
# Teams Area
|
|
#
|
|
resources :teams, constraints: { id: /[^\/]+/ } do
|
|
member do
|
|
get :issues
|
|
get :merge_requests
|
|
end
|
|
scope module: :teams do
|
|
resources :members, only: [:index, :new, :create, :edit, :update, :destroy]
|
|
resources :projects, only: [:index, :new, :create, :edit, :update, :destroy], constraints: { id: /[a-zA-Z.0-9_\-\/]+/ }
|
|
end
|
|
end
|
|
|
|
resources :projects, constraints: { id: /[^\/]+/ }, only: [:new, :create]
|
|
|
|
devise_for :users, controllers: { omniauth_callbacks: :omniauth_callbacks, registrations: :registrations }
|
|
|
|
#
|
|
# Project Area
|
|
#
|
|
resources :projects, constraints: { id: /(?:[a-zA-Z.0-9_\-]+\/)?[a-zA-Z.0-9_\-]+/ }, except: [:new, :create, :index], path: "/" do
|
|
member do
|
|
get "wall"
|
|
get "files"
|
|
end
|
|
|
|
resources :blob, only: [:show], constraints: {id: /.+/}
|
|
resources :tree, only: [:show, :edit, :update], constraints: {id: /.+/}
|
|
resources :commit, only: [:show], constraints: {id: /[[:alnum:]]{6,40}/}
|
|
resources :commits, only: [:show], constraints: {id: /(?:[^.]|\.(?!atom$))+/, format: /atom/}
|
|
resources :compare, only: [:index, :create]
|
|
resources :blame, only: [:show], constraints: {id: /.+/}
|
|
resources :graph, only: [:show], constraints: {id: /(?:[^.]|\.(?!json$))+/, format: /json/}
|
|
match "/compare/:from...:to" => "compare#show", as: "compare",
|
|
:via => [:get, :post], constraints: {from: /.+/, to: /.+/}
|
|
|
|
resources :wikis, only: [:show, :edit, :destroy, :create] do
|
|
collection do
|
|
get :pages
|
|
put ':id' => 'wikis#update'
|
|
get :git_access
|
|
end
|
|
|
|
member do
|
|
get "history"
|
|
end
|
|
end
|
|
|
|
resource :repository do
|
|
member do
|
|
get "branches"
|
|
get "tags"
|
|
get "stats"
|
|
get "archive"
|
|
end
|
|
end
|
|
|
|
resources :services, constraints: { id: /[^\/]+/ }, only: [:index, :edit, :update] do
|
|
member do
|
|
get :test
|
|
end
|
|
end
|
|
|
|
resources :deploy_keys
|
|
resources :protected_branches, only: [:index, :create, :destroy]
|
|
|
|
resources :refs, only: [] do
|
|
collection do
|
|
get "switch"
|
|
end
|
|
|
|
member do
|
|
# tree viewer logs
|
|
get "logs_tree", constraints: { id: /[a-zA-Z.\/0-9_\-]+/ }
|
|
get "logs_tree/:path" => "refs#logs_tree",
|
|
as: :logs_file,
|
|
constraints: {
|
|
id: /[a-zA-Z.0-9\/_\-]+/,
|
|
path: /.*/
|
|
}
|
|
end
|
|
end
|
|
|
|
resources :merge_requests, constraints: {id: /\d+/}, except: [:destroy] do
|
|
member do
|
|
get :diffs
|
|
get :automerge
|
|
get :automerge_check
|
|
get :ci_status
|
|
end
|
|
|
|
collection do
|
|
get :branch_from
|
|
get :branch_to
|
|
end
|
|
end
|
|
|
|
resources :snippets do
|
|
member do
|
|
get "raw"
|
|
end
|
|
end
|
|
|
|
resources :hooks, only: [:index, :create, :destroy] do
|
|
member do
|
|
get :test
|
|
end
|
|
end
|
|
|
|
|
|
resources :team, controller: 'team_members', only: [:index]
|
|
resources :milestones, except: [:destroy]
|
|
resources :labels, only: [:index]
|
|
resources :issues, except: [:destroy] do
|
|
collection do
|
|
post :sort
|
|
post :bulk_update
|
|
get :search
|
|
end
|
|
end
|
|
|
|
resources :team_members do
|
|
collection do
|
|
|
|
# Used for import team
|
|
# from another project
|
|
get :import
|
|
post :apply_import
|
|
end
|
|
end
|
|
|
|
scope module: :projects do
|
|
resources :teams, only: [] do
|
|
collection do
|
|
get :available
|
|
post :assign
|
|
end
|
|
member do
|
|
delete :resign
|
|
end
|
|
end
|
|
end
|
|
|
|
resources :notes, only: [:index, :create, :destroy] do
|
|
collection do
|
|
post :preview
|
|
end
|
|
end
|
|
end
|
|
|
|
root to: "dashboard#show"
|
|
end
|