QSOS::LNG analyzes Open-Source projects by collecting and scoring metrics from multiple sources:
- GitHub API: Repository metadata, commit history, stars, and contributor activity
- Tokei + Lizard: Code quality metrics (Tokei for fast line counting, Lizard for cyclomatic complexity)
- OpenSSF Scorecard: Security best practices and vulnerability checks
The tool computes normalized scores across three main categories:
- Community: Maturity, activity, popularity, contributor engagement, and documentation quality
- Technical Quality: Code size and cyclomatic complexity (percentage of high-complexity functions)
- Security: Weighted scorecard checks for security best practices
- Create a personal access token for the GitHub API
- Configure with env variables:
DATABASE_URLfor the PostgreSQL database connection string (e.g.,postgres://user:password@localhost:5432/dbname)GITHUB_TOKENfor the GitHub API tokenAI_API_KEYfor the AI API key (used for generating summaries)AI_BASE_URL(optional) for a custom AI API base URLAI_MODEL(optional) for specifying a particular AI model
- Run
go run . analyze minio/minio
A workflow is available at .github/workflows/analyze.yml that can be triggered manually to analyze any project.
Required Secrets:
Configure these in your repository settings (Settings → Secrets and variables → Actions):
ANALYSIS_GITHUB_TOKEN- A Personal Access Token withpublic_reposcope (orrepofor private repos)- Required for analyzing external repositories
- The default
GITHUB_TOKENhas insufficient permissions for OpenSSF Scorecard checks on external repositories - Create one at https://github.com/settings/tokens
AI_API_KEY- Your AI API key for generating summariesAI_BASE_URL(optional) - Custom AI API URLAI_MODEL(optional) - Specific AI model name
To run the workflow:
- Go to the Actions tab in your GitHub repository: https://github.com/linagora/qsos-lng/actions/workflows/analyze.yml
- Select "Analyze Project" workflow
- Click "Run workflow"
- Enter the project to analyze (e.g.,
minio/minio) - View results in the workflow log