Initial attempt (untested)

This commit is contained in:
Justin Hutchings
2022-08-25 11:50:14 -07:00
parent 71940e0673
commit aa7e545573
8 changed files with 3825 additions and 48 deletions
+53 -12
View File
@@ -1,21 +1,62 @@
const core = require('@actions/core');
const wait = require('./wait');
const fs = require('fs');
const glob = require('glob');
import {
PackageCache,
BuildTarget,
Package,
Snapshot,
submitSnapshot
} from '@github/dependency-submission-toolkit'
// most @actions toolkit packages have async methods
async function run() {
try {
const ms = core.getInput('milliseconds');
core.info(`Waiting ${ms} milliseconds ...`);
let spdxFiles = await parseFiles(await searchFiles());
let snapshot = new Snapshot({
detector: new Detector({
name: "spdx-to-dependency-graph-action",
version: "0.0.1",
url: "https://github.com/jhutchings1/spdx-to-dependency-graph-action",
})
});
core.debug((new Date()).toTimeString()); // debug is only output if you set the secret `ACTIONS_RUNNER_DEBUG` to true
await wait(parseInt(ms));
core.info((new Date()).toTimeString());
spdxFiles.forEach(spdxFile => {
let manifest = new Manifest(spdxFile.name);
spdxFile.packages.forEach(pkg => {
let packageName = pkg.packageName;
let packageVersion = pkg.packageVersion;
let purl = pkg.purl;
core.setOutput('time', new Date().toTimeString());
} catch (error) {
core.setFailed(error.message);
}
manifest.addPackage(new Package(packageName, packageVersion, purl));
snapshot.addManifest(manifest);
});
});
submitSnapshot(snapshot);
}
async function parseFiles(files) {
let spdxFiles = [];
files.forEach(file => {
fs.readFile(file, (err, content) => {
spdxFiles.push(parseSPDXFile(JSON.parse(content)));
});
});
return spdxFiles;
}
async function searchFiles() {
let filePath = core.getInput('filePath');
let filePattern = core.getInput('filePattern');
glob(`${filePath}/${filePattern}`, {}, (err, files) => {
if (err) {
core.error(err);
} else {
return files;
}
});
}
run();