--- title: Repo --- ```js import {API} from "../components/config.js"; import {fieldRow} from "../components/field-help.js"; ``` ```js const repoSlug = observable.params.slug; const raw = await fetch(`${API}/repos/${repoSlug}/`) .then(r => r.ok ? r.json() : r.json().then(e => ({error: e.detail ?? `HTTP ${r.status}`}))) .catch(e => ({error: String(e)})); ``` ```js if (raw.error) { display(html`
⚠️ ${raw.error}
`); } else { const name = raw.name || raw.slug || repoSlug; display(html`

Repo · ${name}

`); display(html`

← Repos  |  ← Token Cost

`); const FIELD_ORDER = [ "id","slug","name","domain_slug","status","description", "local_path","remote_url","git_fingerprint", "sbom_source","last_sbom_at","last_state_synced_at", "created_at","updated_at", ]; const rows = FIELD_ORDER.map(k => fieldRow(k, raw[k] ?? null)); for (const k of Object.keys(raw)) { if (!FIELD_ORDER.includes(k)) rows.push(fieldRow(k, raw[k])); } display(html`${rows}
`); } ```