-
-
{{ 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
- | Author | Commits | Lines + | Lines - |
+ | Author | Commits |
{% for author in commit_analysis.top_authors[:5] %}
-
- | {{ author.name }} |
- {{ author.commit_count }} |
- {{ author.lines_added }} |
- {{ author.lines_deleted }} |
-
+ | {{ author.name }} | {{ author.commit_count }} |
{% endfor %}
@@ -72,19 +63,17 @@ HTML_TEMPLATE = """
{% if velocity_analysis %}
Velocity Analysis
-
-
-
{{ velocity_analysis.commits_per_day }}
-
Commits/Day
-
-
-
{{ velocity_analysis.commits_per_week }}
-
Commits/Week
-
-
-
{{ velocity_analysis.velocity_trend|capitalize }}
-
Trend
-
+
+
{{ "%.1f"|format(velocity_analysis.commits_per_day) }}
+
Commits/Day
+
+
+
{{ "%.1f"|format(velocity_analysis.commits_per_week) }}
+
Commits/Week
+
+
+
{{ velocity_analysis.velocity_trend|capitalize }}
+
Trend
{% endif %}
@@ -92,40 +81,32 @@ 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 and risky_commit_analysis.total_risky > 0 %}
+ {% if risky_commit_analysis %}
Risky Commits
-
{{ risky_commit_analysis.total_risky }} potentially risky commits detected
- {% if risky_commit_analysis.large_commits %}
-
Large Commits ({{ risky_commit_analysis.large_commits|length }})
-
- | SHA | Author | Changes |
- {% for commit in risky_commit_analysis.large_commits[:5] %}
-
- | {{ commit.sha }} |
- {{ commit.author_name }} |
- +{{ commit.additions }} / -{{ commit.deletions }} |
-
- {% endfor %}
-
- {% endif %}
+
+
{{ risky_commit_analysis.total_risky_commits }}
+
Total Risky
+
+
+
{{ "%.1f"|format(risky_commit_analysis.risk_score) }}%
+
Risk Score
+
{% endif %}
@@ -144,8 +125,8 @@ class HTMLFormatter(BaseFormatter):
return template.render(
timestamp=datetime.now().isoformat(),
- 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),
+ 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,
)