git2report 0.1.1__tar.gz → 0.1.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {git2report-0.1.1 → git2report-0.1.3}/PKG-INFO +1 -1
- git2report-0.1.3/git2report/__init__.py +24 -0
- git2report-0.1.3/git2report/__main__.py +9 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report/extractor.py +3 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report/report.py +0 -3
- {git2report-0.1.1 → git2report-0.1.3}/git2report/web.py +11 -8
- {git2report-0.1.1 → git2report-0.1.3}/git2report.egg-info/PKG-INFO +1 -1
- {git2report-0.1.1 → git2report-0.1.3}/pyproject.toml +1 -1
- git2report-0.1.1/git2report/__init__.py +0 -2
- git2report-0.1.1/git2report/__main__.py +0 -4
- {git2report-0.1.1 → git2report-0.1.3}/LICENSE +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/README.md +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report/branches.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report/cache.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report/charts.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report/chunker.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report/cli.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report/clustering.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report/config.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report/eval_tools.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report/filtering.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report/metrics.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report/models.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report/pipeline.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report/rules.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report/summarizer.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report/timeutil.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report.egg-info/SOURCES.txt +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report.egg-info/dependency_links.txt +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report.egg-info/entry_points.txt +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report.egg-info/requires.txt +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/git2report.egg-info/top_level.txt +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/setup.cfg +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/tests/test_chunker.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/tests/test_end_to_end.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/tests/test_eval_tools.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/tests/test_filter_cluster_metrics.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/tests/test_rules.py +0 -0
- {git2report-0.1.1 → git2report-0.1.3}/tests/test_summarizer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: git2report
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.3
|
|
4
4
|
Summary: Turn Git history into a plain-language, evidence-linked progress report with visual charts and Terminal Web Studio.
|
|
5
5
|
Author-email: Vijay <vijaykd04@users.noreply.github.com>
|
|
6
6
|
License: MIT
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"""Git2Report: turn Git history into a plain-language, evidence-linked progress report."""
|
|
2
|
+
import os
|
|
3
|
+
import shutil
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
# Prevent GitPython from crashing on import when git is missing from system PATH
|
|
7
|
+
os.environ.setdefault("GIT_PYTHON_REFRESH", "quiet")
|
|
8
|
+
|
|
9
|
+
# Auto-detect git executable if installed in standard Windows locations
|
|
10
|
+
if not shutil.which("git"):
|
|
11
|
+
for cand in [
|
|
12
|
+
r"C:\Program Files\Git\cmd\git.exe",
|
|
13
|
+
r"C:\Program Files\Git\bin\git.exe",
|
|
14
|
+
r"C:\Program Files (x86)\Git\cmd\git.exe",
|
|
15
|
+
str(Path.home() / r"AppData\Local\Programs\Git\cmd\git.exe"),
|
|
16
|
+
str(Path.home() / r"AppData\Local\Programs\Git\bin\git.exe"),
|
|
17
|
+
]:
|
|
18
|
+
if Path(cand).exists():
|
|
19
|
+
os.environ["GIT_PYTHON_GIT_EXECUTABLE"] = cand
|
|
20
|
+
os.environ["PATH"] = str(Path(cand).parent) + os.pathsep + os.environ.get("PATH", "")
|
|
21
|
+
break
|
|
22
|
+
|
|
23
|
+
__version__ = "0.1.3"
|
|
24
|
+
|
|
@@ -10,6 +10,9 @@ from git2report.models import CommitRecord, FileChange, GitReportError
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
def extract(repo_path: Path, since: datetime) -> list[CommitRecord]:
|
|
13
|
+
import shutil
|
|
14
|
+
if not shutil.which("git"):
|
|
15
|
+
raise GitReportError("Git is not installed on this system. Please install Git via 'winget install Git.Git' or from https://git-scm.com")
|
|
13
16
|
repo_path = Path(repo_path)
|
|
14
17
|
if not (repo_path / ".git").exists():
|
|
15
18
|
raise GitReportError(f"'{repo_path}' is not a Git repository (no .git folder found).")
|
|
@@ -777,9 +777,6 @@ HTML_TEMPLATE = """\
|
|
|
777
777
|
<div class="summary-box">
|
|
778
778
|
{{ s.text }}
|
|
779
779
|
</div>
|
|
780
|
-
{% if s.note %}
|
|
781
|
-
<div style="font-size: 0.8rem; color: var(--warning); margin-bottom: 10px;">⚠️ {{ s.note }}</div>
|
|
782
|
-
{% endif %}
|
|
783
780
|
|
|
784
781
|
{% if s.commits %}
|
|
785
782
|
<table class="commit-table">
|
|
@@ -606,7 +606,7 @@ TERMINAL_HTML = """<!DOCTYPE html>
|
|
|
606
606
|
<span class="p-user">root</span><span class="p-at">@</span><span class="p-host">git2report</span><span class="p-colon">:</span><span class="p-path">~</span><span class="p-dollar">$</span>
|
|
607
607
|
</div>
|
|
608
608
|
<div class="command-display" id="commandPreview">
|
|
609
|
-
git2report --repo cloned_repos/CampusThrift --since 2025-01-01 --audience guide --
|
|
609
|
+
git2report --repo cloned_repos/CampusThrift --since 2025-01-01 --audience guide --all
|
|
610
610
|
</div>
|
|
611
611
|
<span class="cursor-blink"></span>
|
|
612
612
|
</div>
|
|
@@ -677,14 +677,14 @@ TERMINAL_HTML = """<!DOCTYPE html>
|
|
|
677
677
|
<span class="arg-desc"><gemini | ollama | offline></span>
|
|
678
678
|
</label>
|
|
679
679
|
<select id="llmSelect" class="term-select" onchange="onLlmChange()">
|
|
680
|
-
<option value="
|
|
680
|
+
<option value="offline" selected>offline (Instant / 100% Deterministic / No Keys)</option>
|
|
681
681
|
<option value="ollama">ollama (Local Private AI / Offline Model)</option>
|
|
682
|
-
<option value="
|
|
682
|
+
<option value="gemini">gemini (Google Gemini Cloud AI)</option>
|
|
683
683
|
</select>
|
|
684
684
|
</div>
|
|
685
685
|
|
|
686
|
-
<!-- Gemini API Key Input (Shows when gemini is selected) -->
|
|
687
|
-
<div class="arg-group" id="apiKeyGroup">
|
|
686
|
+
<!-- Gemini API Key Input (Shows only when gemini is selected) -->
|
|
687
|
+
<div class="arg-group" id="apiKeyGroup" style="display: none;">
|
|
688
688
|
<div style="display: flex; justify-content: space-between; align-items: center;">
|
|
689
689
|
<label class="arg-label" for="apiKeyInput">
|
|
690
690
|
<span>--api-key</span>
|
|
@@ -911,7 +911,10 @@ TERMINAL_HTML = """<!DOCTYPE html>
|
|
|
911
911
|
const apiKey = document.getElementById('apiKeyInput').value.trim();
|
|
912
912
|
const next = document.getElementById('nextGoalInput').value.trim();
|
|
913
913
|
|
|
914
|
-
let cmd = `git2report --repo ${repo} --since ${since} --audience ${audience}
|
|
914
|
+
let cmd = `git2report --repo ${repo} --since ${since} --audience ${audience}`;
|
|
915
|
+
if (llm !== 'offline') {
|
|
916
|
+
cmd += ` --llm ${llm}`;
|
|
917
|
+
}
|
|
915
918
|
if (llm === 'ollama' && model) {
|
|
916
919
|
cmd += ` --model ${model}`;
|
|
917
920
|
}
|
|
@@ -930,12 +933,12 @@ TERMINAL_HTML = """<!DOCTYPE html>
|
|
|
930
933
|
document.getElementById('repoInput').value = 'cloned_repos/CampusThrift';
|
|
931
934
|
document.getElementById('sinceInput').value = '2025-01-01';
|
|
932
935
|
document.getElementById('audienceSelect').value = 'guide';
|
|
933
|
-
document.getElementById('llmSelect').value = '
|
|
936
|
+
document.getElementById('llmSelect').value = 'offline';
|
|
934
937
|
} else if (type === 'current') {
|
|
935
938
|
document.getElementById('repoInput').value = '.';
|
|
936
939
|
document.getElementById('sinceInput').value = '7d';
|
|
937
940
|
document.getElementById('audienceSelect').value = 'team';
|
|
938
|
-
document.getElementById('llmSelect').value = '
|
|
941
|
+
document.getElementById('llmSelect').value = 'offline';
|
|
939
942
|
} else if (type === 'offline') {
|
|
940
943
|
document.getElementById('llmSelect').value = 'offline';
|
|
941
944
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: git2report
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.3
|
|
4
4
|
Summary: Turn Git history into a plain-language, evidence-linked progress report with visual charts and Terminal Web Studio.
|
|
5
5
|
Author-email: Vijay <vijaykd04@users.noreply.github.com>
|
|
6
6
|
License: MIT
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "git2report"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.3"
|
|
8
8
|
description = "Turn Git history into a plain-language, evidence-linked progress report with visual charts and Terminal Web Studio."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|