Revert autheticate! in Trigger API

This commit is contained in:
Shinya Maeda 2017-08-26 04:04:57 +09:00
parent 75130a41ba
commit acc7497855
9 changed files with 22 additions and 23 deletions

View file

@ -15,16 +15,16 @@ module API
optional :variables, type: Hash, desc: 'The list of variables to be injected into build' optional :variables, type: Hash, desc: 'The list of variables to be injected into build'
end end
post ":id/(ref/:ref/)trigger/pipeline", requirements: { ref: /.+/ } do post ":id/(ref/:ref/)trigger/pipeline", requirements: { ref: /.+/ } do
authenticate!
authorize! :admin_build, user_project
# validate variables # validate variables
params[:variables] = params[:variables].to_h params[:variables] = params[:variables].to_h
unless params[:variables].all? { |key, value| key.is_a?(String) && value.is_a?(String) } unless params[:variables].all? { |key, value| key.is_a?(String) && value.is_a?(String) }
render_api_error!('variables needs to be a map of key-valued strings', 400) render_api_error!('variables needs to be a map of key-valued strings', 400)
end end
result = Ci::PipelineTriggerService.new(user_project, nil, params).execute project = find_project(params[:id])
not_found! unless project
result = Ci::PipelineTriggerService.new(project, nil, params).execute
not_found! unless result not_found! unless result
if result[:http_status] if result[:http_status]

View file

@ -16,16 +16,16 @@ module API
optional :variables, type: Hash, desc: 'The list of variables to be injected into build' optional :variables, type: Hash, desc: 'The list of variables to be injected into build'
end end
post ":id/(ref/:ref/)trigger/builds", requirements: { ref: /.+/ } do post ":id/(ref/:ref/)trigger/builds", requirements: { ref: /.+/ } do
authenticate!
authorize! :admin_build, user_project
# validate variables # validate variables
params[:variables] = params[:variables].to_h params[:variables] = params[:variables].to_h
unless params[:variables].all? { |key, value| key.is_a?(String) && value.is_a?(String) } unless params[:variables].all? { |key, value| key.is_a?(String) && value.is_a?(String) }
render_api_error!('variables needs to be a map of key-valued strings', 400) render_api_error!('variables needs to be a map of key-valued strings', 400)
end end
result = Ci::PipelineTriggerService.new(user_project, nil, params).execute project = find_project(params[:id])
not_found! unless project
result = Ci::PipelineTriggerService.new(project, nil, params).execute
not_found! unless result not_found! unless result
if result[:http_status] if result[:http_status]

View file

@ -107,7 +107,7 @@ FactoryGirl.define do
end end
trait :triggered do trait :triggered do
trigger_request factory: :ci_trigger_request_with_variables trigger_request factory: :ci_trigger_request_with_variables # TODO:
end end
after(:build) do |build, evaluator| after(:build) do |build, evaluator|

View file

@ -2,14 +2,13 @@ FactoryGirl.define do
factory :ci_trigger_request, class: Ci::TriggerRequest do factory :ci_trigger_request, class: Ci::TriggerRequest do
trigger factory: :ci_trigger trigger factory: :ci_trigger
# TODO: factory :ci_trigger_request_with_variables do
# factory :ci_trigger_request_with_variables do variables do
# variables do {
# { TRIGGER_KEY_1: 'TRIGGER_VALUE_1',
# TRIGGER_KEY_1: 'TRIGGER_VALUE_1', TRIGGER_KEY_2: 'TRIGGER_VALUE_2'
# TRIGGER_KEY_2: 'TRIGGER_VALUE_2' }
# } end
# end end
# end
end end
end end

View file

@ -292,7 +292,7 @@ feature 'Jobs' do
end end
feature 'Variables' do feature 'Variables' do
let(:trigger_request) { create(:ci_trigger_request_with_variables) } let(:trigger_request) { create(:ci_trigger_request_with_variables) } # TODO:
let(:job) do let(:job) do
create :ci_build, pipeline: pipeline, trigger_request: trigger_request create :ci_build, pipeline: pipeline, trigger_request: trigger_request

View file

@ -1492,7 +1492,7 @@ describe Ci::Build do
context 'when build is for triggers' do context 'when build is for triggers' do
let(:trigger) { create(:ci_trigger, project: project) } let(:trigger) { create(:ci_trigger, project: project) }
let(:trigger_request) { create(:ci_trigger_request_with_variables, pipeline: pipeline, trigger: trigger) } let(:trigger_request) { create(:ci_trigger_request_with_variables, pipeline: pipeline, trigger: trigger) } # TODO:
let(:user_trigger_variable) do let(:user_trigger_variable) do
{ key: :TRIGGER_KEY_1, value: 'TRIGGER_VALUE_1', public: false } { key: :TRIGGER_KEY_1, value: 'TRIGGER_VALUE_1', public: false }
end end

View file

@ -559,7 +559,7 @@ describe API::Runner do
before do before do
trigger = create(:ci_trigger, project: project) trigger = create(:ci_trigger, project: project)
create(:ci_trigger_request_with_variables, pipeline: pipeline, builds: [job], trigger: trigger) create(:ci_trigger_request_with_variables, pipeline: pipeline, builds: [job], trigger: trigger) # TODO:
project.variables << Ci::Variable.new(key: 'SECRET_KEY', value: 'secret_value') project.variables << Ci::Variable.new(key: 'SECRET_KEY', value: 'secret_value')
end end

View file

@ -37,7 +37,7 @@ describe API::V3::Triggers do
it 'returns unauthorized if token is for different project' do it 'returns unauthorized if token is for different project' do
post v3_api("/projects/#{project2.id}/trigger/builds"), options.merge(ref: 'master') post v3_api("/projects/#{project2.id}/trigger/builds"), options.merge(ref: 'master')
expect(response).to have_http_status(401) expect(response).to have_http_status(404)
end end
end end

View file

@ -197,7 +197,7 @@ describe 'projects/jobs/show' do
end end
describe 'shows trigger variables in sidebar' do describe 'shows trigger variables in sidebar' do
let(:trigger_request) { create(:ci_trigger_request_with_variables, pipeline: pipeline) } let(:trigger_request) { create(:ci_trigger_request_with_variables, pipeline: pipeline) } # TODO:
before do before do
build.trigger_request = trigger_request build.trigger_request = trigger_request