Compare commits
	
		
			No commits in common. "c2e059a1905d0262dc2bafed6a2e71cb27c4187b" and "593cd5ed8c972892483fdbc731b9fc3530635946" have entirely different histories.
		
	
	
		
			c2e059a190
			...
			593cd5ed8c
		
	
		
					 4 changed files with 10 additions and 148 deletions
				
			
		
							
								
								
									
										22
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								README.md
									
									
									
									
									
								
							|  | @ -68,8 +68,7 @@ bin/update.sh | ||||||
| |---------|-------------| | |---------|-------------| | ||||||
| | `bin/ghadmin_install.sh` | Instala GitHub CLI (gh) con soporte multiplataforma | | | `bin/ghadmin_install.sh` | Instala GitHub CLI (gh) con soporte multiplataforma | | ||||||
| | `bin/gladmin_install.sh` | Instala GitLab CLI (glab) con múltiples métodos de instalación | | | `bin/gladmin_install.sh` | Instala GitLab CLI (glab) con múltiples métodos de instalación | | ||||||
| | `source bin/forgejo_login.sh` | Inicia/cierra sesión en Forgejo usando tokens encriptados con SOPS | | | `bin/forgejo_login.sh` | Inicia/cierra sesión en Forgejo usando tokens encriptados con SOPS | | ||||||
| | `source bin/github_login.sh` | Inicia/cierra sesión en GitHub usando tokens encriptados con SOPS | |  | ||||||
| | `bin/cversion_token.sh` | Gestiona tokens de acceso para plataformas de control de versiones de forma segura | | | `bin/cversion_token.sh` | Gestiona tokens de acceso para plataformas de control de versiones de forma segura | | ||||||
| 
 | 
 | ||||||
| ### Seguridad y Acceso | ### Seguridad y Acceso | ||||||
|  | @ -195,34 +194,23 @@ Este script proporciona una interfaz para gestionar tokens de acceso para difere | ||||||
| - Incluye verificación de formato y seguridad de tokens | - Incluye verificación de formato y seguridad de tokens | ||||||
| - Gestiona automáticamente permisos para archivos de tokens | - Gestiona automáticamente permisos para archivos de tokens | ||||||
| 
 | 
 | ||||||
| #### Autenticación con Forgejo y GitHub usando token encriptado | #### Autenticación con Forgejo usando token encriptado | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| # Iniciar sesión en Forgejo usando el token encriptado | # Iniciar sesión en Forgejo usando el token encriptado | ||||||
| source bin/forgejo_login.sh | bin/forgejo_login.sh | ||||||
| 
 | 
 | ||||||
| # Cerrar sesión de Forgejo | # Cerrar sesión de Forgejo | ||||||
| source bin/forgejo_login.sh --logout | bin/forgejo_login.sh --logout | ||||||
| 
 |  | ||||||
| # Iniciar sesión en GitHub usando el token encriptado |  | ||||||
| source bin/github_login.sh |  | ||||||
| 
 |  | ||||||
| # Cerrar sesión de GitHub |  | ||||||
| source bin/github_login.sh --logout |  | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| El script de Forgejo facilita la autenticación con Forgejo/Codeberg CLI (berg): | Este script facilita la autenticación con Forgejo/Codeberg CLI (berg): | ||||||
| - Utiliza el token almacenado y encriptado por cversion_token.sh | - Utiliza el token almacenado y encriptado por cversion_token.sh | ||||||
| - Desencripta automáticamente el token usando SOPS | - Desencripta automáticamente el token usando SOPS | ||||||
| - Detecta la URL de Forgejo basándose en la configuración de git | - Detecta la URL de Forgejo basándose en la configuración de git | ||||||
| - Configura la variable BERG_BASE_URL con la URL detectada | - Configura la variable BERG_BASE_URL con la URL detectada | ||||||
| - Proporciona opciones para login (por defecto) y logout | - Proporciona opciones para login (por defecto) y logout | ||||||
| 
 | 
 | ||||||
| El script de GitHub facilita la autenticación con GitHub CLI (gh): |  | ||||||
| - Utiliza el token almacenado y encriptado por cversion_token.sh |  | ||||||
| - Desencripta automáticamente el token usando SOPS |  | ||||||
| - Proporciona opciones para login (por defecto) y logout |  | ||||||
| 
 |  | ||||||
| ### Copias de Seguridad | ### Copias de Seguridad | ||||||
| 
 | 
 | ||||||
| Para respaldar configuraciones importantes: | Para respaldar configuraciones importantes: | ||||||
|  |  | ||||||
|  | @ -31,6 +31,8 @@ BIN_BASE="bin" | ||||||
| BIN_LIBS="lib" | BIN_LIBS="lib" | ||||||
| BIN_MESG="msg" | BIN_MESG="msg" | ||||||
| BIN_CFGS="config" | BIN_CFGS="config" | ||||||
|  | VERSION=$(cat "$BIN_HOME/$BIN_BASE/$BIN_CFGS/version") | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| # Leer DEVSPATH desde el archivo de configuración o usar "devs" por defecto | # Leer DEVSPATH desde el archivo de configuración o usar "devs" por defecto | ||||||
| if [ -f "$SCRIPT_DIR/$BIN_CFGS/devspath.dat" ]; then | if [ -f "$SCRIPT_DIR/$BIN_CFGS/devspath.dat" ]; then | ||||||
|  | @ -39,8 +41,7 @@ else | ||||||
|   DEVSPATH="devs" |   DEVSPATH="devs" | ||||||
| fi | fi | ||||||
| BIN_HOME="$HOME/$DEVSPATH" | BIN_HOME="$HOME/$DEVSPATH" | ||||||
| VERSION=$(cat "$BIN_HOME/$BIN_BASE/$BIN_CFGS/version") | 
 | ||||||
| BIN_PATH=$BIN_HOME/$BIN_BASE |  | ||||||
| 
 | 
 | ||||||
| # CHECK SHELL LANGUAGE | # CHECK SHELL LANGUAGE | ||||||
| BIN_LANG=${LANG:0:2} | BIN_LANG=${LANG:0:2} | ||||||
|  |  | ||||||
|  | @ -1,127 +0,0 @@ | ||||||
| #!/bin/bash |  | ||||||
| #Script     	: github_login.sh |  | ||||||
| #Apps			: MRDEVS TOOLS |  | ||||||
| #Description	: Conectar con GitHub usando tokens encriptado |  | ||||||
| #Author			: Cortana Rosero One <cortana@rosero.one> |  | ||||||
| #Generated by	: Claude Code (claude-3-7-sonnet-20250219) |  | ||||||
| #Created		: 2025/03/20 10:58:42 |  | ||||||
| #Modified		: 2025/03/20 11:01:35 |  | ||||||
| #Version		: 1.0.0 |  | ||||||
| #Use Notes		: |  | ||||||
| #============================================================================== |  | ||||||
| # Derechos de Autor [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/>. |  | ||||||
| 
 |  | ||||||
| # Configuración inicial |  | ||||||
| SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" |  | ||||||
| BIN_BASE="bin" |  | ||||||
| BIN_LIBS="lib" |  | ||||||
| BIN_MESG="msg" |  | ||||||
| BIN_CFGS="config" |  | ||||||
| 
 |  | ||||||
| # Leer DEVSPATH desde el archivo de configuración o usar "devs" por defecto |  | ||||||
| if [ -f "$SCRIPT_DIR/$BIN_CFGS/devspath.dat" ]; then |  | ||||||
|   DEVSPATH=$(cat "$SCRIPT_DIR/$BIN_CFGS/devspath.dat") |  | ||||||
| else |  | ||||||
|   DEVSPATH="devs" |  | ||||||
| fi |  | ||||||
| BIN_HOME="$HOME/$DEVSPATH" |  | ||||||
| VERSION=$(cat "$BIN_HOME/$BIN_BASE/$BIN_CFGS/version") |  | ||||||
| BIN_PATH=$BIN_HOME/$BIN_BASE |  | ||||||
| 
 |  | ||||||
| # CHECK SHELL LANGUAGE |  | ||||||
| BIN_LANG=${LANG:0:2} |  | ||||||
| 
 |  | ||||||
| # Importar bibliotecas necesarias |  | ||||||
| source "${BIN_HOME}/${BIN_BASE}/${BIN_LIBS}/base.lib" |  | ||||||
| 
 |  | ||||||
| # Cargar mensajes en el idioma del sistema o español por defecto |  | ||||||
| load_messages "${BIN_HOME}/${BIN_BASE}" "${BIN_MESG}" "${BIN_LANG}" "head" |  | ||||||
| load_messages "${BIN_HOME}/${BIN_BASE}" "${BIN_MESG}" "${BIN_LANG}" "developers" |  | ||||||
| 
 |  | ||||||
| # Variables globales |  | ||||||
| title="${head_000} INICIO DE SESIÓN EN GITHUB" |  | ||||||
| 
 |  | ||||||
| # Función para verificar si gh está instalado |  | ||||||
| check_gh_installed() { |  | ||||||
|   if ! command -v gh &> /dev/null; then |  | ||||||
|     echo "Error: gh (GitHub CLI) no está instalado." |  | ||||||
|     echo "Por favor, ejecute ${BIN_HOME}/${BIN_BASE}/ghadmin_install.sh primero." |  | ||||||
|     exit 1 |  | ||||||
|   fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # Función para verificar si SOPS está instalado |  | ||||||
| check_sops_installed() { |  | ||||||
|   if ! command -v sops &> /dev/null; then |  | ||||||
|     echo "Error: SOPS no está instalado." |  | ||||||
|     echo "Por favor, ejecute bin/bootstrap.sh para instalar las herramientas necesarias." |  | ||||||
|     exit 1 |  | ||||||
|   fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| # Función para iniciar sesión con token |  | ||||||
| login() { |  | ||||||
|   # Verificar que el archivo de token encriptado existe |  | ||||||
|   if [ ! -f "${DEVELOPER_DIR}/github.sops.yaml" ]; then |  | ||||||
|     echo "Error: No se encontró el archivo de token para GitHub." |  | ||||||
|     echo "Por favor, ejecute bin/cversadm_token.sh para configurar el token primero." |  | ||||||
|     exit 1 |  | ||||||
|   fi |  | ||||||
|    |  | ||||||
|   # Decodificar el token de base64 |  | ||||||
|   local token=$(sops -d ${DEVELOPER_DIR}/github.sops.yaml | grep -oP '(?<=token: ).*' | base64 -d) |  | ||||||
|     |  | ||||||
|   # Iniciar sesión con gh |  | ||||||
|   echo "Iniciando sesión en GitHub..." |  | ||||||
|   echo "$token" | gh auth login --with-token |  | ||||||
|   local login_status=$? |  | ||||||
|    |  | ||||||
|   if [ $login_status -eq 0 ]; then |  | ||||||
|     echo "Sesión iniciada correctamente en GitHub." |  | ||||||
|   else |  | ||||||
|     echo "Error al iniciar sesión en GitHub. Por favor, verifique su token." |  | ||||||
|     exit 1 |  | ||||||
|   fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # Función para cerrar sesión |  | ||||||
| logout() { |  | ||||||
|   echo "Cerrando sesión de GitHub..." |  | ||||||
|   if ! gh auth status &>/dev/null; then |  | ||||||
|     echo "No hay sesión activa en GitHub." |  | ||||||
|   else |  | ||||||
|     gh auth logout -h github.com |  | ||||||
|     echo "Sesión cerrada." |  | ||||||
|   fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # Función principal |  | ||||||
| main() { |  | ||||||
|   # Verificar requisitos |  | ||||||
|   check_gh_installed |  | ||||||
|   check_sops_installed |  | ||||||
|    |  | ||||||
|   # Verificar parámetros |  | ||||||
|   if [ "$1" = "--logout" ]; then |  | ||||||
|     logout |  | ||||||
|   else |  | ||||||
|     login |  | ||||||
|   fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # Ejecutar función principal con los parámetros recibidos |  | ||||||
| main "$@" |  | ||||||
|  | @ -6,7 +6,7 @@ Descripción: Actualiza las tarifas por hora de diferentes tipos de programadore | ||||||
| Autor: Mauro Rosero P. <mauro@rosero.one>  | Autor: Mauro Rosero P. <mauro@rosero.one>  | ||||||
| Creación: 2025-03-12 | Creación: 2025-03-12 | ||||||
| Actualización: 2025-03-12 | Actualización: 2025-03-12 | ||||||
| Versión: 1.2.0 | Versión: 1.0 | ||||||
| Licencia: AGPL | Licencia: AGPL | ||||||
| """ | """ | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue