Show token repo and store rows per item

This commit is contained in:
mpabi
2026-04-26 15:54:09 +02:00
parent f13b09c317
commit b4e638ef4f
4 changed files with 187 additions and 101 deletions
+26 -20
View File
@@ -301,19 +301,26 @@ Przelaczniki:
Typowy wynik:
```text
summary
repo_root<TAB>remotes<TAB>urls<TAB>scanned<TAB>auth_urls<TAB>plain_urls<TAB>unsupported_urls<TAB>found<TAB>added<TAB>servers<TAB>token_path
...<TAB>1<TAB>1<TAB>1<TAB>1<TAB>0<TAB>0<TAB>1<TAB>1<TAB>1<TAB>...
context
item<TAB>value
repo_root<TAB>...
token_path<TAB>...
remotes
remote<TAB>endpoint<TAB>type<TAB>url_kind<TAB>user<TAB>result
r1<TAB>http://77.90.8.171:3001<TAB>gitea<TAB>auth<TAB>u1<TAB>added
scan
item<TAB>value
remotes<TAB>1
urls<TAB>1
items
item<TAB>source<TAB>endpoint<TAB>remote<TAB>kind<TAB>user<TAB>token<TAB>result<TAB>status
1<TAB>repo<TAB>http://77.90.8.171:3001<TAB>r1<TAB>auth<TAB>u1<TAB>remote<TAB>existing<TAB>in_sync
1<TAB>tokens.json<TAB>http://77.90.8.171:3001<TAB><TAB>store<TAB>u1<TAB>t1<TAB>present<TAB>in_sync
```
Jesli remote istnieje, ale ma URL bez `LOGIN:TOKEN@`, wynik bedzie mial
`plain_urls=1`, `auth_urls=0`, `found=0`, `added=0`, a w tabeli `remotes`
pojawi sie `url_kind=plain` i `result=no_credentials`. To znaczy, ze `scan`
sprawdzil remote, ale nie znalazl sekretu do zapisania.
w wierszu `repo` wartosci `kind=plain` i `result=no_credentials`. Jezeli
ten sam endpoint istnieje w `tokens.json`, drugi wiersz tego samego `item`
pokaze `source=tokens.json`, `token=t1` i `result=present`.
Przyklad:
@@ -370,20 +377,19 @@ Przelaczniki:
Typowy wynik:
```text
context
item<TAB>value
repo_root<TAB>...
token_path<TAB>...
repo_endpoints<TAB>1
store_endpoints<TAB>1
union_endpoints<TAB>1
in_sync<TAB>0
repo_only<TAB>0
store_only<TAB>0
repo_ahead<TAB>0
store_ahead<TAB>1
diverged<TAB>0
endpoint<TAB>type<TAB>repo_remotes<TAB>repo_urls<TAB>repo_auth_urls<TAB>repo_plain_urls<TAB>repo_users<TAB>repo_tokens<TAB>store_users<TAB>store_tokens<TAB>repo_only_tokens<TAB>store_only_tokens<TAB>status
http://77.90.8.171:3001<TAB>gitea<TAB>origin<TAB>1<TAB>0<TAB>1<TAB>0<TAB>0<TAB>1<TAB>1<TAB>0<TAB>1<TAB>store_ahead
items
item<TAB>source<TAB>endpoint<TAB>remote<TAB>kind<TAB>user<TAB>token<TAB>result<TAB>status
1<TAB>repo<TAB>http://77.90.8.171:3001<TAB>r1<TAB>plain<TAB><TAB><TAB>no_credentials<TAB>store_ahead
1<TAB>tokens.json<TAB>http://77.90.8.171:3001<TAB><TAB>store<TAB>u1<TAB>t1<TAB>present<TAB>store_ahead
status
item<TAB>value
store_ahead<TAB>1
```
Przyklad:
+18 -9
View File
@@ -84,16 +84,25 @@ Dzialanie:
- skanuje remote URL-e w repo
- zapisuje znalezione tokeny do `tokens.json`
- zapisuje je per endpoint serwera
- wypisuje wynik jako tabele TSV: `summary` oraz `remotes`
- wypisuje wynik jako waskie tabele TSV: `context`, `scan` oraz `items`
Kolumny w tabeli `remotes`:
Tabela `items` porownuje dwa zrodla dla tego samego endpointu. Ten sam `item`
moze miec dwa wiersze:
- `remote` - nazwa remote, na przyklad `r1`
- `source=repo` - stan remote URL-i w repo
- `source=tokens.json` - stan lokalnego store tokenow
Kolumny w tabeli `items`:
- `item` - numer porownywanego endpointu
- `source` - `repo` albo `tokens.json`
- `endpoint` - serwer bez sekretu, na przyklad `http://77.90.8.171:3001`
- `type` - typ serwera, na przyklad `gitea`
- `url_kind` - `auth`, `plain` albo `unsupported`
- `user` - login odczytany z URL, tylko dla `auth`
- `result` - `added`, `existing`, `no_credentials` albo `ignored`
- `remote` - nazwa remote, na przyklad `r1`; tylko dla `source=repo`
- `kind` - `auth`, `plain`, `store` albo `missing`
- `user` - login odczytany z URL albo ze store
- `token` - `remote` dla tokenu w URL albo nazwa tokenu ze store, na przyklad `t1`
- `result` - `added`, `existing`, `present`, `no_credentials` albo `missing`
- `status` - relacja repo do `tokens.json`, na przyklad `in_sync` albo `store_ahead`
Przyklad:
@@ -133,13 +142,13 @@ Pokazuje statystyki per endpoint serwera i porownuje dwa zrodla:
- endpointy znalezione w remote URL-ach repo
- endpointy zapisane w `tokens.json`
Wynik ma ten sam model co `tokens read`, ale w formie zbiorczej:
Wynik ma ten sam model porownania co `tokens scan`, ale nie zapisuje zmian:
- liczbe endpointow w repo
- liczbe endpointow w store
- laczna unie endpointow
- statusy zgodnosci, na przyklad `in_sync`, `store_ahead`, `repo_ahead`
- tabele endpointow z liczbami tokenow po obu stronach
- tabele `items`, w ktorej repo i `tokens.json` sa osobnymi wierszami tego samego itemu
Przyklad: