Files
dependency-review-action/src/config.ts

38 lines
1.2 KiB
TypeScript
Raw Normal View History

2022-05-12 18:05:14 +02:00
import * as fs from 'fs'
import YAML from 'yaml'
import { ConfigurationOptions, ConfigurationOptionsSchema } from './schemas'
import path from 'path'
export type Severity = "critical" | "high" | "moderate" | "low"
2022-05-12 18:05:14 +02:00
export const SEVERITIES = ["critical", "high", "moderate", "low"] as const
export const CONFIG_FILEPATH = "./.github/dep-review.yml"
2022-05-12 18:05:14 +02:00
export function readConfigFile(filePath: string = CONFIG_FILEPATH): ConfigurationOptions {
// By default we want to fail on all severities and allow all licenses.
const defaultOptions: ConfigurationOptions = {
fail_on_severity: 'low',
allow_licenses: []
}
2022-05-12 18:05:14 +02:00
let data
try {
data = fs.readFileSync(path.resolve(filePath), "utf-8");
} catch (error: any) {
if (error.code && error.code === 'ENOENT') {
return defaultOptions
} else {
throw error
}
}
2022-05-12 18:05:14 +02:00
// This is a copy of line 34, not sure why this is failing!
ConfigurationOptionsSchema.parse({ fail_on_severity: 'critical', allow_licenses: ['BSD', 'GPL 2'] })
const values = YAML.parse(data)
const parsed = ConfigurationOptionsSchema.parse(values)
2022-05-12 18:05:14 +02:00
return parsed;
}