Send credentials array with build data
This commit is contained in:
parent
596bbf670c
commit
e3fb074022
|
@ -448,8 +448,19 @@ module Ci
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def credentials
|
||||||
|
[build_container_registry_credentials].compact
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def build_container_registry_credentials
|
||||||
|
return unless Gitlab.config.registry.enabled
|
||||||
|
|
||||||
|
Gitlab::Ci::Build::Credentials.new('docker-registry', Gitlab.config.registry.host_port,
|
||||||
|
'gitlab-ci-token', token)
|
||||||
|
end
|
||||||
|
|
||||||
def update_artifacts_size
|
def update_artifacts_size
|
||||||
self.artifacts_size = if artifacts_file.exists?
|
self.artifacts_size = if artifacts_file.exists?
|
||||||
artifacts_file.size
|
artifacts_file.size
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
---
|
---
|
||||||
title: Send registry_url with build data to GitLab Runner
|
title: Send credentials (currently for registry only) with build data to GitLab Runner
|
||||||
merge_request: 7474
|
merge_request: 7474
|
||||||
author:
|
author:
|
||||||
|
|
|
@ -32,6 +32,10 @@ module Ci
|
||||||
expose :artifacts_file, using: ArtifactFile, if: ->(build, _) { build.artifacts? }
|
expose :artifacts_file, using: ArtifactFile, if: ->(build, _) { build.artifacts? }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class BuildCredentials < Grape::Entity
|
||||||
|
expose :type, :url, :username, :password
|
||||||
|
end
|
||||||
|
|
||||||
class BuildDetails < Build
|
class BuildDetails < Build
|
||||||
expose :commands
|
expose :commands
|
||||||
expose :repo_url
|
expose :repo_url
|
||||||
|
@ -51,9 +55,7 @@ module Ci
|
||||||
expose :variables
|
expose :variables
|
||||||
expose :depends_on_builds, using: Build
|
expose :depends_on_builds, using: Build
|
||||||
|
|
||||||
expose :registry_url, if: ->(_, _) { Gitlab.config.registry.enabled } do |_|
|
expose :credentials, using: BuildCredentials
|
||||||
Gitlab.config.registry.host_port
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
class Runner < Grape::Entity
|
class Runner < Grape::Entity
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
module Gitlab
|
||||||
|
module Ci
|
||||||
|
module Build
|
||||||
|
class Credentials
|
||||||
|
attr_accessor :type, :url, :username, :password
|
||||||
|
|
||||||
|
def initialize(type, url, username, password)
|
||||||
|
@type = type
|
||||||
|
@url = url
|
||||||
|
@username = username
|
||||||
|
@password = password
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -58,16 +58,24 @@ describe Ci::API::API do
|
||||||
expect { register_builds }.to change { runner.reload.contacted_at }
|
expect { register_builds }.to change { runner.reload.contacted_at }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'registry credentials' do
|
||||||
|
let(:registry_credentials) do
|
||||||
|
{ 'type' => 'docker-registry',
|
||||||
|
'url' => 'registry.example.com:5005',
|
||||||
|
'username' => 'gitlab-ci-token',
|
||||||
|
'password' => build.token }
|
||||||
|
end
|
||||||
|
|
||||||
context 'when registry is enabled' do
|
context 'when registry is enabled' do
|
||||||
before do
|
before do
|
||||||
stub_container_registry_config(enabled: true, host_port: 'registry.example.com:5005')
|
stub_container_registry_config(enabled: true, host_port: 'registry.example.com:5005')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'sends registry_url key' do
|
it 'sends registry credentials key' do
|
||||||
register_builds info: { platform: :darwin }
|
register_builds info: { platform: :darwin }
|
||||||
|
|
||||||
expect(json_response).to have_key('registry_url')
|
expect(json_response).to have_key('credentials')
|
||||||
expect(json_response['registry_url']).to eq("registry.example.com:5005")
|
expect(json_response['credentials']).to include(registry_credentials)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -76,10 +84,12 @@ describe Ci::API::API do
|
||||||
stub_container_registry_config(enabled: false, host_port: 'registry.example.com:5005')
|
stub_container_registry_config(enabled: false, host_port: 'registry.example.com:5005')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'does not send registry_url key' do
|
it 'does not send registry credentials' do
|
||||||
register_builds info: { platform: :darwin }
|
register_builds info: { platform: :darwin }
|
||||||
|
|
||||||
expect(json_response).not_to have_key('registry_url')
|
expect(json_response).to have_key('credentials')
|
||||||
|
expect(json_response['credentials']).not_to include(registry_credentials)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue