How mertkocakaplan/qualiguard works
QualiGuard is a Flask service for per-file defect and code-smell risk prediction, with PASS/REVIEW/BLOCK quality-gate results and project health indicators. Its interactive workflow accepts a GitHub repository or a ZIP containing .git, analyzes files and history, then serves predictions. A separate offline workflow discovers and processes GitHub projects to build training data and models. The graph combines excerpts, SOURCE INDEX references, and README-documented capabilities; unsampled subsystems are represented only where the README supports them.
Main entry points: analyzer.py Repository Analysis · project_processor.py Project Processing · train_final.py Model Training · dataset_builder.py Dataset Builder
Components 22
Web Analysis
- Web Routes
app/routes.py - Repository Analysis
app/analyzer.py - ZIP Handling
pipeline/zip_handler.py - Risk Predictor
app/predictor.py - Project Health
app/health.py
Repository Acquisition
- GitHub Discovery
pipeline/discovery.py - Repository Cloning
pipeline/cloning.py - API Rate Guard
pipeline/rate_limit.py
Metric Extraction
- Project Processing
pipeline/project_processor.py - Git History Metrics
pipeline/git_metrics.py - Static Metrics
pipeline/static_metrics.py - AST Smell Detection
pipeline/code_smells.py - SZZ Labels
pipeline/szz.py - CI/CD Signals
pipeline/ci_cd.py
Dataset and Models
- Dataset Builder
pipeline/dataset_builder.py - Project Categories
pipeline/categories.py - Model Training
scripts/train_final.py - Model Utilities
pipeline/model_utils.py - Project Statistics
pipeline/project_stats.py - Shared Configuration
pipeline/config.py
Other components
- User
- GitHub
Connections 28
- User → Web Routes: submits analysis
- Web Routes → Repository Analysis: starts analysis
app/routes.py - Repository Analysis → ZIP Handling: validates upload
app/analyzer.py - Repository Analysis → Repository Cloning: clones repository
app/analyzer.py - Repository Analysis → Git History Metrics: reads history
app/analyzer.py - Repository Analysis → Static Metrics: extracts metrics
app/analyzer.py - Repository Analysis → AST Smell Detection: detects smells
app/analyzer.py - Repository Analysis → Risk Predictor: requests predictions
app/analyzer.py - Repository Analysis → Project Health: computes health
app/analyzer.py - Risk Predictor → Shared Configuration: loads settings
app/predictor.py - GitHub Discovery → GitHub: searches projects
pipeline/discovery.py - GitHub Discovery → API Rate Guard: guards API calls
pipeline/discovery.py - User → GitHub: selects repository
- Model Training → Model Utilities: uses modeling utilities
scripts/train_final.py - Model Training → Project Statistics: uses project statistics
scripts/train_final.py - Model Training → Shared Configuration: loads settings
scripts/train_final.py - Dataset Builder → Project Categories: assigns categories
pipeline/dataset_builder.py - Dataset Builder → CI/CD Signals: adds CI signals
pipeline/dataset_builder.py - Project Processing → Repository Cloning: clones project
pipeline/project_processor.py - Project Processing → Git History Metrics: collects history metrics
pipeline/project_processor.py - Project Processing → Static Metrics: calculates static metrics
pipeline/project_processor.py - Project Processing → AST Smell Detection: collects smell data
pipeline/project_processor.py - Project Processing → SZZ Labels: derives defect labels
pipeline/project_processor.py - Project Processing → CI/CD Signals: collects CI signals
pipeline/project_processor.py - GitHub Discovery → Project Processing: hands off projects
- Project Processing → Dataset Builder: builds project data
- Dataset Builder → Model Training: provides training data
- Model Training → Risk Predictor: produces serving models
scripts/train_final.py