mirror of
https://github.com/OpenRouterTeam/spawn.git
synced 2026-04-28 03:49:31 +00:00
feat: enforce CI coverage thresholds + colocate billing guidance (#2811)
- Move bunfig.toml to repo root with valid coverageThreshold syntax (line=80%, function=0 to avoid per-file false positives) - Add --coverage flag to CI test step - Delete packages/cli/bunfig.toml (superseded by root config) - Add tests for packages/shared (type-guards, parse, result) - Colocate billing config into each cloud directory (aws/billing.ts, gcp/billing.ts, hetzner/billing.ts, digitalocean/billing.ts) - Refactor billing-guidance.ts: BillingConfig interface replaces cloud-string-keyed Record maps - Bump CLI version to 0.25.1 Co-authored-by: Claude <claude@anthropic.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: L <6723574+louisgv@users.noreply.github.com>
This commit is contained in:
parent
aa4b2a23d6
commit
9ae3525030
17 changed files with 601 additions and 133 deletions
|
|
@ -39,6 +39,7 @@ import {
|
|||
shellQuote,
|
||||
validateRegionName,
|
||||
} from "../shared/ui";
|
||||
import { hetznerBilling } from "./billing";
|
||||
|
||||
const HETZNER_API_BASE = "https://api.hetzner.cloud/v1";
|
||||
const HETZNER_DASHBOARD_URL = "https://console.hetzner.cloud/";
|
||||
|
|
@ -606,8 +607,8 @@ export async function createServer(
|
|||
|
||||
logError(`Failed to create Hetzner server: ${errMsg}`);
|
||||
|
||||
if (isBillingError("hetzner", errMsg)) {
|
||||
const shouldRetry = await handleBillingError("hetzner");
|
||||
if (isBillingError(hetznerBilling, errMsg)) {
|
||||
const shouldRetry = await handleBillingError(hetznerBilling);
|
||||
if (shouldRetry) {
|
||||
logStep("Retrying server creation...");
|
||||
const retryResp = await hetznerApi("POST", "/servers", body);
|
||||
|
|
@ -633,7 +634,7 @@ export async function createServer(
|
|||
logError(`Retry failed: ${retryErr}`);
|
||||
}
|
||||
} else {
|
||||
showNonBillingError("hetzner", [
|
||||
showNonBillingError(hetznerBilling, [
|
||||
"Server type or location unavailable",
|
||||
"Server limit reached for your account",
|
||||
]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue