Add types for package.json via @schemastore/package

This commit is contained in:
Henry Mercer 2023-01-20 12:03:17 +00:00
parent 1b508953b4
commit be8f7b01a2
27 changed files with 380 additions and 56 deletions

View file

@ -5,6 +5,7 @@ import * as path from "path";
import * as core from "@actions/core";
import * as toolrunner from "@actions/exec/lib/toolrunner";
import * as safeWhich from "@chrisgavin/safe-which";
import { JSONSchemaForNPMPackageJsonFiles } from "@schemastore/package";
import * as api from "./api-client";
import { Config } from "./config-utils";
@ -23,7 +24,7 @@ import {
import { getWorkflowPath } from "./workflow";
// eslint-disable-next-line import/no-commonjs
const pkg = require("../package.json");
const pkg = require("../package.json") as JSONSchemaForNPMPackageJsonFiles;
/**
* Wrapper around core.getInput for inputs that always have a value.
@ -382,6 +383,10 @@ export function getActionsStatus(
}
}
export function getActionVersion(): string {
return pkg.version!;
}
/**
* Compose a StatusReport.
*
@ -445,7 +450,7 @@ export async function createStatusReportBase(
status,
testing_environment: testingEnvironment,
runner_os: runnerOs,
action_version: pkg.version as string,
action_version: getActionVersion(),
};
// Add optional parameters

View file

@ -31,9 +31,6 @@ import { UploadResult } from "./upload-lib";
import * as util from "./util";
import { checkForTimeout } from "./util";
// eslint-disable-next-line import/no-commonjs
const pkg = require("../package.json");
interface AnalysisStatusReport
extends upload_lib.UploadStatusReport,
QueriesStatusReport {}
@ -180,7 +177,7 @@ async function run() {
let trapCacheUploadTime: number | undefined = undefined;
let dbCreationTimings: DatabaseCreationTimings | undefined = undefined;
let didUploadTrapCaches = false;
util.initializeEnvironment(pkg.version as string);
util.initializeEnvironment(actionsUtil.getActionVersion());
const logger = getActionsLogger();
try {

View file

@ -7,9 +7,6 @@ import { getApiClient } from "./api-client";
import { setupTests } from "./testing-utils";
import * as util from "./util";
// eslint-disable-next-line import/no-commonjs
const pkg = require("../package.json");
setupTests(test);
let pluginStub: sinon.SinonStub;
@ -19,7 +16,7 @@ test.beforeEach(() => {
pluginStub = sinon.stub(githubUtils.GitHub, "plugin");
githubStub = sinon.stub();
pluginStub.returns(githubStub);
util.initializeEnvironment(pkg.version as string);
util.initializeEnvironment(actionsUtil.getActionVersion());
});
test("getApiClient", async (t) => {
@ -39,7 +36,7 @@ test("getApiClient", async (t) => {
auth: "token xyz",
baseUrl: "http://api.github.localhost",
log: sinon.match.any,
userAgent: `CodeQL-Action/${pkg.version}`,
userAgent: `CodeQL-Action/${actionsUtil.getActionVersion()}`,
})
);
});

View file

@ -2,13 +2,10 @@ import * as githubUtils from "@actions/github/lib/utils";
import * as retry from "@octokit/plugin-retry";
import consoleLogLevel from "console-log-level";
import { getRequiredInput } from "./actions-util";
import { getActionVersion, getRequiredInput } from "./actions-util";
import * as util from "./util";
import { getRequiredEnvParam, GitHubVersion } from "./util";
// eslint-disable-next-line import/no-commonjs
const pkg = require("../package.json");
export enum DisallowedAPIVersionReason {
ACTION_TOO_OLD,
ACTION_TOO_NEW,
@ -39,7 +36,7 @@ function createApiClientWithDetails(
return new retryingOctokit(
githubUtils.getOctokitOptions(auth, {
baseUrl: apiDetails.apiURL,
userAgent: `CodeQL-Action/${pkg.version}`,
userAgent: `CodeQL-Action/${getActionVersion()}`,
log: consoleLogLevel({ level: "debug" }),
})
);

View file

@ -3,6 +3,7 @@ import * as core from "@actions/core";
import {
createStatusReportBase,
getActionsStatus,
getActionVersion,
getOptionalInput,
getTemporaryDirectory,
sendStatusReport,
@ -19,9 +20,6 @@ import {
initializeEnvironment,
} from "./util";
// eslint-disable-next-line import/no-commonjs
const pkg = require("../package.json");
interface AutobuildStatusReport extends StatusReportBase {
/** Comma-separated set of languages being auto-built. */
autobuild_languages: string;
@ -35,7 +33,7 @@ async function sendCompletedStatusReport(
failingLanguage?: string,
cause?: Error
) {
initializeEnvironment(pkg.version as string);
initializeEnvironment(getActionVersion());
const status = getActionsStatus(cause, failingLanguage);
const statusReportBase = await createStatusReportBase(

View file

@ -5,6 +5,7 @@ import * as core from "@actions/core";
import {
createStatusReportBase,
getActionsStatus,
getActionVersion,
getOptionalInput,
getRequiredInput,
getTemporaryDirectory,
@ -43,9 +44,6 @@ import {
} from "./util";
import { validateWorkflow } from "./workflow";
// eslint-disable-next-line import/no-commonjs
const pkg = require("../package.json");
interface InitSuccessStatusReport extends StatusReportBase {
/** Comma-separated list of languages where the default queries are disabled. */
disable_default_queries: string;
@ -137,7 +135,7 @@ async function sendSuccessStatusReport(
async function run() {
const startedAt = new Date();
const logger = getActionsLogger();
initializeEnvironment(pkg.version as string);
initializeEnvironment(getActionVersion());
let config: configUtils.Config;
let codeql: CodeQL;

View file

@ -1,6 +1,7 @@
import * as core from "@actions/core";
import * as actionsUtil from "./actions-util";
import { getActionVersion } from "./actions-util";
import { getActionsLogger } from "./logging";
import { parseRepositoryNwo } from "./repository";
import * as upload_lib from "./upload-lib";
@ -10,9 +11,6 @@ import {
isInTestMode,
} from "./util";
// eslint-disable-next-line import/no-commonjs
const pkg = require("../package.json");
interface UploadSarifStatusReport
extends actionsUtil.StatusReportBase,
upload_lib.UploadStatusReport {}
@ -35,7 +33,7 @@ async function sendSuccessStatusReport(
async function run() {
const startedAt = new Date();
initializeEnvironment(pkg.version as string);
initializeEnvironment(getActionVersion());
if (
!(await actionsUtil.sendStatusReport(
await actionsUtil.createStatusReportBase(