Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Check ¶
type Check interface { // Name of the check. Name() string // PerformCheck runs the check on the specified package. // If the check fails then the return bool will be False and the string will // contain a reason explaining the failure. // If the check passwes then the return bool will be True and the string // will be empty. // If error is non-nil then bool will be False and reason will be empty. PerformCheck(packageName, packageVersion string, npmPackage *NpmPackage) (bool, string, error) }
Check is the interface implemented by all checks.
type ChecksManager ¶
type ChecksManager interface { // PerformChecks returns False when a package fails checks and also returns a // descriptive reason why. Returns True when package passes all checks. // If an error is returned then False and an empty string will also be // returned. PerformChecks(packageRequestURL string) (bool, string, error) }
ChecksManager helps callers perform checks on a particular project.
type DownloadedPackagesExaminer ¶
type DownloadedPackagesExaminer interface { // StartExamination examines all the downloaded packages of a mirror. StartExamination(ctx context.Context, pollInternal time.Duration) }
DownloadedPackagesExaminer examines all the downloaded packages of a mirror.
type IIssueTrackerService ¶
type IIssueTrackerService interface { // MakeIssue files a new issue using the provided parameters. MakeIssue(title, body, owner string) (*issuetracker.Issue, error) // GetIssue finds the specified issueID and returns the issue object. GetIssue(issueId int64) (*issuetracker.Issue, error) }
IIssueTrackerService is the interface for issue tracker calls.
type NpmAuditData ¶
type NpmAuditData struct { // When the audit issue was created. Created time.Time `firestore:"created"` // The ID of the issue tracker issue. IssueId int64 `firestore:"issue_id"` }
NpmAuditData is the type that will be stored in the DB.
type NpmAuditMetadata ¶
type NpmAuditOutput ¶
type NpmAuditOutput struct { Advisories map[string]Advisory `json:"advisories"` Metadata NpmAuditMetadata `json:"metadata"` Dependencies string `json:"dependencies"` DevDependencies string `json:"devDependencies"` OptionalDependencies string `json:"optionalDependencies"` TotalDependencies string `json:"totalDependencies"` }
Types used to parse output of the `npm audit` command.
type NpmDB ¶
type NpmDB interface { // GetFromDB returns an NpmAuditData document snapshot from Firestore. If the // document is not found then (nil, nil) is returned. GetFromDB(ctx context.Context, key string) (*NpmAuditData, error) // PutInDB puts NpmAuditData into the DB. If the specified key already exists // then it is updated. PutInDB(ctx context.Context, key string, issueId int64, created time.Time) error }
NpmDB is the interface implemented by all DB clients.
type NpmPackage ¶
type NpmPackage struct { Time map[string]string `json:"time"` Versions map[string]NpmVersion `json:"versions"` }
NpmPackage types to parse responses from the NPM global registry.
type NpmPackageTime ¶
type NpmVersion ¶
type PackageDetails ¶
type PackageDetails struct { NameWithScope string ScopeName string TarballName string Version string }
PackageDetails is populated by parsing a packageRequestURL and used in checks_manager.
type ProjectAudit ¶
type ProjectAudit interface { // StartAudit starts the auditing of the project in a goroutine. StartAudit(ctx context.Context, pollInterval time.Duration) }
ProjectAudit is the interface implemented by all project audits.
type ProjectMirror ¶
type ProjectMirror interface { // Name of the project this mirror was created for. GetProjectName() string // StartMirror starts the project's mirror in a goroutine. StartMirror(ctx context.Context, port int) error // AddToDownloadedPackageTarballs adds the provided package to the // in-memory map of installed packages. This is done to avoid expensive // calls by calling the filesystem. AddToDownloadedPackageTarballs(packageTarballName string) // IsPackageTarballDownloaded checks to see whether the specified // tarball has already been downloaded by the mirror. IsPackageTarballDownloaded(packageTarballName string) bool // GetDownloadedPackageNames examines the cache of downloaded packages on the // mirror and returns a slice of all package names. GetDownloadedPackageNames() ([]string, error) }
ProjectMirror is the interface implemented by all project mirrors.