mime-todo-cli/lib/bugzilla/config.ts
Tiara Rodney 932d4ad420
init
2026-03-15 03:02:41 +01:00

43 lines
1.1 KiB
TypeScript

// Bugzilla configuration — loads from .bugzilla.json or environment variables
import * as fs from "fs"
import * as path from "path"
export interface BugzillaConfig {
baseUrl: string
apiKey: string
product: string
component: string
}
const CONFIG_FILE = ".bugzilla.json"
export function loadConfig(cwd = process.cwd()): BugzillaConfig {
const filePath = path.join(cwd, CONFIG_FILE)
if (fs.existsSync(filePath)) {
const raw = fs.readFileSync(filePath, "utf-8")
const json = JSON.parse(raw)
return {
baseUrl: json.baseUrl ?? json.base_url ?? "",
apiKey: json.apiKey ?? json.api_key,
product: json.product ?? "",
component: json.component ?? "",
}
}
const baseUrl = process.env.BUGZILLA_URL
const apiKey = process.env.BUGZILLA_API_KEY
if (!baseUrl || !apiKey) {
throw new Error(
`Bugzilla config not found. Create ${CONFIG_FILE} or set BUGZILLA_URL and BUGZILLA_API_KEY`
)
}
return {
baseUrl: baseUrl.replace(/\/+$/, ""),
apiKey,
product: process.env.BUGZILLA_PRODUCT ?? "",
component: process.env.BUGZILLA_COMPONENT ?? "",
}
}