projen
Version:
CDK for software projects
62 lines • 10.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DependencyReview = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const actions_const_1 = require("./actions.const");
const workflow_steps_1 = require("./workflow-steps");
const workflows_model_1 = require("./workflows-model");
const component_1 = require("../component");
/**
* Adds a GitHub workflow that runs the dependency-review-action on pull requests.
*
* This action scans pull requests for dependency changes and raises an error
* if any vulnerabilities or invalid licenses are introduced.
*
* @see https://github.com/actions/dependency-review-action
*/
class DependencyReview extends component_1.Component {
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.DependencyReview", version: "0.103.12" };
constructor(github, options = {}) {
super(github.project);
const commentSummary = options.commentSummaryInPr ?? "always";
const workflow = github.addWorkflow("dependency-review");
workflow.on({
pullRequest: {},
workflowDispatch: {},
});
workflow.addJobs({
"dependency-review": {
...github.runsOnConfig(options),
permissions: {
contents: workflows_model_1.JobPermission.READ,
...(commentSummary !== "never"
? { pullRequests: workflows_model_1.JobPermission.WRITE }
: {}),
},
steps: [
workflow_steps_1.WorkflowSteps.checkout(),
{
name: "Dependency Review",
uses: actions_const_1.GitHubActions.ACTIONS_DEPENDENCY_REVIEW_ACTION,
with: {
"fail-on-severity": options.failOnSeverity,
"allow-licenses": options.allowLicenses?.join(", "),
"vulnerability-check": options.vulnerabilityCheck,
"license-check": options.licenseCheck,
"fail-on-scopes": options.failOnScopes?.join(", "),
"config-file": options.configFile,
"allow-ghsas": options.allowGhsas?.join(", "),
"deny-packages": options.denyPackages?.join(", "),
"comment-summary-in-pr": commentSummary,
"warn-only": options.warnOnly,
"show-openssf-scorecard": options.showOpenSSFScorecard,
"warn-on-openssf-scorecard-level": options.warnOnOpenSSFScorecardLevel,
},
},
],
},
});
}
}
exports.DependencyReview = DependencyReview;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwZW5kZW5jeS1yZXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2l0aHViL2RlcGVuZGVuY3ktcmV2aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtREFBZ0Q7QUFFaEQscURBQWlEO0FBQ2pELHVEQUFrRDtBQUNsRCw0Q0FBeUM7QUE0RnpDOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLGdCQUFpQixTQUFRLHFCQUFTOztJQUM3QyxZQUFZLE1BQWMsRUFBRSxVQUFtQyxFQUFFO1FBQy9ELEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEIsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixJQUFJLFFBQVEsQ0FBQztRQUU5RCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDekQsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNWLFdBQVcsRUFBRSxFQUFFO1lBQ2YsZ0JBQWdCLEVBQUUsRUFBRTtTQUNyQixDQUFDLENBQUM7UUFFSCxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQ2YsbUJBQW1CLEVBQUU7Z0JBQ25CLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7Z0JBQy9CLFdBQVcsRUFBRTtvQkFDWCxRQUFRLEVBQUUsK0JBQWEsQ0FBQyxJQUFJO29CQUM1QixHQUFHLENBQUMsY0FBYyxLQUFLLE9BQU87d0JBQzVCLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSwrQkFBYSxDQUFDLEtBQUssRUFBRTt3QkFDdkMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDUjtnQkFDRCxLQUFLLEVBQUU7b0JBQ0wsOEJBQWEsQ0FBQyxRQUFRLEVBQUU7b0JBQ3hCO3dCQUNFLElBQUksRUFBRSxtQkFBbUI7d0JBQ3pCLElBQUksRUFBRSw2QkFBYSxDQUFDLGdDQUFnQzt3QkFDcEQsSUFBSSxFQUFFOzRCQUNKLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxjQUFjOzRCQUMxQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7NEJBQ25ELHFCQUFxQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0I7NEJBQ2pELGVBQWUsRUFBRSxPQUFPLENBQUMsWUFBWTs0QkFDckMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDOzRCQUNsRCxhQUFhLEVBQUUsT0FBTyxDQUFDLFVBQVU7NEJBQ2pDLGFBQWEsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7NEJBQzdDLGVBQWUsRUFBRSxPQUFPLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7NEJBQ2pELHVCQUF1QixFQUFFLGNBQWM7NEJBQ3ZDLFdBQVcsRUFBRSxPQUFPLENBQUMsUUFBUTs0QkFDN0Isd0JBQXdCLEVBQUUsT0FBTyxDQUFDLG9CQUFvQjs0QkFDdEQsaUNBQWlDLEVBQy9CLE9BQU8sQ0FBQywyQkFBMkI7eUJBQ3RDO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOztBQTdDSCw0Q0E4Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHaXRIdWJBY3Rpb25zIH0gZnJvbSBcIi4vYWN0aW9ucy5jb25zdFwiO1xuaW1wb3J0IHR5cGUgeyBHaXRIdWIgfSBmcm9tIFwiLi9naXRodWJcIjtcbmltcG9ydCB7IFdvcmtmbG93U3RlcHMgfSBmcm9tIFwiLi93b3JrZmxvdy1zdGVwc1wiO1xuaW1wb3J0IHsgSm9iUGVybWlzc2lvbiB9IGZyb20gXCIuL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBSdW5zT25PcHRpb25zIH0gZnJvbSBcIi4uL3J1bm5lci1vcHRpb25zXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIERlcGVuZGVuY3lSZXZpZXcgY29tcG9uZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGVuZGVuY3lSZXZpZXdPcHRpb25zIGV4dGVuZHMgUnVuc09uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgc2V2ZXJpdHkgbGV2ZWwgYXQgd2hpY2ggdGhlIGFjdGlvbiB3aWxsIGZhaWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbWluaW11bSBzZXZlcml0eSAoYWN0aW9uIGRlZmF1bHQgaXMgXCJsb3dcIilcbiAgICovXG4gIHJlYWRvbmx5IGZhaWxPblNldmVyaXR5PzogXCJsb3dcIiB8IFwibW9kZXJhdGVcIiB8IFwiaGlnaFwiIHwgXCJjcml0aWNhbFwiO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGFsbG93ZWQgU1BEWCBsaWNlbnNlIGlkZW50aWZpZXJzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGxpY2Vuc2UgYWxsb3ctbGlzdFxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dMaWNlbnNlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSB0aGUgdnVsbmVyYWJpbGl0eSBjaGVjay5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdnVsbmVyYWJpbGl0eUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgdGhlIGxpY2Vuc2UgY2hlY2suXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGxpY2Vuc2VDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNjb3BlcyBvZiBkZXBlbmRlbmNpZXMgdG8gZmFpbCBvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBzY29wZXMgZmlsdGVyIChhY3Rpb24gZGVmYXVsdCBpcyBcInJ1bnRpbWVcIilcbiAgICovXG4gIHJlYWRvbmx5IGZhaWxPblNjb3Blcz86IEFycmF5PFwicnVudGltZVwiIHwgXCJkZXZlbG9wbWVudFwiIHwgXCJ1bmtub3duXCI+O1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIGFuIGV4dGVybmFsIGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBleHRlcm5hbCBjb25maWdcbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpZ0ZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdpdEh1YiBBZHZpc29yeSBEYXRhYmFzZSBJRHMgdGhhdCBjYW4gYmUgc2tpcHBlZCBkdXJpbmcgZGV0ZWN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFkdmlzb3JpZXMgYXJlIHNraXBwZWRcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93R2hzYXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUGFja2FnZXMgdG8gYmxvY2sgaW4gYSBQUiAoaW4gcHVybCBmb3JtYXQpLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHBhY2thZ2VzIGFyZSBkZW5pZWRcbiAgICovXG4gIHJlYWRvbmx5IGRlbnlQYWNrYWdlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHBvc3QgYSBjb21tZW50IHN1bW1hcnkgb24gdGhlIFBSLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImFsd2F5c1wiXG4gICAqL1xuICByZWFkb25seSBjb21tZW50U3VtbWFyeUluUHI/OiBcImFsd2F5c1wiIHwgXCJvbi1mYWlsdXJlXCIgfCBcIm5ldmVyXCI7XG5cbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgdGhlIGFjdGlvbiB3aWxsIG9ubHkgd2FybiBhbmQgbm90IGZhaWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB3YXJuT25seT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNob3cgT3BlblNTRiBTY29yZWNhcmQgc2NvcmVzIGZvciBkZXBlbmRlbmNpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNob3dPcGVuU1NGU2NvcmVjYXJkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2NvcmUgdGhyZXNob2xkIGZvciBPcGVuU1NGIFNjb3JlY2FyZCB3YXJuaW5ncy5cbiAgICpcbiAgICogQGRlZmF1bHQgM1xuICAgKi9cbiAgcmVhZG9ubHkgd2Fybk9uT3BlblNTRlNjb3JlY2FyZExldmVsPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEFkZHMgYSBHaXRIdWIgd29ya2Zsb3cgdGhhdCBydW5zIHRoZSBkZXBlbmRlbmN5LXJldmlldy1hY3Rpb24gb24gcHVsbCByZXF1ZXN0cy5cbiAqXG4gKiBUaGlzIGFjdGlvbiBzY2FucyBwdWxsIHJlcXVlc3RzIGZvciBkZXBlbmRlbmN5IGNoYW5nZXMgYW5kIHJhaXNlcyBhbiBlcnJvclxuICogaWYgYW55IHZ1bG5lcmFiaWxpdGllcyBvciBpbnZhbGlkIGxpY2Vuc2VzIGFyZSBpbnRyb2R1Y2VkLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvZGVwZW5kZW5jeS1yZXZpZXctYWN0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBEZXBlbmRlbmN5UmV2aWV3IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoZ2l0aHViOiBHaXRIdWIsIG9wdGlvbnM6IERlcGVuZGVuY3lSZXZpZXdPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihnaXRodWIucHJvamVjdCk7XG5cbiAgICBjb25zdCBjb21tZW50U3VtbWFyeSA9IG9wdGlvbnMuY29tbWVudFN1bW1hcnlJblByID8/IFwiYWx3YXlzXCI7XG5cbiAgICBjb25zdCB3b3JrZmxvdyA9IGdpdGh1Yi5hZGRXb3JrZmxvdyhcImRlcGVuZGVuY3ktcmV2aWV3XCIpO1xuICAgIHdvcmtmbG93Lm9uKHtcbiAgICAgIHB1bGxSZXF1ZXN0OiB7fSxcbiAgICAgIHdvcmtmbG93RGlzcGF0Y2g6IHt9LFxuICAgIH0pO1xuXG4gICAgd29ya2Zsb3cuYWRkSm9icyh7XG4gICAgICBcImRlcGVuZGVuY3ktcmV2aWV3XCI6IHtcbiAgICAgICAgLi4uZ2l0aHViLnJ1bnNPbkNvbmZpZyhvcHRpb25zKSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgICAgIC4uLihjb21tZW50U3VtbWFyeSAhPT0gXCJuZXZlclwiXG4gICAgICAgICAgICA/IHsgcHVsbFJlcXVlc3RzOiBKb2JQZXJtaXNzaW9uLldSSVRFIH1cbiAgICAgICAgICAgIDoge30pLFxuICAgICAgICB9LFxuICAgICAgICBzdGVwczogW1xuICAgICAgICAgIFdvcmtmbG93U3RlcHMuY2hlY2tvdXQoKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkRlcGVuZGVuY3kgUmV2aWV3XCIsXG4gICAgICAgICAgICB1c2VzOiBHaXRIdWJBY3Rpb25zLkFDVElPTlNfREVQRU5ERU5DWV9SRVZJRVdfQUNUSU9OLFxuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICBcImZhaWwtb24tc2V2ZXJpdHlcIjogb3B0aW9ucy5mYWlsT25TZXZlcml0eSxcbiAgICAgICAgICAgICAgXCJhbGxvdy1saWNlbnNlc1wiOiBvcHRpb25zLmFsbG93TGljZW5zZXM/LmpvaW4oXCIsIFwiKSxcbiAgICAgICAgICAgICAgXCJ2dWxuZXJhYmlsaXR5LWNoZWNrXCI6IG9wdGlvbnMudnVsbmVyYWJpbGl0eUNoZWNrLFxuICAgICAgICAgICAgICBcImxpY2Vuc2UtY2hlY2tcIjogb3B0aW9ucy5saWNlbnNlQ2hlY2ssXG4gICAgICAgICAgICAgIFwiZmFpbC1vbi1zY29wZXNcIjogb3B0aW9ucy5mYWlsT25TY29wZXM/LmpvaW4oXCIsIFwiKSxcbiAgICAgICAgICAgICAgXCJjb25maWctZmlsZVwiOiBvcHRpb25zLmNvbmZpZ0ZpbGUsXG4gICAgICAgICAgICAgIFwiYWxsb3ctZ2hzYXNcIjogb3B0aW9ucy5hbGxvd0doc2FzPy5qb2luKFwiLCBcIiksXG4gICAgICAgICAgICAgIFwiZGVueS1wYWNrYWdlc1wiOiBvcHRpb25zLmRlbnlQYWNrYWdlcz8uam9pbihcIiwgXCIpLFxuICAgICAgICAgICAgICBcImNvbW1lbnQtc3VtbWFyeS1pbi1wclwiOiBjb21tZW50U3VtbWFyeSxcbiAgICAgICAgICAgICAgXCJ3YXJuLW9ubHlcIjogb3B0aW9ucy53YXJuT25seSxcbiAgICAgICAgICAgICAgXCJzaG93LW9wZW5zc2Ytc2NvcmVjYXJkXCI6IG9wdGlvbnMuc2hvd09wZW5TU0ZTY29yZWNhcmQsXG4gICAgICAgICAgICAgIFwid2Fybi1vbi1vcGVuc3NmLXNjb3JlY2FyZC1sZXZlbFwiOlxuICAgICAgICAgICAgICAgIG9wdGlvbnMud2Fybk9uT3BlblNTRlNjb3JlY2FyZExldmVsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19