[#2079] Sync mirrored trees into commits
Los mantenedores suelen responder en 2 días
@felipebergamin ya está trabajando en esto.
Desde el 20/10/2026.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
Comienza con el issue padre #2079, el issue del esquema #2089 y el helper de SHA de parse/one-shot en #2090; después, sigue el punto de entrada del management-command o cron. Verifica el flujo de Git del repositorio existente, los upserts topológicos en commits y commit_parents, y el manejo de errores por remoto. Se considera terminado cuando pasan las pruebas indicadas de fetch/parse simulado, commit omitido, continuación tras errores y dry-run, sin escribir en modo dry-run.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Parent
https://github.com/kernelci/dashboard/issues/2079
Schema: https://github.com/kernelci/dashboard/issues/2089
Parse / one-shot SHA fetch: https://github.com/kernelci/dashboard/issues/2090
Replaces #2091 (checkout-hash backfill). Filling from distinct checkouts.git_commit_hash cannot produce a continuous first-parent chain when CI skips commits (#2079 discussion).
Management command / cron that keeps commits and commit_parents filled with the ancestor closure of commits we care about: every ancestor of hashes we see in checkouts on trees we mirror. Postgres is the query store. Git is an ingest cache.
In scope
- Persistent treeless repo (
--filter=tree:0), many remotes. Do not throw it away per hash. Do not write underBACKEND_VOLUME_DIR; dedicated volume / path, passed into git. - Remotes from a tree allowlist (treeproof-style known-good URLs), not from arbitrary
checkouts.git_repository_url. - Cron:
git fetchremotes; enumerate new objects (rev-listnew tips--notpreviously ingested tips, or equivalent); parse via the helper in #2090 (existing-repo path, no per-hash fetch). - Upsert
commitsthencommit_parentsin topological order so parent rows exist before edges. No stub rows. - Continue on per-remote failure (bad URL, missing object, full pack). Log and move on. Job must not die on one tree.
- Dry-run: fetch/parse optional, write nothing.
- Do not write
checkouts.git_commit_message. Message lives oncommits.
Optional safety, not the main loop: report checkouts.git_commit_hash still missing from commits (and optionally call the #2090 SHA helper for those gaps).
Out of scope
trees/named_refstables (follow-up).- Snapshot policy for
update_db(follow-up once we know row counts). - Rewriting readers of
checkouts.git_commit_message/ dropping that column (follow-up; copy unreachable messages ontocommitsfirst).
Tests
Mocked parse/fetch: upserts commits + first-parent edges in topo order. One remote fails, others still write. Dry-run writes nothing. Skipped intermediate commit between two checkouts still lands in commits.
- Lenguaje dominante
- Python
- Estrellas
- 10
- Forks
- 32
- Merge medio
- 3 d 19 h
- PR fusionados (30 d)
- 33
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de kernelci/dashboard
-
notifications
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 2 días
-
[Labs] filter tree, hardware, and issue reads by labPosiblemente ocupada @alanpeixinho la tomó hace 4 días. Abierto
kernelci/dashboard#2209 · 1 asignado ·
Los mantenedores suelen responder en 2 días
-
HW-list: keep listing origin and lab filters on hardware detailsPosiblemente ocupada @alanpeixinho la tomó hace 69 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Los mantenedores suelen responder en 2 días
-
HW-list: origin and lab filters on the listingPosiblemente ocupada @alanpeixinho la tomó hace 4 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
kernelci/dashboard#2204 · 1 asignado ·
Los mantenedores suelen responder en 2 días
-
Backend
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Los mantenedores suelen responder en 2 días
Todos los issues de kernelci/dashboard
Issues similares
-
Import errors are swallowed: PerthImplicitWatermarker silently becomes NonePosiblemente ocupada @JonRC la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
resemble-ai/Perth#23 ·
-
correction metadata
Dificultad 2/5 Menos de una hora Aptitud para principiantes 65/100
acl-org/acl-anthology#10753 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
earthtojake/text-to-cad#758 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 70/100
DataTalksClub/faq#545 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día