Compare commits

...
2 Commits
Author SHA1 Message Date
Fabio 497df7eeb0 Merge lavoro/token-organizzazione 2026-10-07 22:55:25 +02:00
FabioandClaude Opus 5.5 edc5d4e4b3 configura: token Gitea con write:organization, e rinnovo di quelli vecchi
Dal 07/10/2026 i progetti nascono nell'organizzazione oto, e crearli vuole
write:organization (prima read:organization). Un token salvato senza quello
scope viene riconosciuto (Gitea risponde 403 a una creazione volutamente
incompleta, 422 se lo scope c'e', e non crea niente), messo da parte e
sostituito.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 22:55:25 +02:00
+16 -1
View File
@@ -22,6 +22,21 @@ titolo "1. Gitea"
# obbliga piu' a cambiarla. Chi e' stato creato prima invece deve ancora
# cambiarla nel browser, e Gitea gli risponde 403: lo si dice sotto.
UTENTE="$(utente_gitea)"
# I token creati prima del 07/10/2026 hanno read:organization e non
# write:organization, che serve a creare i progetti nell'organizzazione oto.
# Lo si chiede a Gitea con una creazione volutamente incompleta (senza nome):
# a un token senza lo scope risponde 403 citandolo, a uno giusto 422, e in
# nessuno dei due casi crea niente. Il token vecchio si mette da parte e se ne
# crea uno nuovo qui sotto; quello vecchio si cancella dal proprio profilo.
if [ -n "$UTENTE" ] && curl -s --max-time 10 -X POST -H "Authorization: token $(token_gitea)" \
-H 'Content-Type: application/json' -d '{}' "$GITEA_URL/api/v1/orgs/oto/repos" \
| grep -q 'write:organization' ; then
mv "$TOKEN_GITEA_FILE" "$TOKEN_GITEA_FILE.vecchio"
attento "il token Gitea salvato non puo' creare progetti nell'organizzazione: ne creo uno nuovo"
echo " (quello vecchio, in $TOKEN_GITEA_FILE.vecchio, cancellalo dal tuo profilo Gitea:"
echo " Impostazioni -> Applicazioni)"
UTENTE=""
fi
if [ -n "$UTENTE" ] ; then
ok "token Gitea gia' salvato (utente $UTENTE)"
else
@@ -36,7 +51,7 @@ else
RISPOSTA="$(printf 'user = "%s"\n' "$PASSWORD_CURL" \
| curl -s --max-time 15 -K - -w '\n%{http_code}' -X POST \
-H 'Content-Type: application/json' \
-d "{\"name\":\"$NOME_TOKEN\",\"scopes\":[\"write:repository\",\"write:user\",\"read:organization\"]}" \
-d "{\"name\":\"$NOME_TOKEN\",\"scopes\":[\"write:repository\",\"write:user\",\"write:organization\"]}" \
"$GITEA_URL/api/v1/users/$UTENTE_DATO/tokens")"
unset PASSWORD PASSWORD_CURL
CODICE="${RISPOSTA##*$'\n'}"