Move badge implementation to builds controller
This commit is contained in:
parent
442a49db2b
commit
52352dccc3
|
@ -1,10 +1,12 @@
|
|||
class Projects::BuildsController < Projects::ApplicationController
|
||||
before_action :build, except: [:index, :cancel_all]
|
||||
|
||||
before_action :authorize_read_build!, except: [:cancel, :cancel_all, :retry]
|
||||
before_action :authorize_update_build!, except: [:index, :show, :status]
|
||||
layout 'project'
|
||||
|
||||
layout "project"
|
||||
# Skip authentication for status badge only
|
||||
skip_before_action :authenticate_user!, :reject_blocked!, :project,
|
||||
:repository, :authorize_manage_builds!, :build, only: [:badge]
|
||||
|
||||
def index
|
||||
@scope = params[:scope]
|
||||
|
@ -24,7 +26,6 @@ class Projects::BuildsController < Projects::ApplicationController
|
|||
|
||||
def cancel_all
|
||||
@project.builds.running_or_pending.each(&:cancel)
|
||||
|
||||
redirect_to namespace_project_builds_path(project.namespace, project)
|
||||
end
|
||||
|
||||
|
@ -47,7 +48,6 @@ class Projects::BuildsController < Projects::ApplicationController
|
|||
end
|
||||
|
||||
build = Ci::Build.retry(@build)
|
||||
|
||||
redirect_to build_path(build)
|
||||
end
|
||||
|
||||
|
@ -57,10 +57,15 @@ class Projects::BuildsController < Projects::ApplicationController
|
|||
|
||||
def cancel
|
||||
@build.cancel
|
||||
|
||||
redirect_to build_path(@build)
|
||||
end
|
||||
|
||||
def badge
|
||||
project = Project.find_with_namespace("#{params[:namespace_id]}/#{params[:project_id]}")
|
||||
image = Ci::ImageForBuildService.new.execute(project, ref: params[:ref])
|
||||
send_file(image.path, filename: image.name, disposition: 'inline', type: 'image/svg+xml')
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def build
|
||||
|
|
|
@ -10,11 +10,6 @@ class Projects::CommitController < Projects::ApplicationController
|
|||
before_action :commit
|
||||
before_action :define_show_vars, only: [:show, :builds]
|
||||
|
||||
# Skip authentication for status badge only
|
||||
skip_before_action :authenticate_user!, :reject_blocked!, :project,
|
||||
:repository, :require_non_empty_project, :authorize_download_code!,
|
||||
:commit, only: [:badge]
|
||||
|
||||
def show
|
||||
return git_not_found! unless @commit
|
||||
|
||||
|
@ -62,12 +57,6 @@ class Projects::CommitController < Projects::ApplicationController
|
|||
render layout: false
|
||||
end
|
||||
|
||||
def badge
|
||||
project = Project.find_with_namespace("#{params[:namespace_id]}/#{params[:project_id]}")
|
||||
image = Ci::ImageForBuildService.new.execute(project, ref: params[:id])
|
||||
send_file(image.path, filename: image.name, disposition: 'inline', type: 'image/svg+xml')
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def commit
|
||||
|
|
|
@ -493,13 +493,6 @@ Rails.application.routes.draw do
|
|||
constraints: { id: /(?:[^.]|\.(?!atom$))+/, format: /atom/ },
|
||||
as: :commits
|
||||
)
|
||||
|
||||
get(
|
||||
'/status/*id/badge',
|
||||
to: 'commit#badge',
|
||||
constraints: { format: /png/ },
|
||||
as: :build_badge
|
||||
)
|
||||
end
|
||||
|
||||
resource :avatar, only: [:show, :destroy]
|
||||
|
@ -615,9 +608,11 @@ Rails.application.routes.draw do
|
|||
resource :variables, only: [:show, :update]
|
||||
resources :triggers, only: [:index, :create, :destroy]
|
||||
|
||||
resources :builds, only: [:index, :show] do
|
||||
resources :builds, only: [:index, :show], constraints: { id: /\d+/ } do
|
||||
collection do
|
||||
post :cancel_all
|
||||
get :badge, path: 'status/*ref/badge',
|
||||
constraints: { ref: Gitlab::Regex.git_reference_regex, format: /svg/ }
|
||||
end
|
||||
|
||||
member do
|
||||
|
|
Loading…
Reference in New Issue