Files
git-velocity/internal/domain/models/commit.go
T
lukaszraczylo 3bd9807e50 Fixes calculations (#2)
Git Level (per commit):
    - Track unique file paths in FilesModified slice
    - FilesChanged = count of unique files in THIS commit

  Aggregator Level (per contributor):
    - Collect all file paths from all commits into a SET
    - FilesChanged = size of the unique file set

  Result:
    - Contributor.FilesChanged = count of UNIQUE files they touched
    - Repository contributor = unique files in THAT repo only
2025-12-19 10:44:00 +00:00

38 lines
1.4 KiB
Go

package models
import "time"
// Commit represents a Git commit
type Commit struct {
SHA string `json:"sha"`
Message string `json:"message"`
Author Author `json:"author"`
Committer Author `json:"committer"`
Date time.Time `json:"date"`
Additions int `json:"additions"`
Deletions int `json:"deletions"`
FilesChanged int `json:"files_changed"`
FilesModified []string `json:"files_modified,omitempty"` // List of file paths modified in this commit
Repository string `json:"repository"` // owner/repo format
URL string `json:"url"`
// Meaningful line counts (excludes comments and whitespace)
MeaningfulAdditions int `json:"meaningful_additions"`
MeaningfulDeletions int `json:"meaningful_deletions"`
// Comment line counts (all types of comments)
CommentAdditions int `json:"comment_additions"`
CommentDeletions int `json:"comment_deletions"`
// Documentation comment counts (JSDoc, Rust doc comments, docstrings, etc.)
DocCommentAdditions int `json:"doc_comment_additions"`
DocCommentDeletions int `json:"doc_comment_deletions"`
// Commented-out code counts (code that was commented rather than deleted)
CommentedCodeAdditions int `json:"commented_code_additions"`
CommentedCodeDeletions int `json:"commented_code_deletions"`
// Derived fields
HasTests bool `json:"has_tests"`
}