124 lines
4.0 KiB
Markdown
124 lines
4.0 KiB
Markdown
# 🧠 git-subir — Instalador autosuficiente para subir cambios vía Git con autenticación segura
|
|
|
|
Este proyecto instala el comando `git subir`, que encapsula `git push` con autenticación segura, tolerancia a errores y configuración automática del entorno. Está diseñado para entornos reales, con portabilidad, robustez y experiencia de usuario optimizada.
|
|
|
|
---
|
|
|
|
## ✅ Funcionalidades incluidas
|
|
|
|
| Funcionalidad | Estado |
|
|
|---------------|--------|
|
|
| Solicitud y validación de credenciales | ✅ |
|
|
| Cifrado con OpenSSL (AES-256-CBC + PBKDF2) | ✅ |
|
|
| Cambio de contraseña de cifrado (`--cambiar-clave`) | ✅ |
|
|
| Reconfiguración completa (`--reconfigurar`) | ✅ |
|
|
| Generación automática del script `git-subir` | ✅ |
|
|
| Instalación en `~/.local/bin` | ✅ |
|
|
| Alias `git subir` vía `git config --global` | ✅ |
|
|
| Verificación y corrección de `$PATH` | ✅ |
|
|
| Inicialización de repositorio si no existe | ✅ |
|
|
| Configuración automática de upstream | ✅ |
|
|
| Mensajes claros y tolerancia a errores | ✅ |
|
|
|
|
---
|
|
|
|
## 📦 Requisitos
|
|
|
|
- Git instalado y accesible desde la terminal
|
|
- `curl` para validación de credenciales vía API
|
|
- `openssl` para cifrado seguro (AES-256-CBC + PBKDF2)
|
|
- Shell compatible (`bash` o `zsh`)
|
|
- Acceso a la API de Gitea (o compatible con GitHub/GitLab si se adapta el endpoint)
|
|
|
|
---
|
|
|
|
## 🚀 Instalación
|
|
|
|
1. Cloná el repositorio o descargá el script `instalar-subir.sh`
|
|
2. Ejecutá el instalador:
|
|
|
|
```bash
|
|
chmod +x instalar-subir.sh
|
|
./instalar-subir.sh
|
|
|
|
|
|
# 🧠 git-subir — Instalador autosuficiente para subir cambios vía Git con autenticación segura
|
|
|
|
Este proyecto instala el comando `git subir`, que encapsula `git push` con autenticación segura, tolerancia a errores y configuración automática del entorno. Está diseñado para entornos reales, con portabilidad, robustez y experiencia de usuario optimizada.
|
|
|
|
---
|
|
|
|
## ✅ Funcionalidades incluidas
|
|
|
|
| Funcionalidad | Estado |
|
|
|---------------|--------|
|
|
| Solicitud y validación de credenciales | ✅ |
|
|
| Cifrado con OpenSSL (AES-256-CBC + PBKDF2) | ✅ |
|
|
| Cambio de contraseña de cifrado (`--cambiar-clave`) | ✅ |
|
|
| Reconfiguración completa (`--reconfigurar`) | ✅ |
|
|
| Generación automática del script `git-subir` | ✅ |
|
|
| Instalación en `~/.local/bin` | ✅ |
|
|
| Alias `git subir` vía `git config --global` | ✅ |
|
|
| Verificación y corrección de `$PATH` | ✅ |
|
|
| Inicialización de repositorio si no existe | ✅ |
|
|
| Configuración automática de upstream | ✅ |
|
|
| Mensajes claros y tolerancia a errores | ✅ |
|
|
|
|
---
|
|
|
|
## 📦 Requisitos
|
|
|
|
- Git instalado y accesible desde la terminal
|
|
- `curl` para validación de credenciales vía API
|
|
- `openssl` para cifrado seguro (AES-256-CBC + PBKDF2)
|
|
- Shell compatible (`bash` o `zsh`)
|
|
- Acceso a la API de Gitea (o compatible con GitHub/GitLab si se adapta el endpoint)
|
|
|
|
---
|
|
|
|
## 🚀 Instalación
|
|
|
|
1. Cloná el repositorio o descargá el script `instalar-subir.sh`
|
|
2. Ejecutá el instalador:
|
|
|
|
```bash
|
|
chmod +x instalar-subir.sh
|
|
./instalar-subir.sh
|
|
|
|
source ~/.bashrc # o ~/.zshrc según tu shell
|
|
|
|
Uso
|
|
bash
|
|
git subir
|
|
Sube los cambios al remoto configurado, validando credenciales y configurando upstream si es necesario.
|
|
|
|
Opciones avanzadas
|
|
bash
|
|
git subir --reconfigurar
|
|
🔄 Permite cambiar usuario, token, URL y contraseña de cifrado.
|
|
|
|
bash
|
|
git subir --cambiar-clave
|
|
🔐 Cambia solo la contraseña de cifrado sin tocar usuario/token.
|
|
|
|
🔐 Seguridad
|
|
Las credenciales se cifran con AES-256-CBC + PBKDF2 usando OpenSSL
|
|
|
|
El archivo de configuración se guarda en ~/.config/git-subir.conf
|
|
|
|
La contraseña de cifrado nunca se guarda, se solicita en cada ejecución
|
|
|
|
El script tolera errores de autenticación, PATH, upstream y configuración
|
|
|
|
📁 Desinstalación
|
|
Si querés eliminar todo:
|
|
|
|
bash
|
|
rm ~/.local/bin/git-subir
|
|
git config --global --unset alias.subir
|
|
rm ~/.config/git-subir.conf
|
|
🧪 Estado del proyecto
|
|
Listo para producción. Validado en entornos bash, zsh, root, y con múltiples configuraciones de Git. Diseñado para ser portable, seguro y fácil de mantener.
|
|
|
|
|