|
@@ -86,11 +86,12 @@ export namespace Config {
|
|
|
let result: Info = {}
|
|
let result: Info = {}
|
|
|
for (const [key, value] of Object.entries(auth)) {
|
|
for (const [key, value] of Object.entries(auth)) {
|
|
|
if (value.type === "wellknown") {
|
|
if (value.type === "wellknown") {
|
|
|
|
|
+ const url = key.replace(/\/+$/, "")
|
|
|
process.env[value.key] = value.token
|
|
process.env[value.key] = value.token
|
|
|
- log.debug("fetching remote config", { url: `${key}/.well-known/opencode` })
|
|
|
|
|
- const response = await fetch(`${key}/.well-known/opencode`)
|
|
|
|
|
|
|
+ log.debug("fetching remote config", { url: `${url}/.well-known/opencode` })
|
|
|
|
|
+ const response = await fetch(`${url}/.well-known/opencode`)
|
|
|
if (!response.ok) {
|
|
if (!response.ok) {
|
|
|
- throw new Error(`failed to fetch remote config from ${key}: ${response.status}`)
|
|
|
|
|
|
|
+ throw new Error(`failed to fetch remote config from ${url}: ${response.status}`)
|
|
|
}
|
|
}
|
|
|
const wellknown = (await response.json()) as any
|
|
const wellknown = (await response.json()) as any
|
|
|
const remoteConfig = wellknown.config ?? {}
|
|
const remoteConfig = wellknown.config ?? {}
|
|
@@ -99,11 +100,11 @@ export namespace Config {
|
|
|
result = mergeConfigConcatArrays(
|
|
result = mergeConfigConcatArrays(
|
|
|
result,
|
|
result,
|
|
|
await load(JSON.stringify(remoteConfig), {
|
|
await load(JSON.stringify(remoteConfig), {
|
|
|
- dir: path.dirname(`${key}/.well-known/opencode`),
|
|
|
|
|
- source: `${key}/.well-known/opencode`,
|
|
|
|
|
|
|
+ dir: path.dirname(`${url}/.well-known/opencode`),
|
|
|
|
|
+ source: `${url}/.well-known/opencode`,
|
|
|
}),
|
|
}),
|
|
|
)
|
|
)
|
|
|
- log.debug("loaded remote config from well-known", { url: key })
|
|
|
|
|
|
|
+ log.debug("loaded remote config from well-known", { url })
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|