Pruébalo con tu usuario
Escribe tu usuario de GitHub y mira tu criatura al momento. Se dibuja en tu navegador con el mismo código que la Action; lo único que sale de tu ordenador es la petición pública a GitHub (hasta 60 por hora y por conexión).
Tu criatura aparecerá aquí.
¿Sin usuario a mano? Mira cómo crece una criatura de ejemplo (90 días en 15 segundos, sin pedir nada a GitHub).
Tu workflow
Guárdalo como .github/workflows/commitling.yml en tu repositorio de perfil (tu-usuario/tu-usuario) y sigue los pasos de Instálalo en tu perfil. Ya lleva tu usuario y lo que has elegido arriba.
En vivo
La criatura de @BertMarti, regenerada cada día con su actividad pública.
La criatura en vivo aún no está disponible; se genera en el despliegue diario.
Cómo funciona
- Una GitHub Action lee tu actividad pública de los últimos 90 días: commits, pull requests, issues y el resto de eventos.
- Calcula tu experiencia, tu racha de días seguidos y tus días activos. Los días se cuentan en UTC.
- Dibuja un SVG animado: la criatura crece por fases, cambia de ánimo según tu actividad reciente y desbloquea accesorios.
- Tu workflow guarda el SVG en tu repositorio de perfil solo si ha cambiado. Mismos datos, mismo dibujo.
Galería
Todas las especies, fases y ánimos, dibujados con estadísticas de ejemplo de un usuario ficticio. La especie se elige con la entrada species de la Action (o --species en la línea de órdenes); si no la indicas, sale el brote de musgo.
Brote de musgo
La especie predeterminada: un brote de musgo con ojos que acaba siendo un árbol ancestral.
Semilla · desde 0 XP
Brote · desde 100 XP
Retoño · desde 400 XP
Arbusto · desde 1.000 XP
Árbol ancestral · desde 2.500 XP
Accesorios · Brote de musgo
Hongo
Una seta pequeña con ojos que empieza siendo una espora y acaba en un corro de setas. Se elige con species: mushroom.
Espora · desde 0 XP
Botón · desde 100 XP
Seta · desde 400 XP
Seta grande · desde 1.000 XP
Corro de setas · desde 2.500 XP
Accesorios · Hongo
Cactus
Un cactus pequeño en su maceta que empieza siendo una yema y acaba en un cactus centenario. Se elige con species: cactus.
Yema · desde 0 XP
Bolita · desde 100 XP
Cactus · desde 400 XP
Cactus con brazos · desde 1.000 XP
Cactus centenario · desde 2.500 XP
Accesorios · Cactus
Calabaza
Una calabaza de huerto con ojos que empieza siendo una pepita y acaba en una calabaza gigante. Se elige con species: pumpkin.
Pepita · desde 0 XP
Plántula · desde 100 XP
Calabacita · desde 400 XP
Calabaza · desde 1.000 XP
Calabaza gigante · desde 2.500 XP
Accesorios · Calabaza
Tarjeta compacta
Una insignia de 200x60 con la criatura, su fase, su ánimo y una barra de progreso, para firmas, barras laterales o la cabecera de un repositorio. Se pide con size: compact en la Action (o --size compact en la línea de órdenes); sin ella sale la tarjeta de siempre. Mismos dibujos, misma paleta y misma animación.
Brote de musgo
Hongo
Cactus
Calabaza
Reglas
Son deterministas: con los mismos datos, la criatura es siempre la misma.
| Commit | 10 XP |
| Pull request abierta | 25 XP |
| Issue abierta | 5 XP |
| Otra actividad pública (estrellas, forks, comentarios…) | 2 XP |
| Semilla / Espora / Yema / Pepita | desde 0 XP |
| Brote / Botón / Bolita / Plántula | desde 100 XP |
| Retoño / Seta / Cactus / Calabacita | desde 400 XP |
| Arbusto / Seta grande / Cactus con brazos / Calabaza | desde 1.000 XP |
| Árbol ancestral / Corro de setas / Cactus centenario / Calabaza gigante | desde 2.500 XP |
| Durmiendo | 7 días o más sin actividad (o ninguna) |
| Aburrido | de 3 a 6 días sin actividad |
| Contento | actividad en los últimos 3 días |
| Radiante | racha de 5 días seguidos o más |
| Gorro | más de 30 días activos en los últimos 90 |
| Bufanda | racha de 10 días o más |
| Flor | 5 repositorios distintos o más con commits, PR o issues |
La racha cuenta días seguidos con actividad y se mantiene hasta el final del día siguiente, así no se rompe por la mañana antes de tu primer commit. Si GitHub no indica cuántos commits lleva un push, cuenta como uno.
Instálalo en tu perfil
Son unos 5 minutos y todo se hace en github.com: no hay que instalar nada en tu ordenador ni crear contraseñas o tokens. Elige cómo la quieres y copia lo que sale.
- Crea tu repositorio de perfil. Es un repositorio público que se llama exactamente igual que tu usuario (
tu-usuario/tu-usuario); marca «Add a README file» al crearlo. Si ya lo tienes, salta este paso. - Crea el archivo del workflow. En tu repositorio pulsa Add file → Create new file y escribe como nombre
.github/workflows/commitling.yml(al escribir cada barra, GitHub crea la carpeta). Pega este contenido y pulsa Commit changes:name: commitling on: schedule: - cron: "23 5 * * *" # cada día a las 05:23 UTC workflow_dispatch: permissions: contents: write jobs: commitling: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - uses: BertMarti/commitling@v1 with: out: commitling.svg - name: Guardar la criatura si ha cambiado run: | git add commitling.svg if git diff --cached --quiet; then echo "Sin cambios." exit 0 fi git config user.name "github-actions[bot]" git config user.email "41898282+github-actions[bot]@users.noreply.github.com" git commit -m "chore: actualiza commitling" if ! git push; then echo "::error title=commitling::No se pudo guardar la criatura en el repositorio. Comprueba que este archivo tiene «permissions: contents: write» y, si la rama está protegida, deja que github-actions[bot] suba cambios." exit 1 fiAbrir GitHub con el archivo ya relleno
El atajo abre la página de crear archivo con el nombre y el contenido puestos (te pedirá iniciar sesión si no lo has hecho). Si tu rama principal no se llama
main, crea el archivo a mano como arriba. - Permisos: no tienes que hacer nada. La línea
permissions: contents: writedeja que el workflow guarde la imagen en tu repositorio, y nada más. Usa el token temporal que GitHub crea para cada ejecución: no hay secretos ni tokens que crear. - Lánzalo por primera vez. Abre la pestaña Actions de tu repositorio (si te lo pregunta, pulsa «I understand my workflows, go ahead and enable them»), elige commitling a la izquierda y pulsa Run workflow y otra vez Run workflow. Después se ejecuta sola cada día a las 05:23 UTC.
- Añade la criatura a tu README. Edita el
README.mdde tu repositorio de perfil (el lápiz) y pega esto donde quieras verla: - Mira el resultado. En uno o dos minutos la ejecución aparece con un ✓ verde y tu criatura sale en tu perfil. Si ves una imagen rota, la primera ejecución aún no ha terminado (o falló: mira abajo).
Escribe tu usuario arriba y aparecerán enlaces directos a cada paso.
Si algo falla
Abre la ejecución en rojo en Actions: el mensaje de commitling sale arriba, en el resumen.
- «No se pudo guardar la criatura en el repositorio»
- Comprueba que el archivo tiene
permissions: contents: write. Si sigue fallando, en Settings → Actions → General → Workflow permissions elige Read and write permissions, y si tu rama principal está protegida, permite quegithub-actions[bot]suba cambios. - «no existe en GitHub (404)»
- El usuario de
user:está mal escrito. Va sin@y tal y como aparece en tu perfil; si quitas esa línea se usa el dueño del repositorio. - «se ha agotado el límite de peticiones»
- Es pasajero: pulsa Run workflow más tarde. Si ya tenías una criatura, se conserva y el workflow ni siquiera falla; este error solo sale si aún no había ninguna.
- No aparece «Run workflow»
- El archivo debe estar en la rama principal, exactamente en
.github/workflows/y terminar en.yml. Recarga la página de Actions. - Se dejó de actualizar
- GitHub pausa los workflows programados tras unos 60 días sin actividad en el repositorio: entra en Actions y pulsa Enable workflow.
¿Ya tienes el workflow y solo quieres añadir el tema oscuro?
Elige «Automático» arriba y sustituye tu archivo por el nuevo, o añade un segundo paso con theme: dark y out: commitling-dark.svg (y súmalo al git add). En el README usa:
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./commitling-dark.svg">
<img alt="commitling" src="./commitling.svg">
</picture>¿Prefieres la terminal? Con Go instalado, go run github.com/BertMarti/commitling/cmd/commitling@latest workflow --user tu-usuario --theme both escribe el mismo archivo.
Privacidad
commitling solo usa la API pública de eventos de GitHub: lo mismo que cualquiera puede ver en tu perfil. No lee repositorios privados, no guarda nada fuera de tu repositorio y no necesita más permisos que el GITHUB_TOKEN de tu propio workflow.