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/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 | | ||||
| | `source bin/github_login.sh` | Inicia/cierra sesión en GitHub usando tokens encriptados con SOPS | | ||||
| | `bin/forgejo_login.sh` | Inicia/cierra sesión en Forgejo usando tokens encriptados con SOPS | | ||||
| | `bin/cversion_token.sh` | Gestiona tokens de acceso para plataformas de control de versiones de forma segura | | ||||
| 
 | ||||
| ### 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 | ||||
| - 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 | ||||
| # Iniciar sesión en Forgejo usando el token encriptado | ||||
| source bin/forgejo_login.sh | ||||
| bin/forgejo_login.sh | ||||
| 
 | ||||
| # Cerrar sesión de Forgejo | ||||
| source 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 | ||||
| bin/forgejo_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 | ||||
| - Desencripta automáticamente el token usando SOPS | ||||
| - Detecta la URL de Forgejo basándose en la configuración de git | ||||
| - Configura la variable BERG_BASE_URL con la URL detectada | ||||
| - 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 | ||||
| 
 | ||||
| Para respaldar configuraciones importantes: | ||||
|  |  | |||
|  | @ -31,6 +31,8 @@ BIN_BASE="bin" | |||
| BIN_LIBS="lib" | ||||
| BIN_MESG="msg" | ||||
| 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 | ||||
| if [ -f "$SCRIPT_DIR/$BIN_CFGS/devspath.dat" ]; then | ||||
|  | @ -39,8 +41,7 @@ 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} | ||||
|  |  | |||
|  | @ -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>  | ||||
| Creación: 2025-03-12 | ||||
| Actualización: 2025-03-12 | ||||
| Versión: 1.2.0 | ||||
| Versión: 1.0 | ||||
| Licencia: AGPL | ||||
| """ | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue