49 lines
1.2 KiB
Ruby
49 lines
1.2 KiB
Ruby
class Projects::CiServicesController < Projects::ApplicationController
|
|
before_action :ci_project
|
|
before_action :authorize_admin_project!
|
|
|
|
layout "project_settings"
|
|
|
|
def index
|
|
@ci_project.build_missing_services
|
|
@services = @ci_project.services.reload
|
|
end
|
|
|
|
def edit
|
|
service
|
|
end
|
|
|
|
def update
|
|
if service.update_attributes(service_params)
|
|
redirect_to edit_namespace_project_ci_service_path(@project.namespace, @project, service.to_param)
|
|
else
|
|
render 'edit'
|
|
end
|
|
end
|
|
|
|
def test
|
|
last_build = @project.ci_builds.last
|
|
|
|
if service.execute(last_build)
|
|
message = { notice: 'We successfully tested the service' }
|
|
else
|
|
message = { alert: 'We tried to test the service but error occurred' }
|
|
end
|
|
|
|
redirect_back_or_default(options: message)
|
|
end
|
|
|
|
private
|
|
|
|
def service
|
|
@service ||= @ci_project.services.find { |service| service.to_param == params[:id] }
|
|
end
|
|
|
|
def service_params
|
|
params.require(:service).permit(
|
|
:type, :active, :webhook, :notify_only_broken_builds,
|
|
:email_recipients, :email_only_broken_builds, :email_add_pusher,
|
|
:hipchat_token, :hipchat_room, :hipchat_server
|
|
)
|
|
end
|
|
end
|