Mantén tu actividad en GitHub con mantenimiento real, no con commits falsos.
Automatizar commits vacíos o cambios artificiales puede mantener una racha, pero no aporta valor al proyecto y puede verse como spam.
La mejor forma de mantener consistencia es convertir la automatización en un pequeño asistente de mantenimiento: revisar repos, detectar mejoras reales y crear commits solo cuando hay cambios útiles.
auto-commit.sh ahora funciona como un maintenance bot local:
- inspecciona cada repositorio,
- evita tocar repos con cambios locales sin revisar,
- aplica mantenimiento seguro cuando corresponde,
- ejecuta validaciones del proyecto,
- crea commits solo si hay cambios reales,
- nunca genera archivos fake de actividad.
- ✅ Soporta múltiples repositorios.
- ✅ Evita commits duplicados con checkpoints diarios.
- ✅ Detecta repos sucios y los omite para no commitear trabajo sin revisar.
- ✅ En proyectos Node con
package-lock.json, ejecuta:
npm update --package-lock-only --ignore-scripts- ✅ Ejecuta
npm testsi existe. - ✅ Ejecuta
npm run buildsi existe. - ✅ Revierte cambios generados si la validación falla.
- ✅ Crea commit solo cuando hay cambios reales.
- ✅ Push opcional con
STREAK_KEEPER_PUSH=1. - ✅ Modo simulación con
STREAK_KEEPER_DRY_RUN=1.
- ❌ No crea commits vacíos.
- ❌ No modifica archivos
.github-streakartificiales. - ❌ No commitea cambios locales del usuario sin revisión.
- ❌ No hace push automáticamente salvo que lo actives.
- ❌ No fuerza cambios si no hay mantenimiento real.
git clone https://github.com/AvilaCarlosDev/github-streak-keeper.git
cd github-streak-keeper
chmod +x auto-commit.sh./auto-commit.sh /home/carlosdev/proyectos/mi-proyecto./auto-commit.sh \
/home/carlosdev/proyectos/proyecto1 \
/home/carlosdev/proyectos/proyecto2Antes de automatizar, prueba sin crear commits:
STREAK_KEEPER_DRY_RUN=1 ./auto-commit.sh /home/carlosdev/proyectos/mi-proyectoPor defecto el script crea commits locales, pero no hace push.
STREAK_KEEPER_PUSH=1 ./auto-commit.sh /home/carlosdev/proyectos/mi-proyectoÚtil si tienes repos lentos o sin entorno instalado:
STREAK_KEEPER_SKIP_TESTS=1 ./auto-commit.sh /home/carlosdev/proyectos/mi-proyectoEjemplo prudente: una revisión diaria.
# GitHub Streak Keeper - mantenimiento real diario
0 9 * * * STREAK_KEEPER_PUSH=1 /home/carlosdev/proyectos/github-streak-keeper/auto-commit.sh /home/carlosdev/proyectos/mi-proyecto >> /tmp/streak-keeper.log 2>&1Recomendación: evita correrlo 6 veces al día. Si el objetivo es mantenimiento real, 1 vez al día suele ser suficiente.
Servicio:
# ~/.config/systemd/user/github-streak-keeper.service
[Unit]
Description=GitHub Streak Keeper - Real Maintenance
Documentation=https://github.com/AvilaCarlosDev/github-streak-keeper
After=network-online.target
[Service]
Type=oneshot
Environment=STREAK_KEEPER_PUSH=1
ExecStart=/home/carlosdev/proyectos/github-streak-keeper/auto-commit.sh /home/carlosdev/proyectos/mi-proyectoTimer:
# ~/.config/systemd/user/github-streak-keeper.timer
[Unit]
Description=Run GitHub Streak Keeper daily
[Timer]
OnCalendar=*-*-* 09:00:00
Persistent=true
Unit=github-streak-keeper.service
[Install]
WantedBy=timers.targetActivar:
systemctl --user daemon-reload
systemctl --user enable --now github-streak-keeper.timer
systemctl --user list-timers- Usa repos reales, no repos de relleno.
- Automatiza mantenimiento pequeño y verificable.
- Revisa logs con frecuencia.
- No ocultes fallos: si tests/build fallan, arregla el repo.
- Prefiere pocos commits buenos a muchos commits sin valor.
github-streak-keeper/
├── auto-commit.sh
├── examples/
│ ├── cron-example
│ ├── systemd-example.service
│ └── systemd-example.timer
├── README.md
├── LICENSE
└── .gitignore
Variables disponibles:
| Variable | Uso |
|---|---|
CHECKPOINT_DIR |
Carpeta para checkpoints diarios. Default: /tmp/streak-keeper |
LOG_FILE |
Archivo de logs. Default: /tmp/streak-keeper.log |
STREAK_KEEPER_DRY_RUN=1 |
Simula sin commitear |
STREAK_KEEPER_PUSH=1 |
Hace push después del commit |
STREAK_KEEPER_SKIP_TESTS=1 |
Omite npm test / npm run build |
Este proyecto no busca fabricar actividad falsa. Busca ayudarte a convertir la consistencia en mantenimiento real: dependencias al día, validaciones pasando y repos saludables.
¿Ideas para nuevos mantenedores seguros? Abre un issue o PR.
Posibles mejoras futuras:
- soporte para
pnpm-lock.yaml, - soporte para
yarn.lock, - soporte para Python
requirements.txt, - reportes Markdown diarios,
- integración opcional con GitHub Actions.
MIT License — ver LICENSE.
Workspace mantenido por Carlos Avila - Developer 🇻🇪