[REMOVED] Eliminar todas las referencias a versadm_token.sh del README.md
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
48b4316c90
commit
f47f2ac199
2 changed files with 0 additions and 262 deletions
17
README.md
17
README.md
|
@ -67,7 +67,6 @@ bin/update.sh
|
||||||
| `bin/ghcli_install.sh` | Instala GitHub CLI (gh) con soporte multiplataforma |
|
| `bin/ghcli_install.sh` | Instala GitHub CLI (gh) con soporte multiplataforma |
|
||||||
| `bin/glcli_install.sh` | Instala GitLab CLI (glab) con múltiples métodos de instalación |
|
| `bin/glcli_install.sh` | Instala GitLab CLI (glab) con múltiples métodos de instalación |
|
||||||
| `bin/fjcli_install.sh` | Instala Forgejo/Codeberg CLI vía Cargo |
|
| `bin/fjcli_install.sh` | Instala Forgejo/Codeberg CLI vía Cargo |
|
||||||
| `bin/versadm_token.sh` | Administrador avanzado de tokens para plataformas de control de versiones |
|
|
||||||
|
|
||||||
### Seguridad y Acceso
|
### Seguridad y Acceso
|
||||||
|
|
||||||
|
@ -185,22 +184,6 @@ El script instala la CLI mediante Cargo (el gestor de paquetes de Rust):
|
||||||
- Verifica si Cargo está instalado y lo instala si es necesario
|
- Verifica si Cargo está instalado y lo instala si es necesario
|
||||||
- Instala codeberg-cli que es compatible con servidores Forgejo
|
- Instala codeberg-cli que es compatible con servidores Forgejo
|
||||||
|
|
||||||
#### Administrador de tokens para control de versiones
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Interfaz completa para gestión de tokens
|
|
||||||
bin/versadm_token.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
Este script proporciona una interfaz completa e interactiva para gestionar tokens de acceso a plataformas de control de versiones:
|
|
||||||
- Interfaz TUI con menús y diálogos intuitivos
|
|
||||||
- Muestra un indicador visual de tokens ya configurados
|
|
||||||
- Verifica si las CLIs están instaladas y ofrece instalarlas si faltan
|
|
||||||
- Configura y almacena tokens de acceso cifrados con SOPS en ~/.developer
|
|
||||||
- Incluye un botón de Ayuda con guías detalladas para cada plataforma
|
|
||||||
- Ofrece opciones para probar y eliminar tokens configurados
|
|
||||||
- Compatible con GitHub, GitLab y Forgejo/Codeberg
|
|
||||||
|
|
||||||
Para aprender a usar Codeberg CLI (compatible con Forgejo), consulta la [documentación en el repositorio de Codeberg CLI](https://codeberg.org/RobWalt/codeberg-cli).
|
Para aprender a usar Codeberg CLI (compatible con Forgejo), consulta la [documentación en el repositorio de Codeberg CLI](https://codeberg.org/RobWalt/codeberg-cli).
|
||||||
|
|
||||||
### Copias de Seguridad
|
### Copias de Seguridad
|
||||||
|
|
|
@ -1,245 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# Script: forgejo_project.sh
|
|
||||||
# Description: Crea un proyecto en Forgejo y configura el repositorio local
|
|
||||||
# Modified: 2025-03-13 14:20:00
|
|
||||||
# Derechos de Autor (C) [2025] [Mauro Rosero P. <mauro@rosero.one>]
|
|
||||||
#
|
|
||||||
# Este programa es software libre: usted puede redistribuirlo y/o modificarlo
|
|
||||||
# bajo los términos de la Licencia Pública Affero General de GNU tal como
|
|
||||||
# lo publica la Free Software Foundation, ya sea la versión 3 de la licencia,
|
|
||||||
# o (a su elección) cualquier versión posterior.
|
|
||||||
#
|
|
||||||
# Este programa se distribuye con la esperanza de que sea útil,
|
|
||||||
# pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de
|
|
||||||
# COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la
|
|
||||||
# Licencia Pública Affero General de GNU para obtener más detalles.
|
|
||||||
#
|
|
||||||
# Debería haber recibido una copia de la Licencia Pública Affero General
|
|
||||||
# junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
# Directorios base
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
||||||
BASE_DIR="$(dirname "$SCRIPT_DIR")"
|
|
||||||
CONFIG_DIR="$SCRIPT_DIR/config"
|
|
||||||
LIB_DIR="$SCRIPT_DIR/lib"
|
|
||||||
MSG_DIR="$SCRIPT_DIR/msg"
|
|
||||||
|
|
||||||
# Cargar libraries
|
|
||||||
source "$LIB_DIR/base.lib"
|
|
||||||
source "$LIB_DIR/console.lib"
|
|
||||||
source "$LIB_DIR/developers.lib"
|
|
||||||
source "$MSG_DIR/head.es"
|
|
||||||
|
|
||||||
# Función para mostrar ayuda
|
|
||||||
function show_help() {
|
|
||||||
echo "Uso: $0 [opciones]"
|
|
||||||
echo ""
|
|
||||||
echo "Crea un nuevo proyecto en Forgejo y opcionalmente lo vincula con un repositorio local."
|
|
||||||
echo ""
|
|
||||||
echo "Opciones:"
|
|
||||||
echo " -n, --name NOMBRE Nombre del proyecto (obligatorio)"
|
|
||||||
echo " -d, --desc DESCRIPCION Descripción del proyecto (obligatorio)"
|
|
||||||
echo " -p, --path RUTA Ruta local del proyecto (opcional)"
|
|
||||||
echo " -v, --visibility TIPO Visibilidad: 'public' o 'private' (por defecto: private)"
|
|
||||||
echo " -h, --help Muestra esta ayuda"
|
|
||||||
echo ""
|
|
||||||
echo "Ejemplos:"
|
|
||||||
echo " $0 --name mi-proyecto --desc \"Mi nuevo proyecto\" --visibility public"
|
|
||||||
echo " $0 -n mi-proyecto -d \"Mi nuevo proyecto\" -p /ruta/al/proyecto"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Variables para los argumentos
|
|
||||||
PROJECT_NAME=""
|
|
||||||
PROJECT_DESC=""
|
|
||||||
PROJECT_PATH=""
|
|
||||||
VISIBILITY="private"
|
|
||||||
|
|
||||||
# Procesar argumentos
|
|
||||||
while [[ $# -gt 0 ]]; do
|
|
||||||
case $1 in
|
|
||||||
-n|--name)
|
|
||||||
PROJECT_NAME="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-d|--desc)
|
|
||||||
PROJECT_DESC="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-p|--path)
|
|
||||||
PROJECT_PATH="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-v|--visibility)
|
|
||||||
VISIBILITY="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-h|--help)
|
|
||||||
show_help
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Error: Opción desconocida $1"
|
|
||||||
show_help
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
# Verificar argumentos obligatorios
|
|
||||||
if [ -z "$PROJECT_NAME" ]; then
|
|
||||||
echo "Error: Debe especificar un nombre de proyecto con --name"
|
|
||||||
show_help
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$PROJECT_DESC" ]; then
|
|
||||||
echo "Error: Debe especificar una descripción de proyecto con --desc"
|
|
||||||
show_help
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Verificar ruta del proyecto si se proporciona
|
|
||||||
if [ -n "$PROJECT_PATH" ] && [ ! -d "$PROJECT_PATH" ]; then
|
|
||||||
echo "Error: La ruta del proyecto especificada no existe: $PROJECT_PATH"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Validar visibilidad
|
|
||||||
if [ "$VISIBILITY" != "private" ] && [ "$VISIBILITY" != "public" ]; then
|
|
||||||
echo "Advertencia: Valor de visibilidad inválido. Usando 'private' por defecto."
|
|
||||||
VISIBILITY="private"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Mostrar confirmación
|
|
||||||
echo "Creando proyecto en Forgejo:"
|
|
||||||
echo " Nombre: $PROJECT_NAME"
|
|
||||||
echo " Descripción: $PROJECT_DESC"
|
|
||||||
echo " Visibilidad: $VISIBILITY"
|
|
||||||
if [ -n "$PROJECT_PATH" ]; then
|
|
||||||
echo " Ruta local: $PROJECT_PATH"
|
|
||||||
fi
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Preguntar confirmación
|
|
||||||
read -p "¿Desea continuar? (s/n): " CONFIRM
|
|
||||||
if [[ ! "$CONFIRM" =~ ^[Ss]$ ]]; then
|
|
||||||
echo "Operación cancelada."
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Crear el proyecto en Forgejo
|
|
||||||
forgejo_create_project "$PROJECT_NAME" "$PROJECT_DESC" "$VISIBILITY" "$PROJECT_PATH"
|
|
||||||
RESULT=$?
|
|
||||||
|
|
||||||
# Manejar resultado
|
|
||||||
case $RESULT in
|
|
||||||
0)
|
|
||||||
echo "Proyecto creado exitosamente en Forgejo."
|
|
||||||
if [ -f "$HOME/.developer/${PROJECT_NAME}.repo" ]; then
|
|
||||||
REPO_URL=$(cat "$HOME/.developer/${PROJECT_NAME}.repo")
|
|
||||||
if [ -n "$PROJECT_PATH" ]; then
|
|
||||||
echo "El repositorio local ha sido configurado y enlazado con Forgejo."
|
|
||||||
echo "URL del repositorio: $REPO_URL"
|
|
||||||
else
|
|
||||||
echo "URL del repositorio: $REPO_URL"
|
|
||||||
echo "Para clonar el repositorio:"
|
|
||||||
echo " git clone $REPO_URL"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "AVISO: No se pudo obtener la URL del repositorio."
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
10)
|
|
||||||
echo "Error: Faltan parámetros obligatorios."
|
|
||||||
;;
|
|
||||||
11)
|
|
||||||
echo "Error: No se pudo configurar el acceso a Forgejo."
|
|
||||||
echo "Ejecute este script en modo interactivo para configurar su token de acceso."
|
|
||||||
;;
|
|
||||||
12)
|
|
||||||
echo "Error: Token de Forgejo no disponible o inválido."
|
|
||||||
echo "Por favor, verifique o actualice su token en: $FORGEJO_CONFIG_FILE"
|
|
||||||
|
|
||||||
# Verificar mensaje de error
|
|
||||||
if [ -f "$HOME/.developer/${PROJECT_NAME}.error" ]; then
|
|
||||||
echo "Detalles del error:"
|
|
||||||
cat "$HOME/.developer/${PROJECT_NAME}.error"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "Para generar un nuevo token en Forgejo:"
|
|
||||||
FORGEJO_BASE_URL=$(echo "$FORGEJO_API_URL" | sed -E 's|/api/v1||')
|
|
||||||
echo "1. Inicie sesión en $FORGEJO_BASE_URL"
|
|
||||||
echo "2. Vaya a Configuración → Aplicaciones"
|
|
||||||
echo "3. Genere un nuevo token de acceso personal"
|
|
||||||
echo "4. Asegúrese de darle permisos de lectura/escritura para repositorios"
|
|
||||||
;;
|
|
||||||
13)
|
|
||||||
echo "Error: No se pudo crear el proyecto en Forgejo."
|
|
||||||
echo "Comprobando posibles problemas:"
|
|
||||||
|
|
||||||
# Verificar configuración
|
|
||||||
if [ -f "$FORGEJO_CONFIG_FILE" ]; then
|
|
||||||
echo "✓ Archivo de configuración encontrado en: $FORGEJO_CONFIG_FILE"
|
|
||||||
echo "✓ Verificando token..."
|
|
||||||
# No mostramos el token por seguridad, solo si existe
|
|
||||||
grep -q "FORGEJO_TOKEN=" "$FORGEJO_CONFIG_FILE" && echo " ✓ Token encontrado" || echo " ✗ Token no encontrado"
|
|
||||||
else
|
|
||||||
echo "✗ Archivo de configuración no encontrado"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Verificar conectividad
|
|
||||||
echo "✓ Probando conectividad con Forgejo..."
|
|
||||||
FORGEJO_HOST=$(echo "$FORGEJO_API_URL" | sed -E 's|https?://([^/]+)/.*|\1|')
|
|
||||||
if ping -c 1 -W 2 "$FORGEJO_HOST" > /dev/null 2>&1; then
|
|
||||||
echo " ✓ Conectividad básica OK"
|
|
||||||
echo " ℹ Comprobando servicio en puerto 443..."
|
|
||||||
# Verificar puertos web abiertos (HTTP y HTTPS)
|
|
||||||
if nc -z -w 2 "$FORGEJO_HOST" 80 2>/dev/null; then
|
|
||||||
echo " ✓ Puerto 80 (HTTP) accesible"
|
|
||||||
echo " ℹ Intentando conexión HTTP..."
|
|
||||||
CURL_OUTPUT=$(mktemp)
|
|
||||||
curl -s -v -o "$CURL_OUTPUT" --connect-timeout 5 "http://$FORGEJO_HOST/api/v1/version" 2>&1 | grep -i "HTTP\|ssl\|TLS\|error"
|
|
||||||
cat "$CURL_OUTPUT" 2>/dev/null | head -10
|
|
||||||
rm -f "$CURL_OUTPUT" 2>/dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
if nc -z -w 2 "$FORGEJO_HOST" 443 2>/dev/null; then
|
|
||||||
echo " ✓ Puerto 443 (HTTPS) accesible"
|
|
||||||
echo " ℹ Intentando conexión HTTPS segura..."
|
|
||||||
CURL_OUTPUT=$(mktemp)
|
|
||||||
curl -s -v -o "$CURL_OUTPUT" --connect-timeout 5 "https://$FORGEJO_HOST/api/v1/version" 2>&1 | grep -i "HTTP\|ssl\|TLS\|error"
|
|
||||||
echo " ℹ Intentando conexión HTTPS ignorando certificado..."
|
|
||||||
curl -s -v -k -o "$CURL_OUTPUT" --connect-timeout 5 "https://$FORGEJO_HOST/api/v1/version" 2>&1 | grep -i "HTTP\|ssl\|TLS\|error"
|
|
||||||
cat "$CURL_OUTPUT" 2>/dev/null | head -10
|
|
||||||
rm -f "$CURL_OUTPUT" 2>/dev/null
|
|
||||||
else
|
|
||||||
echo " ✗ Puerto 443 (HTTPS) no accesible"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo " ✗ No se puede conectar con el servidor $FORGEJO_HOST"
|
|
||||||
echo " ℹ Comprobando posible problema de DNS..."
|
|
||||||
host "$FORGEJO_HOST" 2>/dev/null && echo " ✓ Resolución DNS OK" || echo " ✗ Problema de resolución DNS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Verificar errores de curl
|
|
||||||
if [ -f "/tmp/curl_error.log" ]; then
|
|
||||||
echo "✓ Detalles de la solicitud:"
|
|
||||||
cat /tmp/curl_error.log
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Verificar mensaje de error
|
|
||||||
if [ -f "$HOME/.developer/${PROJECT_NAME}.error" ]; then
|
|
||||||
echo "✓ Respuesta de error del servidor:"
|
|
||||||
cat "$HOME/.developer/${PROJECT_NAME}.error"
|
|
||||||
else
|
|
||||||
echo "✗ No se guardó respuesta de error"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Error desconocido (código $RESULT)."
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit $RESULT
|
|
Loading…
Reference in a new issue