diff --git a/lib/workers/global/config/parse/codespaces.ts b/lib/workers/global/config/parse/codespaces.ts new file mode 100644 index 0000000000000000000000000000000000000000..795a5afccd3dc86839a5d5edfd95f2f2ec4a3f0c --- /dev/null +++ b/lib/workers/global/config/parse/codespaces.ts @@ -0,0 +1,24 @@ +import readline from 'readline'; +import type { AllConfig } from '../../../../config/types'; + +// istanbul ignore next +export async function setConfig(config: AllConfig): Promise<AllConfig> { + if (process.env.CODESPACES !== 'true') { + return config; + } + + if (!config.token && process.env.GITHUB_TOKEN) { + config.token = process.env.GITHUB_TOKEN; + } + + if (!config.repositories?.length) { + const rl = readline.promises.createInterface({ + input: process.stdin, + output: process.stdout, + }); + const repo = await rl.question('\n\nRepository name: '); + config.repositories = [repo]; + } + + return config; +} diff --git a/lib/workers/global/config/parse/index.ts b/lib/workers/global/config/parse/index.ts index 0823d06c6ff5d9e68445a7ea20f6fdf734afac19..58352098df82f1114374889efdd46e39fc18b701 100644 --- a/lib/workers/global/config/parse/index.ts +++ b/lib/workers/global/config/parse/index.ts @@ -6,6 +6,7 @@ import { detectAllGlobalConfig } from '../../../../modules/manager'; import { ensureDir, getParentDir, readSystemFile } from '../../../../util/fs'; import { ensureTrailingSlash } from '../../../../util/url'; import * as cliParser from './cli'; +import * as codespaces from './codespaces'; import * as envParser from './env'; import * as fileParser from './file'; import { hostRulesFromEnv } from './host-rules-from-env'; @@ -25,6 +26,8 @@ export async function parseConfigs( let config: AllConfig = mergeChildConfig(fileConfig, envConfig); config = mergeChildConfig(config, cliConfig); + config = await codespaces.setConfig(config); + const combinedConfig = config; config = mergeChildConfig(defaultConfig, config);