diff options
Diffstat (limited to 'config/routes/repository_scoped.rb')
-rw-r--r-- | config/routes/repository_scoped.rb | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/config/routes/repository_scoped.rb b/config/routes/repository_scoped.rb index 7fabf3ff895..d2be18c62f9 100644 --- a/config/routes/repository_scoped.rb +++ b/config/routes/repository_scoped.rb @@ -6,6 +6,33 @@ # Don't use format parameter as file extension (old 3.0.x behavior) # See http://guides.rubyonrails.org/routing.html#route-globbing-and-wildcard-segments scope format: false do + get '/compare/:from...:to', to: 'compare#show', as: 'compare', constraints: { from: /.+/, to: /.+/ } + + resources :compare, only: [:index, :create] do + collection do + get :diff_for_path + get :signatures + end + end + + resources :refs, only: [] do + collection do + get 'switch' + end + + member do + # tree viewer logs + get 'logs_tree', constraints: { id: Gitlab::PathRegex.git_reference_regex } + + # Directories with leading dots erroneously get rejected if git + # ref regex used in constraints. Regex verification now done in controller. + get 'logs_tree/*path', action: :logs_tree, as: :logs_file, format: false, constraints: { + id: /.*/, + path: /[^\0]*/ + } + end + end + scope constraints: { id: Gitlab::PathRegex.git_reference_regex } do resources :network, only: [:show] @@ -38,4 +65,51 @@ scope format: false do end end end + + scope constraints: { id: /[^\0]+/ } do + scope controller: :blob do + get '/new/*id', action: :new, as: :new_blob + post '/create/*id', action: :create, as: :create_blob + get '/edit/*id', action: :edit, as: :edit_blob + put '/update/*id', action: :update, as: :update_blob + post '/preview/*id', action: :preview, as: :preview_blob + + scope path: '/blob/*id', as: :blob do + get :diff + get '/', action: :show + delete '/', action: :destroy + post '/', action: :create + put '/', action: :update + end + end + + get '/tree/*id', to: 'tree#show', as: :tree + get '/raw/*id', to: 'raw#show', as: :raw + get '/blame/*id', to: 'blame#show', as: :blame + + get '/commits', to: 'commits#commits_root', as: :commits_root + get '/commits/*id/signatures', to: 'commits#signatures', as: :signatures + get '/commits/*id', to: 'commits#show', as: :commits + + post '/create_dir/*id', to: 'tree#create_dir', as: :create_dir + + scope controller: :find_file do + get '/find_file/*id', action: :show, as: :find_file + get '/files/*id', action: :list, as: :files + end + end +end + +resources :commit, only: [:show], constraints: { id: /\h{7,40}/ } do + member do + get :branches + get :pipelines + post :revert + post :cherry_pick + get :diff_for_path + get :diff_files + get :merge_requests + end end + +resource :repository, only: [:create] |