routes.rb 4.85 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 27 28 29 30
  get 'help'              => 'help#index'
  get 'help/permissions'  => 'help#permissions'
  get 'help/workflow'     => 'help#workflow'
  get 'help/api'          => 'help#api'
  get 'help/web_hooks'    => 'help#web_hooks'
Valeriy Sizov's avatar
Valeriy Sizov committed
31
  get 'help/system_hooks' => 'help#system_hooks'
32 33
  get 'help/markdown'     => 'help#markdown'
  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
    resources :projects, constraints: { id: /[^\/]+/ } do
47
      member do
48 49 50 51
        get :team
        put :team_update
      end
    end
52 53
    resources :team_members, only: [:edit, :update, :destroy]
    resources :hooks, only: [:index, :create, :destroy] do
Valeriy Sizov's avatar
Valeriy Sizov committed
54 55
      get :test
    end
56
    resource :logs, only: [:show]
57 58
    resource :resque, controller: 'resque', only: [:show]
    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 68 69 70 71 72 73 74
  get "profile/account"             => "profile#account"
  get "profile/history"             => "profile#history"
  put "profile/password"            => "profile#password_update"
  get "profile/token"               => "profile#token"
  put "profile/reset_private_token" => "profile#reset_private_token"
  get "profile"                     => "profile#show"
  get "profile/design"              => "profile#design"
  put "profile/update"              => "profile#update"

75
  resources :keys
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
76

randx's avatar
randx committed
77 78 79
  #
  # Dashboard Area
  #
80 81 82
  get "dashboard"                => "dashboard#index"
  get "dashboard/issues"         => "dashboard#issues"
  get "dashboard/merge_requests" => "dashboard#merge_requests"
gitlabhq's avatar
gitlabhq committed
83

84
  resources :projects, constraints: { id: /[^\/]+/ }, only: [:new, :create]
85

86
  devise_for :users, controllers: { omniauth_callbacks: :omniauth_callbacks }
gitlabhq's avatar
gitlabhq committed
87

88 89 90
  #
  # Project Area
  #
91
  resources :projects, constraints: { id: /[^\/]+/ }, except: [:new, :create, :index], path: "/" do
Nihad Abbasov's avatar
Nihad Abbasov committed
92
    member do
gitlabhq's avatar
gitlabhq committed
93
      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

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
    resources :refs, only: [], path: "/" do
120
      collection do
gitlabhq's avatar
gitlabhq committed
121 122 123
        get "switch"
      end

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

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

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

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

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

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

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

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

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

190
      member do
191 192
        get :patch
      end
193
    end
194
    resources :team, controller: 'team_members', only: [:index]
gitlabhq's avatar
gitlabhq committed
195
    resources :team_members
196
    resources :milestones
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
    resources :notes, only: [:index, :create, :destroy] do
207 208 209 210
      collection do
        post :preview
      end
    end
gitlabhq's avatar
gitlabhq committed
211
  end
212 213

  root to: "dashboard#index"
gitlabhq's avatar
gitlabhq committed
214
end