Skip to content

Commit 999d4de

Browse files
committed
feat: add html output
1 parent 2a701fb commit 999d4de

3 files changed

Lines changed: 641 additions & 9 deletions

File tree

analyzer.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1370,18 +1370,23 @@ def analyze_repository(self, repo: Dict, show_progress: bool = True) -> Dict[str
13701370
repo_progress.update(1)
13711371
repo_progress.set_postfix({"step": "PR reviews"})
13721372

1373+
print(f"🔍 Analyzing PR reviews for {repo_name}...")
13731374
pr_review_analysis = self.get_pr_review_analysis(repo_name)
13741375
repo_data.update(pr_review_analysis)
1376+
print(f"✅ PR analysis completed: {pr_review_analysis.get('total_analyzed_prs', 0)} PRs processed")
13751377

13761378
# Step 7: Calculate quality score
13771379
if use_repo_progress:
13781380
repo_progress.update(1)
13791381
repo_progress.set_postfix({"step": "quality score"})
13801382

1383+
print(f"📊 Calculating quality score for {repo_name}...")
13811384
quality_analysis = self.calculate_quality_score(repo_data)
13821385
repo_data.update(quality_analysis)
1386+
print(f"✅ Quality score: {quality_analysis.get('quality_score', 0)}/100")
13831387

13841388
# Format dates
1389+
print(f"📅 Formatting dates and finalizing data for {repo_name}...")
13851390
repo_data['created_date'] = datetime.fromisoformat(
13861391
repo['created_at'].replace('Z', '+00:00')
13871392
).strftime('%Y-%m-%d')
@@ -1397,6 +1402,7 @@ def analyze_repository(self, repo: Dict, show_progress: bool = True) -> Dict[str
13971402
if use_repo_progress:
13981403
repo_progress.close()
13991404

1405+
print(f"✅ Repository analysis completed for {repo_name}")
14001406
return repo_data
14011407

14021408
def analyze_repositories(self, repos: List[Dict], show_progress: bool = True, repo_filter: List[str] = None) -> List[Dict[str, Any]]:

main.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import os
1818
from datetime import datetime
1919
from analyzer import GitHubRepoAnalyzer
20-
from output import generate_all_outputs
20+
import output
2121
from utils import setup_ssl_warnings, get_env_variables, validate_required_args, should_show_progress
2222

2323
def main():
@@ -50,6 +50,11 @@ def main():
5050
type=str,
5151
help='GitHub Personal Access Token (can also use GITHUB_TOKEN environment variable)'
5252
)
53+
parser.add_argument(
54+
'--output',
55+
type=str,
56+
help='Base filename for output files (without extension)'
57+
)
5358
parser.add_argument(
5459
'--output-dir',
5560
type=str,
@@ -208,11 +213,17 @@ def validate_positive_int(value):
208213
print("No repositories found or analyzed.")
209214
return
210215

211-
# Generate output files
212-
base_filename = f"{org}_repos_{timestamp}"
216+
# Save results to files
217+
output_filename = args.output or f"github_analysis_{org}_{datetime.now().strftime('%Y%m%d_%H%M%S')}"
218+
print(f"💾 Saving results to {output_filename}...")
219+
220+
if args.analyze_only:
221+
# For analyze-only mode, generate HTML dashboard by default
222+
output.save_to_html(repo_data, os.path.join(args.output_dir, f"{output_filename}.html"))
223+
print(f"🌐 Interactive HTML dashboard created: {output_filename}.html")
224+
print(" Open this file in your browser to explore quality configurations!")
213225

214-
# Save to different formats
215-
generate_all_outputs(repo_data, base_filename, args.output_dir)
226+
output.generate_all_outputs(repo_data, output_filename, args.output_dir)
216227

217228
# Print summary
218229
end_time = datetime.now()

0 commit comments

Comments
 (0)