Commit automático por git subir
This commit is contained in:
150
README.md
150
README.md
@ -1,119 +1,99 @@
|
||||
# 🚀 git subir
|
||||
# 🚀 git-subir
|
||||
|
||||
Comando personalizado para automatizar el push de cambios a un repositorio Gitea. Incluye autenticación segura, commits interactivos, resolución de conflictos y configuración automatizada.
|
||||
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.
|
||||
|
||||
---
|
||||
|
||||
## 📂 Archivos incluidos
|
||||
## 📦 Archivos incluidos
|
||||
|
||||
### `instalar-subir.sh`
|
||||
Script de instalación que:
|
||||
|
||||
- Verifica si `openssl` está instalado (y lo instala si falta).
|
||||
- Solicita credenciales de Gitea: usuario, token/contraseña y URL base de la API.
|
||||
- Verifica las credenciales contra la API de Gitea.
|
||||
- Permite guardar las credenciales cifradas con `openssl` o en texto plano.
|
||||
- Crea el script principal `git-subir.sh` en `~/.scripts/`.
|
||||
- Genera un alias global `git subir` disponible en todo el sistema.
|
||||
|
||||
### `git-subir.sh`
|
||||
Script principal que:
|
||||
|
||||
- Carga las credenciales (descifrándolas si están cifradas).
|
||||
- Detecta cambios sin commitear y ofrece hacer commit automático.
|
||||
- Realiza `git push` con autenticación embebida.
|
||||
- Si el push falla, intenta `git pull --allow-unrelated-histories`.
|
||||
- Detecta conflictos y ofrece hacer merge automático.
|
||||
- Muestra mensajes claros y estructurados para guiar al usuario.
|
||||
|
||||
### `desinstalar-subir.sh`
|
||||
Script de desinstalación que:
|
||||
|
||||
- Elimina el alias global `git subir`.
|
||||
- Borra el script `git-subir.sh`.
|
||||
- Elimina las credenciales guardadas (cifradas o no).
|
||||
| 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. |
|
||||
|
||||
---
|
||||
|
||||
## 🔐 Seguridad
|
||||
## 🔧 Requisitos
|
||||
|
||||
- Las credenciales pueden guardarse cifradas con `openssl` usando una contraseña definida por el usuario.
|
||||
- El script `git-subir.sh` descifra las credenciales en tiempo de ejecución y las borra inmediatamente después de usarlas.
|
||||
- Si se elige guardar sin cifrar, se almacenan en `~/.scripts/.env` con permisos restringidos (`chmod 600`).
|
||||
|
||||
---
|
||||
|
||||
## 📦 Requisitos
|
||||
|
||||
- `openssl` (se instala automáticamente si falta)
|
||||
- Acceso a una instancia de Gitea con API habilitada
|
||||
- Permisos de escritura en `/usr/local/bin` para crear el alias global
|
||||
- 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`
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Instalación
|
||||
|
||||
```bash
|
||||
chmod +x desinstalar-subir.sh
|
||||
chmod +x instalar-subir.sh
|
||||
./instalar-subir.sh
|
||||
|
||||
Durante la instalación se te pedirá:
|
||||
|
||||
Usuario de Gitea
|
||||
URL base del servidor Gitea (ej: https://gitea.midominio.com)
|
||||
|
||||
Token o contraseña
|
||||
Usuario y contraseña o token
|
||||
|
||||
URL base de la API (ej: https://gitea.midominio.org)
|
||||
Si querés cifrar las credenciales (usando AES-256-CBC con PBKDF2)
|
||||
|
||||
Si querés guardar las credenciales cifradas
|
||||
Confirmación para instalar git-subir como comando global
|
||||
|
||||
Al finalizar, podrás usar el comando:
|
||||
El script valida las credenciales contra la API de Gitea antes de continuar.
|
||||
|
||||
🚀 Uso
|
||||
Una vez instalado, podés usar git-subir desde cualquier repositorio git:
|
||||
|
||||
bash
|
||||
git subir
|
||||
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/
|
||||
|
||||
🔐 Seguridad
|
||||
Cifrado con openssl usando AES-256-CBC y derivación PBKDF2
|
||||
|
||||
La contraseña de cifrado nunca se guarda
|
||||
|
||||
Los archivos se almacenan en ~/.config/git-subir/ para mantener orden
|
||||
|
||||
El binario se instala en ~/.local/bin/git-subir para uso global
|
||||
|
||||
🧹 Desinstalación
|
||||
bash
|
||||
chmod +x ./desinstalar-subir.sh
|
||||
chmod +x desinstalar-subir.sh
|
||||
./desinstalar-subir.sh
|
||||
Esto elimina:
|
||||
|
||||
El alias git subir
|
||||
El binario git-subir de ~/.local/bin
|
||||
|
||||
El script git-subir.sh
|
||||
|
||||
Las credenciales guardadas
|
||||
|
||||
🔄 Flujo de uso
|
||||
Ejecutás git subir.
|
||||
|
||||
El script carga las credenciales (descifradas si están cifradas).
|
||||
|
||||
Detecta si hay cambios sin commitear:
|
||||
|
||||
Si hay, ofrece hacer commit automático.
|
||||
|
||||
Intenta hacer git push al repositorio remoto con autenticación embebida.
|
||||
|
||||
Si el push falla:
|
||||
|
||||
Intenta git pull --allow-unrelated-histories.
|
||||
|
||||
Si hay conflictos, los muestra y ofrece hacer merge automático.
|
||||
|
||||
Si todo sale bien, muestra 🎉 Push completado.
|
||||
|
||||
💡 Ejemplo de uso
|
||||
bash
|
||||
git subir
|
||||
Si hay cambios sin commitear, te preguntará si querés hacer commit.
|
||||
|
||||
Si hay conflictos, te preguntará si querés hacer merge automático.
|
||||
|
||||
Si todo está limpio, sube los cambios directamente.
|
||||
Las credenciales y configuración de ~/.config/git-subir
|
||||
|
||||
🧠 Autor
|
||||
Nahuel Baglietto Scripts diseñados para mejorar la experiencia de trabajo con Git y Gitea, priorizando seguridad, automatización y facilidad de uso.
|
||||
|
||||
🛡️ Licencia
|
||||
Este proyecto puede ser usado, modificado y distribuido libremente bajo los términos que defina su autor.
|
||||
Nahuel Baglietto
|
||||
|
Reference in New Issue
Block a user