[#2079] Add commits and commit_parents tables
@alanpeixinho is already working on this.
Since Sep 10, 2026.
- Dominant language
- Python
- Stars
- 9
- Forks
- 31
- Avg merge
- 3d 19h
- Merged PRs (30d)
- 16
Description
Parent
https://github.com/kernelci/dashboard/issues/2079
checkouts is a CI submission, not a git object. Author, committer, subject, and parents belong on a commit row keyed by hash. Same hash can appear on many checkouts.
This issue is schema only (Django models + migration). No git fetch and no job to fill the tables.
commits
| Column | Notes |
|---|---|
id |
Big serial, PK (cheap FKs later) |
git_commit_hash |
text, unique, not null |
author_name, author_email, author_date |
nullable (timestamptz for date) |
committer_name, committer_email, committer_date |
nullable |
subject |
first line of the message, nullable |
message |
full message, nullable |
No fetched_from_url: the repo we read from is a property of the fetch, not of the commit (#2079 discussion).
Do not add these columns onto checkouts.
Ingest (#2109) writes in topological order, so parent rows exist before edges. No stub rows (hash-only parent inserted just to satisfy the FK).
Parents: commit_parents
Locked. Do not add a parent_hashes array on commits.
| Column | Notes |
|---|---|
commit_id |
FK → commits.id (child) |
parent_id |
FK → commits.id (parent) |
ord |
smallint; 0 = first parent |
Unique (commit_id, ord).
- First-parent walk and merge check (
ord > 0/ count > 1) are normal joins - Integrity: parent row must exist (guaranteed by topo ingest, not by stubs)
Same DB as Checkouts. Follow existing db_table / index naming.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.