Commit 749399aa authored by Furkan Ayhan's avatar Furkan Ayhan

Add correlation id in X-Request-ID for external pipeline validation

This will allow sharing correlation id between the external pipeline
validation service and GitLab.

This is the second try because the previous one was reverted
because of a broken-master.
parent 1e54f727
---
title: Add correlation id in X-Request-ID for external pipeline validation
merge_request: 58741
author:
type: other
......@@ -69,8 +69,10 @@ module Gitlab
end
def validate_service_request
headers = {}
headers['X-Gitlab-Token'] = validation_service_token if validation_service_token
headers = {
'X-Request-ID' => Labkit::Correlation::CorrelationId.current_id,
'X-Gitlab-Token' => validation_service_token
}.compact
Gitlab::HTTP.post(
validation_service_url, timeout: validation_service_timeout,
......
......@@ -57,13 +57,14 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Validate::External do
before do
stub_env('EXTERNAL_VALIDATION_SERVICE_URL', validation_service_url)
allow(Gitlab).to receive(:com?).and_return(dot_com)
allow(Labkit::Correlation::CorrelationId).to receive(:current_id).and_return('correlation-id')
end
it 'respects the defined payload schema' do
expect(::Gitlab::HTTP).to receive(:post) do |_url, params|
expect(params[:body]).to match_schema('/external_validation')
expect(params[:timeout]).to eq(described_class::DEFAULT_VALIDATION_REQUEST_TIMEOUT)
expect(params[:headers]).to eq({})
expect(params[:headers]).to eq({ 'X-Request-ID' => 'correlation-id' })
end
perform!
......@@ -127,7 +128,7 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Validate::External do
it 'passes token in X-Gitlab-Token header' do
expect(::Gitlab::HTTP).to receive(:post) do |_url, params|
expect(params[:headers]).to eq({ 'X-Gitlab-Token' => '123' })
expect(params[:headers]).to include({ 'X-Gitlab-Token' => '123' })
end
perform!
......
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