---
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``);
}
```