Use token list schema for token store

This commit is contained in:
mpabi
2026-04-26 21:33:14 +02:00
parent 7e62be4ca1
commit 8c0f95d996
4 changed files with 712 additions and 507 deletions
+25 -17
View File
@@ -112,25 +112,32 @@ Minimalny format:
```json
{
"version": 2,
"servers": {
"http://77.90.8.171:3001": {
"type": "gitea",
"scheme": "http",
"host": "77.90.8.171",
"port": 3001,
"users": {
"u1": {
"tokens": {
"t1": "TU_WSTAW_TOKEN"
}
"version": 3,
"tokens": [
{
"token_id": "t1",
"value": "TU_WSTAW_TOKEN",
"server": {
"type": "gitea",
"endpoint": "http://77.90.8.171:3001",
"scheme": "http",
"host": "77.90.8.171",
"port": 3001
},
"remotes": [
{
"name": "r1",
"org": "edu-tools",
"repo": "rv-launcher"
}
}
]
}
}
]
}
```
Pelny schemat pliku jest w `doc/tokens.schema.json`.
Plik powinien byc lokalny, niewersjonowany i miec prawa `600`.
Przyklad:
@@ -162,10 +169,11 @@ logiczny remote tokena.
remote i `tokens.json` sa zgodne oraz uprawnienia zostaly wczytane, `R` oznacza
token tylko w remote, a `S` token tylko w `tokens.json`. Kolumny `scope`, `org`
i `repo` sa maskami uprawnien; bez `*` maja wartosc `?????` albo `????`.
Zapis z remote do `tokens.json` robi dopiero `tokens update --from remotes`.
Zapis z remote do `tokens.json` oraz odczyt `valid` i uprawnien z API robi
dopiero `tokens update --from remotes`.
Kolumna `valid` oznacza, czy token zostal zaakceptowany przez API teraz.
Jesli przy tokenie w `tokens.json` zapiszesz `expires_at`, `valid` pokaze date
wygasniecia; bez daty poprawny token pokazuje `forever`.
Jesli przy tokenie w `tokens.json` zapiszesz `expires_at`, `valid` moze pokazac
date wygasniecia; bez daty poprawny token pokazuje `forever`.
## Fetch i switch