Commit 69472849 authored by Drew Blessing's avatar Drew Blessing

Add standard web hook headers to Jenkins CI post

parent bb3f427d
class ServiceHook < WebHook
belongs_to :service
def execute(data)
super(data, 'service_hook')
def execute(data, hook_name = 'service_hook')
super(data, hook_name)
end
end
......@@ -46,14 +46,9 @@ class JenkinsService < CiService
end
def execute(data)
self.class.post(
hook_url,
body: data.to_json,
headers: {
'Content-Type' => 'application/json',
'Authorization' => "Basic #{auth}"
}
)
return unless supported_events.include?(data[:object_kind])
service_hook.execute(data, "#{data[:object_kind]}_hook")
end
def test(data)
......
......@@ -74,6 +74,30 @@ describe JenkinsService do
end
end
describe '#execute' do
it 'adds default web hook headers to the request' do
user = create(:user, username: 'username')
project = create(:project, name: 'project')
push_sample_data = Gitlab::PushDataBuilder.build_sample(project, user)
jenkins_service = described_class.create(
active: true,
project: project,
properties: {
jenkins_url: 'http://jenkins.example.com/',
project_name: 'my_project'
}
)
stub_request(:post, jenkins_service.hook_url)
jenkins_service.execute(push_sample_data)
expect(
a_request(:post, jenkins_service.hook_url)
.with(headers: { 'X-Gitlab-Event' => 'Push Hook' })
).to have_been_made.once
end
end
describe 'Stored password invalidation' do
let(:project) { create(:project) }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment