@bhupesh123/security
Version:
Security vulnerability analysis microservice for GitHub repositories
83 lines • 2.09 kB
TypeScript
export interface SecurityIssue {
file: string;
line: number;
severity: 'critical' | 'high' | 'medium' | 'low' | 'info';
category: string;
title: string;
description: string;
cwe?: string;
cve?: string;
recommendation: string;
source?: string;
}
export interface DependencyVulnerability {
package: string;
version: string;
severity: 'critical' | 'high' | 'medium' | 'low';
cve: string;
description: string;
patchedVersions: string[];
recommendation: string;
}
export interface SecurityAnalysisResult {
totalIssues: number;
criticalIssues: number;
highIssues: number;
mediumIssues: number;
lowIssues: number;
issues: SecurityIssue[];
dependencies: DependencyVulnerability[];
summary: {
bySeverity: Record<string, number>;
byCategory: Record<string, number>;
byFile: Record<string, number>;
};
securityScore: number;
timestamp: string;
}
export declare class SecurityAnalyzer {
private octokit;
constructor(githubToken: string);
/**
* Analyze security vulnerabilities in a GitHub repository
*/
analyzeRepository(owner: string, repo: string, branch?: string): Promise<SecurityAnalysisResult>;
/**
* Get security advisories from GitHub
*/
private getSecurityAdvisories;
/**
* Check dependencies for vulnerabilities
*/
private checkDependencies;
/**
* Check if a package has known vulnerabilities
*/
private checkPackageVulnerability;
/**
* Analyze a single file for security issues
*/
private analyzeFile;
/**
* Scan content for security issues
*/
private scanContent;
/**
* Scan for exposed secrets
*/
private scanForSecrets;
/**
* Calculate security score (0-100)
*/
private calculateSecurityScore;
/**
* Get file content
*/
private getFile;
/**
* Get all source files
*/
private getSourceFiles;
}
export default SecurityAnalyzer;
//# sourceMappingURL=index.d.ts.map