Streamlined daily monitoring for the Vultisig ecosystem (43+ repositories)
Vultisignal is a professional monitoring system that collects daily snapshots of GitHub activity across the Vultisig organization and generates comprehensive dashboards for development teams. Built with historical accuracy, data integrity, and developer experience as core principles.
Vultisignal uses a unified YAML configuration file (config.yaml) for all settings.
config.yaml in the project root:github:
org: vultisig
repos: # Optional: restrict to specific repos, or leave blank for all
- vultisig-ios
- vultisig-android
- vultisig-windows
- vultisig-web
token: ${GITHUB_TOKEN} # Read from environment variable
export GITHUB_TOKEN='your_github_token_here'
python3 vultisignal.py collect --github
github.org: GitHub organization name (default: vultisig)github.org_title_pref: Display name for dashboard titles (default: uses the org name)github.repos: List of specific repositories to monitor. If empty/omitted, monitors all repos in the organizationgithub.token: GitHub personal access token (must be set as environment variable for security)Security: All tokens and secrets are read from environment variables, never stored in the config file.
Vultisignal uses a professional CI/CD architecture:
main branch: Source code, scripts, and unified configurationgh-pages branch: Generated dashboard and documentation (auto-deployed)config.yaml + env vars → GitHub API → Daily Snapshot → Enhanced Dashboard → gh-pages
↓ ↓ ↓ ↓
GITHUB_TOKEN 43+ repositories exports/github/YYYY-MM-DD.json docs/index.html
↓
https://username.github.io/vultisignal
For a comprehensive visual representation of how data flows through the entire Vultisignal system - from GitHub API collection through processing, template rendering, and final deployment - see DATA_FLOW_DIAGRAM.html. This diagram provides an at-a-glance understanding of the complete architecture and is invaluable for onboarding new contributors and making informed architectural decisions.
vultisignal/
├── vultisignal.py # Main CLI interface
├── collectors/github.py # GitHub data collector
├── processors/summarizer.py # Summary processor
├── scripts/
│ ├── html_generator.py # Unified HTML dashboard generator
│ └── generate_docs.py # Documentation generator
├── templates/ # Jinja2 templates
│ ├── base.html # Base template with styling
│ ├── dashboard.html # Enhanced dashboard template
│ └── simple_dashboard.html # Simple dashboard template
├── assets/
│ └── custom.css # Custom styling
├── exports/
│ ├── github/YYYY-MM-DD.json # Daily GitHub snapshots
│ └── metrics_history.json # Historical metrics
└── docs/
├── index.html # Generated HTML dashboard
└── assets/custom.css # Deployed CSS assets
Vultisignal generates a comprehensive HTML dashboard with advanced analytics:
--local flag copies CSS assets automaticallyVultisignal provides a clean command-line interface for all operations:
# Collect GitHub data for today
python3 vultisignal.py collect --github
# Show collection status
python3 vultisignal.py status
# Generate HTML dashboard (production)
python3 vultisignal.py process --html-dashboard
# Generate dashboard for local development (copies CSS assets)
python3 vultisignal.py process --html-dashboard --local
# Generate dashboard for current day
python3 vultisignal.py process --html-dashboard --current
# Show 30 days of historical trends
python3 vultisignal.py history
# Show last 7 days only
python3 vultisignal.py history --days 7
Vultisignal runs completely automatically via GitHub Actions:
gh-pages branch only, keeps main cleanHistorical Data: We explored generating historical backfill data but encountered GitHub API limitations that made comprehensive historical analysis impractical. Vultisignal focuses on daily-forward monitoring from your start date.
Comprehensive project documentation is available as HTML files:
Monitoring 43+ repositories with typical daily activity:
This project follows FLOSS-first philosophy and prioritizes maintainability, clarity, and reproducibility.