Auto-commit
This commit is contained in:
160
README.md
160
README.md
@ -1,99 +1,123 @@
|
||||
# 🚀 git-subir
|
||||
# 🧠 git-subir — Instalador autosuficiente para subir cambios vía Git con autenticación segura
|
||||
|
||||
Script CLI para automatizar el push de cambios a repositorios Gitea con autenticación segura, configuración automática de remotos, commits interactivos, recuperación ante errores y cifrado opcional de credenciales.
|
||||
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.
|
||||
|
||||
---
|
||||
|
||||
## 📦 Archivos incluidos
|
||||
## ✅ Funcionalidades incluidas
|
||||
|
||||
| Archivo | Descripción |
|
||||
|------------------------|-----------------------------------------------------------------------------|
|
||||
| `instalar-subir.sh` | Instalador interactivo que configura credenciales, instala el comando global `git-subir` y valida entorno. |
|
||||
| `git-subir` | Script principal que automatiza el flujo de push, commits, configuración de remotos y recuperación ante errores. |
|
||||
| `desinstalar-subir.sh` | Elimina el binario instalado y la configuración/credenciales guardadas. |
|
||||
| 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
|
||||
## 📦 Requisitos
|
||||
|
||||
- Bash 4+
|
||||
- Git instalado y configurado
|
||||
- `curl`, `jq`, `openssl` disponibles en el sistema
|
||||
- Acceso a un servidor Gitea con token o usuario/contraseña válidos
|
||||
- Carpeta `~/.local/bin` incluida en el `$PATH`
|
||||
- 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
|
||||
## 🚀 Instalación
|
||||
|
||||
```bash
|
||||
chmod +x instalar-subir.sh
|
||||
./instalar-subir.sh
|
||||
1. Cloná el repositorio o descargá el script `instalar-subir.sh`
|
||||
2. Ejecutá el instalador:
|
||||
|
||||
Durante la instalación se te pedirá:
|
||||
```bash
|
||||
chmod +x instalar-subir.sh
|
||||
./instalar-subir.sh
|
||||
|
||||
URL base del servidor Gitea (ej: https://gitea.midominio.com)
|
||||
|
||||
Usuario y contraseña o token
|
||||
# 🧠 git-subir — Instalador autosuficiente para subir cambios vía Git con autenticación segura
|
||||
|
||||
Si querés cifrar las credenciales (usando AES-256-CBC con PBKDF2)
|
||||
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.
|
||||
|
||||
Confirmación para instalar git-subir como comando global
|
||||
---
|
||||
|
||||
El script valida las credenciales contra la API de Gitea antes de continuar.
|
||||
## ✅ Funcionalidades incluidas
|
||||
|
||||
🚀 Uso
|
||||
Una vez instalado, podés usar git-subir desde cualquier repositorio git:
|
||||
| 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
|
||||
El script realiza:
|
||||
|
||||
Carga y descifrado de credenciales (si están cifradas)
|
||||
|
||||
Verificación de cambios sin commitear
|
||||
|
||||
Commit automático si lo autorizás
|
||||
|
||||
Verificación de configuración del remote origin
|
||||
|
||||
Push al repositorio remoto
|
||||
|
||||
Si el push falla, intenta git pull --rebase y reintenta
|
||||
|
||||
🔁 Reconfigurar credenciales
|
||||
Podés ejecutar:
|
||||
|
||||
bash
|
||||
git-subir --reconfigurar
|
||||
Esto permite:
|
||||
|
||||
Cambiar usuario/contraseña o token
|
||||
|
||||
Elegir si querés cifrar o guardar en texto plano
|
||||
|
||||
Validar nuevamente contra la API
|
||||
|
||||
Reescribir la configuración en ~/.config/git-subir/
|
||||
git subir --cambiar-clave
|
||||
🔐 Cambia solo la contraseña de cifrado sin tocar usuario/token.
|
||||
|
||||
🔐 Seguridad
|
||||
Cifrado con openssl usando AES-256-CBC y derivación PBKDF2
|
||||
Las credenciales se cifran con AES-256-CBC + PBKDF2 usando OpenSSL
|
||||
|
||||
La contraseña de cifrado nunca se guarda
|
||||
El archivo de configuración se guarda en ~/.config/git-subir.conf
|
||||
|
||||
Los archivos se almacenan en ~/.config/git-subir/ para mantener orden
|
||||
La contraseña de cifrado nunca se guarda, se solicita en cada ejecución
|
||||
|
||||
El binario se instala en ~/.local/bin/git-subir para uso global
|
||||
El script tolera errores de autenticación, PATH, upstream y configuración
|
||||
|
||||
📁 Desinstalación
|
||||
Si querés eliminar todo:
|
||||
|
||||
🧹 Desinstalación
|
||||
bash
|
||||
chmod +x desinstalar-subir.sh
|
||||
./desinstalar-subir.sh
|
||||
Esto elimina:
|
||||
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.
|
||||
|
||||
El binario git-subir de ~/.local/bin
|
||||
|
||||
Las credenciales y configuración de ~/.config/git-subir
|
||||
|
||||
🧠 Autor
|
||||
Nahuel Baglietto
|
||||
|
Reference in New Issue
Block a user