Skip to content

Add Real-World Project: RAG-Powered Changelog Generator from Git History #276

Description

@abderrahim-lectures

Add a new Real-World Projects lesson: RAG-Powered Changelog Generator from Git History (backlog idea #19).

Scope

  • docs/projects/changelog-from-git/index.md — new lesson matching the house skeleton. The twist vs. the notes/repo RAG projects: the "documents" here are commit messages, and they're generated from git log rather than read from files — so chunking is per-commit (no splitting needed), and the value comes from grouping and summarizing a stream of noisy, developer-punctuation-heavy messages into a clean human-readable changelog. Uses the free-tier LLM for synthesis, with a rule that every changelog line must trace back to real commits.
  • examples/changelog-from-git/ — a real, runnable tool: runs git log --format=... against a target repo (or a bundled sample git repo for out-of-the-box testing), fetches commit messages + hashes + authors, and asks a free-tier LLM to produce a categorized changelog (e.g. Added / Changed / Fixed), grouped by scope, with each entry citing the commit(s) it came from. Includes a notebook.ipynb and a README.md.
  • Registration: src/data/projects.ts, docs/projects/index.mdx, src/pages/index.tsx (English only — no i18n changes).
  • Colab/Kaggle/Binder badges in "Where to run this", pointed at this PR's branch (to be updated to main once merged). The notebook needs a git repo to read; hosted notebooks can clone the course repo itself (small, shallow clone) and generate a changelog from its recent commits, asking for the API key with getpass.

Framing note

The lesson should be honest that commit messages are a low-signal source: they vary wildly in quality, mix "fix bug" with "add feature", and contain noise (merge commits, formatting). So the project is really about judgment under noisy input: how to bucket, de-duplicate, and phrase a summary without inventing commits that don't exist. It should encourage comparing the tool's changelog against the actual git log output to spot both inventions and omissions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:capstoneCapstone project content, examples, or architectureprojectBacklog: a candidate Real-World Project ideatopic:ragRAG, vector search & knowledge graph projectstype:content

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions