feat: add bash infra functions — Gitea, Android SDK, Mantine, Capacitor
Nuevas funciones bash: gestión Gitea (create_repo, list_repos, add_collaborator, push_directory), install_android_sdk, install_mantine, frontend_doctor. Pipelines: capacitor_build_apk y gitea_init_app. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
#!/usr/bin/env bash
|
||||
# gitea_create_repo — Crea un repositorio en Gitea para un owner (org o usuario)
|
||||
|
||||
gitea_create_repo() {
|
||||
local owner="$1"
|
||||
local name="$2"
|
||||
local private="${3:-false}"
|
||||
local description="${4:-}"
|
||||
|
||||
if [[ -z "${GITEA_URL:-}" ]]; then
|
||||
echo "gitea_create_repo: GITEA_URL no está seteada" >&2
|
||||
return 1
|
||||
fi
|
||||
if [[ -z "${GITEA_TOKEN:-}" ]]; then
|
||||
echo "gitea_create_repo: GITEA_TOKEN no está seteado" >&2
|
||||
return 1
|
||||
fi
|
||||
if [[ -z "$owner" || -z "$name" ]]; then
|
||||
echo "gitea_create_repo: se requieren owner y name" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
local payload
|
||||
payload=$(printf '{"name":"%s","private":%s,"description":"%s","auto_init":false}' \
|
||||
"$name" "$private" "$description")
|
||||
|
||||
echo "gitea_create_repo: intentando crear '$owner/$name' en org..." >&2
|
||||
|
||||
local response http_code
|
||||
response=$(curl -s -w "\n%{http_code}" \
|
||||
-X POST \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: token ${GITEA_TOKEN}" \
|
||||
-d "$payload" \
|
||||
"${GITEA_URL}/api/v1/orgs/${owner}/repos")
|
||||
|
||||
http_code=$(echo "$response" | tail -n1)
|
||||
local body
|
||||
body=$(echo "$response" | head -n -1)
|
||||
|
||||
if [[ "$http_code" == "201" ]]; then
|
||||
echo "gitea_create_repo: repo '$owner/$name' creado en org" >&2
|
||||
echo "$body"
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [[ "$http_code" == "409" ]]; then
|
||||
echo "gitea_create_repo: repo '$owner/$name' ya existe (409)" >&2
|
||||
echo "$body"
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [[ "$http_code" == "404" || "$http_code" == "422" ]]; then
|
||||
echo "gitea_create_repo: org no encontrada (${http_code}), intentando en usuario..." >&2
|
||||
response=$(curl -s -w "\n%{http_code}" \
|
||||
-X POST \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: token ${GITEA_TOKEN}" \
|
||||
-d "$payload" \
|
||||
"${GITEA_URL}/api/v1/user/repos")
|
||||
|
||||
http_code=$(echo "$response" | tail -n1)
|
||||
body=$(echo "$response" | head -n -1)
|
||||
|
||||
if [[ "$http_code" == "201" ]]; then
|
||||
echo "gitea_create_repo: repo '$owner/$name' creado en usuario" >&2
|
||||
echo "$body"
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [[ "$http_code" == "409" ]]; then
|
||||
echo "gitea_create_repo: repo '$owner/$name' ya existe (409)" >&2
|
||||
echo "$body"
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo "gitea_create_repo: error al crear en usuario (HTTP ${http_code}): ${body}" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "gitea_create_repo: error inesperado (HTTP ${http_code}): ${body}" >&2
|
||||
return 1
|
||||
}
|
||||
Reference in New Issue
Block a user