summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2016-12-21 11:45:28 +0100
committerRémy Coutable <remy@rymai.me>2016-12-21 11:46:16 +0100
commit359718603eb880bffc5688c16ceed170823b665a (patch)
treea7fa6201c0a72a2e7a3ee46cd46bc4fe5534e61c
parent09b622f84c83ea65c773ca4eb53d6899dc1c4956 (diff)
downloadgitlab-ce-359718603eb880bffc5688c16ceed170823b665a.tar.gz
Ensure nil User-Agent doesn't break the CI API
Signed-off-by: Rémy Coutable <remy@rymai.me>
-rw-r--r--changelogs/unreleased/25895-fix-headers-in-ci-api-helpers.yml4
-rw-r--r--lib/ci/api/helpers.rb2
-rw-r--r--spec/requests/ci/api/builds_spec.rb5
3 files changed, 10 insertions, 1 deletions
diff --git a/changelogs/unreleased/25895-fix-headers-in-ci-api-helpers.yml b/changelogs/unreleased/25895-fix-headers-in-ci-api-helpers.yml
new file mode 100644
index 00000000000..b9a8e17c64a
--- /dev/null
+++ b/changelogs/unreleased/25895-fix-headers-in-ci-api-helpers.yml
@@ -0,0 +1,4 @@
+---
+title: Ensure nil User-Agent doesn't break the CI API
+merge_request:
+author:
diff --git a/lib/ci/api/helpers.rb b/lib/ci/api/helpers.rb
index 31fbd1da108..5ff25a3a9b2 100644
--- a/lib/ci/api/helpers.rb
+++ b/lib/ci/api/helpers.rb
@@ -60,7 +60,7 @@ module Ci
end
def build_not_found!
- if headers['User-Agent'].match(/gitlab-ci-multi-runner \d+\.\d+\.\d+(~beta\.\d+\.g[0-9a-f]+)? /)
+ if headers['User-Agent'].to_s.match(/gitlab-ci-multi-runner \d+\.\d+\.\d+(~beta\.\d+\.g[0-9a-f]+)? /)
no_content!
else
not_found!
diff --git a/spec/requests/ci/api/builds_spec.rb b/spec/requests/ci/api/builds_spec.rb
index 79f12ace999..3b5dc98e4d5 100644
--- a/spec/requests/ci/api/builds_spec.rb
+++ b/spec/requests/ci/api/builds_spec.rb
@@ -37,6 +37,11 @@ describe Ci::API::Builds do
let(:user_agent) { 'Go-http-client/1.1' }
it { expect(response).to have_http_status(404) }
end
+
+ context "when runner doesn't have a User-Agent" do
+ let(:user_agent) { nil }
+ it { expect(response).to have_http_status(404) }
+ end
end
context 'when there is a pending build' do