#0011 Commit History Extraction #128

Merged
fuzzy merged 2 commits from feature/0011-commit-history-extraction into main 2026-07-06 04:57:01 +00:00
Owner

Implements commit history extraction module.

Changes:

  • src/hottea/commit.pyCommitInfo dataclass + walk_commits() function
  • tests/test_commit.py — 10 tests covering empty repo, single commit, metadata, author date, filtering, error handling

Details:

  • Walks all refs via git log --all
  • Filters by author name and/or email
  • Uses authored_date (not committed_date) for timestamps
  • Returns newest-first ordering
  • Empty repos return empty list

Closes: #0011, #0006, #0007, #0008, #0009, #0010

Implements commit history extraction module. **Changes:** - `src/hottea/commit.py` — `CommitInfo` dataclass + `walk_commits()` function - `tests/test_commit.py` — 10 tests covering empty repo, single commit, metadata, author date, filtering, error handling **Details:** - Walks all refs via `git log --all` - Filters by author name and/or email - Uses `authored_date` (not `committed_date`) for timestamps - Returns newest-first ordering - Empty repos return empty list **Closes:** #0011, #0006, #0007, #0008, #0009, #0010
Add CommitInfo dataclass and walk_commits() function that
walks all git history across all refs and extracts commit
metadata. Supports filtering by author name and/or email.
Uses author date (not committer date) for timestamps.

- walk_commits(): enumerate all commits, filter by user
- CommitInfo: sha, author_name, author_email, author_date, message
- Empty repo returns empty list
- Caught GitCommandError/ValueError for no-commit repos

Closes #6, #7, #8, #9, #10
the.auditor left a comment

Audit Review — PR #128

Clean implementation of commit history extraction. All 6 issues (#0006-#0011) addressed. Good use of authored_date, proper repo cleanup with try/finally, and solid test coverage (10 tests).

Suggestions

  1. src/hottea/commit.py:63_all_commits catches ValueError which is very broad. If needed for empty repo edge cases, add comment explaining. Otherwise narrow to specific exceptions. Filed as #129.

  2. tests/test_commit.py:95-97time.sleep(1.1) between commits adds 2.2s+ to test execution. Use GIT_AUTHOR_DATE env var instead (pattern already exists in this file). Filed as #130.

Summary

Result: COMMENT — 2 non-blocking suggestions filed as issues.

## Audit Review — PR #128 Clean implementation of commit history extraction. All 6 issues (#0006-#0011) addressed. Good use of `authored_date`, proper repo cleanup with `try/finally`, and solid test coverage (10 tests). ## Suggestions 1. `src/hottea/commit.py:63` — `_all_commits` catches `ValueError` which is very broad. If needed for empty repo edge cases, add comment explaining. Otherwise narrow to specific exceptions. Filed as #129. 2. `tests/test_commit.py:95-97` — `time.sleep(1.1)` between commits adds 2.2s+ to test execution. Use `GIT_AUTHOR_DATE` env var instead (pattern already exists in this file). Filed as #130. ## Summary **Result:** COMMENT — 2 non-blocking suggestions filed as issues.
the.auditor left a comment

APPROVED. Clean commit extraction module with thorough tests. Non-blocking suggestions in #129, #130 — address at your leisure.

APPROVED. Clean commit extraction module with thorough tests. Non-blocking suggestions in #129, #130 — address at your leisure.
fuzzy merged commit 6ea12e9a8d into main 2026-07-06 04:57:01 +00:00
fuzzy deleted branch feature/0011-commit-history-extraction 2026-07-06 04:57:02 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
thwap/hottea!128
No description provided.