Add a "what's mirrored + verdict" helper (tullictl / compose one-liner) #18

Open
opened 2026-07-11 11:17:08 +02:00 by qwc · 0 comments
Owner

Motivation

During local/offline testing, seeing what has actually been mirrored currently means poking the tulli-data docker volume by hand, e.g.:

docker compose exec tulli sh -c 'ls -R /data/mirrors'
docker compose exec tulli sh -c 'cd /data/mirrors/<host>/<owner>/<repo>.git && git for-each-ref && git config --get-all uploadpack.hideRefs'

That works (mirrors live at /data/mirrors/<host>/<owner>/<repo>.git as bare repos; quarantined refs show up in uploadpack.hideRefs), but it's low-level and requires knowing the on-disk layout.

Ask

Provide a first-class way to list mirrored repos + their verdict/quarantine state as a one-liner, instead of inspecting the volume. The data is already exposed by the web API at GET /api/repos (repo + verdict) and GET /api/repos/{id} (findings, hidden refs), so this is mostly surfacing it ergonomically.

Options (not mutually exclusive):

  • tullictl repos already exists as a bearer-token client — make sure it clearly shows verdict + hidden refs per repo, and document it as the way to answer "what's been mirrored?" (vs. poking the volume).
  • A small compose helper / documented one-liner (e.g. docker compose exec tulli tullictl repos) so the offline-testing loop doesn't need volume archaeology.
  • Optionally a read-only tullictl mirrors that reflects on-disk mirror dirs directly (belt-and-suspenders vs. the DB view), useful when debugging reconcile drift.

Notes

  • Purely additive / ergonomics; no schema or gating changes.
  • Ties into the offline docker-compose testing stack (see issue #8).
## Motivation During local/offline testing, seeing **what has actually been mirrored** currently means poking the `tulli-data` docker volume by hand, e.g.: ``` docker compose exec tulli sh -c 'ls -R /data/mirrors' docker compose exec tulli sh -c 'cd /data/mirrors/<host>/<owner>/<repo>.git && git for-each-ref && git config --get-all uploadpack.hideRefs' ``` That works (mirrors live at `/data/mirrors/<host>/<owner>/<repo>.git` as bare repos; quarantined refs show up in `uploadpack.hideRefs`), but it's low-level and requires knowing the on-disk layout. ## Ask Provide a first-class way to list mirrored repos + their verdict/quarantine state as a one-liner, instead of inspecting the volume. The data is already exposed by the web API at `GET /api/repos` (repo + verdict) and `GET /api/repos/{id}` (findings, hidden refs), so this is mostly surfacing it ergonomically. Options (not mutually exclusive): - **`tullictl repos`** already exists as a bearer-token client — make sure it clearly shows verdict + hidden refs per repo, and document it as *the* way to answer "what's been mirrored?" (vs. poking the volume). - A small **compose helper** / documented one-liner (e.g. `docker compose exec tulli tullictl repos`) so the offline-testing loop doesn't need volume archaeology. - Optionally a read-only `tullictl mirrors` that reflects on-disk mirror dirs directly (belt-and-suspenders vs. the DB view), useful when debugging reconcile drift. ## Notes - Purely additive / ergonomics; no schema or gating changes. - Ties into the offline docker-compose testing stack (see issue #8).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
qwc-open/tulli#18
No description provided.