routes.rb 4.81 KB
Newer Older
gitlabhq's avatar
gitlabhq committed
1
Gitlab::Application.routes.draw do
2 3 4
  #
  # Search
  #
5
  get 'search' => "search#show"
Valery Sizov's avatar
Valery Sizov committed
6

7 8 9 10
  # API
  require 'api'
  mount Gitlab::API => '/api'

11
  # Optionally, enable Resque here
12
  require 'resque/server'
13
  mount Resque::Server => '/info/resque', as: 'resque'
Ariejan de Vroom's avatar
Ariejan de Vroom committed
14

15 16
  # Enable Grack support
  mount Grack::Bundle.new({
17 18 19 20
    git_path:     Gitlab.config.git_bin_path,
    project_root: Gitlab.config.git_base_path,
    upload_pack:  Gitlab.config.git_upload_pack,
    receive_pack: Gitlab.config.git_receive_pack
Saito's avatar
Saito committed
21
  }), at: '/:path', constraints: { path: /[\w-]+\.git/ }
22

23 24 25
  #
  # Help
  #
26
  get 'help' => 'help#index'
27 28
  get 'help/permissions' => 'help#permissions'
  get 'help/workflow' => 'help#workflow'
randx's avatar
randx committed
29
  get 'help/api' => 'help#api'
30
  get 'help/web_hooks' => 'help#web_hooks'
Valeriy Sizov's avatar
Valeriy Sizov committed
31
  get 'help/system_hooks' => 'help#system_hooks'
randx's avatar
randx committed
32
  get 'help/markdown' => 'help#markdown'
33
  get 'help/ssh' => 'help#ssh'
34

35 36 37
  #
  # Admin Area
  #
Nihad Abbasov's avatar
Nihad Abbasov committed
38
  namespace :admin do
39 40
    resources :users do
      member do
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
41
        put :team_update
42 43
        put :block
        put :unblock
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
44 45
      end
    end
46 47
    resources :projects, :constraints => { :id => /[^\/]+/ } do
      member do
48 49 50 51
        get :team
        put :team_update
      end
    end
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
52
    resources :team_members, :only => [:edit, :update, :destroy]
Valeriy Sizov's avatar
Valeriy Sizov committed
53 54 55
    resources :hooks, :only => [:index, :create, :destroy] do
      get :test
    end
56 57
    resource :logs, only: [:show]
    resource :resque, :controller => 'resque', only: [:show]
randx's avatar
randx committed
58
    root :to => "dashboard#index"
gitlabhq's avatar
gitlabhq committed
59 60
  end

61
  get "errors/githost"
randx's avatar
randx committed
62 63 64 65

  #
  # Profile Area
  #
66 67
  get "profile/account", :to => "profile#account"
  get "profile/history", :to => "profile#history"
gitlabhq's avatar
gitlabhq committed
68
  put "profile/password", :to => "profile#password_update"
69
  get "profile/token", :to => "profile#token"
70
  put "profile/reset_private_token", :to => "profile#reset_private_token"
gitlabhq's avatar
gitlabhq committed
71
  get "profile", :to => "profile#show"
72 73
  get "profile/design", :to => "profile#design"
  put "profile/update", :to => "profile#update"
74
  resources :keys
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
75

randx's avatar
randx committed
76 77 78 79
  #
  # Dashboard Area
  #
  get "dashboard", :to => "dashboard#index"
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
80 81
  get "dashboard/issues", :to => "dashboard#issues"
  get "dashboard/merge_requests", :to => "dashboard#merge_requests"
gitlabhq's avatar
gitlabhq committed
82

randx's avatar
randx committed
83
  resources :projects, :constraints => { :id => /[^\/]+/ }, :only => [:new, :create]
84

vsizov's avatar
vsizov committed
85
  devise_for :users, :controllers => { :omniauth_callbacks => :omniauth_callbacks }
gitlabhq's avatar
gitlabhq committed
86

87 88 89
  #
  # Project Area
  #
90
  resources :projects, :constraints => { :id => /[^\/]+/ }, :except => [:new, :create, :index], :path => "/" do
Nihad Abbasov's avatar
Nihad Abbasov committed
91
    member do
gitlabhq's avatar
gitlabhq committed
92 93
      get "team"
      get "wall"
Valery Sizov's avatar
Valery Sizov committed
94
      get "graph"
95
      get "files"
gitlabhq's avatar
gitlabhq committed
96
    end
gitlabhq's avatar
gitlabhq committed
97

Valery Sizov's avatar
Valery Sizov committed
98
    resources :wikis, :only => [:show, :edit, :destroy, :create] do
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
99 100 101 102
      collection do
        get :pages
      end

Valery Sizov's avatar
Valery Sizov committed
103
      member do
104
        get "history"
Valery Sizov's avatar
Valery Sizov committed
105 106
      end
    end
107

108 109
    resource :repository do
      member do
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
110 111
        get "branches"
        get "tags"
112
        get "archive"
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
113 114
      end
    end
115

miks's avatar
miks committed
116
    resources :deploy_keys
117
    resources :protected_branches, :only => [:index, :create, :destroy]
miks's avatar
miks committed
118

119 120
    resources :refs, :only => [], :path => "/" do
      collection do
gitlabhq's avatar
gitlabhq committed
121 122 123
        get "switch"
      end

124
      member do
gitlabhq's avatar
gitlabhq committed
125
        get "tree", :constraints => { :id => /[a-zA-Z.\/0-9_\-]+/ }
126 127
        get "logs_tree", :constraints => { :id => /[a-zA-Z.\/0-9_\-]+/ }

128
        get "blob",
gitlabhq's avatar
gitlabhq committed
129 130 131 132 133
          :constraints => {
            :id => /[a-zA-Z.0-9\/_\-]+/,
            :path => /.*/
          }

gitlabhq's avatar
gitlabhq committed
134

gitlabhq's avatar
gitlabhq committed
135 136 137 138
        # tree viewer
        get "tree/:path" => "refs#tree",
          :as => :tree_file,
          :constraints => {
gitlabhq's avatar
gitlabhq committed
139
            :id => /[a-zA-Z.0-9\/_\-]+/,
gitlabhq's avatar
gitlabhq committed
140 141
            :path => /.*/
          }
142

143 144 145 146 147 148 149 150
        # tree viewer
        get "logs_tree/:path" => "refs#logs_tree",
          :as => :logs_file,
          :constraints => {
            :id => /[a-zA-Z.0-9\/_\-]+/,
            :path => /.*/
          }

151 152 153 154 155 156 157
        # blame
        get "blame/:path" => "refs#blame",
          :as => :blame_file,
          :constraints => {
            :id => /[a-zA-Z.0-9\/_\-]+/,
            :path => /.*/
          }
gitlabhq's avatar
gitlabhq committed
158
      end
gitlabhq's avatar
gitlabhq committed
159
    end
gitlabhq's avatar
gitlabhq committed
160

161 162
    resources :merge_requests do
      member do
163
        get :diffs
randx's avatar
randx committed
164
        get :automerge
Valery Sizov's avatar
Valery Sizov committed
165
        get :automerge_check
randx's avatar
randx committed
166
        get :raw
167
      end
168

169
      collection do
170 171 172
        get :branch_from
        get :branch_to
      end
173
    end
174 175 176

    resources :snippets do
      member do
177 178 179 180
        get "raw"
      end
    end

181 182
    resources :hooks, :only => [:index, :create, :destroy] do
      member do
183 184 185
        get :test
      end
    end
186 187
    resources :commits do
      collection do
188 189
        get :compare
      end
190

191
      member do
192 193
        get :patch
      end
194
    end
gitlabhq's avatar
gitlabhq committed
195
    resources :team_members
196
    resources :milestones
randx's avatar
randx committed
197
    resources :labels, :only => [:index]
VSizov's avatar
VSizov committed
198
    resources :issues do
randx's avatar
randx committed
199

VSizov's avatar
VSizov committed
200
      collection do
201
        post  :sort
randx's avatar
randx committed
202
        post  :bulk_update
203
        get   :search
Adam Leonard's avatar
Adam Leonard committed
204
      end
VSizov's avatar
VSizov committed
205
    end
206 207 208 209 210
    resources :notes, :only => [:index, :create, :destroy] do
      collection do
        post :preview
      end
    end
gitlabhq's avatar
gitlabhq committed
211
  end
randx's avatar
randx committed
212
  root :to => "dashboard#index"
gitlabhq's avatar
gitlabhq committed
213
end