diff --git a/src/formatters/html_formatter.py b/src/formatters/html_formatter.py index 54bee65..a4cf964 100644 --- a/src/formatters/html_formatter.py +++ b/src/formatters/html_formatter.py @@ -2,6 +2,7 @@ from datetime import datetime from typing import Any from jinja2 import Template + from src.formatters.base import BaseFormatter @@ -15,20 +16,19 @@ HTML_TEMPLATE = """ @@ -39,22 +39,31 @@ HTML_TEMPLATE = """ {% if commit_analysis %}

Commit Analysis

-
-
{{ commit_analysis.total_commits }}
-
Total Commits
-
-
-
{{ commit_analysis.unique_authors }}
-
Authors
-
-
-
{{ "%.1f"|format(commit_analysis.average_commits_per_day) }}
-
Avg/Day
+
+
+
{{ commit_analysis.total_commits }}
+
Total Commits
+
+
+
{{ commit_analysis.unique_authors }}
+
Authors
+
+
+
{{ "%.1f"|format(commit_analysis.average_commits_per_day) }}
+
Avg/Day
+
+ +

Top Contributors

- + {% for author in commit_analysis.top_authors[:5] %} - + + + + + + {% endfor %}
AuthorCommits
AuthorCommitsLines +Lines -
{{ author.name }}{{ author.commit_count }}
{{ author.name }}{{ author.commit_count }}{{ author.lines_added }}{{ author.lines_deleted }}
@@ -63,17 +72,19 @@ HTML_TEMPLATE = """ {% if velocity_analysis %}

Velocity Analysis

-
-
{{ "%.1f"|format(velocity_analysis.commits_per_day) }}
-
Commits/Day
-
-
-
{{ "%.1f"|format(velocity_analysis.commits_per_week) }}
-
Commits/Week
-
-
-
{{ velocity_analysis.velocity_trend|capitalize }}
-
Trend
+
+
+
{{ velocity_analysis.commits_per_day }}
+
Commits/Day
+
+
+
{{ velocity_analysis.commits_per_week }}
+
Commits/Week
+
+
+
{{ velocity_analysis.velocity_trend|capitalize }}
+
Trend
+
{% endif %} @@ -81,32 +92,40 @@ HTML_TEMPLATE = """ {% if code_churn_analysis %}

Code Churn

-
-
{{ code_churn_analysis.total_lines_added }}
-
Lines Added
-
-
-
{{ code_churn_analysis.total_lines_deleted }}
-
Lines Deleted
-
-
-
{{ code_churn_analysis.net_change }}
-
Net Change
+
+
+
+{{ code_churn_analysis.total_lines_added }}
+
Lines Added
+
+
+
-{{ code_churn_analysis.total_lines_deleted }}
+
Lines Deleted
+
+
+
{{ code_churn_analysis.net_change }}
+
Net Change
+
{% endif %} - {% if risky_commit_analysis %} + {% if risky_commit_analysis and risky_commit_analysis.total_risky > 0 %}

Risky Commits

-
-
{{ risky_commit_analysis.total_risky_commits }}
-
Total Risky
-
-
-
{{ "%.1f"|format(risky_commit_analysis.risk_score) }}%
-
Risk Score
-
+

{{ risky_commit_analysis.total_risky }} potentially risky commits detected

+ {% if risky_commit_analysis.large_commits %} +

Large Commits ({{ risky_commit_analysis.large_commits|length }})

+ + + {% for commit in risky_commit_analysis.large_commits[:5] %} + + + + + + {% endfor %} +
SHAAuthorChanges
{{ commit.sha }}{{ commit.author_name }}+{{ commit.additions }} / -{{ commit.deletions }}
+ {% endif %}
{% endif %}
@@ -125,8 +144,8 @@ class HTMLFormatter(BaseFormatter): return template.render( timestamp=datetime.now().isoformat(), - commit_analysis=data.commit_analysis if hasattr(data, "commit_analysis") else None, - velocity_analysis=data.velocity_analysis if hasattr(data, "velocity_analysis") else None, - code_churn_analysis=data.code_churn_analysis if hasattr(data, "code_churn_analysis") else None, - risky_commit_analysis=data.risky_commit_analysis if hasattr(data, "risky_commit_analysis") else None, + commit_analysis=getattr(data, "commit_analysis", None), + velocity_analysis=getattr(data, "velocity_analysis", None), + code_churn_analysis=getattr(data, "code_churn_analysis", None), + risky_commit_analysis=getattr(data, "risky_commit_analysis", None), )