From 4e2c33f10ed009f6dd147e27bb77593058ba8f5f Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Fri, 5 Feb 2021 09:20:47 +0100 Subject: [PATCH] feat: admin config init (#8546) --- lib/config/admin.ts | 21 +++++++++++++++++++ lib/config/common.ts | 7 +++++-- lib/config/definitions.ts | 4 ++++ .../__snapshots__/artifacts.spec.ts.snap | 8 +++---- lib/manager/bundler/artifacts.spec.ts | 3 --- .../__snapshots__/artifacts.spec.ts.snap | 2 +- lib/manager/cargo/artifacts.spec.ts | 1 - .../__snapshots__/artifacts.spec.ts.snap | 4 ++-- lib/manager/cocoapods/artifacts.spec.ts | 2 -- lib/manager/common.ts | 1 - .../__snapshots__/artifacts.spec.ts.snap | 2 +- lib/manager/composer/artifacts.spec.ts | 1 - .../__snapshots__/artifacts.spec.ts.snap | 6 +++--- lib/manager/gomod/artifacts.spec.ts | 1 - .../__snapshots__/artifacts.spec.ts.snap | 2 +- lib/manager/helmv3/artifacts.spec.ts | 1 - .../__snapshots__/artifacts.spec.ts.snap | 2 +- lib/manager/nuget/artifacts.spec.ts | 1 - .../__snapshots__/artifacts.spec.ts.snap | 8 +++---- lib/manager/pipenv/artifacts.spec.ts | 1 - .../__snapshots__/artifacts.spec.ts.snap | 4 ++-- lib/manager/poetry/artifacts.spec.ts | 2 -- lib/util/exec/common.ts | 2 -- lib/util/exec/docker/index.ts | 9 ++++---- lib/util/exec/exec.spec.ts | 10 ++++++--- lib/util/exec/index.ts | 2 -- lib/util/template/index.ts | 4 +++- lib/workers/global/index.ts | 3 +++ 28 files changed, 67 insertions(+), 47 deletions(-) create mode 100644 lib/config/admin.ts diff --git a/lib/config/admin.ts b/lib/config/admin.ts new file mode 100644 index 0000000000..4881d2dfc0 --- /dev/null +++ b/lib/config/admin.ts @@ -0,0 +1,21 @@ +import { RenovateConfig, RepoAdminConfig } from './common'; + +let adminConfig: RepoAdminConfig = {}; + +const derivedAdminOptions = ['localDir']; + +export function setAdminConfig( + config: RenovateConfig, + adminOptions: string[] +): void { + adminConfig = {}; + const repoAdminOptions = adminOptions.concat(derivedAdminOptions); + for (const option of repoAdminOptions) { + adminConfig[option] = config[option]; + // TODO: delete from config + } +} + +export function getAdminConfig(): RepoAdminConfig { + return adminConfig; +} diff --git a/lib/config/common.ts b/lib/config/common.ts index c7ecbd6541..4fff9774bc 100644 --- a/lib/config/common.ts +++ b/lib/config/common.ts @@ -63,6 +63,11 @@ export interface RenovateSharedConfig { unicodeEmoji?: boolean; } +export interface RepoAdminConfig { + dockerImagePrefix?: string; + dockerUser?: string; +} + export interface RenovateAdminConfig { allowPostUpgradeCommandTemplating?: boolean; allowedPostUpgradeCommands?: string[]; @@ -74,8 +79,6 @@ export interface RenovateAdminConfig { configWarningReuseIssue?: boolean; customEnvVariables?: Record<string, string>; - dockerImagePrefix?: string; - dockerUser?: string; dryRun?: boolean; diff --git a/lib/config/definitions.ts b/lib/config/definitions.ts index 0d05c16342..69cbd80ee6 100644 --- a/lib/config/definitions.ts +++ b/lib/config/definitions.ts @@ -1920,6 +1920,10 @@ export function getOptions(): RenovateOptions[] { return options; } +export function getAdminOptionNames(): string[] { + return options.filter((option) => option.admin).map((option) => option.name); +} + function loadManagerOptions(): void { for (const [name, config] of getManagers().entries()) { if (config.defaultConfig) { diff --git a/lib/manager/bundler/__snapshots__/artifacts.spec.ts.snap b/lib/manager/bundler/__snapshots__/artifacts.spec.ts.snap index 8119b8875c..a2af9c9e78 100644 --- a/lib/manager/bundler/__snapshots__/artifacts.spec.ts.snap +++ b/lib/manager/bundler/__snapshots__/artifacts.spec.ts.snap @@ -26,7 +26,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_ruby --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/cache\\":\\"/tmp/cache\\" -e GEM_HOME -w \\"/tmp/github/some/repo\\" renovate/ruby:1.2.0 bash -l -c \\"ruby --version && gem install bundler && bundle lock --update foo bar\\"", + "cmd": "docker run --rm --name=renovate_ruby --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/cache\\":\\"/tmp/cache\\" -e GEM_HOME -w \\"/tmp/github/some/repo\\" renovate/ruby:1.2.0 bash -l -c \\"ruby --version && gem install bundler && bundle lock --update foo bar\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -73,7 +73,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_ruby --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/cache\\":\\"/tmp/cache\\" -e GEM_HOME -w \\"/tmp/github/some/repo\\" renovate/ruby:latest bash -l -c \\"ruby --version && gem install bundler -v 3.2.1 && bundle lock --update foo bar\\"", + "cmd": "docker run --rm --name=renovate_ruby --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/cache\\":\\"/tmp/cache\\" -e GEM_HOME -w \\"/tmp/github/some/repo\\" renovate/ruby:latest bash -l -c \\"ruby --version && gem install bundler -v 3.2.1 && bundle lock --update foo bar\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -120,7 +120,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_ruby --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/cache\\":\\"/tmp/cache\\" -e BUNDLE_GEMS__PRIVATE__COM -e GEM_HOME -w \\"/tmp/github/some/repo\\" renovate/ruby:1.2.0 bash -l -c \\"ruby --version && gem install bundler && bundle lock --update foo bar\\"", + "cmd": "docker run --rm --name=renovate_ruby --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/cache\\":\\"/tmp/cache\\" -e BUNDLE_GEMS__PRIVATE__COM -e GEM_HOME -w \\"/tmp/github/some/repo\\" renovate/ruby:1.2.0 bash -l -c \\"ruby --version && gem install bundler && bundle lock --update foo bar\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -168,7 +168,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_ruby --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/cache\\":\\"/tmp/cache\\" -e GEM_HOME -w \\"/tmp/github/some/repo\\" renovate/ruby:latest bash -l -c \\"ruby --version && gem install bundler && bundle lock --update foo bar\\"", + "cmd": "docker run --rm --name=renovate_ruby --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/cache\\":\\"/tmp/cache\\" -e GEM_HOME -w \\"/tmp/github/some/repo\\" renovate/ruby:latest bash -l -c \\"ruby --version && gem install bundler && bundle lock --update foo bar\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", diff --git a/lib/manager/bundler/artifacts.spec.ts b/lib/manager/bundler/artifacts.spec.ts index 8b4d366452..56ce54ee60 100644 --- a/lib/manager/bundler/artifacts.spec.ts +++ b/lib/manager/bundler/artifacts.spec.ts @@ -38,7 +38,6 @@ describe('bundler.updateArtifacts()', () => { // `join` fixes Windows CI localDir: join('/tmp/github/some/repo'), cacheDir: join('/tmp/cache'), - dockerUser: 'foobar', }; env.getChildProcessEnv.mockReturnValue(envMock.basic); @@ -173,7 +172,6 @@ describe('bundler.updateArtifacts()', () => { config: { ...config, binarySource: BinarySource.Docker, - dockerUser: 'foobar', constraints: { ruby: '1.2.5', bundler: '3.2.1', @@ -206,7 +204,6 @@ describe('bundler.updateArtifacts()', () => { config: { ...config, binarySource: BinarySource.Docker, - dockerUser: 'foobar', constraints: { ruby: 'foo', bundler: 'bar', diff --git a/lib/manager/cargo/__snapshots__/artifacts.spec.ts.snap b/lib/manager/cargo/__snapshots__/artifacts.spec.ts.snap index 4c0587bb00..466774fff1 100644 --- a/lib/manager/cargo/__snapshots__/artifacts.spec.ts.snap +++ b/lib/manager/cargo/__snapshots__/artifacts.spec.ts.snap @@ -95,7 +95,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_rust --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -w \\"/tmp/github/some/repo\\" renovate/rust bash -l -c \\"cargo update --manifest-path Cargo.toml --package dep1\\"", + "cmd": "docker run --rm --name=renovate_rust --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -w \\"/tmp/github/some/repo\\" renovate/rust bash -l -c \\"cargo update --manifest-path Cargo.toml --package dep1\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", diff --git a/lib/manager/cargo/artifacts.spec.ts b/lib/manager/cargo/artifacts.spec.ts index 50bba66fa8..021a9477bf 100644 --- a/lib/manager/cargo/artifacts.spec.ts +++ b/lib/manager/cargo/artifacts.spec.ts @@ -22,7 +22,6 @@ const env = mocked(_env); const config = { // `join` fixes Windows CI localDir: join('/tmp/github/some/repo'), - dockerUser: 'foobar', }; describe('.updateArtifacts()', () => { diff --git a/lib/manager/cocoapods/__snapshots__/artifacts.spec.ts.snap b/lib/manager/cocoapods/__snapshots__/artifacts.spec.ts.snap index 30b580dd68..a0579ac4f5 100644 --- a/lib/manager/cocoapods/__snapshots__/artifacts.spec.ts.snap +++ b/lib/manager/cocoapods/__snapshots__/artifacts.spec.ts.snap @@ -34,7 +34,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_cocoapods --label=renovate_child --user=ubuntu -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/cache\\":\\"/tmp/cache\\" -e CP_HOME_DIR -w \\"/tmp/github/some/repo\\" renovate/cocoapods:1.2.4 bash -l -c \\"pod install\\"", + "cmd": "docker run --rm --name=renovate_cocoapods --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/cache\\":\\"/tmp/cache\\" -e CP_HOME_DIR -w \\"/tmp/github/some/repo\\" renovate/cocoapods:1.2.4 bash -l -c \\"pod install\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -76,7 +76,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_cocoapods --label=renovate_child --user=ubuntu -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/cache\\":\\"/tmp/cache\\" -e CP_HOME_DIR -w \\"/tmp/github/some/repo\\" renovate/cocoapods:latest bash -l -c \\"pod install\\"", + "cmd": "docker run --rm --name=renovate_cocoapods --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/cache\\":\\"/tmp/cache\\" -e CP_HOME_DIR -w \\"/tmp/github/some/repo\\" renovate/cocoapods:latest bash -l -c \\"pod install\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", diff --git a/lib/manager/cocoapods/artifacts.spec.ts b/lib/manager/cocoapods/artifacts.spec.ts index a0c00dd30a..42013554b3 100644 --- a/lib/manager/cocoapods/artifacts.spec.ts +++ b/lib/manager/cocoapods/artifacts.spec.ts @@ -190,7 +190,6 @@ describe('.updateArtifacts()', () => { await setExecConfig({ ...config, binarySource: 'docker', - dockerUser: 'ubuntu', }); fs.readFile.mockResolvedValueOnce('COCOAPODS: 1.2.4' as any); @@ -215,7 +214,6 @@ describe('.updateArtifacts()', () => { await setExecConfig({ ...config, binarySource: 'docker', - dockerUser: 'ubuntu', }); fs.readFile.mockResolvedValueOnce('COCOAPODS: 1.2.4' as any); diff --git a/lib/manager/common.ts b/lib/manager/common.ts index 249fdfa144..706499ec1d 100644 --- a/lib/manager/common.ts +++ b/lib/manager/common.ts @@ -11,7 +11,6 @@ export type Result<T> = T | Promise<T>; export interface ManagerConfig { binarySource?: string; - dockerUser?: string; localDir?: string; registryUrls?: string[]; } diff --git a/lib/manager/composer/__snapshots__/artifacts.spec.ts.snap b/lib/manager/composer/__snapshots__/artifacts.spec.ts.snap index d951aef967..cb1980f0cf 100644 --- a/lib/manager/composer/__snapshots__/artifacts.spec.ts.snap +++ b/lib/manager/composer/__snapshots__/artifacts.spec.ts.snap @@ -133,7 +133,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_composer --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -e COMPOSER_CACHE_DIR -w \\"/tmp/github/some/repo\\" renovate/composer:1.10.17 bash -l -c \\"composer update --with-dependencies --ignore-platform-reqs --no-ansi --no-interaction --no-scripts --no-autoloader\\"", + "cmd": "docker run --rm --name=renovate_composer --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -e COMPOSER_CACHE_DIR -w \\"/tmp/github/some/repo\\" renovate/composer:1.10.17 bash -l -c \\"composer update --with-dependencies --ignore-platform-reqs --no-ansi --no-interaction --no-scripts --no-autoloader\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", diff --git a/lib/manager/composer/artifacts.spec.ts b/lib/manager/composer/artifacts.spec.ts index bdc0e9b35e..74dc9458f1 100644 --- a/lib/manager/composer/artifacts.spec.ts +++ b/lib/manager/composer/artifacts.spec.ts @@ -28,7 +28,6 @@ const config = { // `join` fixes Windows CI localDir: join('/tmp/github/some/repo'), cacheDir: join('/tmp/renovate/cache'), - dockerUser: 'foobar', composerIgnorePlatformReqs: true, }; diff --git a/lib/manager/gomod/__snapshots__/artifacts.spec.ts.snap b/lib/manager/gomod/__snapshots__/artifacts.spec.ts.snap index 0f45e7d37a..52bc202875 100644 --- a/lib/manager/gomod/__snapshots__/artifacts.spec.ts.snap +++ b/lib/manager/gomod/__snapshots__/artifacts.spec.ts.snap @@ -84,7 +84,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_go --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/go\\":\\"/tmp/renovate/cache/others/go\\" -e GOPATH -e GOPROXY -e GONOSUMDB -e CGO_ENABLED -w \\"/tmp/github/some/repo\\" renovate/go:latest bash -l -c \\"git config --global url.\\\\\\"https://some-token@github.com/\\\\\\".insteadOf \\\\\\"https://github.com/\\\\\\" && go get -d ./...\\"", + "cmd": "docker run --rm --name=renovate_go --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/go\\":\\"/tmp/renovate/cache/others/go\\" -e GOPATH -e GOPROXY -e GONOSUMDB -e CGO_ENABLED -w \\"/tmp/github/some/repo\\" renovate/go:latest bash -l -c \\"git config --global url.\\\\\\"https://some-token@github.com/\\\\\\".insteadOf \\\\\\"https://github.com/\\\\\\" && go get -d ./...\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -123,7 +123,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_go --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/go\\":\\"/tmp/renovate/cache/others/go\\" -e GOPATH -e GOPROXY -e GONOSUMDB -e CGO_ENABLED -w \\"/tmp/github/some/repo\\" renovate/go:latest bash -l -c \\"go get -d ./... && go mod tidy && go mod tidy\\"", + "cmd": "docker run --rm --name=renovate_go --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/go\\":\\"/tmp/renovate/cache/others/go\\" -e GOPATH -e GOPROXY -e GONOSUMDB -e CGO_ENABLED -w \\"/tmp/github/some/repo\\" renovate/go:latest bash -l -c \\"go get -d ./... && go mod tidy && go mod tidy\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -162,7 +162,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_go --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/go\\":\\"/tmp/renovate/cache/others/go\\" -e GOPATH -e GOPROXY -e GONOSUMDB -e CGO_ENABLED -w \\"/tmp/github/some/repo\\" renovate/go:latest bash -l -c \\"go get -d ./...\\"", + "cmd": "docker run --rm --name=renovate_go --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/go\\":\\"/tmp/renovate/cache/others/go\\" -e GOPATH -e GOPROXY -e GONOSUMDB -e CGO_ENABLED -w \\"/tmp/github/some/repo\\" renovate/go:latest bash -l -c \\"go get -d ./...\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", diff --git a/lib/manager/gomod/artifacts.spec.ts b/lib/manager/gomod/artifacts.spec.ts index f814c19e53..783fd8d67e 100644 --- a/lib/manager/gomod/artifacts.spec.ts +++ b/lib/manager/gomod/artifacts.spec.ts @@ -39,7 +39,6 @@ const config = { // `join` fixes Windows CI localDir: join('/tmp/github/some/repo'), cacheDir: join('/tmp/renovate/cache'), - dockerUser: 'foobar', constraints: { go: '1.14' }, }; diff --git a/lib/manager/helmv3/__snapshots__/artifacts.spec.ts.snap b/lib/manager/helmv3/__snapshots__/artifacts.spec.ts.snap index da0ed762c3..0118cbd4b1 100644 --- a/lib/manager/helmv3/__snapshots__/artifacts.spec.ts.snap +++ b/lib/manager/helmv3/__snapshots__/artifacts.spec.ts.snap @@ -95,7 +95,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_helm --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -w \\"/tmp/github/some/repo\\" renovate/helm bash -l -c \\"helm dependency update ''\\"", + "cmd": "docker run --rm --name=renovate_helm --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -w \\"/tmp/github/some/repo\\" renovate/helm bash -l -c \\"helm dependency update ''\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", diff --git a/lib/manager/helmv3/artifacts.spec.ts b/lib/manager/helmv3/artifacts.spec.ts index 2ffaf1a698..506d17a6cd 100644 --- a/lib/manager/helmv3/artifacts.spec.ts +++ b/lib/manager/helmv3/artifacts.spec.ts @@ -22,7 +22,6 @@ const env = mocked(_env); const config = { // `join` fixes Windows CI localDir: join('/tmp/github/some/repo'), - dockerUser: 'foobar', }; describe('.updateArtifacts()', () => { diff --git a/lib/manager/nuget/__snapshots__/artifacts.spec.ts.snap b/lib/manager/nuget/__snapshots__/artifacts.spec.ts.snap index 8c3eec536f..648131471c 100644 --- a/lib/manager/nuget/__snapshots__/artifacts.spec.ts.snap +++ b/lib/manager/nuget/__snapshots__/artifacts.spec.ts.snap @@ -119,7 +119,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_dotnet --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -w \\"/tmp/github/some/repo\\" renovate/dotnet bash -l -c \\"dotnet restore project.csproj --force-evaluate --configfile others/nuget/not-so-random/nuget.config\\"", + "cmd": "docker run --rm --name=renovate_dotnet --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -w \\"/tmp/github/some/repo\\" renovate/dotnet bash -l -c \\"dotnet restore project.csproj --force-evaluate --configfile others/nuget/not-so-random/nuget.config\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", diff --git a/lib/manager/nuget/artifacts.spec.ts b/lib/manager/nuget/artifacts.spec.ts index 90420ef8a7..549be8a5fd 100644 --- a/lib/manager/nuget/artifacts.spec.ts +++ b/lib/manager/nuget/artifacts.spec.ts @@ -37,7 +37,6 @@ const config = { // `join` fixes Windows CI localDir: join('/tmp/github/some/repo'), cacheDir: join('/tmp/renovate/cache'), - dockerUser: 'foobar', }; describe('updateArtifacts', () => { diff --git a/lib/manager/pipenv/__snapshots__/artifacts.spec.ts.snap b/lib/manager/pipenv/__snapshots__/artifacts.spec.ts.snap index 0d02fad747..da8bb4d2db 100644 --- a/lib/manager/pipenv/__snapshots__/artifacts.spec.ts.snap +++ b/lib/manager/pipenv/__snapshots__/artifacts.spec.ts.snap @@ -122,7 +122,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_python --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/pipenv\\":\\"/tmp/renovate/cache/others/pipenv\\" -e PIPENV_CACHE_DIR -w \\"/tmp/github/some/repo\\" renovate/python:latest bash -l -c \\"pip install --user pipenv && pipenv lock\\"", + "cmd": "docker run --rm --name=renovate_python --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/pipenv\\":\\"/tmp/renovate/cache/others/pipenv\\" -e PIPENV_CACHE_DIR -w \\"/tmp/github/some/repo\\" renovate/python:latest bash -l -c \\"pip install --user pipenv && pipenv lock\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -158,7 +158,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_python --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/pipenv\\":\\"/tmp/renovate/cache/others/pipenv\\" -e PIPENV_CACHE_DIR -w \\"/tmp/github/some/repo\\" renovate/python bash -l -c \\"pip install --user pipenv==2020.8.13 && pipenv lock\\"", + "cmd": "docker run --rm --name=renovate_python --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/pipenv\\":\\"/tmp/renovate/cache/others/pipenv\\" -e PIPENV_CACHE_DIR -w \\"/tmp/github/some/repo\\" renovate/python bash -l -c \\"pip install --user pipenv==2020.8.13 && pipenv lock\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -194,7 +194,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_python --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/pipenv\\":\\"/tmp/renovate/cache/others/pipenv\\" -e PIPENV_CACHE_DIR -w \\"/tmp/github/some/repo\\" renovate/python bash -l -c \\"pip install --user pipenv==2020.8.13 && pipenv lock\\"", + "cmd": "docker run --rm --name=renovate_python --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/pipenv\\":\\"/tmp/renovate/cache/others/pipenv\\" -e PIPENV_CACHE_DIR -w \\"/tmp/github/some/repo\\" renovate/python bash -l -c \\"pip install --user pipenv==2020.8.13 && pipenv lock\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -230,7 +230,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_python --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/pipenv\\":\\"/tmp/renovate/cache/others/pipenv\\" -e PIPENV_CACHE_DIR -w \\"/tmp/github/some/repo\\" renovate/python bash -l -c \\"pip install --user pipenv==2020.1.1 && pipenv lock\\"", + "cmd": "docker run --rm --name=renovate_python --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -v \\"/tmp/renovate/cache\\":\\"/tmp/renovate/cache\\" -v \\"/tmp/renovate/cache/others/pipenv\\":\\"/tmp/renovate/cache/others/pipenv\\" -e PIPENV_CACHE_DIR -w \\"/tmp/github/some/repo\\" renovate/python bash -l -c \\"pip install --user pipenv==2020.1.1 && pipenv lock\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", diff --git a/lib/manager/pipenv/artifacts.spec.ts b/lib/manager/pipenv/artifacts.spec.ts index 4674adc1bb..165edc209b 100644 --- a/lib/manager/pipenv/artifacts.spec.ts +++ b/lib/manager/pipenv/artifacts.spec.ts @@ -25,7 +25,6 @@ const config = { // `join` fixes Windows CI localDir: join('/tmp/github/some/repo'), cacheDir: join('/tmp/renovate/cache'), - dockerUser: 'foobar', }; const dockerConfig = { ...config, binarySource: BinarySource.Docker }; diff --git a/lib/manager/poetry/__snapshots__/artifacts.spec.ts.snap b/lib/manager/poetry/__snapshots__/artifacts.spec.ts.snap index 0996fcab4c..145316feda 100644 --- a/lib/manager/poetry/__snapshots__/artifacts.spec.ts.snap +++ b/lib/manager/poetry/__snapshots__/artifacts.spec.ts.snap @@ -100,7 +100,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_python --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -w \\"/tmp/github/some/repo\\" renovate/python:2.7.5 bash -l -c \\"pip install 'poetry>=1.0' && poetry update --lock --no-interaction dep1\\"", + "cmd": "docker run --rm --name=renovate_python --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -w \\"/tmp/github/some/repo\\" renovate/python:2.7.5 bash -l -c \\"pip install 'poetry>=1.0' && poetry update --lock --no-interaction dep1\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -135,7 +135,7 @@ Array [ }, }, Object { - "cmd": "docker run --rm --name=renovate_python --label=renovate_child --user=foobar -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -w \\"/tmp/github/some/repo\\" renovate/python:3.4.2 bash -l -c \\"pip install poetry && poetry update --lock --no-interaction dep1\\"", + "cmd": "docker run --rm --name=renovate_python --label=renovate_child -v \\"/tmp/github/some/repo\\":\\"/tmp/github/some/repo\\" -w \\"/tmp/github/some/repo\\" renovate/python:3.4.2 bash -l -c \\"pip install poetry && poetry update --lock --no-interaction dep1\\"", "options": Object { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", diff --git a/lib/manager/poetry/artifacts.spec.ts b/lib/manager/poetry/artifacts.spec.ts index 3ae83916df..f08480e771 100644 --- a/lib/manager/poetry/artifacts.spec.ts +++ b/lib/manager/poetry/artifacts.spec.ts @@ -135,7 +135,6 @@ describe('.updateArtifacts()', () => { await setExecConfig({ ...config, binarySource: BinarySource.Docker, - dockerUser: 'foobar', }); fs.readFile.mockResolvedValueOnce('[metadata]\n' as any); const execSnapshots = mockExecAll(exec); @@ -162,7 +161,6 @@ describe('.updateArtifacts()', () => { await setExecConfig({ ...config, binarySource: BinarySource.Docker, - dockerUser: 'foobar', }); fs.readFile.mockResolvedValueOnce( '[metadata]\npython-versions = "~2.7 || ^3.4"' as any diff --git a/lib/util/exec/common.ts b/lib/util/exec/common.ts index 987fe5e081..4564340eee 100644 --- a/lib/util/exec/common.ts +++ b/lib/util/exec/common.ts @@ -14,8 +14,6 @@ export enum BinarySource { export interface ExecConfig { binarySource: Opt<BinarySource>; customEnvVariables: Opt<Record<string, string>>; - dockerImagePrefix: Opt<string>; - dockerUser: Opt<string>; localDir: Opt<string>; cacheDir: Opt<string>; } diff --git a/lib/util/exec/docker/index.ts b/lib/util/exec/docker/index.ts index b9f246412e..aae728ff6c 100644 --- a/lib/util/exec/docker/index.ts +++ b/lib/util/exec/docker/index.ts @@ -1,3 +1,4 @@ +import { getAdminConfig } from '../../../config/admin'; import { SYSTEM_INSUFFICIENT_MEMORY } from '../../../constants/error-messages'; import { getPkgReleases } from '../../../datasource'; import { logger } from '../../../logger'; @@ -186,8 +187,8 @@ export async function generateDockerCommand( const volumes = options.volumes || []; const preCommands = options.preCommands || []; const postCommands = options.postCommands || []; - const { localDir, cacheDir, dockerUser } = config; - + const { localDir, cacheDir } = config; + const { dockerUser, dockerImagePrefix } = getAdminConfig(); const result = ['docker run --rm']; const containerName = getContainerName(image); result.push(`--name=${containerName}`); @@ -210,10 +211,10 @@ export async function generateDockerCommand( result.push(`-w "${cwd}"`); } - if (config.dockerImagePrefix) { + if (dockerImagePrefix) { image = image.replace( /^renovate\//, - ensureTrailingSlash(config.dockerImagePrefix) + ensureTrailingSlash(dockerImagePrefix) ); } diff --git a/lib/util/exec/exec.spec.ts b/lib/util/exec/exec.spec.ts index c83246fa62..c118e5cf1f 100644 --- a/lib/util/exec/exec.spec.ts +++ b/lib/util/exec/exec.spec.ts @@ -4,6 +4,8 @@ import { exec as _cpExec, } from 'child_process'; import { envMock } from '../../../test/exec-util'; +import { setAdminConfig } from '../../config/admin'; +import { RepoAdminConfig } from '../../config/common'; import { BinarySource, ExecConfig, @@ -25,6 +27,7 @@ interface TestInput { outCmd: string[]; outOpts: RawExecOptions[]; trustLevel?: 'high' | 'low'; + adminConfig?: RepoAdminConfig; } describe(`Child process execution wrapper`, () => { @@ -390,7 +393,6 @@ describe(`Child process execution wrapper`, () => { execConfig: { ...execConfig, binarySource: BinarySource.Docker, - dockerUser: 'foobar', }, processEnv, inCmd, @@ -411,6 +413,7 @@ describe(`Child process execution wrapper`, () => { maxBuffer: 10485760, }, ], + adminConfig: { dockerUser: 'foobar' }, }, ], @@ -420,7 +423,6 @@ describe(`Child process execution wrapper`, () => { execConfig: { ...execConfig, binarySource: BinarySource.Docker, - dockerImagePrefix: 'ghcr.io/renovatebot', }, processEnv, inCmd, @@ -441,6 +443,7 @@ describe(`Child process execution wrapper`, () => { maxBuffer: 10485760, }, ], + adminConfig: { dockerImagePrefix: 'ghcr.io/renovatebot' }, }, ], @@ -660,6 +663,7 @@ describe(`Child process execution wrapper`, () => { outCmd: outCommand, outOpts, trustLevel, + adminConfig = {}, } = testOpts; process.env = procEnv; @@ -682,7 +686,7 @@ describe(`Child process execution wrapper`, () => { callback(null, { stdout: '', stderr: '' }); return undefined; }); - + setAdminConfig(adminConfig as any, Object.keys(adminConfig)); await exec(cmd as string, inOpts); expect(actualCmd).toEqual(outCommand); diff --git a/lib/util/exec/index.ts b/lib/util/exec/index.ts index 1ede34ce63..fc9d7e984f 100644 --- a/lib/util/exec/index.ts +++ b/lib/util/exec/index.ts @@ -21,8 +21,6 @@ import { getChildProcessEnv } from './env'; const execConfig: ExecConfig = { binarySource: null, customEnvVariables: null, - dockerImagePrefix: null, - dockerUser: null, localDir: null, cacheDir: null, }; diff --git a/lib/util/template/index.ts b/lib/util/template/index.ts index 612b9f279c..d48b980ea3 100644 --- a/lib/util/template/index.ts +++ b/lib/util/template/index.ts @@ -1,5 +1,6 @@ import is from '@sindresorhus/is'; import * as handlebars from 'handlebars'; +import { getAdminConfig } from '../../config/admin'; import { logger } from '../../logger'; import { clone } from '../clone'; @@ -144,7 +145,8 @@ export function compile( input: CompileInput, filterFields = true ): string { - const filteredInput = filterFields ? getFilteredObject(input) : input; + const data = { ...getAdminConfig(), ...input }; + const filteredInput = filterFields ? getFilteredObject(data) : data; logger.trace({ template, filteredInput }, 'Compiling template'); if (filterFields) { const matches = template.matchAll(templateRegex); diff --git a/lib/workers/global/index.ts b/lib/workers/global/index.ts index 45357d5086..2bbea30c1e 100644 --- a/lib/workers/global/index.ts +++ b/lib/workers/global/index.ts @@ -3,6 +3,8 @@ import { ERROR } from 'bunyan'; import fs from 'fs-extra'; import upath from 'upath'; import * as configParser from '../../config'; +import { setAdminConfig } from '../../config/admin'; +import { getAdminOptionNames } from '../../config/definitions'; import { getProblems, logger, setMeta } from '../../logger'; import { setUtilConfig } from '../../util'; import * as hostRules from '../../util/host-rules'; @@ -58,6 +60,7 @@ export async function start(): Promise<number> { break; } const repoConfig = await getRepositoryConfig(config, repository); + setAdminConfig(repoConfig, getAdminOptionNames()); await setUtilConfig(repoConfig); if (repoConfig.hostRules) { hostRules.clear(); -- GitLab