diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 392d1c83d6..ffd8a8af6c 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,20 +1,17 @@ version: 2 updates: - - package-ecosystem: "npm" + - package-ecosystem: npm directory: "/" schedule: - interval: "weekly" - day: "thursday" # Gives us a working day to merge this before our typical release + interval: weekly labels: - - "Update dependencies" + - Update dependencies ignore: - dependency-name: "*" - update-types: ["version-update:semver-minor", "version-update:semver-patch"] - - package-ecosystem: "npm" - directory: "/runner" + update-types: + - version-update:semver-minor + - version-update:semver-patch + - package-ecosystem: github-actions + directory: "/" schedule: - interval: "weekly" - day: "thursday" # Gives us a working day to merge this before our typical release - ignore: - - dependency-name: "*" - update-types: ["version-update:semver-minor", "version-update:semver-patch"] + interval: weekly diff --git a/.github/workflows/__export-file-baseline-information.yml b/.github/workflows/__export-file-baseline-information.yml index b239cc56c3..9be43389a2 100644 --- a/.github/workflows/__export-file-baseline-information.yml +++ b/.github/workflows/__export-file-baseline-information.yml @@ -42,11 +42,11 @@ jobs: uses: ./.github/prepare-test with: version: ${{ matrix.version }} - - uses: swift-actions/setup-swift@5cdaa9161ad1f55ae39a5ea1784ef96de72f95d9 + - uses: swift-actions/setup-swift@194625b58a582570f61cc707c3b558086c26b723 # Windows doesn't support Swift, and only macOS latest and nightly-latest support Swift 5.7.1. if: runner.os == 'Linux' || (runner.os == 'macOS' && matrix.version == 'cached') with: - swift-version: '5.7' + swift-version: 5.7.0 - uses: ./../action/init with: languages: javascript diff --git a/.github/workflows/__multi-language-autodetect.yml b/.github/workflows/__multi-language-autodetect.yml index b4db770a0d..3525d5d38e 100644 --- a/.github/workflows/__multi-language-autodetect.yml +++ b/.github/workflows/__multi-language-autodetect.yml @@ -45,10 +45,6 @@ jobs: version: latest - os: macos-latest version: latest - - os: ubuntu-latest - version: nightly-latest - - os: macos-latest - version: nightly-latest name: Multi-language repository timeout-minutes: 45 runs-on: ${{ matrix.os }} @@ -65,11 +61,11 @@ jobs: uses: actions/setup-go@v3 with: go-version: ^1.13.1 - - uses: swift-actions/setup-swift@5cdaa9161ad1f55ae39a5ea1784ef96de72f95d9 + - uses: swift-actions/setup-swift@194625b58a582570f61cc707c3b558086c26b723 # Only macOS latest and nightly-latest support Swift 5.7.1 if: runner.os == 'Linux' || matrix.version == 'cached' with: - swift-version: '5.7' + swift-version: 5.7.0 - uses: ./../action/init with: diff --git a/.github/workflows/__submit-sarif-failure.yml b/.github/workflows/__submit-sarif-failure.yml new file mode 100644 index 0000000000..992f85c8b8 --- /dev/null +++ b/.github/workflows/__submit-sarif-failure.yml @@ -0,0 +1,72 @@ +# Warning: This file is generated automatically, and should not be modified. +# Instead, please modify the template in the pr-checks directory and run: +# pip install ruamel.yaml && python3 sync.py +# to regenerate this file. + +name: PR Check - Submit SARIF after failure +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GO111MODULE: auto +on: + push: + branches: + - main + - releases/v1 + - releases/v2 + pull_request: + types: + - opened + - synchronize + - reopened + - ready_for_review + workflow_dispatch: {} +jobs: + submit-sarif-failure: + strategy: + matrix: + include: + - os: ubuntu-latest + version: latest + - os: ubuntu-latest + version: cached + - os: ubuntu-latest + version: nightly-latest + name: Submit SARIF after failure + timeout-minutes: 45 + runs-on: ${{ matrix.os }} + steps: + - name: Check out repository + uses: actions/checkout@v3 + - name: Prepare test + id: prepare-test + uses: ./.github/prepare-test + with: + version: ${{ matrix.version }} + - uses: actions/checkout@v3 + - uses: ./init + with: + languages: javascript + - name: Fail + # We want this job to pass if the Action correctly uploads the SARIF file for + # the failed run. + # Setting this step to continue on error means that it is marked as completing + # successfully, so will not fail the job. + continue-on-error: true + run: exit 1 + - uses: ./analyze + # In a real workflow, this step wouldn't run. Since we used `continue-on-error` + # above, we manually disable it with an `if` condition. + if: false + with: + category: /test-codeql-version:${{ matrix.version }} + env: + # Internal-only environment variable used to indicate that the post-init Action + # should expect to upload a SARIF file for the failed run. + CODEQL_ACTION_EXPECT_UPLOAD_FAILED_SARIF: true + # Make sure the uploading SARIF files feature is enabled. + CODEQL_ACTION_UPLOAD_FAILED_SARIF: true + # Upload the failed SARIF file as an integration test of the API endpoint. + CODEQL_ACTION_TEST_MODE: false + # Mark telemetry for this workflow so it can be treated separately. + CODEQL_ACTION_TESTING_ENVIRONMENT: codeql-action-pr-checks + diff --git a/.github/workflows/__swift-autobuild.yml b/.github/workflows/__swift-autobuild.yml index b85b0a2113..f641dd4265 100644 --- a/.github/workflows/__swift-autobuild.yml +++ b/.github/workflows/__swift-autobuild.yml @@ -42,11 +42,11 @@ jobs: uses: ./.github/prepare-test with: version: ${{ matrix.version }} - - uses: swift-actions/setup-swift@5cdaa9161ad1f55ae39a5ea1784ef96de72f95d9 + - uses: swift-actions/setup-swift@194625b58a582570f61cc707c3b558086c26b723 # Only macOS latest and nightly-latest support Swift 5.7.1 if: runner.os == 'Linux' || matrix.version == 'cached' with: - swift-version: '5.7' + swift-version: 5.7.0 - uses: ./../action/init with: languages: swift diff --git a/.github/workflows/__swift-custom-build.yml b/.github/workflows/__swift-custom-build.yml index 78124ae8f4..7d7c151868 100644 --- a/.github/workflows/__swift-custom-build.yml +++ b/.github/workflows/__swift-custom-build.yml @@ -33,10 +33,6 @@ jobs: version: cached - os: macos-latest version: cached - - os: ubuntu-latest - version: nightly-latest - - os: macos-latest - version: nightly-latest name: Swift analysis using a custom build command timeout-minutes: 45 runs-on: ${{ matrix.os }} @@ -48,11 +44,11 @@ jobs: uses: ./.github/prepare-test with: version: ${{ matrix.version }} - - uses: swift-actions/setup-swift@5cdaa9161ad1f55ae39a5ea1784ef96de72f95d9 + - uses: swift-actions/setup-swift@194625b58a582570f61cc707c3b558086c26b723 # Only macOS latest and nightly-latest support Swift 5.7.1 if: runner.os == 'Linux' || matrix.version == 'cached' with: - swift-version: '5.7' + swift-version: 5.7.0 - uses: ./../action/init with: languages: swift diff --git a/.github/workflows/pr-checks.yml b/.github/workflows/pr-checks.yml index 4bd7bcb4be..8b36f4ed52 100644 --- a/.github/workflows/pr-checks.yml +++ b/.github/workflows/pr-checks.yml @@ -88,7 +88,7 @@ jobs: fi - name: Set up Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: 3.8 diff --git a/.github/workflows/python-deps.yml b/.github/workflows/python-deps.yml index 49acccc578..2aecdd832d 100644 --- a/.github/workflows/python-deps.yml +++ b/.github/workflows/python-deps.yml @@ -156,7 +156,7 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v3 - - uses: actions/setup-python@v3 + - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python_version }} diff --git a/.github/workflows/script/update-required-checks.sh b/.github/workflows/script/update-required-checks.sh index d83098b3d3..dfb1fc0f5a 100755 --- a/.github/workflows/script/update-required-checks.sh +++ b/.github/workflows/script/update-required-checks.sh @@ -10,7 +10,7 @@ fi if [ "$#" -eq 1 ]; then # If we were passed an argument, use that as the SHA - GITHUB_SHA="$0" + GITHUB_SHA="$1" elif [ "$#" -gt 1 ]; then echo "Usage: $0 [SHA]" echo "Update the required checks based on the SHA, or main." @@ -23,7 +23,7 @@ fi echo "Getting checks for $GITHUB_SHA" # Ignore any checks with "https://", CodeQL, LGTM, and Update checks. -CHECKS="$(gh api repos/github/codeql-action/commits/"${GITHUB_SHA}"/check-runs --paginate | jq --slurp --compact-output --raw-output '[.[].check_runs | .[].name | select(contains("https://") or . == "CodeQL" or . == "LGTM.com" or contains("Update") or contains("update") or contains("test-setup-python-scripts") | not)] | unique | sort')" +CHECKS="$(gh api repos/github/codeql-action/commits/"${GITHUB_SHA}"/check-runs --paginate | jq --slurp --compact-output --raw-output '[.[].check_runs | .[].name | select(contains("https://") or . == "CodeQL" or . == "LGTM.com" or . == "check-expected-release-files" or contains("Update") or contains("update") or contains("test-setup-python-scripts") | not)] | unique | sort')" echo "$CHECKS" | jq diff --git a/.github/workflows/update-release-branch.yml b/.github/workflows/update-release-branch.yml index 7ecb53a424..0907cb3cfa 100644 --- a/.github/workflows/update-release-branch.yml +++ b/.github/workflows/update-release-branch.yml @@ -29,7 +29,7 @@ jobs: fetch-depth: 0 - name: Set up Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: 3.8 diff --git a/.github/workflows/update-supported-enterprise-server-versions.yml b/.github/workflows/update-supported-enterprise-server-versions.yml index f329bba3b4..7a5be4439f 100644 --- a/.github/workflows/update-supported-enterprise-server-versions.yml +++ b/.github/workflows/update-supported-enterprise-server-versions.yml @@ -13,7 +13,7 @@ jobs: steps: - name: Setup Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: "3.7" - name: Checkout CodeQL Action @@ -35,7 +35,7 @@ jobs: env: ENTERPRISE_RELEASES_PATH: ${{ github.workspace }}/enterprise-releases/ - name: Commit Changes - uses: peter-evans/create-pull-request@c7f493a8000b8aeb17a1332e326ba76b57cb83eb # v3.4.1 + uses: peter-evans/create-pull-request@2b011faafdcbc9ceb11414d64d0573f37c774b04 # v4.2.3 with: commit-message: Update supported GitHub Enterprise Server versions. title: Update supported GitHub Enterprise Server versions. diff --git a/CHANGELOG.md b/CHANGELOG.md index 027e26f222..d94a783bc1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # CodeQL Action Changelog +## 1.1.36 - 08 Dec 2022 + +- Update default CodeQL bundle version to 2.11.5. [#1412](https://github.com/github/codeql-action/pull/1412) +- Add a step that tries to upload a SARIF file for the workflow run when that workflow run fails. This will help better surface failed code scanning workflow runs. [#1393](https://github.com/github/codeql-action/pull/1393) +- Python automatic dependency installation will no longer consider dependecy code installed in venv as user-written, for projects using Poetry that specify `virtualenvs.in-project = true` in their `poetry.toml`. [#1419](https://github.com/github/codeql-action/pull/1419). + ## 1.1.35 - 01 Dec 2022 No user facing changes. diff --git a/analyze/action.yml b/analyze/action.yml index 067881fc39..270bab4139 100644 --- a/analyze/action.yml +++ b/analyze/action.yml @@ -12,6 +12,7 @@ inputs: upload: description: Upload the SARIF file to Code Scanning required: false + # If changing this, make sure to update workflow.ts accordingly. default: "true" cleanup-level: description: "Level of cleanup to perform on CodeQL databases at the end of the analyze step. This should either be 'none' to skip cleanup, or be a valid argument for the --mode flag of the CodeQL CLI command 'codeql database cleanup' as documented at https://codeql.github.com/docs/codeql-cli/manual/database-cleanup" @@ -44,6 +45,7 @@ inputs: checkout_path: description: "The path at which the analyzed repository was checked out. Used to relativize any absolute paths in the uploaded SARIF file." required: false + # If changing this, make sure to update workflow.ts accordingly. default: ${{ github.workspace }} ref: description: "The ref where results will be uploaded. If not provided, the Action will use the GITHUB_REF environment variable. If provided, the sha input must be provided as well. This input is not available in pull requests from forks." diff --git a/lib/actions-util.js b/lib/actions-util.js index 6a6dd88358..2904e71df6 100644 --- a/lib/actions-util.js +++ b/lib/actions-util.js @@ -19,17 +19,17 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.printDebugLogs = exports.isAnalyzingDefaultBranch = exports.getRelativeScriptPath = exports.isRunningLocalAction = exports.workflowEventName = exports.sendStatusReport = exports.createStatusReportBase = exports.getActionsStatus = exports.getRef = exports.computeAutomationID = exports.getAutomationID = exports.getAnalysisKey = exports.getWorkflowRunID = exports.getWorkflow = exports.formatWorkflowCause = exports.formatWorkflowErrors = exports.validateWorkflow = exports.getWorkflowErrors = exports.WorkflowErrors = exports.patternIsSuperset = exports.determineMergeBaseCommitOid = exports.getCommitOid = exports.getTemporaryDirectory = exports.getOptionalInput = exports.getRequiredInput = void 0; +exports.printDebugLogs = exports.isAnalyzingDefaultBranch = exports.getRelativeScriptPath = exports.isRunningLocalAction = exports.workflowEventName = exports.sendStatusReport = exports.createStatusReportBase = exports.getActionsStatus = exports.getRef = exports.computeAutomationID = exports.getAutomationID = exports.getAnalysisKey = exports.determineMergeBaseCommitOid = exports.getCommitOid = exports.getTemporaryDirectory = exports.getOptionalInput = exports.getRequiredInput = void 0; const fs = __importStar(require("fs")); const os = __importStar(require("os")); const path = __importStar(require("path")); const core = __importStar(require("@actions/core")); const toolrunner = __importStar(require("@actions/exec/lib/toolrunner")); const safeWhich = __importStar(require("@chrisgavin/safe-which")); -const yaml = __importStar(require("js-yaml")); const api = __importStar(require("./api-client")); const sharedEnv = __importStar(require("./shared-environment")); const util_1 = require("./util"); +const workflow_1 = require("./workflow"); // eslint-disable-next-line import/no-commonjs const pkg = require("../package.json"); /** @@ -145,225 +145,6 @@ const determineMergeBaseCommitOid = async function () { } }; exports.determineMergeBaseCommitOid = determineMergeBaseCommitOid; -function isObject(o) { - return o !== null && typeof o === "object"; -} -const GLOB_PATTERN = new RegExp("(\\*\\*?)"); -function escapeRegExp(string) { - return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string -} -function patternToRegExp(value) { - return new RegExp(`^${value - .toString() - .split(GLOB_PATTERN) - .reduce(function (arr, cur) { - if (cur === "**") { - arr.push(".*?"); - } - else if (cur === "*") { - arr.push("[^/]*?"); - } - else if (cur) { - arr.push(escapeRegExp(cur)); - } - return arr; - }, []) - .join("")}$`); -} -// this function should return true if patternA is a superset of patternB -// e.g: * is a superset of main-* but main-* is not a superset of *. -function patternIsSuperset(patternA, patternB) { - return patternToRegExp(patternA).test(patternB); -} -exports.patternIsSuperset = patternIsSuperset; -function branchesToArray(branches) { - if (typeof branches === "string") { - return [branches]; - } - if (Array.isArray(branches)) { - if (branches.length === 0) { - return "**"; - } - return branches; - } - return "**"; -} -function toCodedErrors(errors) { - return Object.entries(errors).reduce((acc, [key, value]) => { - acc[key] = { message: value, code: key }; - return acc; - }, {}); -} -// code to send back via status report -// message to add as a warning annotation to the run -exports.WorkflowErrors = toCodedErrors({ - MismatchedBranches: `Please make sure that every branch in on.pull_request is also in on.push so that Code Scanning can compare pull requests against the state of the base branch.`, - MissingPushHook: `Please specify an on.push hook so that Code Scanning can compare pull requests against the state of the base branch.`, - PathsSpecified: `Using on.push.paths can prevent Code Scanning annotating new alerts in your pull requests.`, - PathsIgnoreSpecified: `Using on.push.paths-ignore can prevent Code Scanning annotating new alerts in your pull requests.`, - CheckoutWrongHead: `git checkout HEAD^2 is no longer necessary. Please remove this step as Code Scanning recommends analyzing the merge commit for best results.`, -}); -function getWorkflowErrors(doc) { - var _a, _b, _c, _d, _e; - const errors = []; - const jobName = process.env.GITHUB_JOB; - if (jobName) { - const job = (_a = doc === null || doc === void 0 ? void 0 : doc.jobs) === null || _a === void 0 ? void 0 : _a[jobName]; - const steps = job === null || job === void 0 ? void 0 : job.steps; - if (Array.isArray(steps)) { - for (const step of steps) { - // this was advice that we used to give in the README - // we actually want to run the analysis on the merge commit - // to produce results that are more inline with expectations - // (i.e: this is what will happen if you merge this PR) - // and avoid some race conditions - if ((step === null || step === void 0 ? void 0 : step.run) === "git checkout HEAD^2") { - errors.push(exports.WorkflowErrors.CheckoutWrongHead); - break; - } - } - } - } - let missingPush = false; - if (doc.on === undefined) { - // this is not a valid config - } - else if (typeof doc.on === "string") { - if (doc.on === "pull_request") { - missingPush = true; - } - } - else if (Array.isArray(doc.on)) { - const hasPush = doc.on.includes("push"); - const hasPullRequest = doc.on.includes("pull_request"); - if (hasPullRequest && !hasPush) { - missingPush = true; - } - } - else if (isObject(doc.on)) { - const hasPush = Object.prototype.hasOwnProperty.call(doc.on, "push"); - const hasPullRequest = Object.prototype.hasOwnProperty.call(doc.on, "pull_request"); - if (!hasPush && hasPullRequest) { - missingPush = true; - } - if (hasPush && hasPullRequest) { - const paths = (_b = doc.on.push) === null || _b === void 0 ? void 0 : _b.paths; - // if you specify paths or paths-ignore you can end up with commits that have no baseline - // if they didn't change any files - // currently we cannot go back through the history and find the most recent baseline - if (Array.isArray(paths) && paths.length > 0) { - errors.push(exports.WorkflowErrors.PathsSpecified); - } - const pathsIgnore = (_c = doc.on.push) === null || _c === void 0 ? void 0 : _c["paths-ignore"]; - if (Array.isArray(pathsIgnore) && pathsIgnore.length > 0) { - errors.push(exports.WorkflowErrors.PathsIgnoreSpecified); - } - } - // if doc.on.pull_request is null that means 'all branches' - // if doc.on.pull_request is undefined that means 'off' - // we only want to check for mismatched branches if pull_request is on. - if (doc.on.pull_request !== undefined) { - const push = branchesToArray((_d = doc.on.push) === null || _d === void 0 ? void 0 : _d.branches); - if (push !== "**") { - const pull_request = branchesToArray((_e = doc.on.pull_request) === null || _e === void 0 ? void 0 : _e.branches); - if (pull_request !== "**") { - const difference = pull_request.filter((value) => !push.some((o) => patternIsSuperset(o, value))); - if (difference.length > 0) { - // there are branches in pull_request that may not have a baseline - // because we are not building them on push - errors.push(exports.WorkflowErrors.MismatchedBranches); - } - } - else if (push.length > 0) { - // push is set up to run on a subset of branches - // and you could open a PR against a branch with no baseline - errors.push(exports.WorkflowErrors.MismatchedBranches); - } - } - } - } - if (missingPush) { - errors.push(exports.WorkflowErrors.MissingPushHook); - } - return errors; -} -exports.getWorkflowErrors = getWorkflowErrors; -async function validateWorkflow() { - let workflow; - try { - workflow = await getWorkflow(); - } - catch (e) { - return `error: getWorkflow() failed: ${String(e)}`; - } - let workflowErrors; - try { - workflowErrors = getWorkflowErrors(workflow); - } - catch (e) { - return `error: getWorkflowErrors() failed: ${String(e)}`; - } - if (workflowErrors.length > 0) { - let message; - try { - message = formatWorkflowErrors(workflowErrors); - } - catch (e) { - return `error: formatWorkflowErrors() failed: ${String(e)}`; - } - core.warning(message); - } - return formatWorkflowCause(workflowErrors); -} -exports.validateWorkflow = validateWorkflow; -function formatWorkflowErrors(errors) { - const issuesWere = errors.length === 1 ? "issue was" : "issues were"; - const errorsList = errors.map((e) => e.message).join(" "); - return `${errors.length} ${issuesWere} detected with this workflow: ${errorsList}`; -} -exports.formatWorkflowErrors = formatWorkflowErrors; -function formatWorkflowCause(errors) { - if (errors.length === 0) { - return undefined; - } - return errors.map((e) => e.code).join(","); -} -exports.formatWorkflowCause = formatWorkflowCause; -async function getWorkflow() { - const relativePath = await getWorkflowPath(); - const absolutePath = path.join((0, util_1.getRequiredEnvParam)("GITHUB_WORKSPACE"), relativePath); - return yaml.load(fs.readFileSync(absolutePath, "utf-8")); -} -exports.getWorkflow = getWorkflow; -/** - * Get the path of the currently executing workflow. - */ -async function getWorkflowPath() { - const repo_nwo = (0, util_1.getRequiredEnvParam)("GITHUB_REPOSITORY").split("/"); - const owner = repo_nwo[0]; - const repo = repo_nwo[1]; - const run_id = Number((0, util_1.getRequiredEnvParam)("GITHUB_RUN_ID")); - const apiClient = api.getApiClient(); - const runsResponse = await apiClient.request("GET /repos/:owner/:repo/actions/runs/:run_id?exclude_pull_requests=true", { - owner, - repo, - run_id, - }); - const workflowUrl = runsResponse.data.workflow_url; - const workflowResponse = await apiClient.request(`GET ${workflowUrl}`); - return workflowResponse.data.path; -} -/** - * Get the workflow run ID. - */ -function getWorkflowRunID() { - const workflowRunID = parseInt((0, util_1.getRequiredEnvParam)("GITHUB_RUN_ID"), 10); - if (Number.isNaN(workflowRunID)) { - throw new Error("GITHUB_RUN_ID must define a non NaN workflow run ID"); - } - return workflowRunID; -} -exports.getWorkflowRunID = getWorkflowRunID; /** * Get the analysis key parameter for the current job. * @@ -377,7 +158,7 @@ async function getAnalysisKey() { if (analysisKey !== undefined) { return analysisKey; } - const workflowPath = await getWorkflowPath(); + const workflowPath = await (0, workflow_1.getWorkflowPath)(); const jobName = (0, util_1.getRequiredEnvParam)("GITHUB_JOB"); analysisKey = `${workflowPath}:${jobName}`; core.exportVariable(analysisKeyEnvVar, analysisKey); @@ -392,10 +173,10 @@ async function getAutomationID() { exports.getAutomationID = getAutomationID; function computeAutomationID(analysis_key, environment) { let automationID = `${analysis_key}/`; - // the id has to be deterministic so we sort the fields - if (environment !== undefined && environment !== "null") { - const environmentObject = JSON.parse(environment); - for (const entry of Object.entries(environmentObject).sort()) { + const matrix = (0, util_1.parseMatrixInput)(environment); + if (matrix !== undefined) { + // the id has to be deterministic so we sort the fields + for (const entry of Object.entries(matrix).sort()) { if (typeof entry[1] === "string") { automationID += `${entry[0]}:${entry[1]}/`; } diff --git a/lib/actions-util.js.map b/lib/actions-util.js.map index 63b79c340f..742c76449f 100644 --- a/lib/actions-util.js.map +++ b/lib/actions-util.js.map @@ -1 +1 @@ -{"version":3,"file":"actions-util.js","sourceRoot":"","sources":["../src/actions-util.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"actions-util.js","sourceRoot":"","sources":["../src/actions-util.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/actions-util.test.js b/lib/actions-util.test.js index 12eeb95a98..b8d28febd2 100644 --- a/lib/actions-util.test.js +++ b/lib/actions-util.test.js @@ -25,14 +25,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); const fs = __importStar(require("fs")); const path = __importStar(require("path")); const ava_1 = __importDefault(require("ava")); -const yaml = __importStar(require("js-yaml")); const sinon = __importStar(require("sinon")); const actionsutil = __importStar(require("./actions-util")); const testing_utils_1 = require("./testing-utils"); const util_1 = require("./util"); -function errorCodes(actual, expected) { - return [actual.map(({ code }) => code), expected.map(({ code }) => code)]; -} (0, testing_utils_1.setupTests)(ava_1.default); (0, ava_1.default)("getRef() throws on the empty string", async (t) => { process.env["GITHUB_REF"] = ""; @@ -143,333 +139,6 @@ function errorCodes(actual, expected) { actualAutomationID = actionsutil.computeAutomationID(".github/workflows/codeql-analysis.yml:analyze", undefined); t.deepEqual(actualAutomationID, ".github/workflows/codeql-analysis.yml:analyze/"); }); -(0, ava_1.default)("getWorkflowErrors() when on is empty", (t) => { - const errors = actionsutil.getWorkflowErrors({ on: {} }); - t.deepEqual(...errorCodes(errors, [])); -}); -(0, ava_1.default)("getWorkflowErrors() when on.push is an array missing pull_request", (t) => { - const errors = actionsutil.getWorkflowErrors({ on: ["push"] }); - t.deepEqual(...errorCodes(errors, [])); -}); -(0, ava_1.default)("getWorkflowErrors() when on.push is an array missing push", (t) => { - const errors = actionsutil.getWorkflowErrors({ on: ["pull_request"] }); - t.deepEqual(...errorCodes(errors, [actionsutil.WorkflowErrors.MissingPushHook])); -}); -(0, ava_1.default)("getWorkflowErrors() when on.push is valid", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: ["push", "pull_request"], - }); - t.deepEqual(...errorCodes(errors, [])); -}); -(0, ava_1.default)("getWorkflowErrors() when on.push is a valid superset", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: ["push", "pull_request", "schedule"], - }); - t.deepEqual(...errorCodes(errors, [])); -}); -(0, ava_1.default)("getWorkflowErrors() when on.push should not have a path", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: { - push: { branches: ["main"], paths: ["test/*"] }, - pull_request: { branches: ["main"] }, - }, - }); - t.deepEqual(...errorCodes(errors, [actionsutil.WorkflowErrors.PathsSpecified])); -}); -(0, ava_1.default)("getWorkflowErrors() when on.push is a correct object", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: { push: { branches: ["main"] }, pull_request: { branches: ["main"] } }, - }); - t.deepEqual(...errorCodes(errors, [])); -}); -(0, ava_1.default)("getWorkflowErrors() when on.pull_requests is a string", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: { push: { branches: ["main"] }, pull_request: { branches: "*" } }, - }); - t.deepEqual(...errorCodes(errors, [actionsutil.WorkflowErrors.MismatchedBranches])); -}); -(0, ava_1.default)("getWorkflowErrors() when on.pull_requests is a string and correct", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: { push: { branches: "*" }, pull_request: { branches: "*" } }, - }); - t.deepEqual(...errorCodes(errors, [])); -}); -(0, ava_1.default)("getWorkflowErrors() when on.push is correct with empty objects", (t) => { - const errors = actionsutil.getWorkflowErrors(yaml.load(` -on: - push: - pull_request: -`)); - t.deepEqual(...errorCodes(errors, [])); -}); -(0, ava_1.default)("getWorkflowErrors() when on.push is mismatched", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: { - push: { branches: ["main"] }, - pull_request: { branches: ["feature"] }, - }, - }); - t.deepEqual(...errorCodes(errors, [actionsutil.WorkflowErrors.MismatchedBranches])); -}); -(0, ava_1.default)("getWorkflowErrors() when on.push is not mismatched", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: { - push: { branches: ["main", "feature"] }, - pull_request: { branches: ["main"] }, - }, - }); - t.deepEqual(...errorCodes(errors, [])); -}); -(0, ava_1.default)("getWorkflowErrors() when on.push is mismatched for pull_request", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: { - push: { branches: ["main"] }, - pull_request: { branches: ["main", "feature"] }, - }, - }); - t.deepEqual(...errorCodes(errors, [actionsutil.WorkflowErrors.MismatchedBranches])); -}); -(0, ava_1.default)("getWorkflowErrors() for a range of malformed workflows", (t) => { - t.deepEqual(...errorCodes(actionsutil.getWorkflowErrors({ - on: { - push: 1, - pull_request: 1, - }, - }), [])); - t.deepEqual(...errorCodes(actionsutil.getWorkflowErrors({ - on: 1, - }), [])); - t.deepEqual(...errorCodes(actionsutil.getWorkflowErrors({ - on: 1, - jobs: 1, - }), [])); - t.deepEqual(...errorCodes(actionsutil.getWorkflowErrors({ - on: 1, - jobs: [1], - }), [])); - t.deepEqual(...errorCodes(actionsutil.getWorkflowErrors({ - on: 1, - jobs: { 1: 1 }, - }), [])); - t.deepEqual(...errorCodes(actionsutil.getWorkflowErrors({ - on: 1, - jobs: { test: 1 }, - }), [])); - t.deepEqual(...errorCodes(actionsutil.getWorkflowErrors({ - on: 1, - jobs: { test: [1] }, - }), [])); - t.deepEqual(...errorCodes(actionsutil.getWorkflowErrors({ - on: 1, - jobs: { test: { steps: 1 } }, - }), [])); - t.deepEqual(...errorCodes(actionsutil.getWorkflowErrors({ - on: 1, - jobs: { test: { steps: [{ notrun: "git checkout HEAD^2" }] } }, - }), [])); - t.deepEqual(...errorCodes(actionsutil.getWorkflowErrors({ - on: 1, - jobs: { test: [undefined] }, - }), [])); - t.deepEqual(...errorCodes(actionsutil.getWorkflowErrors(1), [])); - t.deepEqual(...errorCodes(actionsutil.getWorkflowErrors({ - on: { - push: { - branches: 1, - }, - pull_request: { - branches: 1, - }, - }, - }), [])); -}); -(0, ava_1.default)("getWorkflowErrors() when on.pull_request for every branch but push specifies branches", (t) => { - const errors = actionsutil.getWorkflowErrors(yaml.load(` -name: "CodeQL" -on: - push: - branches: ["main"] - pull_request: -`)); - t.deepEqual(...errorCodes(errors, [actionsutil.WorkflowErrors.MismatchedBranches])); -}); -(0, ava_1.default)("getWorkflowErrors() when on.pull_request for wildcard branches", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: { - push: { branches: ["feature/*"] }, - pull_request: { branches: "feature/moose" }, - }, - }); - t.deepEqual(...errorCodes(errors, [])); -}); -(0, ava_1.default)("getWorkflowErrors() when on.pull_request for mismatched wildcard branches", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: { - push: { branches: ["feature/moose"] }, - pull_request: { branches: "feature/*" }, - }, - }); - t.deepEqual(...errorCodes(errors, [actionsutil.WorkflowErrors.MismatchedBranches])); -}); -(0, ava_1.default)("getWorkflowErrors() when HEAD^2 is checked out", (t) => { - process.env.GITHUB_JOB = "test"; - const errors = actionsutil.getWorkflowErrors({ - on: ["push", "pull_request"], - jobs: { test: { steps: [{ run: "git checkout HEAD^2" }] } }, - }); - t.deepEqual(...errorCodes(errors, [actionsutil.WorkflowErrors.CheckoutWrongHead])); -}); -(0, ava_1.default)("formatWorkflowErrors() when there is one error", (t) => { - const message = actionsutil.formatWorkflowErrors([ - actionsutil.WorkflowErrors.CheckoutWrongHead, - ]); - t.true(message.startsWith("1 issue was detected with this workflow:")); -}); -(0, ava_1.default)("formatWorkflowErrors() when there are multiple errors", (t) => { - const message = actionsutil.formatWorkflowErrors([ - actionsutil.WorkflowErrors.CheckoutWrongHead, - actionsutil.WorkflowErrors.PathsSpecified, - ]); - t.true(message.startsWith("2 issues were detected with this workflow:")); -}); -(0, ava_1.default)("formatWorkflowCause() with no errors", (t) => { - const message = actionsutil.formatWorkflowCause([]); - t.deepEqual(message, undefined); -}); -(0, ava_1.default)("formatWorkflowCause()", (t) => { - const message = actionsutil.formatWorkflowCause([ - actionsutil.WorkflowErrors.CheckoutWrongHead, - actionsutil.WorkflowErrors.PathsSpecified, - ]); - t.deepEqual(message, "CheckoutWrongHead,PathsSpecified"); - t.deepEqual(actionsutil.formatWorkflowCause([]), undefined); -}); -(0, ava_1.default)("patternIsSuperset()", (t) => { - t.false(actionsutil.patternIsSuperset("main-*", "main")); - t.true(actionsutil.patternIsSuperset("*", "*")); - t.true(actionsutil.patternIsSuperset("*", "main-*")); - t.false(actionsutil.patternIsSuperset("main-*", "*")); - t.false(actionsutil.patternIsSuperset("main-*", "main")); - t.true(actionsutil.patternIsSuperset("main", "main")); - t.false(actionsutil.patternIsSuperset("*", "feature/*")); - t.true(actionsutil.patternIsSuperset("**", "feature/*")); - t.false(actionsutil.patternIsSuperset("feature-*", "**")); - t.false(actionsutil.patternIsSuperset("a/**/c", "a/**/d")); - t.false(actionsutil.patternIsSuperset("a/**/c", "a/**")); - t.true(actionsutil.patternIsSuperset("a/**", "a/**/c")); - t.true(actionsutil.patternIsSuperset("a/**/c", "a/main-**/c")); - t.false(actionsutil.patternIsSuperset("a/**/b/**/c", "a/**/d/**/c")); - t.true(actionsutil.patternIsSuperset("a/**/b/**/c", "a/**/b/c/**/c")); - t.true(actionsutil.patternIsSuperset("a/**/b/**/c", "a/**/b/d/**/c")); - t.false(actionsutil.patternIsSuperset("a/**/c/d/**/c", "a/**/b/**/c")); - t.false(actionsutil.patternIsSuperset("a/main-**/c", "a/**/c")); - t.true(actionsutil.patternIsSuperset("/robin/*/release/*", "/robin/moose/release/goose")); - t.false(actionsutil.patternIsSuperset("/robin/moose/release/goose", "/robin/*/release/*")); -}); -(0, ava_1.default)("getWorkflowErrors() when branches contain dots", (t) => { - const errors = actionsutil.getWorkflowErrors(yaml.load(` - on: - push: - branches: [4.1, master] - pull_request: - # The branches below must be a subset of the branches above - branches: [4.1, master] -`)); - t.deepEqual(...errorCodes(errors, [])); -}); -(0, ava_1.default)("getWorkflowErrors() when on.push has a trailing comma", (t) => { - const errors = actionsutil.getWorkflowErrors(yaml.load(` -name: "CodeQL" -on: - push: - branches: [master, ] - pull_request: - # The branches below must be a subset of the branches above - branches: [master] -`)); - t.deepEqual(...errorCodes(errors, [])); -}); -(0, ava_1.default)("getWorkflowErrors() should only report the current job's CheckoutWrongHead", (t) => { - process.env.GITHUB_JOB = "test"; - const errors = actionsutil.getWorkflowErrors(yaml.load(` -name: "CodeQL" -on: - push: - branches: [master] - pull_request: - # The branches below must be a subset of the branches above - branches: [master] -jobs: - test: - steps: - - run: "git checkout HEAD^2" - - test2: - steps: - - run: "git checkout HEAD^2" - - test3: - steps: [] -`)); - t.deepEqual(...errorCodes(errors, [actionsutil.WorkflowErrors.CheckoutWrongHead])); -}); -(0, ava_1.default)("getWorkflowErrors() should not report a different job's CheckoutWrongHead", (t) => { - process.env.GITHUB_JOB = "test3"; - const errors = actionsutil.getWorkflowErrors(yaml.load(` -name: "CodeQL" -on: - push: - branches: [master] - pull_request: - # The branches below must be a subset of the branches above - branches: [master] -jobs: - test: - steps: - - run: "git checkout HEAD^2" - - test2: - steps: - - run: "git checkout HEAD^2" - - test3: - steps: [] -`)); - t.deepEqual(...errorCodes(errors, [])); -}); -(0, ava_1.default)("getWorkflowErrors() when on is missing", (t) => { - const errors = actionsutil.getWorkflowErrors(yaml.load(` -name: "CodeQL" -`)); - t.deepEqual(...errorCodes(errors, [])); -}); -(0, ava_1.default)("getWorkflowErrors() with a different on setup", (t) => { - t.deepEqual(...errorCodes(actionsutil.getWorkflowErrors(yaml.load(` -name: "CodeQL" -on: "workflow_dispatch" -`)), [])); - t.deepEqual(...errorCodes(actionsutil.getWorkflowErrors(yaml.load(` -name: "CodeQL" -on: [workflow_dispatch] -`)), [])); - t.deepEqual(...errorCodes(actionsutil.getWorkflowErrors(yaml.load(` -name: "CodeQL" -on: - workflow_dispatch: {} -`)), [])); -}); -(0, ava_1.default)("getWorkflowErrors() should not report an error if PRs are totally unconfigured", (t) => { - t.deepEqual(...errorCodes(actionsutil.getWorkflowErrors(yaml.load(` -name: "CodeQL" -on: - push: - branches: [master] -`)), [])); - t.deepEqual(...errorCodes(actionsutil.getWorkflowErrors(yaml.load(` -name: "CodeQL" -on: ["push"] -`)), [])); -}); (0, ava_1.default)("initializeEnvironment", (t) => { (0, util_1.initializeEnvironment)("1.2.3"); t.deepEqual(process.env.CODEQL_ACTION_VERSION, "1.2.3"); diff --git a/lib/actions-util.test.js.map b/lib/actions-util.test.js.map index 78843af44d..62afe19008 100644 --- a/lib/actions-util.test.js.map +++ b/lib/actions-util.test.js.map @@ -1 +1 @@ -{"version":3,"file":"actions-util.test.js","sourceRoot":"","sources":["../src/actions-util.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"actions-util.test.js","sourceRoot":"","sources":["../src/actions-util.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/analyze-action.js b/lib/analyze-action.js index 0d4f119f5b..4ebbddc082 100644 --- a/lib/analyze-action.js +++ b/lib/analyze-action.js @@ -39,6 +39,7 @@ const feature_flags_1 = require("./feature-flags"); const languages_1 = require("./languages"); const logging_1 = require("./logging"); const repository_1 = require("./repository"); +const shared_environment_1 = require("./shared-environment"); const trap_caching_1 = require("./trap-caching"); const upload_lib = __importStar(require("./upload-lib")); const util = __importStar(require("./util")); @@ -176,8 +177,9 @@ async function run() { } core.setOutput("db-locations", dbLocations); if (runStats && actionsUtil.getRequiredInput("upload") === "true") { - uploadResult = await upload_lib.uploadFromActions(outputDir, logger); + uploadResult = await upload_lib.uploadFromActions(outputDir, actionsUtil.getRequiredInput("checkout_path"), actionsUtil.getOptionalInput("category"), logger); core.setOutput("sarif-id", uploadResult.sarifID); + core.exportVariable(shared_environment_1.CODEQL_ACTION_ANALYZE_DID_UPLOAD_SARIF, "true"); } else { logger.info("Not uploading results"); @@ -208,7 +210,6 @@ async function run() { hasBadExpectErrorInput()) { core.setFailed(error.message); } - console.log(error); if (error instanceof analyze_1.CodeQLAnalysisError) { const stats = { ...error.queriesStatusReport }; await sendStatusReport(startedAt, config, stats, error, trapCacheUploadTime, dbCreationTimings, didUploadTrapCaches, logger); @@ -238,7 +239,6 @@ async function runWrapper() { } catch (error) { core.setFailed(`analyze action failed: ${error}`); - console.log(error); } await (0, util_1.checkForTimeout)(); } diff --git a/lib/analyze-action.js.map b/lib/analyze-action.js.map index 92ac11a308..7e038abe55 100644 --- a/lib/analyze-action.js.map +++ b/lib/analyze-action.js.map @@ -1 +1 @@ -{"version":3,"file":"analyze-action.js","sourceRoot":"","sources":["../src/analyze-action.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"analyze-action.js","sourceRoot":"","sources":["../src/analyze-action.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/analyze.js b/lib/analyze.js index 174775f650..b16a037b5c 100644 --- a/lib/analyze.js +++ b/lib/analyze.js @@ -207,7 +207,7 @@ async function runQueries(sarifFolder, memoryFlag, addSnippetsFlag, threadsFlag, return statusReport; async function runInterpretResults(language, queries, sarifFile, enableDebugLogging) { const databasePath = util.getCodeQLDatabasePath(config, language); - return await codeql.databaseInterpretResults(databasePath, queries, sarifFile, addSnippetsFlag, threadsFlag, enableDebugLogging ? "-vv" : "-v", automationDetailsId, featureEnablement); + return await codeql.databaseInterpretResults(databasePath, queries, sarifFile, addSnippetsFlag, threadsFlag, enableDebugLogging ? "-vv" : "-v", automationDetailsId); } async function runPrintLinesOfCode(language) { const databasePath = util.getCodeQLDatabasePath(config, language); diff --git a/lib/analyze.js.map b/lib/analyze.js.map index 998cbc80d0..fb9fe70c5c 100644 --- a/lib/analyze.js.map +++ b/lib/analyze.js.map @@ -1 +1 @@ -{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/codeql.js b/lib/codeql.js index 3956def945..9aeb7f5814 100644 --- a/lib/codeql.js +++ b/lib/codeql.js @@ -36,7 +36,6 @@ const actions_util_1 = require("./actions-util"); const api = __importStar(require("./api-client")); const defaults = __importStar(require("./defaults.json")); // Referenced from codeql-action-sync-tool! const error_matcher_1 = require("./error-matcher"); -const feature_flags_1 = require("./feature-flags"); const languages_1 = require("./languages"); const toolrunner_error_catcher_1 = require("./toolrunner-error-catcher"); const trap_caching_1 = require("./trap-caching"); @@ -77,6 +76,7 @@ const CODEQL_VERSION_LUA_TRACER_CONFIG = "2.10.0"; exports.CODEQL_VERSION_CONFIG_FILES = "2.10.1"; const CODEQL_VERSION_LUA_TRACING_GO_WINDOWS_FIXED = "2.10.4"; exports.CODEQL_VERSION_GHES_PACK_DOWNLOAD = "2.10.4"; +const CODEQL_VERSION_FILE_BASELINE_INFORMATION = "2.11.3"; /** * This variable controls using the new style of tracing from the CodeQL * CLI. In particular, with versions above this we will use both indirect @@ -371,6 +371,7 @@ function setCodeQL(partialCodeql) { databaseRunQueries: resolveFunction(partialCodeql, "databaseRunQueries"), databaseInterpretResults: resolveFunction(partialCodeql, "databaseInterpretResults"), databasePrintBaseline: resolveFunction(partialCodeql, "databasePrintBaseline"), + diagnosticsExport: resolveFunction(partialCodeql, "diagnosticsExport"), }; return cachedCodeQL; } @@ -666,9 +667,9 @@ async function getCodeQLForCmd(cmd, checkVersion) { if (querySuitePath) { codeqlArgs.push(querySuitePath); } - await runTool(cmd, codeqlArgs); + await (0, toolrunner_error_catcher_1.toolrunnerErrorCatcher)(cmd, codeqlArgs, error_matcher_1.errorMatchers); }, - async databaseInterpretResults(databasePath, querySuitePaths, sarifFile, addSnippetsFlag, threadsFlag, verbosityFlag, automationDetailsId, featureEnablement) { + async databaseInterpretResults(databasePath, querySuitePaths, sarifFile, addSnippetsFlag, threadsFlag, verbosityFlag, automationDetailsId) { const codeqlArgs = [ "database", "interpret-results", @@ -687,7 +688,7 @@ async function getCodeQLForCmd(cmd, checkVersion) { if (automationDetailsId !== undefined) { codeqlArgs.push("--sarif-category", automationDetailsId); } - if (await featureEnablement.getValue(feature_flags_1.Feature.FileBaselineInformationEnabled, this)) { + if (await util.codeQlVersionAbove(this, CODEQL_VERSION_FILE_BASELINE_INFORMATION)) { codeqlArgs.push("--sarif-add-baseline-file-info"); } codeqlArgs.push(databasePath); @@ -695,7 +696,8 @@ async function getCodeQLForCmd(cmd, checkVersion) { codeqlArgs.push(...querySuitePaths); } // capture stdout, which contains analysis summaries - return await runTool(cmd, codeqlArgs); + const returnState = await (0, toolrunner_error_catcher_1.toolrunnerErrorCatcher)(cmd, codeqlArgs, error_matcher_1.errorMatchers); + return returnState.stdout; }, async databasePrintBaseline(databasePath) { const codeqlArgs = [ @@ -771,6 +773,19 @@ async function getCodeQLForCmd(cmd, checkVersion) { ]; await new toolrunner.ToolRunner(cmd, args).exec(); }, + async diagnosticsExport(sarifFile, automationDetailsId) { + const args = [ + "diagnostics", + "export", + "--format=sarif-latest", + `--output=${sarifFile}`, + ...getExtraOptionsFromEnv(["diagnostics", "export"]), + ]; + if (automationDetailsId !== undefined) { + args.push("--sarif-category", automationDetailsId); + } + await new toolrunner.ToolRunner(cmd, args).exec(); + }, }; // To ensure that status reports include the CodeQL CLI version wherever // possible, we want to call getVersion(), which populates the version value @@ -846,11 +861,16 @@ async function runTool(cmd, args = []) { const exitCode = await new toolrunner.ToolRunner(cmd, args, { listeners: { stdout: (data) => { - output += data.toString(); + output += data.toString("utf8"); }, stderr: (data) => { - const toRead = Math.min(maxErrorSize - error.length, data.length); - error += data.toString("utf8", 0, toRead); + let readStartIndex = 0; + // If the error is too large, then we only take the last 20,000 characters + if (data.length - maxErrorSize > 0) { + // Eg: if we have 20,000 the start index should be 2. + readStartIndex = data.length - maxErrorSize + 1; + } + error += data.toString("utf8", readStartIndex); }, }, ignoreReturnCode: true, diff --git a/lib/codeql.js.map b/lib/codeql.js.map index 91af8c985e..1cc184c5c5 100644 --- a/lib/codeql.js.map +++ b/lib/codeql.js.map @@ -1 +1 @@ -{"version":3,"file":"codeql.js","sourceRoot":"","sources":["../src/codeql.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"codeql.js","sourceRoot":"","sources":["../src/codeql.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/codeql.test.js b/lib/codeql.test.js index e85422ddca..bafc192d2b 100644 --- a/lib/codeql.test.js +++ b/lib/codeql.test.js @@ -27,6 +27,7 @@ const fs = __importStar(require("fs")); const path = __importStar(require("path")); const toolrunner = __importStar(require("@actions/exec/lib/toolrunner")); const toolcache = __importStar(require("@actions/tool-cache")); +const safeWhich = __importStar(require("@chrisgavin/safe-which")); const ava_1 = __importDefault(require("ava")); const del_1 = __importDefault(require("del")); const yaml = __importStar(require("js-yaml")); @@ -308,14 +309,18 @@ for (const [isFeatureEnabled, toolsInput, shouldToolcacheBeBypassed,] of TOOLCAC const runnerConstructorStub = stubToolRunnerConstructor(); const codeqlObject = await codeql.getCodeQLForTesting(); sinon.stub(codeqlObject, "getVersion").resolves("2.7.0"); - await codeqlObject.databaseInterpretResults("", [], "", "", "", "-v", "", (0, testing_utils_1.createFeatures)([])); + // safeWhich throws because of the test CodeQL object. + sinon.stub(safeWhich, "safeWhich").resolves(""); + await codeqlObject.databaseInterpretResults("", [], "", "", "", "-v", ""); t.false(runnerConstructorStub.firstCall.args[1].includes("--sarif-add-query-help"), "--sarif-add-query-help should be absent, but it is present"); }); (0, ava_1.default)("databaseInterpretResults() sets --sarif-add-query-help for 2.7.1", async (t) => { const runnerConstructorStub = stubToolRunnerConstructor(); const codeqlObject = await codeql.getCodeQLForTesting(); sinon.stub(codeqlObject, "getVersion").resolves("2.7.1"); - await codeqlObject.databaseInterpretResults("", [], "", "", "", "-v", "", (0, testing_utils_1.createFeatures)([])); + // safeWhich throws because of the test CodeQL object. + sinon.stub(safeWhich, "safeWhich").resolves(""); + await codeqlObject.databaseInterpretResults("", [], "", "", "", "-v", ""); t.true(runnerConstructorStub.firstCall.args[1].includes("--sarif-add-query-help"), "--sarif-add-query-help should be present, but it is absent"); }); (0, ava_1.default)("databaseInitCluster() without injected codescanning config", async (t) => { @@ -323,6 +328,8 @@ for (const [isFeatureEnabled, toolsInput, shouldToolcacheBeBypassed,] of TOOLCAC const runnerConstructorStub = stubToolRunnerConstructor(); const codeqlObject = await codeql.getCodeQLForTesting(); sinon.stub(codeqlObject, "getVersion").resolves("2.8.1"); + // safeWhich throws because of the test CodeQL object. + sinon.stub(safeWhich, "safeWhich").resolves(""); const thisStubConfig = { ...stubConfig, tempDir, @@ -564,24 +571,22 @@ const injectedConfigMacro = ava_1.default.macro({ process.env["CODEQL_PASS_CONFIG_TO_CLI"] = origCODEQL_PASS_CONFIG_TO_CLI; } }); -(0, ava_1.default)("databaseInterpretResults() sets --sarif-add-baseline-file-info when feature enabled", async (t) => { +(0, ava_1.default)("databaseInterpretResults() sets --sarif-add-baseline-file-info for 2.11.3", async (t) => { const runnerConstructorStub = stubToolRunnerConstructor(); const codeqlObject = await codeql.getCodeQLForTesting(); - // We need to set a CodeQL version such that running `databaseInterpretResults` does not crash. - // The version of CodeQL is checked separately to determine feature enablement, and does not - // otherwise impact this test, so set it to 0.0.0. - sinon.stub(codeqlObject, "getVersion").resolves("0.0.0"); - await codeqlObject.databaseInterpretResults("", [], "", "", "", "-v", "", (0, testing_utils_1.createFeatures)([feature_flags_1.Feature.FileBaselineInformationEnabled])); + sinon.stub(codeqlObject, "getVersion").resolves("2.11.3"); + // safeWhich throws because of the test CodeQL object. + sinon.stub(safeWhich, "safeWhich").resolves(""); + await codeqlObject.databaseInterpretResults("", [], "", "", "", "-v", ""); t.true(runnerConstructorStub.firstCall.args[1].includes("--sarif-add-baseline-file-info"), "--sarif-add-baseline-file-info should be present, but it is absent"); }); -(0, ava_1.default)("databaseInterpretResults() does not set --sarif-add-baseline-file-info if feature disabled", async (t) => { +(0, ava_1.default)("databaseInterpretResults() does not set --sarif-add-baseline-file-info for 2.11.2", async (t) => { const runnerConstructorStub = stubToolRunnerConstructor(); const codeqlObject = await codeql.getCodeQLForTesting(); - // We need to set a CodeQL version such that running `databaseInterpretResults` does not crash. - // The version of CodeQL is checked upstream to determine feature enablement, so it does not - // affect this test. - sinon.stub(codeqlObject, "getVersion").resolves("0.0.0"); - await codeqlObject.databaseInterpretResults("", [], "", "", "", "-v", "", (0, testing_utils_1.createFeatures)([])); + sinon.stub(codeqlObject, "getVersion").resolves("2.11.2"); + // safeWhich throws because of the test CodeQL object. + sinon.stub(safeWhich, "safeWhich").resolves(""); + await codeqlObject.databaseInterpretResults("", [], "", "", "", "-v", ""); t.false(runnerConstructorStub.firstCall.args[1].includes("--sarif-add-baseline-file-info"), "--sarif-add-baseline-file-info must be absent, but it is present"); }); function stubToolRunnerConstructor() { diff --git a/lib/codeql.test.js.map b/lib/codeql.test.js.map index 0b06da0003..adc07e701c 100644 --- a/lib/codeql.test.js.map +++ b/lib/codeql.test.js.map @@ -1 +1 @@ -{"version":3,"file":"codeql.test.js","sourceRoot":"","sources":["../src/codeql.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"codeql.test.js","sourceRoot":"","sources":["../src/codeql.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/defaults.json b/lib/defaults.json index 0f32e5d5ff..9a446e6c9b 100644 --- a/lib/defaults.json +++ b/lib/defaults.json @@ -1,3 +1,3 @@ { - "bundleVersion": "codeql-bundle-20221123" + "bundleVersion": "codeql-bundle-20221202" } diff --git a/lib/error-matcher.js b/lib/error-matcher.js index 07d5e71575..2f0ba48016 100644 --- a/lib/error-matcher.js +++ b/lib/error-matcher.js @@ -12,6 +12,10 @@ exports.namedMatchersForTesting = { message: "No code found during the build. Please see:\n" + "https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/troubleshooting-code-scanning#no-code-found-during-the-build", }, + fatalError: { + outputRegex: new RegExp("A fatal error occurred"), + message: "A fatal error occurred.", + }, }; // we collapse the matches into an array for use in execErrorCatcher exports.errorMatchers = Object.values(exports.namedMatchersForTesting); diff --git a/lib/error-matcher.js.map b/lib/error-matcher.js.map index 8d87726bb8..1478ad5f6f 100644 --- a/lib/error-matcher.js.map +++ b/lib/error-matcher.js.map @@ -1 +1 @@ -{"version":3,"file":"error-matcher.js","sourceRoot":"","sources":["../src/error-matcher.ts"],"names":[],"mappings":";;;AAQA,qCAAqC;AACxB,QAAA,uBAAuB,GAAoC;IACtE;;MAEE;IACF,iBAAiB,EAAE;QACjB,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,IAAI,MAAM,CAAC,2CAA2C,CAAC;QACpE,OAAO,EACL,+CAA+C;YAC/C,yJAAyJ;KAC5J;CACF,CAAC;AAEF,oEAAoE;AACvD,QAAA,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,+BAAuB,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"error-matcher.js","sourceRoot":"","sources":["../src/error-matcher.ts"],"names":[],"mappings":";;;AAQA,qCAAqC;AACxB,QAAA,uBAAuB,GAAoC;IACtE;;MAEE;IACF,iBAAiB,EAAE;QACjB,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,IAAI,MAAM,CAAC,2CAA2C,CAAC;QACpE,OAAO,EACL,+CAA+C;YAC/C,yJAAyJ;KAC5J;IACD,UAAU,EAAE;QACV,WAAW,EAAE,IAAI,MAAM,CAAC,wBAAwB,CAAC;QACjD,OAAO,EAAE,yBAAyB;KACnC;CACF,CAAC;AAEF,oEAAoE;AACvD,QAAA,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,+BAAuB,CAAC,CAAC"} \ No newline at end of file diff --git a/lib/error-matcher.test.js b/lib/error-matcher.test.js index 198b00c036..ccea966cf8 100644 --- a/lib/error-matcher.test.js +++ b/lib/error-matcher.test.js @@ -16,6 +16,9 @@ NB We test the regexes for all the matchers against example log output snippets. 2020-09-07T17:39:53.9251124Z [2020-09-07 17:39:53] [ERROR] Spawned process exited abnormally (code 255; tried to run: [/opt/hostedtoolcache/CodeQL/0.0.0-20200630/x64/codeql/javascript/tools/autobuild.sh]) `)); }); +(0, ava_1.default)("fatalError matches against example log output", async (t) => { + t.assert(testErrorMatcher("fatalError", "A fatal error occurred: Could not process query metadata for test-query.ql")); +}); function testErrorMatcher(matcherName, logSample) { if (!(matcherName in error_matcher_1.namedMatchersForTesting)) { throw new Error(`Unknown matcher ${matcherName}`); diff --git a/lib/error-matcher.test.js.map b/lib/error-matcher.test.js.map index 09ad756c7b..9bfde0dd3e 100644 --- a/lib/error-matcher.test.js.map +++ b/lib/error-matcher.test.js.map @@ -1 +1 @@ -{"version":3,"file":"error-matcher.test.js","sourceRoot":"","sources":["../src/error-matcher.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAAuB;AAEvB,mDAA0D;AAE1D;;EAEE;AAEF,IAAA,aAAI,EAAC,6DAA6D,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC9E,CAAC,CAAC,MAAM,CACN,gBAAgB,CACd,mBAAmB,EACnB;;;;;GAKH,CACE,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,WAAmB,EAAE,SAAiB;IAC9D,IAAI,CAAC,CAAC,WAAW,IAAI,uCAAuB,CAAC,EAAE;QAC7C,MAAM,IAAI,KAAK,CAAC,mBAAmB,WAAW,EAAE,CAAC,CAAC;KACnD;IACD,MAAM,KAAK,GAAG,uCAAuB,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC;IAC/D,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,WAAW,kBAAkB,CAAC,CAAC;KACvE;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC"} \ No newline at end of file +{"version":3,"file":"error-matcher.test.js","sourceRoot":"","sources":["../src/error-matcher.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAAuB;AAEvB,mDAA0D;AAE1D;;EAEE;AAEF,IAAA,aAAI,EAAC,6DAA6D,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC9E,CAAC,CAAC,MAAM,CACN,gBAAgB,CACd,mBAAmB,EACnB;;;;;GAKH,CACE,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,+CAA+C,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAChE,CAAC,CAAC,MAAM,CACN,gBAAgB,CACd,YAAY,EACZ,4EAA4E,CAC7E,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,WAAmB,EAAE,SAAiB;IAC9D,IAAI,CAAC,CAAC,WAAW,IAAI,uCAAuB,CAAC,EAAE;QAC7C,MAAM,IAAI,KAAK,CAAC,mBAAmB,WAAW,EAAE,CAAC,CAAC;KACnD;IACD,MAAM,KAAK,GAAG,uCAAuB,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC;IAC/D,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,WAAW,kBAAkB,CAAC,CAAC;KACvE;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC"} \ No newline at end of file diff --git a/lib/feature-flags.js b/lib/feature-flags.js index cee8ed35e7..cfb0984357 100644 --- a/lib/feature-flags.js +++ b/lib/feature-flags.js @@ -30,9 +30,9 @@ var Feature; Feature["BypassToolcacheKotlinSwiftEnabled"] = "bypass_toolcache_kotlin_swift_enabled"; Feature["CliConfigFileEnabled"] = "cli_config_file_enabled"; Feature["DisableKotlinAnalysisEnabled"] = "disable_kotlin_analysis_enabled"; - Feature["FileBaselineInformationEnabled"] = "file_baseline_information_enabled"; Feature["MlPoweredQueriesEnabled"] = "ml_powered_queries_enabled"; Feature["TrapCachingEnabled"] = "trap_caching_enabled"; + Feature["UploadFailedSarifEnabled"] = "upload_failed_sarif_enabled"; })(Feature = exports.Feature || (exports.Feature = {})); exports.featureConfig = { [Feature.BypassToolcacheEnabled]: { @@ -55,10 +55,6 @@ exports.featureConfig = { envVar: "CODEQL_PASS_CONFIG_TO_CLI", minimumVersion: "2.11.1", }, - [Feature.FileBaselineInformationEnabled]: { - envVar: "CODEQL_FILE_BASELINE_INFORMATION", - minimumVersion: "2.11.3", - }, [Feature.MlPoweredQueriesEnabled]: { envVar: "CODEQL_ML_POWERED_QUERIES", minimumVersion: "2.7.5", @@ -67,6 +63,10 @@ exports.featureConfig = { envVar: "CODEQL_TRAP_CACHING", minimumVersion: undefined, }, + [Feature.UploadFailedSarifEnabled]: { + envVar: "CODEQL_ACTION_UPLOAD_FAILED_SARIF", + minimumVersion: "2.11.3", + }, }; exports.FEATURE_FLAGS_FILE_NAME = "cached-feature-flags.json"; /** diff --git a/lib/feature-flags.js.map b/lib/feature-flags.js.map index 014a1659bd..a1c9dcaf89 100644 --- a/lib/feature-flags.js.map +++ b/lib/feature-flags.js.map @@ -1 +1 @@ -{"version":3,"file":"feature-flags.js","sourceRoot":"","sources":["../src/feature-flags.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"feature-flags.js","sourceRoot":"","sources":["../src/feature-flags.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/init-action-post-helper.js b/lib/init-action-post-helper.js index 237759a138..4872a9e759 100644 --- a/lib/init-action-post-helper.js +++ b/lib/init-action-post-helper.js @@ -19,19 +19,68 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.run = void 0; +exports.run = exports.uploadFailedSarif = void 0; const core = __importStar(require("@actions/core")); const actionsUtil = __importStar(require("./actions-util")); +const codeql_1 = require("./codeql"); const config_utils_1 = require("./config-utils"); -const logging_1 = require("./logging"); -async function run(uploadDatabaseBundleDebugArtifact, uploadLogsDebugArtifact, printDebugLogs) { - const logger = (0, logging_1.getActionsLogger)(); +const feature_flags_1 = require("./feature-flags"); +const shared_environment_1 = require("./shared-environment"); +const uploadLib = __importStar(require("./upload-lib")); +const util_1 = require("./util"); +const workflow_1 = require("./workflow"); +async function uploadFailedSarif(config, repositoryNwo, featureEnablement, logger) { + if (!config.codeQLCmd) { + logger.warning("CodeQL command not found. Unable to upload failed SARIF file."); + return; + } + const codeql = await (0, codeql_1.getCodeQL)(config.codeQLCmd); + if (!(await featureEnablement.getValue(feature_flags_1.Feature.UploadFailedSarifEnabled, codeql))) { + logger.debug("Uploading failed SARIF is disabled."); + return; + } + const workflow = await (0, workflow_1.getWorkflow)(); + const jobName = (0, util_1.getRequiredEnvParam)("GITHUB_JOB"); + const matrix = (0, util_1.parseMatrixInput)(actionsUtil.getRequiredInput("matrix")); + if ((0, workflow_1.getUploadInputOrThrow)(workflow, jobName, matrix) !== "true" || + (0, util_1.isInTestMode)()) { + logger.debug("Won't upload a failed SARIF file since SARIF upload is disabled."); + return; + } + const category = (0, workflow_1.getCategoryInputOrThrow)(workflow, jobName, matrix); + const checkoutPath = (0, workflow_1.getCheckoutPathInputOrThrow)(workflow, jobName, matrix); + const sarifFile = "../codeql-failed-run.sarif"; + await codeql.diagnosticsExport(sarifFile, category); + core.info(`Uploading failed SARIF file ${sarifFile}`); + const uploadResult = await uploadLib.uploadFromActions(sarifFile, checkoutPath, category, logger); + await uploadLib.waitForProcessing(repositoryNwo, uploadResult.sarifID, logger, { isUnsuccessfulExecution: true }); +} +exports.uploadFailedSarif = uploadFailedSarif; +async function run(uploadDatabaseBundleDebugArtifact, uploadLogsDebugArtifact, printDebugLogs, repositoryNwo, featureEnablement, logger) { const config = await (0, config_utils_1.getConfig)(actionsUtil.getTemporaryDirectory(), logger); if (config === undefined) { logger.warning("Debugging artifacts are unavailable since the 'init' Action failed before it could produce any."); + return; + } + // Environment variable used to integration test uploading a SARIF file for failed runs + const expectFailedSarifUpload = process.env["CODEQL_ACTION_EXPECT_UPLOAD_FAILED_SARIF"] === "true"; + if (process.env[shared_environment_1.CODEQL_ACTION_ANALYZE_DID_UPLOAD_SARIF] !== "true") { + try { + await uploadFailedSarif(config, repositoryNwo, featureEnablement, logger); + } + catch (e) { + if (expectFailedSarifUpload) { + throw new Error("Expected to upload a SARIF file for the failed run, but encountered " + + `the following error: ${e}`); + } + logger.info(`Failed to upload a SARIF file for the failed run. Error: ${e}`); + } + } + else if (expectFailedSarifUpload) { + throw new Error("Expected to upload a SARIF file for the failed run, but didn't."); } // Upload appropriate Actions artifacts for debugging - if (config === null || config === void 0 ? void 0 : config.debugMode) { + if (config.debugMode) { core.info("Debug mode is on. Uploading available database bundles and logs as Actions debugging artifacts..."); await uploadDatabaseBundleDebugArtifact(config, logger); await uploadLogsDebugArtifact(config); diff --git a/lib/init-action-post-helper.js.map b/lib/init-action-post-helper.js.map index ccb480636c..7c771eb345 100644 --- a/lib/init-action-post-helper.js.map +++ b/lib/init-action-post-helper.js.map @@ -1 +1 @@ -{"version":3,"file":"init-action-post-helper.js","sourceRoot":"","sources":["../src/init-action-post-helper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAsC;AAEtC,4DAA8C;AAC9C,iDAA2C;AAC3C,uCAA6C;AAEtC,KAAK,UAAU,GAAG,CACvB,iCAA2C,EAC3C,uBAAiC,EACjC,cAAwB;IAExB,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAElC,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAS,EAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5E,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,CAAC,OAAO,CACZ,iGAAiG,CAClG,CAAC;KACH;IAED,qDAAqD;IACrD,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE;QACrB,IAAI,CAAC,IAAI,CACP,mGAAmG,CACpG,CAAC;QACF,MAAM,iCAAiC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAEtC,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;KAC9B;AACH,CAAC;AAxBD,kBAwBC"} \ No newline at end of file +{"version":3,"file":"init-action-post-helper.js","sourceRoot":"","sources":["../src/init-action-post-helper.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/init-action-post-helper.test.js b/lib/init-action-post-helper.test.js index a3153ac041..93f03a8831 100644 --- a/lib/init-action-post-helper.test.js +++ b/lib/init-action-post-helper.test.js @@ -24,13 +24,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); const ava_1 = __importDefault(require("ava")); const sinon = __importStar(require("sinon")); +const actionsUtil = __importStar(require("./actions-util")); +const codeql = __importStar(require("./codeql")); const configUtils = __importStar(require("./config-utils")); +const feature_flags_1 = require("./feature-flags"); const initActionPostHelper = __importStar(require("./init-action-post-helper")); +const logging_1 = require("./logging"); +const repository_1 = require("./repository"); const testing_utils_1 = require("./testing-utils"); +const uploadLib = __importStar(require("./upload-lib")); const util = __importStar(require("./util")); +const workflow = __importStar(require("./workflow")); (0, testing_utils_1.setupTests)(ava_1.default); (0, ava_1.default)("post: init action with debug mode off", async (t) => { return await util.withTmpDir(async (tmpDir) => { + process.env["GITHUB_REPOSITORY"] = "github/codeql-action-fake-repository"; process.env["RUNNER_TEMP"] = tmpDir; const gitHubVersion = { type: util.GitHubVariant.DOTCOM, @@ -44,7 +52,7 @@ const util = __importStar(require("./util")); const uploadDatabaseBundleSpy = sinon.spy(); const uploadLogsSpy = sinon.spy(); const printDebugLogsSpy = sinon.spy(); - await initActionPostHelper.run(uploadDatabaseBundleSpy, uploadLogsSpy, printDebugLogsSpy); + await initActionPostHelper.run(uploadDatabaseBundleSpy, uploadLogsSpy, printDebugLogsSpy, (0, repository_1.parseRepositoryNwo)("github/codeql-action"), (0, testing_utils_1.createFeatures)([]), (0, logging_1.getRunnerLogger)(true)); t.assert(uploadDatabaseBundleSpy.notCalled); t.assert(uploadLogsSpy.notCalled); t.assert(printDebugLogsSpy.notCalled); @@ -52,6 +60,7 @@ const util = __importStar(require("./util")); }); (0, ava_1.default)("post: init action with debug mode on", async (t) => { return await util.withTmpDir(async (tmpDir) => { + process.env["GITHUB_REPOSITORY"] = "github/codeql-action-fake-repository"; process.env["RUNNER_TEMP"] = tmpDir; const gitHubVersion = { type: util.GitHubVariant.DOTCOM, @@ -65,10 +74,90 @@ const util = __importStar(require("./util")); const uploadDatabaseBundleSpy = sinon.spy(); const uploadLogsSpy = sinon.spy(); const printDebugLogsSpy = sinon.spy(); - await initActionPostHelper.run(uploadDatabaseBundleSpy, uploadLogsSpy, printDebugLogsSpy); + await initActionPostHelper.run(uploadDatabaseBundleSpy, uploadLogsSpy, printDebugLogsSpy, (0, repository_1.parseRepositoryNwo)("github/codeql-action"), (0, testing_utils_1.createFeatures)([]), (0, logging_1.getRunnerLogger)(true)); t.assert(uploadDatabaseBundleSpy.called); t.assert(uploadLogsSpy.called); t.assert(printDebugLogsSpy.called); }); }); +(0, ava_1.default)("uploads failed SARIF run for typical workflow", async (t) => { + const actionsWorkflow = createTestWorkflow([ + { + name: "Checkout repository", + uses: "actions/checkout@v3", + }, + { + name: "Initialize CodeQL", + uses: "github/codeql-action/init@v2", + with: { + languages: "javascript", + }, + }, + { + name: "Perform CodeQL Analysis", + uses: "github/codeql-action/analyze@v2", + with: { + category: "my-category", + }, + }, + ]); + await testFailedSarifUpload(t, actionsWorkflow, { category: "my-category" }); +}); +(0, ava_1.default)("uploading failed SARIF run fails when workflow does not reference github/codeql-action", async (t) => { + const actionsWorkflow = createTestWorkflow([ + { + name: "Checkout repository", + uses: "actions/checkout@v3", + }, + ]); + await t.throwsAsync(async () => await testFailedSarifUpload(t, actionsWorkflow)); +}); +function createTestWorkflow(steps) { + return { + name: "CodeQL", + on: { + push: { + branches: ["main"], + }, + pull_request: { + branches: ["main"], + }, + }, + jobs: { + analyze: { + name: "CodeQL Analysis", + "runs-on": "ubuntu-latest", + steps, + }, + }, + }; +} +async function testFailedSarifUpload(t, actionsWorkflow, { category } = {}) { + const config = { + codeQLCmd: "codeql", + debugMode: true, + languages: [], + packs: [], + }; + const messages = []; + process.env["GITHUB_JOB"] = "analyze"; + process.env["GITHUB_REPOSITORY"] = "github/codeql-action-fake-repository"; + process.env["GITHUB_WORKSPACE"] = + "/home/runner/work/codeql-action/codeql-action"; + sinon.stub(actionsUtil, "getRequiredInput").withArgs("matrix").returns("{}"); + const codeqlObject = await codeql.getCodeQLForTesting(); + sinon.stub(codeql, "getCodeQL").resolves(codeqlObject); + const diagnosticsExportStub = sinon.stub(codeqlObject, "diagnosticsExport"); + sinon.stub(workflow, "getWorkflow").resolves(actionsWorkflow); + const uploadFromActions = sinon.stub(uploadLib, "uploadFromActions"); + uploadFromActions.resolves({ sarifID: "42" }); + const waitForProcessing = sinon.stub(uploadLib, "waitForProcessing"); + await initActionPostHelper.uploadFailedSarif(config, (0, repository_1.parseRepositoryNwo)("github/codeql-action"), (0, testing_utils_1.createFeatures)([feature_flags_1.Feature.UploadFailedSarifEnabled]), (0, testing_utils_1.getRecordingLogger)(messages)); + t.deepEqual(messages, []); + t.true(diagnosticsExportStub.calledOnceWith(sinon.match.string, category), `Actual args were: ${diagnosticsExportStub.args}`); + t.true(uploadFromActions.calledOnceWith(sinon.match.string, sinon.match.string, category, sinon.match.any), `Actual args were: ${uploadFromActions.args}`); + t.true(waitForProcessing.calledOnceWith(sinon.match.any, "42", sinon.match.any, { + isUnsuccessfulExecution: true, + })); +} //# sourceMappingURL=init-action-post-helper.test.js.map \ No newline at end of file diff --git a/lib/init-action-post-helper.test.js.map b/lib/init-action-post-helper.test.js.map index d05a91e148..6b440ee4f6 100644 --- a/lib/init-action-post-helper.test.js.map +++ b/lib/init-action-post-helper.test.js.map @@ -1 +1 @@ -{"version":3,"file":"init-action-post-helper.test.js","sourceRoot":"","sources":["../src/init-action-post-helper.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAuB;AACvB,6CAA+B;AAE/B,4DAA8C;AAC9C,gFAAkE;AAClE,mDAA6C;AAC7C,6CAA+B;AAE/B,IAAA,0BAAU,EAAC,aAAI,CAAC,CAAC;AAEjB,IAAA,aAAI,EAAC,uCAAuC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACxD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAC5C,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;QAEpC,MAAM,aAAa,GAAuB;YACxC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;SAChC,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC;YAC5C,SAAS,EAAE,KAAK;YAChB,aAAa;YACb,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,EAAE;SACuB,CAAC,CAAC;QAEpC,MAAM,uBAAuB,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,iBAAiB,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAEtC,MAAM,oBAAoB,CAAC,GAAG,CAC5B,uBAAuB,EACvB,aAAa,EACb,iBAAiB,CAClB,CAAC;QAEF,CAAC,CAAC,MAAM,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,sCAAsC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACvD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAC5C,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;QAEpC,MAAM,aAAa,GAAuB;YACxC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;SAChC,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC;YAC5C,SAAS,EAAE,IAAI;YACf,aAAa;YACb,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,EAAE;SACuB,CAAC,CAAC;QAEpC,MAAM,uBAAuB,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,iBAAiB,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAEtC,MAAM,oBAAoB,CAAC,GAAG,CAC5B,uBAAuB,EACvB,aAAa,EACb,iBAAiB,CAClB,CAAC;QAEF,CAAC,CAAC,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"init-action-post-helper.test.js","sourceRoot":"","sources":["../src/init-action-post-helper.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/init-action-post.js b/lib/init-action-post.js index e3be6aed62..f227a4ea1d 100644 --- a/lib/init-action-post.js +++ b/lib/init-action-post.js @@ -26,11 +26,21 @@ var __importStar = (this && this.__importStar) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); const core = __importStar(require("@actions/core")); const actionsUtil = __importStar(require("./actions-util")); +const api_client_1 = require("./api-client"); const debugArtifacts = __importStar(require("./debug-artifacts")); +const feature_flags_1 = require("./feature-flags"); const initActionPostHelper = __importStar(require("./init-action-post-helper")); +const logging_1 = require("./logging"); +const repository_1 = require("./repository"); +const util_1 = require("./util"); async function runWrapper() { try { - await initActionPostHelper.run(debugArtifacts.uploadDatabaseBundleDebugArtifact, debugArtifacts.uploadLogsDebugArtifact, actionsUtil.printDebugLogs); + const logger = (0, logging_1.getActionsLogger)(); + const gitHubVersion = await (0, api_client_1.getGitHubVersion)(); + (0, util_1.checkGitHubVersionInRange)(gitHubVersion, logger); + const repositoryNwo = (0, repository_1.parseRepositoryNwo)((0, util_1.getRequiredEnvParam)("GITHUB_REPOSITORY")); + const features = new feature_flags_1.Features(gitHubVersion, repositoryNwo, actionsUtil.getTemporaryDirectory(), logger); + await initActionPostHelper.run(debugArtifacts.uploadDatabaseBundleDebugArtifact, debugArtifacts.uploadLogsDebugArtifact, actionsUtil.printDebugLogs, repositoryNwo, features, logger); } catch (error) { core.setFailed(`init post-action step failed: ${error}`); diff --git a/lib/init-action-post.js.map b/lib/init-action-post.js.map index 75e07552ed..241364367b 100644 --- a/lib/init-action-post.js.map +++ b/lib/init-action-post.js.map @@ -1 +1 @@ -{"version":3,"file":"init-action-post.js","sourceRoot":"","sources":["../src/init-action-post.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;AAEH,oDAAsC;AAEtC,4DAA8C;AAC9C,kEAAoD;AACpD,gFAAkE;AAElE,KAAK,UAAU,UAAU;IACvB,IAAI;QACF,MAAM,oBAAoB,CAAC,GAAG,CAC5B,cAAc,CAAC,iCAAiC,EAChD,cAAc,CAAC,uBAAuB,EACtC,WAAW,CAAC,cAAc,CAC3B,CAAC;KACH;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,CAAC,SAAS,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACpB;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"init-action-post.js","sourceRoot":"","sources":["../src/init-action-post.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;AAEH,oDAAsC;AAEtC,4DAA8C;AAC9C,6CAAgD;AAChD,kEAAoD;AACpD,mDAA2C;AAC3C,gFAAkE;AAClE,uCAA6C;AAC7C,6CAAkD;AAClD,iCAAwE;AAExE,KAAK,UAAU,UAAU;IACvB,IAAI;QACF,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;QAClC,MAAM,aAAa,GAAG,MAAM,IAAA,6BAAgB,GAAE,CAAC;QAC/C,IAAA,gCAAyB,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAEjD,MAAM,aAAa,GAAG,IAAA,+BAAkB,EACtC,IAAA,0BAAmB,EAAC,mBAAmB,CAAC,CACzC,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,wBAAQ,CAC3B,aAAa,EACb,aAAa,EACb,WAAW,CAAC,qBAAqB,EAAE,EACnC,MAAM,CACP,CAAC;QAEF,MAAM,oBAAoB,CAAC,GAAG,CAC5B,cAAc,CAAC,iCAAiC,EAChD,cAAc,CAAC,uBAAuB,EACtC,WAAW,CAAC,cAAc,EAC1B,aAAa,EACb,QAAQ,EACR,MAAM,CACP,CAAC;KACH;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,CAAC,SAAS,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACpB;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"} \ No newline at end of file diff --git a/lib/init-action.js b/lib/init-action.js index 99b18c6c05..9ae5203549 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -31,6 +31,7 @@ const logging_1 = require("./logging"); const repository_1 = require("./repository"); const trap_caching_1 = require("./trap-caching"); const util_1 = require("./util"); +const workflow_1 = require("./workflow"); // eslint-disable-next-line import/no-commonjs const pkg = require("../package.json"); async function sendSuccessStatusReport(startedAt, config, toolsVersion, logger) { @@ -90,7 +91,7 @@ async function run() { const repositoryNwo = (0, repository_1.parseRepositoryNwo)((0, util_1.getRequiredEnvParam)("GITHUB_REPOSITORY")); const features = new feature_flags_1.Features(gitHubVersion, repositoryNwo, (0, actions_util_1.getTemporaryDirectory)(), logger); try { - const workflowErrors = await (0, actions_util_1.validateWorkflow)(); + const workflowErrors = await (0, workflow_1.validateWorkflow)(); if (!(await (0, actions_util_1.sendStatusReport)(await (0, actions_util_1.createStatusReportBase)("init", "starting", startedAt, workflowErrors)))) { return; } diff --git a/lib/init-action.js.map b/lib/init-action.js.map index e2d5b06f58..ec6d838ff6 100644 --- a/lib/init-action.js.map +++ b/lib/init-action.js.map @@ -1 +1 @@ -{"version":3,"file":"init-action.js","sourceRoot":"","sources":["../src/init-action.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"init-action.js","sourceRoot":"","sources":["../src/init-action.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/shared-environment.js b/lib/shared-environment.js index b26b6a8593..e4952fb470 100644 --- a/lib/shared-environment.js +++ b/lib/shared-environment.js @@ -1,14 +1,22 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.CODEQL_ACTION_TEST_MODE = exports.CODEQL_ACTION_TESTING_ENVIRONMENT = exports.CODEQL_WORKFLOW_STARTED_AT = exports.ODASA_TRACER_CONFIGURATION = void 0; -exports.ODASA_TRACER_CONFIGURATION = "ODASA_TRACER_CONFIGURATION"; -// The time at which the first action (normally init) started executing. -// If a workflow invokes a different action without first invoking the init -// action (i.e. the upload action is being used by a third-party integrator) -// then this variable will be assigned the start time of the action invoked -// rather that the init action. -exports.CODEQL_WORKFLOW_STARTED_AT = "CODEQL_WORKFLOW_STARTED_AT"; +exports.ODASA_TRACER_CONFIGURATION = exports.CODEQL_WORKFLOW_STARTED_AT = exports.CODEQL_ACTION_TEST_MODE = exports.CODEQL_ACTION_TESTING_ENVIRONMENT = exports.CODEQL_ACTION_ANALYZE_DID_UPLOAD_SARIF = void 0; +/** + * This environment variable is set to true when the `analyze` Action + * successfully uploads a SARIF file. It does NOT indicate whether the + * SARIF file was processed successfully. + */ +exports.CODEQL_ACTION_ANALYZE_DID_UPLOAD_SARIF = "CODEQL_ACTION_ANALYZE_DID_UPLOAD_SARIF"; exports.CODEQL_ACTION_TESTING_ENVIRONMENT = "CODEQL_ACTION_TESTING_ENVIRONMENT"; /** Used to disable uploading SARIF results or status reports to the GitHub API */ exports.CODEQL_ACTION_TEST_MODE = "CODEQL_ACTION_TEST_MODE"; +/** + * The time at which the first action (normally init) started executing. + * If a workflow invokes a different action without first invoking the init + * action (i.e. the upload action is being used by a third-party integrator) + * then this variable will be assigned the start time of the action invoked + * rather that the init action. + */ +exports.CODEQL_WORKFLOW_STARTED_AT = "CODEQL_WORKFLOW_STARTED_AT"; +exports.ODASA_TRACER_CONFIGURATION = "ODASA_TRACER_CONFIGURATION"; //# sourceMappingURL=shared-environment.js.map \ No newline at end of file diff --git a/lib/shared-environment.js.map b/lib/shared-environment.js.map index 430d1ac072..12ebce0c4d 100644 --- a/lib/shared-environment.js.map +++ b/lib/shared-environment.js.map @@ -1 +1 @@ -{"version":3,"file":"shared-environment.js","sourceRoot":"","sources":["../src/shared-environment.ts"],"names":[],"mappings":";;;AAAa,QAAA,0BAA0B,GAAG,4BAA4B,CAAC;AACvE,wEAAwE;AACxE,2EAA2E;AAC3E,4EAA4E;AAC5E,2EAA2E;AAC3E,+BAA+B;AAClB,QAAA,0BAA0B,GAAG,4BAA4B,CAAC;AAE1D,QAAA,iCAAiC,GAC5C,mCAAmC,CAAC;AAEtC,kFAAkF;AACrE,QAAA,uBAAuB,GAAG,yBAAyB,CAAC"} \ No newline at end of file +{"version":3,"file":"shared-environment.js","sourceRoot":"","sources":["../src/shared-environment.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACU,QAAA,sCAAsC,GACjD,wCAAwC,CAAC;AAE9B,QAAA,iCAAiC,GAC5C,mCAAmC,CAAC;AAEtC,kFAAkF;AACrE,QAAA,uBAAuB,GAAG,yBAAyB,CAAC;AAEjE;;;;;;GAMG;AACU,QAAA,0BAA0B,GAAG,4BAA4B,CAAC;AAE1D,QAAA,0BAA0B,GAAG,4BAA4B,CAAC"} \ No newline at end of file diff --git a/lib/toolrunner-error-catcher.js b/lib/toolrunner-error-catcher.js index c5767ee4af..bb6d524b28 100644 --- a/lib/toolrunner-error-catcher.js +++ b/lib/toolrunner-error-catcher.js @@ -31,7 +31,7 @@ const safeWhich = __importStar(require("@chrisgavin/safe-which")); * @param args optional arguments for tool. Escaping is handled by the lib. * @param matchers defines specific codes and/or regexes that should lead to return of a custom error * @param options optional exec options. See ExecOptions - * @returns Promise exit code + * @returns ReturnState exit code and stdout output, if applicable */ async function toolrunnerErrorCatcher(commandLine, args, matchers, options) { var _a, _b; @@ -54,40 +54,36 @@ async function toolrunnerErrorCatcher(commandLine, args, matchers, options) { }, }; // we capture the original return code or error so that if no match is found we can duplicate the behavior - let returnState; + let exitCode; try { - returnState = await new toolrunner.ToolRunner(await safeWhich.safeWhich(commandLine), args, { + exitCode = await new toolrunner.ToolRunner(await safeWhich.safeWhich(commandLine), args, { ...options, listeners, ignoreReturnCode: true, // so we can check for specific codes using the matchers }).exec(); - } - catch (e) { - returnState = e instanceof Error ? e : new Error(String(e)); - } - // if there is a zero return code then we do not apply the matchers - if (returnState === 0) - return returnState; - if (matchers) { - for (const matcher of matchers) { - if (matcher.exitCode === returnState || - ((_a = matcher.outputRegex) === null || _a === void 0 ? void 0 : _a.test(stderr)) || - ((_b = matcher.outputRegex) === null || _b === void 0 ? void 0 : _b.test(stdout))) { - throw new Error(matcher.message); + // if there is a zero return code then we do not apply the matchers + if (exitCode === 0) + return { exitCode, stdout }; + if (matchers) { + for (const matcher of matchers) { + if (matcher.exitCode === exitCode || + ((_a = matcher.outputRegex) === null || _a === void 0 ? void 0 : _a.test(stderr)) || + ((_b = matcher.outputRegex) === null || _b === void 0 ? void 0 : _b.test(stdout))) { + throw new Error(matcher.message); + } } } - } - if (typeof returnState === "number") { // only if we were instructed to ignore the return code do we ever return it non-zero if (options === null || options === void 0 ? void 0 : options.ignoreReturnCode) { - return returnState; + return { exitCode, stdout }; } else { - throw new Error(`The process '${commandLine}' failed with exit code ${returnState}`); + throw new Error(`The process '${commandLine}' failed with exit code ${exitCode}`); } } - else { - throw returnState; + catch (e) { + const error = e instanceof Error ? e : new Error(String(e)); + throw error; } } exports.toolrunnerErrorCatcher = toolrunnerErrorCatcher; diff --git a/lib/toolrunner-error-catcher.js.map b/lib/toolrunner-error-catcher.js.map index 5f9450a5a7..6918e80542 100644 --- a/lib/toolrunner-error-catcher.js.map +++ b/lib/toolrunner-error-catcher.js.map @@ -1 +1 @@ -{"version":3,"file":"toolrunner-error-catcher.js","sourceRoot":"","sources":["../src/toolrunner-error-catcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,yEAA2D;AAC3D,kEAAoD;AAIpD;;;;;;;;;;GAUG;AACI,KAAK,UAAU,sBAAsB,CAC1C,WAAmB,EACnB,IAAe,EACf,QAAyB,EACzB,OAAwB;;IAExB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,MAAM,SAAS,GAAG;QAChB,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;;YACvB,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,MAAM,MAAK,SAAS,EAAE;gBAC5C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAChC;QACH,CAAC;QACD,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;;YACvB,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,MAAM,MAAK,SAAS,EAAE;gBAC5C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAChC;QACH,CAAC;KACF,CAAC;IAEF,0GAA0G;IAC1G,IAAI,WAA2B,CAAC;IAChC,IAAI;QACF,WAAW,GAAG,MAAM,IAAI,UAAU,CAAC,UAAU,CAC3C,MAAM,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,EACtC,IAAI,EACJ;YACE,GAAG,OAAO;YACV,SAAS;YACT,gBAAgB,EAAE,IAAI,EAAE,wDAAwD;SACjF,CACF,CAAC,IAAI,EAAE,CAAC;KACV;IAAC,OAAO,CAAC,EAAE;QACV,WAAW,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7D;IAED,mEAAmE;IACnE,IAAI,WAAW,KAAK,CAAC;QAAE,OAAO,WAAW,CAAC;IAE1C,IAAI,QAAQ,EAAE;QACZ,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,IACE,OAAO,CAAC,QAAQ,KAAK,WAAW;iBAChC,MAAA,OAAO,CAAC,WAAW,0CAAE,IAAI,CAAC,MAAM,CAAC,CAAA;iBACjC,MAAA,OAAO,CAAC,WAAW,0CAAE,IAAI,CAAC,MAAM,CAAC,CAAA,EACjC;gBACA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aAClC;SACF;KACF;IAED,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;QACnC,qFAAqF;QACrF,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,EAAE;YAC7B,OAAO,WAAW,CAAC;SACpB;aAAM;YACL,MAAM,IAAI,KAAK,CACb,gBAAgB,WAAW,2BAA2B,WAAW,EAAE,CACpE,CAAC;SACH;KACF;SAAM;QACL,MAAM,WAAW,CAAC;KACnB;AACH,CAAC;AAnED,wDAmEC"} \ No newline at end of file +{"version":3,"file":"toolrunner-error-catcher.js","sourceRoot":"","sources":["../src/toolrunner-error-catcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,yEAA2D;AAC3D,kEAAoD;AASpD;;;;;;;;;;GAUG;AACI,KAAK,UAAU,sBAAsB,CAC1C,WAAmB,EACnB,IAAe,EACf,QAAyB,EACzB,OAAwB;;IAExB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,MAAM,SAAS,GAAG;QAChB,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;;YACvB,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,MAAM,MAAK,SAAS,EAAE;gBAC5C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAChC;QACH,CAAC;QACD,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;;YACvB,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,MAAM,MAAK,SAAS,EAAE;gBAC5C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAChC;QACH,CAAC;KACF,CAAC;IAEF,0GAA0G;IAC1G,IAAI,QAAgB,CAAC;IACrB,IAAI;QACF,QAAQ,GAAG,MAAM,IAAI,UAAU,CAAC,UAAU,CACxC,MAAM,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,EACtC,IAAI,EACJ;YACE,GAAG,OAAO;YACV,SAAS;YACT,gBAAgB,EAAE,IAAI,EAAE,wDAAwD;SACjF,CACF,CAAC,IAAI,EAAE,CAAC;QAET,mEAAmE;QACnE,IAAI,QAAQ,KAAK,CAAC;YAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAEhD,IAAI,QAAQ,EAAE;YACZ,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,IACE,OAAO,CAAC,QAAQ,KAAK,QAAQ;qBAC7B,MAAA,OAAO,CAAC,WAAW,0CAAE,IAAI,CAAC,MAAM,CAAC,CAAA;qBACjC,MAAA,OAAO,CAAC,WAAW,0CAAE,IAAI,CAAC,MAAM,CAAC,CAAA,EACjC;oBACA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;iBAClC;aACF;SACF;QAED,qFAAqF;QACrF,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,EAAE;YAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;SAC7B;aAAM;YACL,MAAM,IAAI,KAAK,CACb,gBAAgB,WAAW,2BAA2B,QAAQ,EAAE,CACjE,CAAC;SACH;KACF;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC;KACb;AACH,CAAC;AAhED,wDAgEC"} \ No newline at end of file diff --git a/lib/toolrunner-error-catcher.test.js b/lib/toolrunner-error-catcher.test.js index a689f037af..4b6070456c 100644 --- a/lib/toolrunner-error-catcher.test.js +++ b/lib/toolrunner-error-catcher.test.js @@ -33,7 +33,8 @@ const toolrunner_error_catcher_1 = require("./toolrunner-error-catcher"); { exitCode: 123, outputRegex: new RegExp("foo bar"), message: "error!!!" }, ]; t.deepEqual(await exec.exec("node", testArgs), 0); - t.deepEqual(await (0, toolrunner_error_catcher_1.toolrunnerErrorCatcher)("node", testArgs, matchers), 0); + const returnState = await (0, toolrunner_error_catcher_1.toolrunnerErrorCatcher)("node", testArgs, matchers); + t.deepEqual(returnState.exitCode, 0); }); (0, ava_1.default)("regex matchers are applied to stdout for non-zero exit code", async (t) => { const testArgs = buildDummyArgs("foo bar\\nblort qux", "", "", 1); @@ -116,9 +117,10 @@ const toolrunner_error_catcher_1 = require("./toolrunner-error-catcher"); (0, ava_1.default)("execErrorCatcher respects the ignoreReturnValue option", async (t) => { const testArgs = buildDummyArgs("standard output", "error output", "", 199); await t.throwsAsync((0, toolrunner_error_catcher_1.toolrunnerErrorCatcher)("node", testArgs, [], { ignoreReturnCode: false }), { instanceOf: Error }); - t.deepEqual(await (0, toolrunner_error_catcher_1.toolrunnerErrorCatcher)("node", testArgs, [], { + const returnState = await (0, toolrunner_error_catcher_1.toolrunnerErrorCatcher)("node", testArgs, [], { ignoreReturnCode: true, - }), 199); + }); + t.deepEqual(returnState.exitCode, 199); }); (0, ava_1.default)("execErrorCatcher preserves behavior of provided listeners", async (t) => { const stdoutExpected = "standard output"; @@ -134,9 +136,10 @@ const toolrunner_error_catcher_1 = require("./toolrunner-error-catcher"); }, }; const testArgs = buildDummyArgs(stdoutExpected, stderrExpected, "", 0); - t.deepEqual(await (0, toolrunner_error_catcher_1.toolrunnerErrorCatcher)("node", testArgs, [], { + const returnState = await (0, toolrunner_error_catcher_1.toolrunnerErrorCatcher)("node", testArgs, [], { listeners, - }), 0); + }); + t.deepEqual(returnState.exitCode, 0); t.deepEqual(stdoutActual, `${stdoutExpected}\n`); t.deepEqual(stderrActual, `${stderrExpected}\n`); }); diff --git a/lib/toolrunner-error-catcher.test.js.map b/lib/toolrunner-error-catcher.test.js.map index 091804453a..100bf961c2 100644 --- a/lib/toolrunner-error-catcher.test.js.map +++ b/lib/toolrunner-error-catcher.test.js.map @@ -1 +1 @@ -{"version":3,"file":"toolrunner-error-catcher.test.js","sourceRoot":"","sources":["../src/toolrunner-error-catcher.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"toolrunner-error-catcher.test.js","sourceRoot":"","sources":["../src/toolrunner-error-catcher.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/upload-lib.js b/lib/upload-lib.js index b0f510eb4f..5a27b719d5 100644 --- a/lib/upload-lib.js +++ b/lib/upload-lib.js @@ -36,6 +36,7 @@ const fingerprints = __importStar(require("./fingerprints")); const repository_1 = require("./repository"); const sharedEnv = __importStar(require("./shared-environment")); const util = __importStar(require("./util")); +const workflow = __importStar(require("./workflow")); // Takes a list of paths to sarif files and combines them together, // returning the contents of the combined sarif file. function combineSarifFiles(sarifFiles) { @@ -127,9 +128,8 @@ function findSarifFilesInDir(sarifPath) { exports.findSarifFilesInDir = findSarifFilesInDir; // Uploads a single sarif file or a directory of sarif files // depending on what the path happens to refer to. -// Returns true iff the upload occurred and succeeded -async function uploadFromActions(sarifPath, logger) { - return await uploadFiles(getSarifFilePaths(sarifPath), (0, repository_1.parseRepositoryNwo)(util.getRequiredEnvParam("GITHUB_REPOSITORY")), await actionsUtil.getCommitOid(actionsUtil.getRequiredInput("checkout_path")), await actionsUtil.getRef(), await actionsUtil.getAnalysisKey(), actionsUtil.getOptionalInput("category"), util.getRequiredEnvParam("GITHUB_WORKFLOW"), actionsUtil.getWorkflowRunID(), actionsUtil.getRequiredInput("checkout_path"), actionsUtil.getRequiredInput("matrix"), logger); +async function uploadFromActions(sarifPath, checkoutPath, category, logger) { + return await uploadFiles(getSarifFilePaths(sarifPath), (0, repository_1.parseRepositoryNwo)(util.getRequiredEnvParam("GITHUB_REPOSITORY")), await actionsUtil.getCommitOid(checkoutPath), await actionsUtil.getRef(), await actionsUtil.getAnalysisKey(), category, util.getRequiredEnvParam("GITHUB_WORKFLOW"), workflow.getWorkflowRunID(), checkoutPath, actionsUtil.getRequiredInput("matrix"), logger); } exports.uploadFromActions = uploadFromActions; function getSarifFilePaths(sarifPath) { @@ -269,48 +269,92 @@ async function uploadFiles(sarifFiles, repositoryNwo, commitOid, ref, analysisKe } const STATUS_CHECK_FREQUENCY_MILLISECONDS = 5 * 1000; const STATUS_CHECK_TIMEOUT_MILLISECONDS = 2 * 60 * 1000; -// Waits until either the analysis is successfully processed, a processing error is reported, or STATUS_CHECK_TIMEOUT_MILLISECONDS elapses. -async function waitForProcessing(repositoryNwo, sarifID, logger) { +/** + * Waits until either the analysis is successfully processed, a processing error + * is reported, or `STATUS_CHECK_TIMEOUT_MILLISECONDS` elapses. + * + * If `isUnsuccessfulExecution` is passed, will throw an error if the analysis + * processing does not produce a single error mentioning the unsuccessful + * execution. + */ +async function waitForProcessing(repositoryNwo, sarifID, logger, options = { + isUnsuccessfulExecution: false, +}) { logger.startGroup("Waiting for processing to finish"); - const client = api.getApiClient(); - const statusCheckingStarted = Date.now(); - // eslint-disable-next-line no-constant-condition - while (true) { - if (Date.now() > - statusCheckingStarted + STATUS_CHECK_TIMEOUT_MILLISECONDS) { - // If the analysis hasn't finished processing in the allotted time, we continue anyway rather than failing. - // It's possible the analysis will eventually finish processing, but it's not worth spending more Actions time waiting. - logger.warning("Timed out waiting for analysis to finish processing. Continuing."); - break; - } - let response = undefined; - try { - response = await client.request("GET /repos/:owner/:repo/code-scanning/sarifs/:sarif_id", { - owner: repositoryNwo.owner, - repo: repositoryNwo.repo, - sarif_id: sarifID, - }); - } - catch (e) { - logger.warning(`An error occurred checking the status of the delivery. ${e} It should still be processed in the background, but errors that occur during processing may not be reported.`); - break; - } - const status = response.data.processing_status; - logger.info(`Analysis upload status is ${status}.`); - if (status === "complete") { - break; - } - else if (status === "pending") { - logger.debug("Analysis processing is still pending..."); - } - else if (status === "failed") { - throw new Error(`Code Scanning could not process the submitted SARIF file:\n${response.data.errors}`); + try { + const client = api.getApiClient(); + const statusCheckingStarted = Date.now(); + // eslint-disable-next-line no-constant-condition + while (true) { + if (Date.now() > + statusCheckingStarted + STATUS_CHECK_TIMEOUT_MILLISECONDS) { + // If the analysis hasn't finished processing in the allotted time, we continue anyway rather than failing. + // It's possible the analysis will eventually finish processing, but it's not worth spending more Actions time waiting. + logger.warning("Timed out waiting for analysis to finish processing. Continuing."); + break; + } + let response = undefined; + try { + response = await client.request("GET /repos/:owner/:repo/code-scanning/sarifs/:sarif_id", { + owner: repositoryNwo.owner, + repo: repositoryNwo.repo, + sarif_id: sarifID, + }); + } + catch (e) { + logger.warning(`An error occurred checking the status of the delivery. ${e} It should still be processed in the background, but errors that occur during processing may not be reported.`); + break; + } + const status = response.data.processing_status; + logger.info(`Analysis upload status is ${status}.`); + if (status === "pending") { + logger.debug("Analysis processing is still pending..."); + } + else if (options.isUnsuccessfulExecution) { + // We expect a specific processing error for unsuccessful executions, so + // handle these separately. + handleProcessingResultForUnsuccessfulExecution(response, status, logger); + break; + } + else if (status === "complete") { + break; + } + else if (status === "failed") { + throw new Error(`Code Scanning could not process the submitted SARIF file:\n${response.data.errors}`); + } + else { + util.assertNever(status); + } + await util.delay(STATUS_CHECK_FREQUENCY_MILLISECONDS); } - await util.delay(STATUS_CHECK_FREQUENCY_MILLISECONDS); } - logger.endGroup(); + finally { + logger.endGroup(); + } } exports.waitForProcessing = waitForProcessing; +/** + * Checks the processing result for an unsuccessful execution. Throws if the + * result is not a failure with a single "unsuccessful execution" error. + */ +function handleProcessingResultForUnsuccessfulExecution(response, status, logger) { + if (status === "failed" && + Array.isArray(response.data.errors) && + response.data.errors.length === 1 && + response.data.errors[0].toString().startsWith("unsuccessful execution")) { + logger.debug("Successfully uploaded a SARIF file for the unsuccessful execution. Received expected " + + '"unsuccessful execution" error, and no other errors.'); + } + else { + const shortMessage = "Failed to upload a SARIF file for the unsuccessful execution. Code scanning status " + + "information for the repository may be out of date as a result."; + const longMessage = shortMessage + status === "failed" + ? ` Processing errors: ${response.data.errors}` + : ' Encountered no processing errors, but expected to receive an "unsuccessful execution" error.'; + logger.debug(longMessage); + throw new Error(shortMessage); + } +} function validateUniqueCategory(sarif) { var _a, _b, _c; // duplicate categories are allowed in the same sarif file diff --git a/lib/upload-lib.js.map b/lib/upload-lib.js.map index 3251729675..11adeb6611 100644 --- a/lib/upload-lib.js.map +++ b/lib/upload-lib.js.map @@ -1 +1 @@ -{"version":3,"file":"upload-lib.js","sourceRoot":"","sources":["../src/upload-lib.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"upload-lib.js","sourceRoot":"","sources":["../src/upload-lib.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/upload-sarif-action.js b/lib/upload-sarif-action.js index 8138df9ccb..94f8512ae6 100644 --- a/lib/upload-sarif-action.js +++ b/lib/upload-sarif-action.js @@ -43,7 +43,7 @@ async function run() { return; } try { - const uploadResult = await upload_lib.uploadFromActions(actionsUtil.getRequiredInput("sarif_file"), (0, logging_1.getActionsLogger)()); + const uploadResult = await upload_lib.uploadFromActions(actionsUtil.getRequiredInput("sarif_file"), actionsUtil.getRequiredInput("checkout_path"), actionsUtil.getOptionalInput("category"), (0, logging_1.getActionsLogger)()); core.setOutput("sarif-id", uploadResult.sarifID); // We don't upload results in test mode, so don't wait for processing if ((0, util_1.isInTestMode)()) { diff --git a/lib/upload-sarif-action.js.map b/lib/upload-sarif-action.js.map index a9ded387f8..e10cce4620 100644 --- a/lib/upload-sarif-action.js.map +++ b/lib/upload-sarif-action.js.map @@ -1 +1 @@ -{"version":3,"file":"upload-sarif-action.js","sourceRoot":"","sources":["../src/upload-sarif-action.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,oDAAsC;AAEtC,4DAA8C;AAC9C,uCAA6C;AAC7C,6CAAkD;AAClD,yDAA2C;AAC3C,iCAKgB;AAEhB,8CAA8C;AAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAMvC,KAAK,UAAU,uBAAuB,CACpC,SAAe,EACf,WAA0C;IAE1C,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,sBAAsB,CAC/D,cAAc,EACd,SAAS,EACT,SAAS,CACV,CAAC;IACF,MAAM,YAAY,GAA4B;QAC5C,GAAG,gBAAgB;QACnB,GAAG,WAAW;KACf,CAAC;IACF,MAAM,WAAW,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,GAAG;IAChB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,IAAA,4BAAqB,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,IAAA,yBAAkB,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,IACE,CAAC,CAAC,MAAM,WAAW,CAAC,gBAAgB,CAClC,MAAM,WAAW,CAAC,sBAAsB,CACtC,cAAc,EACd,UAAU,EACV,SAAS,CACV,CACF,CAAC,EACF;QACA,OAAO;KACR;IAED,IAAI;QACF,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,iBAAiB,CACrD,WAAW,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAC1C,IAAA,0BAAgB,GAAE,CACnB,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QAEjD,qEAAqE;QACrE,IAAI,IAAA,mBAAY,GAAE,EAAE;YAClB,IAAI,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;SACjE;aAAM,IAAI,WAAW,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,KAAK,MAAM,EAAE;YACzE,MAAM,UAAU,CAAC,iBAAiB,CAChC,IAAA,+BAAkB,EAAC,IAAA,0BAAmB,EAAC,mBAAmB,CAAC,CAAC,EAC5D,YAAY,CAAC,OAAO,EACpB,IAAA,0BAAgB,GAAE,CACnB,CAAC;SACH;QACD,MAAM,uBAAuB,CAAC,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;KACrE;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,WAAW,CAAC,gBAAgB,CAChC,MAAM,WAAW,CAAC,sBAAsB,CACtC,cAAc,EACd,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,EACnC,SAAS,EACT,OAAO,EACP,KAAK,CACN,CACF,CAAC;QACF,OAAO;KACR;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,IAAI;QACF,MAAM,GAAG,EAAE,CAAC;KACb;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,CAAC,SAAS,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACpB;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"upload-sarif-action.js","sourceRoot":"","sources":["../src/upload-sarif-action.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/util.js b/lib/util.js index 29f313a5c2..92de9efc15 100644 --- a/lib/util.js +++ b/lib/util.js @@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.shouldBypassToolcache = exports.isHostedRunner = exports.checkForTimeout = exports.withTimeout = exports.tryGetFolderBytes = exports.listFolder = exports.doesDirectoryExist = exports.logCodeScanningConfigInCli = exports.useCodeScanningConfigInCli = exports.isInTestMode = exports.checkActionVersion = exports.getMlPoweredJsQueriesStatus = exports.getMlPoweredJsQueriesPack = exports.ML_POWERED_JS_QUERIES_PACK_NAME = exports.isGoodVersion = exports.delay = exports.bundleDb = exports.codeQlVersionAbove = exports.getCachedCodeQlVersion = exports.cacheCodeQlVersion = exports.isHTTPError = exports.UserError = exports.HTTPError = exports.getRequiredEnvParam = exports.enrichEnvironment = exports.initializeEnvironment = exports.EnvVar = exports.assertNever = exports.apiVersionInRange = exports.DisallowedAPIVersionReason = exports.checkGitHubVersionInRange = exports.getGitHubVersion = exports.GitHubVariant = exports.parseGitHubUrl = exports.getCodeQLDatabasePath = exports.getThreadsFlag = exports.getThreadsFlagValue = exports.getAddSnippetsFlag = exports.getMemoryFlag = exports.getMemoryFlagValue = exports.withTmpDir = exports.getToolNames = exports.getExtraOptionsEnvParam = exports.DID_AUTOBUILD_GO_ENV_VAR_NAME = exports.DEFAULT_DEBUG_DATABASE_NAME = exports.DEFAULT_DEBUG_ARTIFACT_NAME = exports.GITHUB_DOTCOM_URL = void 0; +exports.parseMatrixInput = exports.shouldBypassToolcache = exports.isHostedRunner = exports.checkForTimeout = exports.withTimeout = exports.tryGetFolderBytes = exports.listFolder = exports.doesDirectoryExist = exports.logCodeScanningConfigInCli = exports.useCodeScanningConfigInCli = exports.isInTestMode = exports.checkActionVersion = exports.getMlPoweredJsQueriesStatus = exports.getMlPoweredJsQueriesPack = exports.ML_POWERED_JS_QUERIES_PACK_NAME = exports.isGoodVersion = exports.delay = exports.bundleDb = exports.codeQlVersionAbove = exports.getCachedCodeQlVersion = exports.cacheCodeQlVersion = exports.isHTTPError = exports.UserError = exports.HTTPError = exports.getRequiredEnvParam = exports.enrichEnvironment = exports.initializeEnvironment = exports.EnvVar = exports.assertNever = exports.apiVersionInRange = exports.DisallowedAPIVersionReason = exports.checkGitHubVersionInRange = exports.getGitHubVersion = exports.GitHubVariant = exports.parseGitHubUrl = exports.getCodeQLDatabasePath = exports.getThreadsFlag = exports.getThreadsFlagValue = exports.getAddSnippetsFlag = exports.getMemoryFlag = exports.getMemoryFlagValue = exports.withTmpDir = exports.getToolNames = exports.getExtraOptionsEnvParam = exports.DID_AUTOBUILD_GO_ENV_VAR_NAME = exports.DEFAULT_DEBUG_DATABASE_NAME = exports.DEFAULT_DEBUG_ARTIFACT_NAME = exports.GITHUB_DOTCOM_URL = void 0; const fs = __importStar(require("fs")); const os = __importStar(require("os")); const path = __importStar(require("path")); @@ -750,4 +750,11 @@ async function shouldBypassToolcache(featuresEnablement, codeqlUrl, languagesInp return bypass; } exports.shouldBypassToolcache = shouldBypassToolcache; +function parseMatrixInput(matrixInput) { + if (matrixInput === undefined || matrixInput === "null") { + return undefined; + } + return JSON.parse(matrixInput); +} +exports.parseMatrixInput = parseMatrixInput; //# sourceMappingURL=util.js.map \ No newline at end of file diff --git a/lib/util.js.map b/lib/util.js.map index 8fd23abc66..a32e77240b 100644 --- a/lib/util.js.map +++ b/lib/util.js.map @@ -1 +1 @@ -{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/workflow.js b/lib/workflow.js new file mode 100644 index 0000000000..84630781d3 --- /dev/null +++ b/lib/workflow.js @@ -0,0 +1,350 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getCheckoutPathInputOrThrow = exports.getUploadInputOrThrow = exports.getCategoryInputOrThrow = exports.getWorkflowRunID = exports.getWorkflowPath = exports.getWorkflow = exports.formatWorkflowCause = exports.formatWorkflowErrors = exports.validateWorkflow = exports.getWorkflowErrors = exports.WorkflowErrors = exports.patternIsSuperset = void 0; +const fs = __importStar(require("fs")); +const path = __importStar(require("path")); +const core = __importStar(require("@actions/core")); +const yaml = __importStar(require("js-yaml")); +const api = __importStar(require("./api-client")); +const util_1 = require("./util"); +function isObject(o) { + return o !== null && typeof o === "object"; +} +const GLOB_PATTERN = new RegExp("(\\*\\*?)"); +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string +} +function patternToRegExp(value) { + return new RegExp(`^${value + .toString() + .split(GLOB_PATTERN) + .reduce(function (arr, cur) { + if (cur === "**") { + arr.push(".*?"); + } + else if (cur === "*") { + arr.push("[^/]*?"); + } + else if (cur) { + arr.push(escapeRegExp(cur)); + } + return arr; + }, []) + .join("")}$`); +} +// this function should return true if patternA is a superset of patternB +// e.g: * is a superset of main-* but main-* is not a superset of *. +function patternIsSuperset(patternA, patternB) { + return patternToRegExp(patternA).test(patternB); +} +exports.patternIsSuperset = patternIsSuperset; +function branchesToArray(branches) { + if (typeof branches === "string") { + return [branches]; + } + if (Array.isArray(branches)) { + if (branches.length === 0) { + return "**"; + } + return branches; + } + return "**"; +} +function toCodedErrors(errors) { + return Object.entries(errors).reduce((acc, [code, message]) => { + acc[code] = { message, code }; + return acc; + }, {}); +} +// code to send back via status report +// message to add as a warning annotation to the run +exports.WorkflowErrors = toCodedErrors({ + MismatchedBranches: `Please make sure that every branch in on.pull_request is also in on.push so that Code Scanning can compare pull requests against the state of the base branch.`, + MissingPushHook: `Please specify an on.push hook so that Code Scanning can compare pull requests against the state of the base branch.`, + PathsSpecified: `Using on.push.paths can prevent Code Scanning annotating new alerts in your pull requests.`, + PathsIgnoreSpecified: `Using on.push.paths-ignore can prevent Code Scanning annotating new alerts in your pull requests.`, + CheckoutWrongHead: `git checkout HEAD^2 is no longer necessary. Please remove this step as Code Scanning recommends analyzing the merge commit for best results.`, +}); +function getWorkflowErrors(doc) { + var _a, _b, _c, _d, _e; + const errors = []; + const jobName = process.env.GITHUB_JOB; + if (jobName) { + const job = (_a = doc === null || doc === void 0 ? void 0 : doc.jobs) === null || _a === void 0 ? void 0 : _a[jobName]; + const steps = job === null || job === void 0 ? void 0 : job.steps; + if (Array.isArray(steps)) { + for (const step of steps) { + // this was advice that we used to give in the README + // we actually want to run the analysis on the merge commit + // to produce results that are more inline with expectations + // (i.e: this is what will happen if you merge this PR) + // and avoid some race conditions + if ((step === null || step === void 0 ? void 0 : step.run) === "git checkout HEAD^2") { + errors.push(exports.WorkflowErrors.CheckoutWrongHead); + break; + } + } + } + } + let missingPush = false; + if (doc.on === undefined) { + // this is not a valid config + } + else if (typeof doc.on === "string") { + if (doc.on === "pull_request") { + missingPush = true; + } + } + else if (Array.isArray(doc.on)) { + const hasPush = doc.on.includes("push"); + const hasPullRequest = doc.on.includes("pull_request"); + if (hasPullRequest && !hasPush) { + missingPush = true; + } + } + else if (isObject(doc.on)) { + const hasPush = Object.prototype.hasOwnProperty.call(doc.on, "push"); + const hasPullRequest = Object.prototype.hasOwnProperty.call(doc.on, "pull_request"); + if (!hasPush && hasPullRequest) { + missingPush = true; + } + if (hasPush && hasPullRequest) { + const paths = (_b = doc.on.push) === null || _b === void 0 ? void 0 : _b.paths; + // if you specify paths or paths-ignore you can end up with commits that have no baseline + // if they didn't change any files + // currently we cannot go back through the history and find the most recent baseline + if (Array.isArray(paths) && paths.length > 0) { + errors.push(exports.WorkflowErrors.PathsSpecified); + } + const pathsIgnore = (_c = doc.on.push) === null || _c === void 0 ? void 0 : _c["paths-ignore"]; + if (Array.isArray(pathsIgnore) && pathsIgnore.length > 0) { + errors.push(exports.WorkflowErrors.PathsIgnoreSpecified); + } + } + // if doc.on.pull_request is null that means 'all branches' + // if doc.on.pull_request is undefined that means 'off' + // we only want to check for mismatched branches if pull_request is on. + if (doc.on.pull_request !== undefined) { + const push = branchesToArray((_d = doc.on.push) === null || _d === void 0 ? void 0 : _d.branches); + if (push !== "**") { + const pull_request = branchesToArray((_e = doc.on.pull_request) === null || _e === void 0 ? void 0 : _e.branches); + if (pull_request !== "**") { + const difference = pull_request.filter((value) => !push.some((o) => patternIsSuperset(o, value))); + if (difference.length > 0) { + // there are branches in pull_request that may not have a baseline + // because we are not building them on push + errors.push(exports.WorkflowErrors.MismatchedBranches); + } + } + else if (push.length > 0) { + // push is set up to run on a subset of branches + // and you could open a PR against a branch with no baseline + errors.push(exports.WorkflowErrors.MismatchedBranches); + } + } + } + } + if (missingPush) { + errors.push(exports.WorkflowErrors.MissingPushHook); + } + return errors; +} +exports.getWorkflowErrors = getWorkflowErrors; +async function validateWorkflow() { + let workflow; + try { + workflow = await getWorkflow(); + } + catch (e) { + return `error: getWorkflow() failed: ${String(e)}`; + } + let workflowErrors; + try { + workflowErrors = getWorkflowErrors(workflow); + } + catch (e) { + return `error: getWorkflowErrors() failed: ${String(e)}`; + } + if (workflowErrors.length > 0) { + let message; + try { + message = formatWorkflowErrors(workflowErrors); + } + catch (e) { + return `error: formatWorkflowErrors() failed: ${String(e)}`; + } + core.warning(message); + } + return formatWorkflowCause(workflowErrors); +} +exports.validateWorkflow = validateWorkflow; +function formatWorkflowErrors(errors) { + const issuesWere = errors.length === 1 ? "issue was" : "issues were"; + const errorsList = errors.map((e) => e.message).join(" "); + return `${errors.length} ${issuesWere} detected with this workflow: ${errorsList}`; +} +exports.formatWorkflowErrors = formatWorkflowErrors; +function formatWorkflowCause(errors) { + if (errors.length === 0) { + return undefined; + } + return errors.map((e) => e.code).join(","); +} +exports.formatWorkflowCause = formatWorkflowCause; +async function getWorkflow() { + const relativePath = await getWorkflowPath(); + const absolutePath = path.join((0, util_1.getRequiredEnvParam)("GITHUB_WORKSPACE"), relativePath); + return yaml.load(fs.readFileSync(absolutePath, "utf-8")); +} +exports.getWorkflow = getWorkflow; +/** + * Get the path of the currently executing workflow. + */ +async function getWorkflowPath() { + const repo_nwo = (0, util_1.getRequiredEnvParam)("GITHUB_REPOSITORY").split("/"); + const owner = repo_nwo[0]; + const repo = repo_nwo[1]; + const run_id = Number((0, util_1.getRequiredEnvParam)("GITHUB_RUN_ID")); + const apiClient = api.getApiClient(); + const runsResponse = await apiClient.request("GET /repos/:owner/:repo/actions/runs/:run_id?exclude_pull_requests=true", { + owner, + repo, + run_id, + }); + const workflowUrl = runsResponse.data.workflow_url; + const workflowResponse = await apiClient.request(`GET ${workflowUrl}`); + return workflowResponse.data.path; +} +exports.getWorkflowPath = getWorkflowPath; +/** + * Get the workflow run ID. + */ +function getWorkflowRunID() { + const workflowRunID = parseInt((0, util_1.getRequiredEnvParam)("GITHUB_RUN_ID"), 10); + if (Number.isNaN(workflowRunID)) { + throw new Error("GITHUB_RUN_ID must define a non NaN workflow run ID"); + } + return workflowRunID; +} +exports.getWorkflowRunID = getWorkflowRunID; +function getStepsCallingAction(job, actionName) { + const steps = job.steps; + if (!Array.isArray(steps)) { + throw new Error(`Could not get steps calling ${actionName} since job.steps was not an array.`); + } + return steps.filter((step) => { var _a; return (_a = step.uses) === null || _a === void 0 ? void 0 : _a.includes(actionName); }); +} +/** + * Makes a best effort attempt to retrieve the value of a particular input with which + * an Action in the workflow would be invoked. + * + * Typically you'll want to wrap this function in a try/catch block and handle the error. + * + * @returns the value of the input, or undefined if no such input is passed to the Action + * @throws an error if the value of the input could not be determined, or we could not + * determine that no such input is passed to the Action. + */ +function getInputOrThrow(workflow, jobName, actionName, inputName, matrixVars) { + var _a; + const preamble = `Could not get ${inputName} input to ${actionName} since`; + if (!workflow.jobs) { + throw new Error(`${preamble} the workflow has no jobs.`); + } + if (!workflow.jobs[jobName]) { + throw new Error(`${preamble} the workflow has no job named ${jobName}.`); + } + const stepsCallingAction = getStepsCallingAction(workflow.jobs[jobName], actionName); + if (stepsCallingAction.length === 0) { + throw new Error(`${preamble} the ${jobName} job does not call ${actionName}.`); + } + else if (stepsCallingAction.length > 1) { + throw new Error(`${preamble} the ${jobName} job calls ${actionName} multiple times.`); + } + let input = (_a = stepsCallingAction[0].with) === null || _a === void 0 ? void 0 : _a[inputName]; + if (input !== undefined && matrixVars !== undefined) { + // Make a basic attempt to substitute matrix variables + // First normalize by removing whitespace + input = input.replace(/\${{\s+/, "${{").replace(/\s+}}/, "}}"); + for (const [key, value] of Object.entries(matrixVars)) { + input = input.replace(`\${{matrix.${key}}}`, value); + } + } + if (input !== undefined && input.includes("${{")) { + throw new Error(`Could not get ${inputName} input to ${actionName} since it contained an unrecognized dynamic value.`); + } + return input; +} +/** + * Get the expected name of the analyze Action. + * + * This allows us to test workflow parsing functionality as a CodeQL Action PR check. + */ +function getAnalyzeActionName() { + if ((0, util_1.getRequiredEnvParam)("GITHUB_REPOSITORY") === "github/codeql-action") { + return "./analyze"; + } + else { + return "github/codeql-action/analyze"; + } +} +/** + * Makes a best effort attempt to retrieve the category input for the particular job, + * given a set of matrix variables. + * + * Typically you'll want to wrap this function in a try/catch block and handle the error. + * + * @returns the category input, or undefined if the category input is not defined + * @throws an error if the category input could not be determined + */ +function getCategoryInputOrThrow(workflow, jobName, matrixVars) { + return getInputOrThrow(workflow, jobName, getAnalyzeActionName(), "category", matrixVars); +} +exports.getCategoryInputOrThrow = getCategoryInputOrThrow; +/** + * Makes a best effort attempt to retrieve the upload input for the particular job, + * given a set of matrix variables. + * + * Typically you'll want to wrap this function in a try/catch block and handle the error. + * + * @returns the upload input + * @throws an error if the upload input could not be determined + */ +function getUploadInputOrThrow(workflow, jobName, matrixVars) { + return (getInputOrThrow(workflow, jobName, getAnalyzeActionName(), "upload", matrixVars) || "true" // if unspecified, upload defaults to true + ); +} +exports.getUploadInputOrThrow = getUploadInputOrThrow; +/** + * Makes a best effort attempt to retrieve the checkout_path input for the + * particular job, given a set of matrix variables. + * + * Typically you'll want to wrap this function in a try/catch block and handle the error. + * + * @returns the checkout_path input + * @throws an error if the checkout_path input could not be determined + */ +function getCheckoutPathInputOrThrow(workflow, jobName, matrixVars) { + return (getInputOrThrow(workflow, jobName, getAnalyzeActionName(), "checkout_path", matrixVars) || (0, util_1.getRequiredEnvParam)("GITHUB_WORKSPACE") // if unspecified, checkout_path defaults to ${{ github.workspace }} + ); +} +exports.getCheckoutPathInputOrThrow = getCheckoutPathInputOrThrow; +//# sourceMappingURL=workflow.js.map \ No newline at end of file diff --git a/lib/workflow.js.map b/lib/workflow.js.map new file mode 100644 index 0000000000..188abbda5f --- /dev/null +++ b/lib/workflow.js.map @@ -0,0 +1 @@ +{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/workflow.test.js b/lib/workflow.test.js new file mode 100644 index 0000000000..0fc5bae015 --- /dev/null +++ b/lib/workflow.test.js @@ -0,0 +1,463 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ava_1 = __importDefault(require("ava")); +const yaml = __importStar(require("js-yaml")); +const testing_utils_1 = require("./testing-utils"); +const workflow_1 = require("./workflow"); +function errorCodes(actual, expected) { + return [actual.map(({ code }) => code), expected.map(({ code }) => code)]; +} +(0, testing_utils_1.setupTests)(ava_1.default); +(0, ava_1.default)("getWorkflowErrors() when on is empty", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)({ on: {} }); + t.deepEqual(...errorCodes(errors, [])); +}); +(0, ava_1.default)("getWorkflowErrors() when on.push is an array missing pull_request", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)({ on: ["push"] }); + t.deepEqual(...errorCodes(errors, [])); +}); +(0, ava_1.default)("getWorkflowErrors() when on.push is an array missing push", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)({ on: ["pull_request"] }); + t.deepEqual(...errorCodes(errors, [workflow_1.WorkflowErrors.MissingPushHook])); +}); +(0, ava_1.default)("getWorkflowErrors() when on.push is valid", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)({ + on: ["push", "pull_request"], + }); + t.deepEqual(...errorCodes(errors, [])); +}); +(0, ava_1.default)("getWorkflowErrors() when on.push is a valid superset", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)({ + on: ["push", "pull_request", "schedule"], + }); + t.deepEqual(...errorCodes(errors, [])); +}); +(0, ava_1.default)("getWorkflowErrors() when on.push should not have a path", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)({ + on: { + push: { branches: ["main"], paths: ["test/*"] }, + pull_request: { branches: ["main"] }, + }, + }); + t.deepEqual(...errorCodes(errors, [workflow_1.WorkflowErrors.PathsSpecified])); +}); +(0, ava_1.default)("getWorkflowErrors() when on.push is a correct object", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)({ + on: { push: { branches: ["main"] }, pull_request: { branches: ["main"] } }, + }); + t.deepEqual(...errorCodes(errors, [])); +}); +(0, ava_1.default)("getWorkflowErrors() when on.pull_requests is a string", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)({ + on: { push: { branches: ["main"] }, pull_request: { branches: "*" } }, + }); + t.deepEqual(...errorCodes(errors, [workflow_1.WorkflowErrors.MismatchedBranches])); +}); +(0, ava_1.default)("getWorkflowErrors() when on.pull_requests is a string and correct", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)({ + on: { push: { branches: "*" }, pull_request: { branches: "*" } }, + }); + t.deepEqual(...errorCodes(errors, [])); +}); +(0, ava_1.default)("getWorkflowErrors() when on.push is correct with empty objects", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)(yaml.load(` + on: + push: + pull_request: + `)); + t.deepEqual(...errorCodes(errors, [])); +}); +(0, ava_1.default)("getWorkflowErrors() when on.push is mismatched", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)({ + on: { + push: { branches: ["main"] }, + pull_request: { branches: ["feature"] }, + }, + }); + t.deepEqual(...errorCodes(errors, [workflow_1.WorkflowErrors.MismatchedBranches])); +}); +(0, ava_1.default)("getWorkflowErrors() when on.push is not mismatched", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)({ + on: { + push: { branches: ["main", "feature"] }, + pull_request: { branches: ["main"] }, + }, + }); + t.deepEqual(...errorCodes(errors, [])); +}); +(0, ava_1.default)("getWorkflowErrors() when on.push is mismatched for pull_request", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)({ + on: { + push: { branches: ["main"] }, + pull_request: { branches: ["main", "feature"] }, + }, + }); + t.deepEqual(...errorCodes(errors, [workflow_1.WorkflowErrors.MismatchedBranches])); +}); +(0, ava_1.default)("getWorkflowErrors() for a range of malformed workflows", (t) => { + t.deepEqual(...errorCodes((0, workflow_1.getWorkflowErrors)({ + on: { + push: 1, + pull_request: 1, + }, + }), [])); + t.deepEqual(...errorCodes((0, workflow_1.getWorkflowErrors)({ + on: 1, + }), [])); + t.deepEqual(...errorCodes((0, workflow_1.getWorkflowErrors)({ + on: 1, + jobs: 1, + }), [])); + t.deepEqual(...errorCodes((0, workflow_1.getWorkflowErrors)({ + on: 1, + jobs: [1], + }), [])); + t.deepEqual(...errorCodes((0, workflow_1.getWorkflowErrors)({ + on: 1, + jobs: { 1: 1 }, + }), [])); + t.deepEqual(...errorCodes((0, workflow_1.getWorkflowErrors)({ + on: 1, + jobs: { test: 1 }, + }), [])); + t.deepEqual(...errorCodes((0, workflow_1.getWorkflowErrors)({ + on: 1, + jobs: { test: [1] }, + }), [])); + t.deepEqual(...errorCodes((0, workflow_1.getWorkflowErrors)({ + on: 1, + jobs: { test: { steps: 1 } }, + }), [])); + t.deepEqual(...errorCodes((0, workflow_1.getWorkflowErrors)({ + on: 1, + jobs: { test: { steps: [{ notrun: "git checkout HEAD^2" }] } }, + }), [])); + t.deepEqual(...errorCodes((0, workflow_1.getWorkflowErrors)({ + on: 1, + jobs: { test: [undefined] }, + }), [])); + t.deepEqual(...errorCodes((0, workflow_1.getWorkflowErrors)(1), [])); + t.deepEqual(...errorCodes((0, workflow_1.getWorkflowErrors)({ + on: { + push: { + branches: 1, + }, + pull_request: { + branches: 1, + }, + }, + }), [])); +}); +(0, ava_1.default)("getWorkflowErrors() when on.pull_request for every branch but push specifies branches", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)(yaml.load(` + name: "CodeQL" + on: + push: + branches: ["main"] + pull_request: + `)); + t.deepEqual(...errorCodes(errors, [workflow_1.WorkflowErrors.MismatchedBranches])); +}); +(0, ava_1.default)("getWorkflowErrors() when on.pull_request for wildcard branches", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)({ + on: { + push: { branches: ["feature/*"] }, + pull_request: { branches: "feature/moose" }, + }, + }); + t.deepEqual(...errorCodes(errors, [])); +}); +(0, ava_1.default)("getWorkflowErrors() when on.pull_request for mismatched wildcard branches", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)({ + on: { + push: { branches: ["feature/moose"] }, + pull_request: { branches: "feature/*" }, + }, + }); + t.deepEqual(...errorCodes(errors, [workflow_1.WorkflowErrors.MismatchedBranches])); +}); +(0, ava_1.default)("getWorkflowErrors() when HEAD^2 is checked out", (t) => { + process.env.GITHUB_JOB = "test"; + const errors = (0, workflow_1.getWorkflowErrors)({ + on: ["push", "pull_request"], + jobs: { test: { steps: [{ run: "git checkout HEAD^2" }] } }, + }); + t.deepEqual(...errorCodes(errors, [workflow_1.WorkflowErrors.CheckoutWrongHead])); +}); +(0, ava_1.default)("formatWorkflowErrors() when there is one error", (t) => { + const message = (0, workflow_1.formatWorkflowErrors)([workflow_1.WorkflowErrors.CheckoutWrongHead]); + t.true(message.startsWith("1 issue was detected with this workflow:")); +}); +(0, ava_1.default)("formatWorkflowErrors() when there are multiple errors", (t) => { + const message = (0, workflow_1.formatWorkflowErrors)([ + workflow_1.WorkflowErrors.CheckoutWrongHead, + workflow_1.WorkflowErrors.PathsSpecified, + ]); + t.true(message.startsWith("2 issues were detected with this workflow:")); +}); +(0, ava_1.default)("formatWorkflowCause() with no errors", (t) => { + const message = (0, workflow_1.formatWorkflowCause)([]); + t.deepEqual(message, undefined); +}); +(0, ava_1.default)("formatWorkflowCause()", (t) => { + const message = (0, workflow_1.formatWorkflowCause)([ + workflow_1.WorkflowErrors.CheckoutWrongHead, + workflow_1.WorkflowErrors.PathsSpecified, + ]); + t.deepEqual(message, "CheckoutWrongHead,PathsSpecified"); + t.deepEqual((0, workflow_1.formatWorkflowCause)([]), undefined); +}); +(0, ava_1.default)("patternIsSuperset()", (t) => { + t.false((0, workflow_1.patternIsSuperset)("main-*", "main")); + t.true((0, workflow_1.patternIsSuperset)("*", "*")); + t.true((0, workflow_1.patternIsSuperset)("*", "main-*")); + t.false((0, workflow_1.patternIsSuperset)("main-*", "*")); + t.false((0, workflow_1.patternIsSuperset)("main-*", "main")); + t.true((0, workflow_1.patternIsSuperset)("main", "main")); + t.false((0, workflow_1.patternIsSuperset)("*", "feature/*")); + t.true((0, workflow_1.patternIsSuperset)("**", "feature/*")); + t.false((0, workflow_1.patternIsSuperset)("feature-*", "**")); + t.false((0, workflow_1.patternIsSuperset)("a/**/c", "a/**/d")); + t.false((0, workflow_1.patternIsSuperset)("a/**/c", "a/**")); + t.true((0, workflow_1.patternIsSuperset)("a/**", "a/**/c")); + t.true((0, workflow_1.patternIsSuperset)("a/**/c", "a/main-**/c")); + t.false((0, workflow_1.patternIsSuperset)("a/**/b/**/c", "a/**/d/**/c")); + t.true((0, workflow_1.patternIsSuperset)("a/**/b/**/c", "a/**/b/c/**/c")); + t.true((0, workflow_1.patternIsSuperset)("a/**/b/**/c", "a/**/b/d/**/c")); + t.false((0, workflow_1.patternIsSuperset)("a/**/c/d/**/c", "a/**/b/**/c")); + t.false((0, workflow_1.patternIsSuperset)("a/main-**/c", "a/**/c")); + t.true((0, workflow_1.patternIsSuperset)("/robin/*/release/*", "/robin/moose/release/goose")); + t.false((0, workflow_1.patternIsSuperset)("/robin/moose/release/goose", "/robin/*/release/*")); +}); +(0, ava_1.default)("getWorkflowErrors() when branches contain dots", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)(yaml.load(` + on: + push: + branches: [4.1, master] + pull_request: + # The branches below must be a subset of the branches above + branches: [4.1, master] + `)); + t.deepEqual(...errorCodes(errors, [])); +}); +(0, ava_1.default)("getWorkflowErrors() when on.push has a trailing comma", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)(yaml.load(` + name: "CodeQL" + on: + push: + branches: [master, ] + pull_request: + # The branches below must be a subset of the branches above + branches: [master] + `)); + t.deepEqual(...errorCodes(errors, [])); +}); +(0, ava_1.default)("getWorkflowErrors() should only report the current job's CheckoutWrongHead", (t) => { + process.env.GITHUB_JOB = "test"; + const errors = (0, workflow_1.getWorkflowErrors)(yaml.load(` + name: "CodeQL" + on: + push: + branches: [master] + pull_request: + # The branches below must be a subset of the branches above + branches: [master] + jobs: + test: + steps: + - run: "git checkout HEAD^2" + + test2: + steps: + - run: "git checkout HEAD^2" + + test3: + steps: [] + `)); + t.deepEqual(...errorCodes(errors, [workflow_1.WorkflowErrors.CheckoutWrongHead])); +}); +(0, ava_1.default)("getWorkflowErrors() should not report a different job's CheckoutWrongHead", (t) => { + process.env.GITHUB_JOB = "test3"; + const errors = (0, workflow_1.getWorkflowErrors)(yaml.load(` + name: "CodeQL" + on: + push: + branches: [master] + pull_request: + # The branches below must be a subset of the branches above + branches: [master] + jobs: + test: + steps: + - run: "git checkout HEAD^2" + + test2: + steps: + - run: "git checkout HEAD^2" + + test3: + steps: [] + `)); + t.deepEqual(...errorCodes(errors, [])); +}); +(0, ava_1.default)("getWorkflowErrors() when on is missing", (t) => { + const errors = (0, workflow_1.getWorkflowErrors)(yaml.load(` + name: "CodeQL" + `)); + t.deepEqual(...errorCodes(errors, [])); +}); +(0, ava_1.default)("getWorkflowErrors() with a different on setup", (t) => { + t.deepEqual(...errorCodes((0, workflow_1.getWorkflowErrors)(yaml.load(` + name: "CodeQL" + on: "workflow_dispatch" + `)), [])); + t.deepEqual(...errorCodes((0, workflow_1.getWorkflowErrors)(yaml.load(` + name: "CodeQL" + on: [workflow_dispatch] + `)), [])); + t.deepEqual(...errorCodes((0, workflow_1.getWorkflowErrors)(yaml.load(` + name: "CodeQL" + on: + workflow_dispatch: {} + `)), [])); +}); +(0, ava_1.default)("getWorkflowErrors() should not report an error if PRs are totally unconfigured", (t) => { + t.deepEqual(...errorCodes((0, workflow_1.getWorkflowErrors)(yaml.load(` + name: "CodeQL" + on: + push: + branches: [master] + `)), [])); + t.deepEqual(...errorCodes((0, workflow_1.getWorkflowErrors)(yaml.load(` + name: "CodeQL" + on: ["push"] + `)), [])); +}); +(0, ava_1.default)("getCategoryInputOrThrow returns category for simple workflow with category", (t) => { + process.env["GITHUB_REPOSITORY"] = "github/codeql-action-fake-repository"; + t.is((0, workflow_1.getCategoryInputOrThrow)(yaml.load(` + jobs: + analysis: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: github/codeql-action/init@v2 + - uses: github/codeql-action/analyze@v2 + with: + category: some-category + `), "analysis", {}), "some-category"); +}); +(0, ava_1.default)("getCategoryInputOrThrow returns undefined for simple workflow without category", (t) => { + process.env["GITHUB_REPOSITORY"] = "github/codeql-action-fake-repository"; + t.is((0, workflow_1.getCategoryInputOrThrow)(yaml.load(` + jobs: + analysis: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: github/codeql-action/init@v2 + - uses: github/codeql-action/analyze@v2 + `), "analysis", {}), undefined); +}); +(0, ava_1.default)("getCategoryInputOrThrow returns category for workflow with multiple jobs", (t) => { + process.env["GITHUB_REPOSITORY"] = "github/codeql-action-fake-repository"; + t.is((0, workflow_1.getCategoryInputOrThrow)(yaml.load(` + jobs: + foo: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: github/codeql-action/init@v2 + - runs: ./build foo + - uses: github/codeql-action/analyze@v2 + with: + category: foo-category + bar: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: github/codeql-action/init@v2 + - runs: ./build bar + - uses: github/codeql-action/analyze@v2 + with: + category: bar-category + `), "bar", {}), "bar-category"); +}); +(0, ava_1.default)("getCategoryInputOrThrow finds category for workflow with language matrix", (t) => { + process.env["GITHUB_REPOSITORY"] = "github/codeql-action-fake-repository"; + t.is((0, workflow_1.getCategoryInputOrThrow)(yaml.load(` + jobs: + analysis: + runs-on: ubuntu-latest + strategy: + matrix: + language: [javascript, python] + steps: + - uses: actions/checkout@v2 + - uses: github/codeql-action/init@v2 + with: + language: \${{ matrix.language }} + - uses: github/codeql-action/analyze@v2 + with: + category: "/language:\${{ matrix.language }}" + `), "analysis", { language: "javascript" }), "/language:javascript"); +}); +(0, ava_1.default)("getCategoryInputOrThrow throws error for workflow with dynamic category", (t) => { + process.env["GITHUB_REPOSITORY"] = "github/codeql-action-fake-repository"; + t.throws(() => (0, workflow_1.getCategoryInputOrThrow)(yaml.load(` + jobs: + analysis: + steps: + - uses: actions/checkout@v2 + - uses: github/codeql-action/init@v2 + - uses: github/codeql-action/analyze@v2 + with: + category: "\${{ github.workflow }}" + `), "analysis", {}), { + message: "Could not get category input to github/codeql-action/analyze since it contained " + + "an unrecognized dynamic value.", + }); +}); +(0, ava_1.default)("getCategoryInputOrThrow throws error for workflow with multiple calls to analyze", (t) => { + process.env["GITHUB_REPOSITORY"] = "github/codeql-action-fake-repository"; + t.throws(() => (0, workflow_1.getCategoryInputOrThrow)(yaml.load(` + jobs: + analysis: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: github/codeql-action/init@v2 + - uses: github/codeql-action/analyze@v2 + with: + category: some-category + - uses: github/codeql-action/analyze@v2 + with: + category: another-category + `), "analysis", {}), { + message: "Could not get category input to github/codeql-action/analyze since the analysis job " + + "calls github/codeql-action/analyze multiple times.", + }); +}); +//# sourceMappingURL=workflow.test.js.map \ No newline at end of file diff --git a/lib/workflow.test.js.map b/lib/workflow.test.js.map new file mode 100644 index 0000000000..1bd19db573 --- /dev/null +++ b/lib/workflow.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"workflow.test.js","sourceRoot":"","sources":["../src/workflow.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAuB;AACvB,8CAAgC;AAEhC,mDAA6C;AAC7C,yCASoB;AAEpB,SAAS,UAAU,CACjB,MAAoB,EACpB,QAAsB;IAEtB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,IAAA,0BAAU,EAAC,aAAI,CAAC,CAAC;AAEjB,IAAA,aAAI,EAAC,sCAAsC,EAAE,CAAC,CAAC,EAAE,EAAE;IACjD,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAE7C,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,mEAAmE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC9E,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEnD,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,2DAA2D,EAAE,CAAC,CAAC,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAE3D,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,yBAAc,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,2CAA2C,EAAE,CAAC,CAAC,EAAE,EAAE;IACtD,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC;QAC/B,EAAE,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;KAC7B,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,sDAAsD,EAAE,CAAC,CAAC,EAAE,EAAE;IACjE,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC;QAC/B,EAAE,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC;KACzC,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,yDAAyD,EAAE,CAAC,CAAC,EAAE,EAAE;IACpE,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC;QAC/B,EAAE,EAAE;YACF,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE;YAC/C,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;SACrC;KACF,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,yBAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,sDAAsD,EAAE,CAAC,CAAC,EAAE,EAAE;IACjE,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC;QAC/B,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;KAC3E,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,uDAAuD,EAAE,CAAC,CAAC,EAAE,EAAE;IAClE,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC;QAC/B,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE;KACtE,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,yBAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,mEAAmE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC9E,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC;QAC/B,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE;KACjE,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gEAAgE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3E,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAC9B,IAAI,CAAC,IAAI,CAAC;;;;GAIX,CAAa,CACb,CAAC;IAEF,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gDAAgD,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3D,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC;QAC/B,EAAE,EAAE;YACF,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;YAC5B,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE;SACxC;KACF,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,yBAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,oDAAoD,EAAE,CAAC,CAAC,EAAE,EAAE;IAC/D,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC;QAC/B,EAAE,EAAE;YACF,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;YACvC,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;SACrC;KACF,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,iEAAiE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC5E,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC;QAC/B,EAAE,EAAE;YACF,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;YAC5B,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;SAChD;KACF,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,yBAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,wDAAwD,EAAE,CAAC,CAAC,EAAE,EAAE;IACnE,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,IAAA,4BAAiB,EAAC;QAChB,EAAE,EAAE;YACF,IAAI,EAAE,CAAC;YACP,YAAY,EAAE,CAAC;SAChB;KACK,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,IAAA,4BAAiB,EAAC;QAChB,EAAE,EAAE,CAAC;KACC,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,IAAA,4BAAiB,EAAC;QAChB,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,CAAC;KACD,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,IAAA,4BAAiB,EAAC;QAChB,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,CAAC,CAAC,CAAC;KACH,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,IAAA,4BAAiB,EAAC;QAChB,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;KACR,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,IAAA,4BAAiB,EAAC;QAChB,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;KACX,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,IAAA,4BAAiB,EAAC;QAChB,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;KACb,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,IAAA,4BAAiB,EAAC;QAChB,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;KACtB,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,IAAA,4BAAiB,EAAC;QAChB,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,EAAE,EAAE;KACxD,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,IAAA,4BAAiB,EAAC;QAChB,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE;KACrB,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,IAAA,4BAAiB,EAAC,CAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAE5D,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,IAAA,4BAAiB,EAAC;QAChB,EAAE,EAAE;YACF,IAAI,EAAE;gBACJ,QAAQ,EAAE,CAAC;aACZ;YACD,YAAY,EAAE;gBACZ,QAAQ,EAAE,CAAC;aACZ;SACF;KACK,CAAC,EACT,EAAE,CACH,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,uFAAuF,EAAE,CAAC,CAAC,EAAE,EAAE;IAClG,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAC9B,IAAI,CAAC,IAAI,CAAC;;;;;;GAMX,CAAa,CACb,CAAC;IAEF,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,yBAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gEAAgE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3E,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC;QAC/B,EAAE,EAAE;YACF,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE;YACjC,YAAY,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE;SAC5C;KACF,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,2EAA2E,EAAE,CAAC,CAAC,EAAE,EAAE;IACtF,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC;QAC/B,EAAE,EAAE;YACF,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE;YACrC,YAAY,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE;SACxC;KACF,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,yBAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gDAAgD,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3D,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;IAEhC,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC;QAC/B,EAAE,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;QAC5B,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE,CAAC,EAAE,EAAE;KAC5D,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,yBAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gDAAgD,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3D,MAAM,OAAO,GAAG,IAAA,+BAAoB,EAAC,CAAC,yBAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,0CAA0C,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,uDAAuD,EAAE,CAAC,CAAC,EAAE,EAAE;IAClE,MAAM,OAAO,GAAG,IAAA,+BAAoB,EAAC;QACnC,yBAAc,CAAC,iBAAiB;QAChC,yBAAc,CAAC,cAAc;KAC9B,CAAC,CAAC;IACH,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,4CAA4C,CAAC,CAAC,CAAC;AAC3E,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,sCAAsC,EAAE,CAAC,CAAC,EAAE,EAAE;IACjD,MAAM,OAAO,GAAG,IAAA,8BAAmB,EAAC,EAAE,CAAC,CAAC;IAExC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE;IAClC,MAAM,OAAO,GAAG,IAAA,8BAAmB,EAAC;QAClC,yBAAc,CAAC,iBAAiB;QAChC,yBAAc,CAAC,cAAc;KAC9B,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAC;IACzD,CAAC,CAAC,SAAS,CAAC,IAAA,8BAAmB,EAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE;IAChC,CAAC,CAAC,KAAK,CAAC,IAAA,4BAAiB,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,IAAI,CAAC,IAAA,4BAAiB,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,IAAI,CAAC,IAAA,4BAAiB,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,KAAK,CAAC,IAAA,4BAAiB,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,KAAK,CAAC,IAAA,4BAAiB,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,IAAI,CAAC,IAAA,4BAAiB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,KAAK,CAAC,IAAA,4BAAiB,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,IAAI,CAAC,IAAA,4BAAiB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,KAAK,CAAC,IAAA,4BAAiB,EAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,KAAK,CAAC,IAAA,4BAAiB,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,KAAK,CAAC,IAAA,4BAAiB,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,IAAI,CAAC,IAAA,4BAAiB,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,IAAI,CAAC,IAAA,4BAAiB,EAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,KAAK,CAAC,IAAA,4BAAiB,EAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,IAAI,CAAC,IAAA,4BAAiB,EAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,IAAI,CAAC,IAAA,4BAAiB,EAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,KAAK,CAAC,IAAA,4BAAiB,EAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,KAAK,CAAC,IAAA,4BAAiB,EAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,IAAI,CAAC,IAAA,4BAAiB,EAAC,oBAAoB,EAAE,4BAA4B,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,KAAK,CACL,IAAA,4BAAiB,EAAC,4BAA4B,EAAE,oBAAoB,CAAC,CACtE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gDAAgD,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3D,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAC9B,IAAI,CAAC,IAAI,CAAC;;;;;;;GAOX,CAAa,CACb,CAAC;IAEF,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,uDAAuD,EAAE,CAAC,CAAC,EAAE,EAAE;IAClE,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAC9B,IAAI,CAAC,IAAI,CAAC;;;;;;;;GAQX,CAAa,CACb,CAAC;IAEF,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,4EAA4E,EAAE,CAAC,CAAC,EAAE,EAAE;IACvF,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;IAEhC,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAC9B,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;GAmBX,CAAa,CACb,CAAC;IAEF,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,yBAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,2EAA2E,EAAE,CAAC,CAAC,EAAE,EAAE;IACtF,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC;IAEjC,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAC9B,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;GAmBX,CAAa,CACb,CAAC;IAEF,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,wCAAwC,EAAE,CAAC,CAAC,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAC9B,IAAI,CAAC,IAAI,CAAC;;GAEX,CAAa,CACb,CAAC;IAEF,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,+CAA+C,EAAE,CAAC,CAAC,EAAE,EAAE;IAC1D,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,IAAA,4BAAiB,EACf,IAAI,CAAC,IAAI,CAAC;;;GAGf,CAAa,CACT,EACD,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,IAAA,4BAAiB,EACf,IAAI,CAAC,IAAI,CAAC;;;GAGf,CAAa,CACT,EACD,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,IAAA,4BAAiB,EACf,IAAI,CAAC,IAAI,CAAC;;;;GAIf,CAAa,CACT,EACD,EAAE,CACH,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gFAAgF,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3F,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,IAAA,4BAAiB,EACf,IAAI,CAAC,IAAI,CAAC;;;;;GAKf,CAAa,CACT,EACD,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,IAAA,4BAAiB,EACf,IAAI,CAAC,IAAI,CAAC;;;GAGf,CAAa,CACT,EACD,EAAE,CACH,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,4EAA4E,EAAE,CAAC,CAAC,EAAE,EAAE;IACvF,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,sCAAsC,CAAC;IAC1E,CAAC,CAAC,EAAE,CACF,IAAA,kCAAuB,EACrB,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;OAUT,CAAa,EACd,UAAU,EACV,EAAE,CACH,EACD,eAAe,CAChB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gFAAgF,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3F,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,sCAAsC,CAAC;IAC1E,CAAC,CAAC,EAAE,CACF,IAAA,kCAAuB,EACrB,IAAI,CAAC,IAAI,CAAC;;;;;;;;OAQT,CAAa,EACd,UAAU,EACV,EAAE,CACH,EACD,SAAS,CACV,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,0EAA0E,EAAE,CAAC,CAAC,EAAE,EAAE;IACrF,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,sCAAsC,CAAC;IAC1E,CAAC,CAAC,EAAE,CACF,IAAA,kCAAuB,EACrB,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;OAoBT,CAAa,EACd,KAAK,EACL,EAAE,CACH,EACD,cAAc,CACf,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,0EAA0E,EAAE,CAAC,CAAC,EAAE,EAAE;IACrF,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,sCAAsC,CAAC;IAC1E,CAAC,CAAC,EAAE,CACF,IAAA,kCAAuB,EACrB,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;OAeT,CAAa,EACd,UAAU,EACV,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC3B,EACD,sBAAsB,CACvB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,yEAAyE,EAAE,CAAC,CAAC,EAAE,EAAE;IACpF,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,sCAAsC,CAAC;IAC1E,CAAC,CAAC,MAAM,CACN,GAAG,EAAE,CACH,IAAA,kCAAuB,EACrB,IAAI,CAAC,IAAI,CAAC;;;;;;;;;SAST,CAAa,EACd,UAAU,EACV,EAAE,CACH,EACH;QACE,OAAO,EACL,kFAAkF;YAClF,gCAAgC;KACnC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,kFAAkF,EAAE,CAAC,CAAC,EAAE,EAAE;IAC7F,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,sCAAsC,CAAC;IAC1E,CAAC,CAAC,MAAM,CACN,GAAG,EAAE,CACH,IAAA,kCAAuB,EACrB,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;SAaT,CAAa,EACd,UAAU,EACV,EAAE,CACH,EACH;QACE,OAAO,EACL,sFAAsF;YACtF,oDAAoD;KACvD,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index e1bba2f2b3..00bd02e4ba 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -1,6 +1,6 @@ { "name": "codeql", - "version": "1.1.35", + "version": "1.1.36", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/package-lock.json b/package-lock.json index fe53e049ca..a1c633e6e4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "codeql", - "version": "1.1.35", + "version": "1.1.36", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "codeql", - "version": "1.1.35", + "version": "1.1.36", "license": "MIT", "dependencies": { "@actions/artifact": "^1.1.0", diff --git a/package.json b/package.json index 435b6cceed..9ef2c8b91a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "codeql", - "version": "1.1.35", + "version": "1.1.36", "private": true, "description": "CodeQL action", "scripts": { diff --git a/pr-checks/checks/export-file-baseline-information.yml b/pr-checks/checks/export-file-baseline-information.yml index 43b859c3bb..c66e8dd142 100644 --- a/pr-checks/checks/export-file-baseline-information.yml +++ b/pr-checks/checks/export-file-baseline-information.yml @@ -2,11 +2,11 @@ name: "Export file baseline information" description: "Tests that file baseline information is exported when the feature is enabled" versions: ["nightly-latest"] steps: - - uses: swift-actions/setup-swift@5cdaa9161ad1f55ae39a5ea1784ef96de72f95d9 + - uses: swift-actions/setup-swift@194625b58a582570f61cc707c3b558086c26b723 # Windows doesn't support Swift, and only macOS latest and nightly-latest support Swift 5.7.1. if: runner.os == 'Linux' || (runner.os == 'macOS' && matrix.version == 'cached') with: - swift-version: "5.7" + swift-version: "5.7.0" - uses: ./../action/init with: languages: javascript diff --git a/pr-checks/checks/multi-language-autodetect.yml b/pr-checks/checks/multi-language-autodetect.yml index 591df52239..3832278aab 100644 --- a/pr-checks/checks/multi-language-autodetect.yml +++ b/pr-checks/checks/multi-language-autodetect.yml @@ -1,14 +1,16 @@ name: "Multi-language repository" description: "An end-to-end integration test of a multi-language repository using automatic language detection" +# Temporarily exclude nightly-latest to unblock release +versions: ["stable-20211005", "stable-20220120", "stable-20220401", "cached", "latest"] operatingSystems: ["ubuntu", "macos"] env: CODEQL_ENABLE_EXPERIMENTAL_FEATURES_SWIFT: "true" # Remove when Swift is GA. steps: - - uses: swift-actions/setup-swift@5cdaa9161ad1f55ae39a5ea1784ef96de72f95d9 + - uses: swift-actions/setup-swift@194625b58a582570f61cc707c3b558086c26b723 # Only macOS latest and nightly-latest support Swift 5.7.1 if: runner.os == 'Linux' || matrix.version == 'cached' with: - swift-version: "5.7" + swift-version: "5.7.0" - uses: ./../action/init with: diff --git a/pr-checks/checks/submit-sarif-failure.yml b/pr-checks/checks/submit-sarif-failure.yml new file mode 100644 index 0000000000..9a5e299868 --- /dev/null +++ b/pr-checks/checks/submit-sarif-failure.yml @@ -0,0 +1,34 @@ +name: Submit SARIF after failure +description: Check that a SARIF file is submitted for the workflow run if it fails +versions: ["latest", "cached", "nightly-latest"] +operatingSystems: ["ubuntu"] + +env: + # Internal-only environment variable used to indicate that the post-init Action + # should expect to upload a SARIF file for the failed run. + CODEQL_ACTION_EXPECT_UPLOAD_FAILED_SARIF: true + # Make sure the uploading SARIF files feature is enabled. + CODEQL_ACTION_UPLOAD_FAILED_SARIF: true + # Upload the failed SARIF file as an integration test of the API endpoint. + CODEQL_ACTION_TEST_MODE: false + # Mark telemetry for this workflow so it can be treated separately. + CODEQL_ACTION_TESTING_ENVIRONMENT: codeql-action-pr-checks + +steps: + - uses: actions/checkout@v3 + - uses: ./init + with: + languages: javascript + - name: Fail + # We want this job to pass if the Action correctly uploads the SARIF file for + # the failed run. + # Setting this step to continue on error means that it is marked as completing + # successfully, so will not fail the job. + continue-on-error: true + run: exit 1 + - uses: ./analyze + # In a real workflow, this step wouldn't run. Since we used `continue-on-error` + # above, we manually disable it with an `if` condition. + if: false + with: + category: "/test-codeql-version:${{ matrix.version }}" diff --git a/pr-checks/checks/swift-autobuild.yml b/pr-checks/checks/swift-autobuild.yml index a9efe76860..b79edd5b34 100644 --- a/pr-checks/checks/swift-autobuild.yml +++ b/pr-checks/checks/swift-autobuild.yml @@ -6,11 +6,11 @@ operatingSystems: ["macos"] env: CODEQL_ENABLE_EXPERIMENTAL_FEATURES_SWIFT: "true" steps: - - uses: swift-actions/setup-swift@5cdaa9161ad1f55ae39a5ea1784ef96de72f95d9 + - uses: swift-actions/setup-swift@194625b58a582570f61cc707c3b558086c26b723 # Only macOS latest and nightly-latest support Swift 5.7.1 if: runner.os == 'Linux' || matrix.version == 'cached' with: - swift-version: "5.7" + swift-version: "5.7.0" - uses: ./../action/init with: languages: swift diff --git a/pr-checks/checks/swift-custom-build.yml b/pr-checks/checks/swift-custom-build.yml index 9780bde51a..733d9ad26a 100644 --- a/pr-checks/checks/swift-custom-build.yml +++ b/pr-checks/checks/swift-custom-build.yml @@ -1,16 +1,17 @@ name: "Swift analysis using a custom build command" description: "Tests creation of a Swift database using custom build" -versions: ["latest", "cached", "nightly-latest"] +# Temporarily exclude nightly-latest to unblock release +versions: ["latest", "cached"] operatingSystems: ["ubuntu", "macos"] env: CODEQL_ENABLE_EXPERIMENTAL_FEATURES_SWIFT: "true" DOTNET_GENERATE_ASPNET_CERTIFICATE: "false" steps: - - uses: swift-actions/setup-swift@5cdaa9161ad1f55ae39a5ea1784ef96de72f95d9 + - uses: swift-actions/setup-swift@194625b58a582570f61cc707c3b558086c26b723 # Only macOS latest and nightly-latest support Swift 5.7.1 if: runner.os == 'Linux' || matrix.version == 'cached' with: - swift-version: "5.7" + swift-version: "5.7.0" - uses: ./../action/init with: languages: swift diff --git a/pr-checks/sync.py b/pr-checks/sync.py index bd23bdf414..b38c7c535f 100644 --- a/pr-checks/sync.py +++ b/pr-checks/sync.py @@ -115,7 +115,8 @@ def writeHeader(checkStream): checkJob[key] = checkSpecification[key] checkJob['env'] = checkJob.get('env', {}) - checkJob['env']['CODEQL_ACTION_TEST_MODE'] = True + if 'CODEQL_ACTION_TEST_MODE' not in checkJob['env']: + checkJob['env']['CODEQL_ACTION_TEST_MODE'] = True checkName = file[:len(file) - 4] with open(f"../.github/workflows/__{checkName}.yml", 'w') as output_stream: diff --git a/python-setup/auto_install_packages.py b/python-setup/auto_install_packages.py index 0e3a5fa1fd..7385914a30 100755 --- a/python-setup/auto_install_packages.py +++ b/python-setup/auto_install_packages.py @@ -33,10 +33,17 @@ def _check_output(command, extra_env={}): def install_packages_with_poetry(): - # To handle poetry 1.2, which started to use keyring interaction MUCH more, we need - # add a workaround. See - # https://github.com/python-poetry/poetry/issues/2692#issuecomment-1235683370 - extra_poetry_env = {"PYTHON_KEYRING_BACKEND": "keyring.backends.null.Keyring"} + extra_poetry_env = { + # To handle poetry 1.2, which started to use keyring interaction MUCH more, we need + # add a workaround. See + # https://github.com/python-poetry/poetry/issues/2692#issuecomment-1235683370 + "PYTHON_KEYRING_BACKEND": "keyring.backends.null.Keyring", + # Projects that specify `virtualenvs.in-project = true` in their poetry.toml + # would get the venv created inside the repo directory, which would cause CodeQL + # to consider it as user-written code. We don't want this to happen. see + # https://python-poetry.org/docs/configuration/#virtualenvsin-project + "POETRY_VIRTUALENVS_IN_PROJECT": "False", + } command = [sys.executable, '-m', 'poetry'] if sys.platform.startswith('win32'): diff --git a/python-setup/tests/pipenv/python-3.8/Pipfile.lock b/python-setup/tests/pipenv/python-3.8/Pipfile.lock index 5052f2528e..9ba41a10e6 100644 --- a/python-setup/tests/pipenv/python-3.8/Pipfile.lock +++ b/python-setup/tests/pipenv/python-3.8/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "cbd95e61b2b1e90be5379b643dfef7e88a1a4359e9a76803c2ca09b0caa83525" + "sha256": "acbc8c4e7f2f98f1059b2a93d581ef43f4aa0c9741e64e6253adff8e35fbd99e" }, "pipfile-spec": 6, "requires": { @@ -18,26 +18,27 @@ "default": { "certifi": { "hashes": [ - "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872", - "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569" + "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3", + "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18" ], - "version": "==2021.10.8" + "index": "pypi", + "version": "==2022.12.7" }, "charset-normalizer": { "hashes": [ - "sha256:e019de665e2bcf9c2b64e2e5aa025fa991da8720daa3c1138cadd2fd1856aed0", - "sha256:f7af805c321bfa1ce6714c51f254e0d5bb5e5834039bc17db7ebe3a4cec9492b" + "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597", + "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df" ], "markers": "python_version >= '3'", - "version": "==2.0.7" + "version": "==2.0.12" }, "idna": { "hashes": [ - "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff", - "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d" + "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", + "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" ], "markers": "python_version >= '3'", - "version": "==3.3" + "version": "==3.4" }, "requests": { "hashes": [ @@ -49,11 +50,11 @@ }, "urllib3": { "hashes": [ - "sha256:4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece", - "sha256:c4fdf4019605b6e5423637e01bc9fe4daef873709a7973e195ceba0a62bbc844" + "sha256:47cc05d99aaa09c9e72ed5809b60e7ba354e64b59c9c173ac3018642d8bb41fc", + "sha256:c083dd0dce68dbfbe1129d5271cb90f9447dea7d52097c6e0126120c521ddea8" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", - "version": "==1.26.7" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", + "version": "==1.26.13" } }, "develop": {} diff --git a/python-setup/tests/pipenv/requests-3/Pipfile.lock b/python-setup/tests/pipenv/requests-3/Pipfile.lock index f49032696c..7c5d6c0cb9 100644 --- a/python-setup/tests/pipenv/requests-3/Pipfile.lock +++ b/python-setup/tests/pipenv/requests-3/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "9e4895d52c597b97d49cf69d314224f6738668271d51f71534063f42b565e85c" + "sha256": "70e8bf6bc774f5ca177467cab4e67d4264d0536857993326abc13ff43063bec0" }, "pipfile-spec": 6, "requires": {}, @@ -16,26 +16,27 @@ "default": { "certifi": { "hashes": [ - "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872", - "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569" + "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3", + "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18" ], - "version": "==2021.10.8" + "index": "pypi", + "version": "==2022.12.7" }, "charset-normalizer": { "hashes": [ - "sha256:e019de665e2bcf9c2b64e2e5aa025fa991da8720daa3c1138cadd2fd1856aed0", - "sha256:f7af805c321bfa1ce6714c51f254e0d5bb5e5834039bc17db7ebe3a4cec9492b" + "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597", + "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df" ], "markers": "python_version >= '3'", - "version": "==2.0.7" + "version": "==2.0.12" }, "idna": { "hashes": [ - "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff", - "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d" + "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", + "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" ], "markers": "python_version >= '3'", - "version": "==3.3" + "version": "==3.4" }, "requests": { "hashes": [ @@ -47,11 +48,11 @@ }, "urllib3": { "hashes": [ - "sha256:4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece", - "sha256:c4fdf4019605b6e5423637e01bc9fe4daef873709a7973e195ceba0a62bbc844" + "sha256:47cc05d99aaa09c9e72ed5809b60e7ba354e64b59c9c173ac3018642d8bb41fc", + "sha256:c083dd0dce68dbfbe1129d5271cb90f9447dea7d52097c6e0126120c521ddea8" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", - "version": "==1.26.7" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", + "version": "==1.26.13" } }, "develop": {} diff --git a/python-setup/tests/poetry/requests-3/poetry.lock b/python-setup/tests/poetry/requests-3/poetry.lock index 601bbcfe98..c9e0495e5b 100644 --- a/python-setup/tests/poetry/requests-3/poetry.lock +++ b/python-setup/tests/poetry/requests-3/poetry.lock @@ -1,10 +1,10 @@ [[package]] name = "certifi" -version = "2021.10.8" +version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false -python-versions = "*" +python-versions = ">=3.6" [[package]] name = "charset-normalizer" @@ -15,7 +15,7 @@ optional = false python-versions = ">=3.5.0" [package.extras] -unicode_backport = ["unicodedata2"] +unicode-backport = ["unicodedata2"] [[package]] name = "idna" @@ -41,7 +41,7 @@ urllib3 = ">=1.21.1,<1.27" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] -use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<5)"] [[package]] name = "urllib3" @@ -53,18 +53,18 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" [package.extras] brotli = ["brotlipy (>=0.6.0)"] -secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] +secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [metadata] lock-version = "1.1" python-versions = "^3.6" -content-hash = "0688bcc269cb32eab2edeadcb342631e24cf30fd9ef54f8710010cc06cd523c5" +content-hash = "3186fede9fea5b617c0bcebda3034f2d889a3c4579d60dd45945772895a28b7d" [metadata.files] certifi = [ - {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"}, - {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"}, + {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, + {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, ] charset-normalizer = [ {file = "charset-normalizer-2.0.7.tar.gz", hash = "sha256:e019de665e2bcf9c2b64e2e5aa025fa991da8720daa3c1138cadd2fd1856aed0"}, diff --git a/python-setup/tests/poetry/requests-3/poetry.toml b/python-setup/tests/poetry/requests-3/poetry.toml new file mode 100644 index 0000000000..ab1033bd37 --- /dev/null +++ b/python-setup/tests/poetry/requests-3/poetry.toml @@ -0,0 +1,2 @@ +[virtualenvs] +in-project = true diff --git a/src/actions-util.test.ts b/src/actions-util.test.ts index c5d20ab659..c1d5175b18 100644 --- a/src/actions-util.test.ts +++ b/src/actions-util.test.ts @@ -2,20 +2,12 @@ import * as fs from "fs"; import * as path from "path"; import test from "ava"; -import * as yaml from "js-yaml"; import * as sinon from "sinon"; import * as actionsutil from "./actions-util"; import { setupActionsVars, setupTests } from "./testing-utils"; import { initializeEnvironment, withTmpDir } from "./util"; -function errorCodes( - actual: actionsutil.CodedError[], - expected: actionsutil.CodedError[] -): [string[], string[]] { - return [actual.map(({ code }) => code), expected.map(({ code }) => code)]; -} - setupTests(test); test("getRef() throws on the empty string", async (t) => { @@ -188,536 +180,6 @@ test("computeAutomationID()", async (t) => { ); }); -test("getWorkflowErrors() when on is empty", (t) => { - const errors = actionsutil.getWorkflowErrors({ on: {} }); - - t.deepEqual(...errorCodes(errors, [])); -}); - -test("getWorkflowErrors() when on.push is an array missing pull_request", (t) => { - const errors = actionsutil.getWorkflowErrors({ on: ["push"] }); - - t.deepEqual(...errorCodes(errors, [])); -}); - -test("getWorkflowErrors() when on.push is an array missing push", (t) => { - const errors = actionsutil.getWorkflowErrors({ on: ["pull_request"] }); - - t.deepEqual( - ...errorCodes(errors, [actionsutil.WorkflowErrors.MissingPushHook]) - ); -}); - -test("getWorkflowErrors() when on.push is valid", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: ["push", "pull_request"], - }); - - t.deepEqual(...errorCodes(errors, [])); -}); - -test("getWorkflowErrors() when on.push is a valid superset", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: ["push", "pull_request", "schedule"], - }); - - t.deepEqual(...errorCodes(errors, [])); -}); - -test("getWorkflowErrors() when on.push should not have a path", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: { - push: { branches: ["main"], paths: ["test/*"] }, - pull_request: { branches: ["main"] }, - }, - }); - - t.deepEqual( - ...errorCodes(errors, [actionsutil.WorkflowErrors.PathsSpecified]) - ); -}); - -test("getWorkflowErrors() when on.push is a correct object", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: { push: { branches: ["main"] }, pull_request: { branches: ["main"] } }, - }); - - t.deepEqual(...errorCodes(errors, [])); -}); - -test("getWorkflowErrors() when on.pull_requests is a string", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: { push: { branches: ["main"] }, pull_request: { branches: "*" } }, - }); - - t.deepEqual( - ...errorCodes(errors, [actionsutil.WorkflowErrors.MismatchedBranches]) - ); -}); - -test("getWorkflowErrors() when on.pull_requests is a string and correct", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: { push: { branches: "*" }, pull_request: { branches: "*" } }, - }); - - t.deepEqual(...errorCodes(errors, [])); -}); - -test("getWorkflowErrors() when on.push is correct with empty objects", (t) => { - const errors = actionsutil.getWorkflowErrors( - yaml.load(` -on: - push: - pull_request: -`) as actionsutil.Workflow - ); - - t.deepEqual(...errorCodes(errors, [])); -}); - -test("getWorkflowErrors() when on.push is mismatched", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: { - push: { branches: ["main"] }, - pull_request: { branches: ["feature"] }, - }, - }); - - t.deepEqual( - ...errorCodes(errors, [actionsutil.WorkflowErrors.MismatchedBranches]) - ); -}); - -test("getWorkflowErrors() when on.push is not mismatched", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: { - push: { branches: ["main", "feature"] }, - pull_request: { branches: ["main"] }, - }, - }); - - t.deepEqual(...errorCodes(errors, [])); -}); - -test("getWorkflowErrors() when on.push is mismatched for pull_request", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: { - push: { branches: ["main"] }, - pull_request: { branches: ["main", "feature"] }, - }, - }); - - t.deepEqual( - ...errorCodes(errors, [actionsutil.WorkflowErrors.MismatchedBranches]) - ); -}); - -test("getWorkflowErrors() for a range of malformed workflows", (t) => { - t.deepEqual( - ...errorCodes( - actionsutil.getWorkflowErrors({ - on: { - push: 1, - pull_request: 1, - }, - } as any), - [] - ) - ); - - t.deepEqual( - ...errorCodes( - actionsutil.getWorkflowErrors({ - on: 1, - } as any), - [] - ) - ); - - t.deepEqual( - ...errorCodes( - actionsutil.getWorkflowErrors({ - on: 1, - jobs: 1, - } as any), - [] - ) - ); - - t.deepEqual( - ...errorCodes( - actionsutil.getWorkflowErrors({ - on: 1, - jobs: [1], - } as any), - [] - ) - ); - - t.deepEqual( - ...errorCodes( - actionsutil.getWorkflowErrors({ - on: 1, - jobs: { 1: 1 }, - } as any), - [] - ) - ); - - t.deepEqual( - ...errorCodes( - actionsutil.getWorkflowErrors({ - on: 1, - jobs: { test: 1 }, - } as any), - [] - ) - ); - - t.deepEqual( - ...errorCodes( - actionsutil.getWorkflowErrors({ - on: 1, - jobs: { test: [1] }, - } as any), - [] - ) - ); - - t.deepEqual( - ...errorCodes( - actionsutil.getWorkflowErrors({ - on: 1, - jobs: { test: { steps: 1 } }, - } as any), - [] - ) - ); - - t.deepEqual( - ...errorCodes( - actionsutil.getWorkflowErrors({ - on: 1, - jobs: { test: { steps: [{ notrun: "git checkout HEAD^2" }] } }, - } as any), - [] - ) - ); - - t.deepEqual( - ...errorCodes( - actionsutil.getWorkflowErrors({ - on: 1, - jobs: { test: [undefined] }, - } as any), - [] - ) - ); - - t.deepEqual(...errorCodes(actionsutil.getWorkflowErrors(1 as any), [])); - - t.deepEqual( - ...errorCodes( - actionsutil.getWorkflowErrors({ - on: { - push: { - branches: 1, - }, - pull_request: { - branches: 1, - }, - }, - } as any), - [] - ) - ); -}); - -test("getWorkflowErrors() when on.pull_request for every branch but push specifies branches", (t) => { - const errors = actionsutil.getWorkflowErrors( - yaml.load(` -name: "CodeQL" -on: - push: - branches: ["main"] - pull_request: -`) as actionsutil.Workflow - ); - - t.deepEqual( - ...errorCodes(errors, [actionsutil.WorkflowErrors.MismatchedBranches]) - ); -}); - -test("getWorkflowErrors() when on.pull_request for wildcard branches", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: { - push: { branches: ["feature/*"] }, - pull_request: { branches: "feature/moose" }, - }, - }); - - t.deepEqual(...errorCodes(errors, [])); -}); - -test("getWorkflowErrors() when on.pull_request for mismatched wildcard branches", (t) => { - const errors = actionsutil.getWorkflowErrors({ - on: { - push: { branches: ["feature/moose"] }, - pull_request: { branches: "feature/*" }, - }, - }); - - t.deepEqual( - ...errorCodes(errors, [actionsutil.WorkflowErrors.MismatchedBranches]) - ); -}); - -test("getWorkflowErrors() when HEAD^2 is checked out", (t) => { - process.env.GITHUB_JOB = "test"; - - const errors = actionsutil.getWorkflowErrors({ - on: ["push", "pull_request"], - jobs: { test: { steps: [{ run: "git checkout HEAD^2" }] } }, - }); - - t.deepEqual( - ...errorCodes(errors, [actionsutil.WorkflowErrors.CheckoutWrongHead]) - ); -}); - -test("formatWorkflowErrors() when there is one error", (t) => { - const message = actionsutil.formatWorkflowErrors([ - actionsutil.WorkflowErrors.CheckoutWrongHead, - ]); - t.true(message.startsWith("1 issue was detected with this workflow:")); -}); - -test("formatWorkflowErrors() when there are multiple errors", (t) => { - const message = actionsutil.formatWorkflowErrors([ - actionsutil.WorkflowErrors.CheckoutWrongHead, - actionsutil.WorkflowErrors.PathsSpecified, - ]); - t.true(message.startsWith("2 issues were detected with this workflow:")); -}); - -test("formatWorkflowCause() with no errors", (t) => { - const message = actionsutil.formatWorkflowCause([]); - - t.deepEqual(message, undefined); -}); - -test("formatWorkflowCause()", (t) => { - const message = actionsutil.formatWorkflowCause([ - actionsutil.WorkflowErrors.CheckoutWrongHead, - actionsutil.WorkflowErrors.PathsSpecified, - ]); - - t.deepEqual(message, "CheckoutWrongHead,PathsSpecified"); - t.deepEqual(actionsutil.formatWorkflowCause([]), undefined); -}); - -test("patternIsSuperset()", (t) => { - t.false(actionsutil.patternIsSuperset("main-*", "main")); - t.true(actionsutil.patternIsSuperset("*", "*")); - t.true(actionsutil.patternIsSuperset("*", "main-*")); - t.false(actionsutil.patternIsSuperset("main-*", "*")); - t.false(actionsutil.patternIsSuperset("main-*", "main")); - t.true(actionsutil.patternIsSuperset("main", "main")); - t.false(actionsutil.patternIsSuperset("*", "feature/*")); - t.true(actionsutil.patternIsSuperset("**", "feature/*")); - t.false(actionsutil.patternIsSuperset("feature-*", "**")); - t.false(actionsutil.patternIsSuperset("a/**/c", "a/**/d")); - t.false(actionsutil.patternIsSuperset("a/**/c", "a/**")); - t.true(actionsutil.patternIsSuperset("a/**", "a/**/c")); - t.true(actionsutil.patternIsSuperset("a/**/c", "a/main-**/c")); - t.false(actionsutil.patternIsSuperset("a/**/b/**/c", "a/**/d/**/c")); - t.true(actionsutil.patternIsSuperset("a/**/b/**/c", "a/**/b/c/**/c")); - t.true(actionsutil.patternIsSuperset("a/**/b/**/c", "a/**/b/d/**/c")); - t.false(actionsutil.patternIsSuperset("a/**/c/d/**/c", "a/**/b/**/c")); - t.false(actionsutil.patternIsSuperset("a/main-**/c", "a/**/c")); - t.true( - actionsutil.patternIsSuperset( - "/robin/*/release/*", - "/robin/moose/release/goose" - ) - ); - t.false( - actionsutil.patternIsSuperset( - "/robin/moose/release/goose", - "/robin/*/release/*" - ) - ); -}); - -test("getWorkflowErrors() when branches contain dots", (t) => { - const errors = actionsutil.getWorkflowErrors( - yaml.load(` - on: - push: - branches: [4.1, master] - pull_request: - # The branches below must be a subset of the branches above - branches: [4.1, master] -`) as actionsutil.Workflow - ); - - t.deepEqual(...errorCodes(errors, [])); -}); - -test("getWorkflowErrors() when on.push has a trailing comma", (t) => { - const errors = actionsutil.getWorkflowErrors( - yaml.load(` -name: "CodeQL" -on: - push: - branches: [master, ] - pull_request: - # The branches below must be a subset of the branches above - branches: [master] -`) as actionsutil.Workflow - ); - - t.deepEqual(...errorCodes(errors, [])); -}); - -test("getWorkflowErrors() should only report the current job's CheckoutWrongHead", (t) => { - process.env.GITHUB_JOB = "test"; - - const errors = actionsutil.getWorkflowErrors( - yaml.load(` -name: "CodeQL" -on: - push: - branches: [master] - pull_request: - # The branches below must be a subset of the branches above - branches: [master] -jobs: - test: - steps: - - run: "git checkout HEAD^2" - - test2: - steps: - - run: "git checkout HEAD^2" - - test3: - steps: [] -`) as actionsutil.Workflow - ); - - t.deepEqual( - ...errorCodes(errors, [actionsutil.WorkflowErrors.CheckoutWrongHead]) - ); -}); - -test("getWorkflowErrors() should not report a different job's CheckoutWrongHead", (t) => { - process.env.GITHUB_JOB = "test3"; - - const errors = actionsutil.getWorkflowErrors( - yaml.load(` -name: "CodeQL" -on: - push: - branches: [master] - pull_request: - # The branches below must be a subset of the branches above - branches: [master] -jobs: - test: - steps: - - run: "git checkout HEAD^2" - - test2: - steps: - - run: "git checkout HEAD^2" - - test3: - steps: [] -`) as actionsutil.Workflow - ); - - t.deepEqual(...errorCodes(errors, [])); -}); - -test("getWorkflowErrors() when on is missing", (t) => { - const errors = actionsutil.getWorkflowErrors( - yaml.load(` -name: "CodeQL" -`) as actionsutil.Workflow - ); - - t.deepEqual(...errorCodes(errors, [])); -}); - -test("getWorkflowErrors() with a different on setup", (t) => { - t.deepEqual( - ...errorCodes( - actionsutil.getWorkflowErrors( - yaml.load(` -name: "CodeQL" -on: "workflow_dispatch" -`) as actionsutil.Workflow - ), - [] - ) - ); - - t.deepEqual( - ...errorCodes( - actionsutil.getWorkflowErrors( - yaml.load(` -name: "CodeQL" -on: [workflow_dispatch] -`) as actionsutil.Workflow - ), - [] - ) - ); - - t.deepEqual( - ...errorCodes( - actionsutil.getWorkflowErrors( - yaml.load(` -name: "CodeQL" -on: - workflow_dispatch: {} -`) as actionsutil.Workflow - ), - [] - ) - ); -}); - -test("getWorkflowErrors() should not report an error if PRs are totally unconfigured", (t) => { - t.deepEqual( - ...errorCodes( - actionsutil.getWorkflowErrors( - yaml.load(` -name: "CodeQL" -on: - push: - branches: [master] -`) as actionsutil.Workflow - ), - [] - ) - ); - - t.deepEqual( - ...errorCodes( - actionsutil.getWorkflowErrors( - yaml.load(` -name: "CodeQL" -on: ["push"] -`) as actionsutil.Workflow - ), - [] - ) - ); -}); - test("initializeEnvironment", (t) => { initializeEnvironment("1.2.3"); t.deepEqual(process.env.CODEQL_ACTION_VERSION, "1.2.3"); diff --git a/src/actions-util.ts b/src/actions-util.ts index 7a5b22566a..5ac7226dad 100644 --- a/src/actions-util.ts +++ b/src/actions-util.ts @@ -5,7 +5,6 @@ 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 * as yaml from "js-yaml"; import * as api from "./api-client"; import { Config } from "./config-utils"; @@ -18,8 +17,10 @@ import { GITHUB_DOTCOM_URL, isHTTPError, isInTestMode, + parseMatrixInput, UserError, } from "./util"; +import { getWorkflowPath } from "./workflow"; // eslint-disable-next-line import/no-commonjs const pkg = require("../package.json"); @@ -156,288 +157,6 @@ export const determineMergeBaseCommitOid = async function (): Promise< } }; -interface WorkflowJobStep { - run: any; -} - -interface WorkflowJob { - steps?: WorkflowJobStep[]; -} - -interface WorkflowTrigger { - branches?: string[] | string; - paths?: string[]; -} - -// on: {} then push/pull_request are undefined -// on: -// push: -// pull_request: -// then push/pull_request are null -interface WorkflowTriggers { - push?: WorkflowTrigger | null; - pull_request?: WorkflowTrigger | null; -} - -export interface Workflow { - jobs?: { [key: string]: WorkflowJob }; - on?: string | string[] | WorkflowTriggers; -} - -function isObject(o: unknown): o is object { - return o !== null && typeof o === "object"; -} - -const GLOB_PATTERN = new RegExp("(\\*\\*?)"); - -function escapeRegExp(string) { - return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string -} - -function patternToRegExp(value) { - return new RegExp( - `^${value - .toString() - .split(GLOB_PATTERN) - .reduce(function (arr, cur) { - if (cur === "**") { - arr.push(".*?"); - } else if (cur === "*") { - arr.push("[^/]*?"); - } else if (cur) { - arr.push(escapeRegExp(cur)); - } - return arr; - }, []) - .join("")}$` - ); -} - -// this function should return true if patternA is a superset of patternB -// e.g: * is a superset of main-* but main-* is not a superset of *. -export function patternIsSuperset(patternA: string, patternB: string): boolean { - return patternToRegExp(patternA).test(patternB); -} - -function branchesToArray(branches?: string | null | string[]): string[] | "**" { - if (typeof branches === "string") { - return [branches]; - } - if (Array.isArray(branches)) { - if (branches.length === 0) { - return "**"; - } - return branches; - } - return "**"; -} -export interface CodedError { - message: string; - code: string; -} - -function toCodedErrors(errors: T): Record { - return Object.entries(errors).reduce((acc, [key, value]) => { - acc[key] = { message: value, code: key }; - return acc; - }, {} as Record); -} - -// code to send back via status report -// message to add as a warning annotation to the run -export const WorkflowErrors = toCodedErrors({ - MismatchedBranches: `Please make sure that every branch in on.pull_request is also in on.push so that Code Scanning can compare pull requests against the state of the base branch.`, - MissingPushHook: `Please specify an on.push hook so that Code Scanning can compare pull requests against the state of the base branch.`, - PathsSpecified: `Using on.push.paths can prevent Code Scanning annotating new alerts in your pull requests.`, - PathsIgnoreSpecified: `Using on.push.paths-ignore can prevent Code Scanning annotating new alerts in your pull requests.`, - CheckoutWrongHead: `git checkout HEAD^2 is no longer necessary. Please remove this step as Code Scanning recommends analyzing the merge commit for best results.`, -}); - -export function getWorkflowErrors(doc: Workflow): CodedError[] { - const errors: CodedError[] = []; - - const jobName = process.env.GITHUB_JOB; - - if (jobName) { - const job = doc?.jobs?.[jobName]; - - const steps = job?.steps; - - if (Array.isArray(steps)) { - for (const step of steps) { - // this was advice that we used to give in the README - // we actually want to run the analysis on the merge commit - // to produce results that are more inline with expectations - // (i.e: this is what will happen if you merge this PR) - // and avoid some race conditions - if (step?.run === "git checkout HEAD^2") { - errors.push(WorkflowErrors.CheckoutWrongHead); - break; - } - } - } - } - - let missingPush = false; - - if (doc.on === undefined) { - // this is not a valid config - } else if (typeof doc.on === "string") { - if (doc.on === "pull_request") { - missingPush = true; - } - } else if (Array.isArray(doc.on)) { - const hasPush = doc.on.includes("push"); - const hasPullRequest = doc.on.includes("pull_request"); - if (hasPullRequest && !hasPush) { - missingPush = true; - } - } else if (isObject(doc.on)) { - const hasPush = Object.prototype.hasOwnProperty.call(doc.on, "push"); - const hasPullRequest = Object.prototype.hasOwnProperty.call( - doc.on, - "pull_request" - ); - - if (!hasPush && hasPullRequest) { - missingPush = true; - } - if (hasPush && hasPullRequest) { - const paths = doc.on.push?.paths; - // if you specify paths or paths-ignore you can end up with commits that have no baseline - // if they didn't change any files - // currently we cannot go back through the history and find the most recent baseline - if (Array.isArray(paths) && paths.length > 0) { - errors.push(WorkflowErrors.PathsSpecified); - } - const pathsIgnore = doc.on.push?.["paths-ignore"]; - if (Array.isArray(pathsIgnore) && pathsIgnore.length > 0) { - errors.push(WorkflowErrors.PathsIgnoreSpecified); - } - } - - // if doc.on.pull_request is null that means 'all branches' - // if doc.on.pull_request is undefined that means 'off' - // we only want to check for mismatched branches if pull_request is on. - if (doc.on.pull_request !== undefined) { - const push = branchesToArray(doc.on.push?.branches); - - if (push !== "**") { - const pull_request = branchesToArray(doc.on.pull_request?.branches); - - if (pull_request !== "**") { - const difference = pull_request.filter( - (value) => !push.some((o) => patternIsSuperset(o, value)) - ); - if (difference.length > 0) { - // there are branches in pull_request that may not have a baseline - // because we are not building them on push - errors.push(WorkflowErrors.MismatchedBranches); - } - } else if (push.length > 0) { - // push is set up to run on a subset of branches - // and you could open a PR against a branch with no baseline - errors.push(WorkflowErrors.MismatchedBranches); - } - } - } - } - - if (missingPush) { - errors.push(WorkflowErrors.MissingPushHook); - } - - return errors; -} - -export async function validateWorkflow(): Promise { - let workflow: Workflow; - try { - workflow = await getWorkflow(); - } catch (e) { - return `error: getWorkflow() failed: ${String(e)}`; - } - let workflowErrors: CodedError[]; - try { - workflowErrors = getWorkflowErrors(workflow); - } catch (e) { - return `error: getWorkflowErrors() failed: ${String(e)}`; - } - - if (workflowErrors.length > 0) { - let message: string; - try { - message = formatWorkflowErrors(workflowErrors); - } catch (e) { - return `error: formatWorkflowErrors() failed: ${String(e)}`; - } - core.warning(message); - } - - return formatWorkflowCause(workflowErrors); -} - -export function formatWorkflowErrors(errors: CodedError[]): string { - const issuesWere = errors.length === 1 ? "issue was" : "issues were"; - - const errorsList = errors.map((e) => e.message).join(" "); - - return `${errors.length} ${issuesWere} detected with this workflow: ${errorsList}`; -} - -export function formatWorkflowCause(errors: CodedError[]): undefined | string { - if (errors.length === 0) { - return undefined; - } - return errors.map((e) => e.code).join(","); -} - -export async function getWorkflow(): Promise { - const relativePath = await getWorkflowPath(); - const absolutePath = path.join( - getRequiredEnvParam("GITHUB_WORKSPACE"), - relativePath - ); - - return yaml.load(fs.readFileSync(absolutePath, "utf-8")) as Workflow; -} - -/** - * Get the path of the currently executing workflow. - */ -async function getWorkflowPath(): Promise { - const repo_nwo = getRequiredEnvParam("GITHUB_REPOSITORY").split("/"); - const owner = repo_nwo[0]; - const repo = repo_nwo[1]; - const run_id = Number(getRequiredEnvParam("GITHUB_RUN_ID")); - - const apiClient = api.getApiClient(); - const runsResponse = await apiClient.request( - "GET /repos/:owner/:repo/actions/runs/:run_id?exclude_pull_requests=true", - { - owner, - repo, - run_id, - } - ); - const workflowUrl = runsResponse.data.workflow_url; - - const workflowResponse = await apiClient.request(`GET ${workflowUrl}`); - - return workflowResponse.data.path; -} - -/** - * Get the workflow run ID. - */ -export function getWorkflowRunID(): number { - const workflowRunID = parseInt(getRequiredEnvParam("GITHUB_RUN_ID"), 10); - if (Number.isNaN(workflowRunID)) { - throw new Error("GITHUB_RUN_ID must define a non NaN workflow run ID"); - } - return workflowRunID; -} - /** * Get the analysis key parameter for the current job. * @@ -474,10 +193,10 @@ export function computeAutomationID( ): string { let automationID = `${analysis_key}/`; - // the id has to be deterministic so we sort the fields - if (environment !== undefined && environment !== "null") { - const environmentObject = JSON.parse(environment); - for (const entry of Object.entries(environmentObject).sort()) { + const matrix = parseMatrixInput(environment); + if (matrix !== undefined) { + // the id has to be deterministic so we sort the fields + for (const entry of Object.entries(matrix).sort()) { if (typeof entry[1] === "string") { automationID += `${entry[0]}:${entry[1]}/`; } else { diff --git a/src/analyze-action.ts b/src/analyze-action.ts index 8e9c4b61d0..402cca740b 100644 --- a/src/analyze-action.ts +++ b/src/analyze-action.ts @@ -24,6 +24,7 @@ import { Features } from "./feature-flags"; import { Language } from "./languages"; import { getActionsLogger, Logger } from "./logging"; import { parseRepositoryNwo } from "./repository"; +import { CODEQL_ACTION_ANALYZE_DID_UPLOAD_SARIF } from "./shared-environment"; import { getTotalCacheSize, uploadTrapCaches } from "./trap-caching"; import * as upload_lib from "./upload-lib"; import { UploadResult } from "./upload-lib"; @@ -271,8 +272,14 @@ async function run() { core.setOutput("db-locations", dbLocations); if (runStats && actionsUtil.getRequiredInput("upload") === "true") { - uploadResult = await upload_lib.uploadFromActions(outputDir, logger); + uploadResult = await upload_lib.uploadFromActions( + outputDir, + actionsUtil.getRequiredInput("checkout_path"), + actionsUtil.getOptionalInput("category"), + logger + ); core.setOutput("sarif-id", uploadResult.sarifID); + core.exportVariable(CODEQL_ACTION_ANALYZE_DID_UPLOAD_SARIF, "true"); } else { logger.info("Not uploading results"); } @@ -315,8 +322,6 @@ async function run() { core.setFailed(error.message); } - console.log(error); - if (error instanceof CodeQLAnalysisError) { const stats = { ...error.queriesStatusReport }; await sendStatusReport( @@ -391,7 +396,6 @@ async function runWrapper() { await runPromise; } catch (error) { core.setFailed(`analyze action failed: ${error}`); - console.log(error); } await checkForTimeout(); } diff --git a/src/analyze.ts b/src/analyze.ts index 1f875adad1..3b44e154b9 100644 --- a/src/analyze.ts +++ b/src/analyze.ts @@ -355,8 +355,7 @@ export async function runQueries( addSnippetsFlag, threadsFlag, enableDebugLogging ? "-vv" : "-v", - automationDetailsId, - featureEnablement + automationDetailsId ); } diff --git a/src/codeql.test.ts b/src/codeql.test.ts index 22e3ef76a4..7946dbb712 100644 --- a/src/codeql.test.ts +++ b/src/codeql.test.ts @@ -3,6 +3,7 @@ import * as path from "path"; import * as toolrunner from "@actions/exec/lib/toolrunner"; import * as toolcache from "@actions/tool-cache"; +import * as safeWhich from "@chrisgavin/safe-which"; import test, { ExecutionContext } from "ava"; import del from "del"; import * as yaml from "js-yaml"; @@ -442,16 +443,9 @@ test("databaseInterpretResults() does not set --sarif-add-query-help for 2.7.0", const runnerConstructorStub = stubToolRunnerConstructor(); const codeqlObject = await codeql.getCodeQLForTesting(); sinon.stub(codeqlObject, "getVersion").resolves("2.7.0"); - await codeqlObject.databaseInterpretResults( - "", - [], - "", - "", - "", - "-v", - "", - createFeatures([]) - ); + // safeWhich throws because of the test CodeQL object. + sinon.stub(safeWhich, "safeWhich").resolves(""); + await codeqlObject.databaseInterpretResults("", [], "", "", "", "-v", ""); t.false( runnerConstructorStub.firstCall.args[1].includes("--sarif-add-query-help"), "--sarif-add-query-help should be absent, but it is present" @@ -462,16 +456,9 @@ test("databaseInterpretResults() sets --sarif-add-query-help for 2.7.1", async ( const runnerConstructorStub = stubToolRunnerConstructor(); const codeqlObject = await codeql.getCodeQLForTesting(); sinon.stub(codeqlObject, "getVersion").resolves("2.7.1"); - await codeqlObject.databaseInterpretResults( - "", - [], - "", - "", - "", - "-v", - "", - createFeatures([]) - ); + // safeWhich throws because of the test CodeQL object. + sinon.stub(safeWhich, "safeWhich").resolves(""); + await codeqlObject.databaseInterpretResults("", [], "", "", "", "-v", ""); t.true( runnerConstructorStub.firstCall.args[1].includes("--sarif-add-query-help"), "--sarif-add-query-help should be present, but it is absent" @@ -483,6 +470,8 @@ test("databaseInitCluster() without injected codescanning config", async (t) => const runnerConstructorStub = stubToolRunnerConstructor(); const codeqlObject = await codeql.getCodeQLForTesting(); sinon.stub(codeqlObject, "getVersion").resolves("2.8.1"); + // safeWhich throws because of the test CodeQL object. + sinon.stub(safeWhich, "safeWhich").resolves(""); const thisStubConfig: Config = { ...stubConfig, @@ -858,23 +847,13 @@ test("does not use injected config", async (t: ExecutionContext) => { } }); -test("databaseInterpretResults() sets --sarif-add-baseline-file-info when feature enabled", async (t) => { +test("databaseInterpretResults() sets --sarif-add-baseline-file-info for 2.11.3", async (t) => { const runnerConstructorStub = stubToolRunnerConstructor(); const codeqlObject = await codeql.getCodeQLForTesting(); - // We need to set a CodeQL version such that running `databaseInterpretResults` does not crash. - // The version of CodeQL is checked separately to determine feature enablement, and does not - // otherwise impact this test, so set it to 0.0.0. - sinon.stub(codeqlObject, "getVersion").resolves("0.0.0"); - await codeqlObject.databaseInterpretResults( - "", - [], - "", - "", - "", - "-v", - "", - createFeatures([Feature.FileBaselineInformationEnabled]) - ); + sinon.stub(codeqlObject, "getVersion").resolves("2.11.3"); + // safeWhich throws because of the test CodeQL object. + sinon.stub(safeWhich, "safeWhich").resolves(""); + await codeqlObject.databaseInterpretResults("", [], "", "", "", "-v", ""); t.true( runnerConstructorStub.firstCall.args[1].includes( "--sarif-add-baseline-file-info" @@ -883,23 +862,13 @@ test("databaseInterpretResults() sets --sarif-add-baseline-file-info when featur ); }); -test("databaseInterpretResults() does not set --sarif-add-baseline-file-info if feature disabled", async (t) => { +test("databaseInterpretResults() does not set --sarif-add-baseline-file-info for 2.11.2", async (t) => { const runnerConstructorStub = stubToolRunnerConstructor(); const codeqlObject = await codeql.getCodeQLForTesting(); - // We need to set a CodeQL version such that running `databaseInterpretResults` does not crash. - // The version of CodeQL is checked upstream to determine feature enablement, so it does not - // affect this test. - sinon.stub(codeqlObject, "getVersion").resolves("0.0.0"); - await codeqlObject.databaseInterpretResults( - "", - [], - "", - "", - "", - "-v", - "", - createFeatures([]) - ); + sinon.stub(codeqlObject, "getVersion").resolves("2.11.2"); + // safeWhich throws because of the test CodeQL object. + sinon.stub(safeWhich, "safeWhich").resolves(""); + await codeqlObject.databaseInterpretResults("", [], "", "", "", "-v", ""); t.false( runnerConstructorStub.firstCall.args[1].includes( "--sarif-add-baseline-file-info" diff --git a/src/codeql.ts b/src/codeql.ts index 7a1595c27d..33b87705e4 100644 --- a/src/codeql.ts +++ b/src/codeql.ts @@ -15,7 +15,7 @@ import * as api from "./api-client"; import { Config } from "./config-utils"; import * as defaults from "./defaults.json"; // Referenced from codeql-action-sync-tool! import { errorMatchers } from "./error-matcher"; -import { Feature, FeatureEnablement } from "./feature-flags"; +import { FeatureEnablement } from "./feature-flags"; import { isTracedLanguage, Language } from "./languages"; import { Logger } from "./logging"; import { toolrunnerErrorCatcher } from "./toolrunner-error-catcher"; @@ -172,13 +172,19 @@ export interface CodeQL { addSnippetsFlag: string, threadsFlag: string, verbosityFlag: string | undefined, - automationDetailsId: string | undefined, - featureEnablement: FeatureEnablement + automationDetailsId: string | undefined ): Promise; /** * Run 'codeql database print-baseline'. */ databasePrintBaseline(databasePath: string): Promise; + /** + * Run 'codeql diagnostics export'. + */ + diagnosticsExport( + sarifFile: string, + automationDetailsId: string | undefined + ): Promise; } export interface ResolveLanguagesOutput { @@ -250,6 +256,7 @@ const CODEQL_VERSION_LUA_TRACER_CONFIG = "2.10.0"; export const CODEQL_VERSION_CONFIG_FILES = "2.10.1"; const CODEQL_VERSION_LUA_TRACING_GO_WINDOWS_FIXED = "2.10.4"; export const CODEQL_VERSION_GHES_PACK_DOWNLOAD = "2.10.4"; +const CODEQL_VERSION_FILE_BASELINE_INFORMATION = "2.11.3"; /** * This variable controls using the new style of tracing from the CodeQL @@ -634,6 +641,7 @@ export function setCodeQL(partialCodeql: Partial): CodeQL { partialCodeql, "databasePrintBaseline" ), + diagnosticsExport: resolveFunction(partialCodeql, "diagnosticsExport"), }; return cachedCodeQL; } @@ -675,7 +683,7 @@ async function getCodeQLForCmd( cmd: string, checkVersion: boolean ): Promise { - const codeql = { + const codeql: CodeQL = { getPath() { return cmd; }, @@ -1016,7 +1024,7 @@ async function getCodeQLForCmd( if (querySuitePath) { codeqlArgs.push(querySuitePath); } - await runTool(cmd, codeqlArgs); + await toolrunnerErrorCatcher(cmd, codeqlArgs, errorMatchers); }, async databaseInterpretResults( databasePath: string, @@ -1025,8 +1033,7 @@ async function getCodeQLForCmd( addSnippetsFlag: string, threadsFlag: string, verbosityFlag: string, - automationDetailsId: string | undefined, - featureEnablement: FeatureEnablement + automationDetailsId: string | undefined ): Promise { const codeqlArgs = [ "database", @@ -1047,9 +1054,9 @@ async function getCodeQLForCmd( codeqlArgs.push("--sarif-category", automationDetailsId); } if ( - await featureEnablement.getValue( - Feature.FileBaselineInformationEnabled, - this + await util.codeQlVersionAbove( + this, + CODEQL_VERSION_FILE_BASELINE_INFORMATION ) ) { codeqlArgs.push("--sarif-add-baseline-file-info"); @@ -1059,7 +1066,12 @@ async function getCodeQLForCmd( codeqlArgs.push(...querySuitePaths); } // capture stdout, which contains analysis summaries - return await runTool(cmd, codeqlArgs); + const returnState = await toolrunnerErrorCatcher( + cmd, + codeqlArgs, + errorMatchers + ); + return returnState.stdout; }, async databasePrintBaseline(databasePath: string): Promise { const codeqlArgs = [ @@ -1151,6 +1163,22 @@ async function getCodeQLForCmd( ]; await new toolrunner.ToolRunner(cmd, args).exec(); }, + async diagnosticsExport( + sarifFile: string, + automationDetailsId: string | undefined + ): Promise { + const args = [ + "diagnostics", + "export", + "--format=sarif-latest", + `--output=${sarifFile}`, + ...getExtraOptionsFromEnv(["diagnostics", "export"]), + ]; + if (automationDetailsId !== undefined) { + args.push("--sarif-category", automationDetailsId); + } + await new toolrunner.ToolRunner(cmd, args).exec(); + }, }; // To ensure that status reports include the CodeQL CLI version wherever // possible, we want to call getVersion(), which populates the version value @@ -1247,11 +1275,16 @@ async function runTool(cmd: string, args: string[] = []) { const exitCode = await new toolrunner.ToolRunner(cmd, args, { listeners: { stdout: (data: Buffer) => { - output += data.toString(); + output += data.toString("utf8"); }, stderr: (data: Buffer) => { - const toRead = Math.min(maxErrorSize - error.length, data.length); - error += data.toString("utf8", 0, toRead); + let readStartIndex = 0; + // If the error is too large, then we only take the last 20,000 characters + if (data.length - maxErrorSize > 0) { + // Eg: if we have 20,000 the start index should be 2. + readStartIndex = data.length - maxErrorSize + 1; + } + error += data.toString("utf8", readStartIndex); }, }, ignoreReturnCode: true, diff --git a/src/defaults.json b/src/defaults.json index a83d15c8d7..51120ae77c 100644 --- a/src/defaults.json +++ b/src/defaults.json @@ -1,3 +1,3 @@ { - "bundleVersion": "codeql-bundle-20221123" + "bundleVersion": "codeql-bundle-20221202" } diff --git a/src/error-matcher.test.ts b/src/error-matcher.test.ts index 9d8e8a257c..9a1a6817d9 100644 --- a/src/error-matcher.test.ts +++ b/src/error-matcher.test.ts @@ -20,6 +20,15 @@ test("noSourceCodeFound matches against example javascript output", async (t) => ); }); +test("fatalError matches against example log output", async (t) => { + t.assert( + testErrorMatcher( + "fatalError", + "A fatal error occurred: Could not process query metadata for test-query.ql" + ) + ); +}); + function testErrorMatcher(matcherName: string, logSample: string): boolean { if (!(matcherName in namedMatchersForTesting)) { throw new Error(`Unknown matcher ${matcherName}`); diff --git a/src/error-matcher.ts b/src/error-matcher.ts index ebbc5484d3..e3673cce37 100644 --- a/src/error-matcher.ts +++ b/src/error-matcher.ts @@ -18,6 +18,10 @@ export const namedMatchersForTesting: { [key: string]: ErrorMatcher } = { "No code found during the build. Please see:\n" + "https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/troubleshooting-code-scanning#no-code-found-during-the-build", }, + fatalError: { + outputRegex: new RegExp("A fatal error occurred"), + message: "A fatal error occurred.", + }, }; // we collapse the matches into an array for use in execErrorCatcher diff --git a/src/feature-flags.ts b/src/feature-flags.ts index 8fbaa5b875..a065372bd6 100644 --- a/src/feature-flags.ts +++ b/src/feature-flags.ts @@ -16,9 +16,9 @@ export enum Feature { BypassToolcacheKotlinSwiftEnabled = "bypass_toolcache_kotlin_swift_enabled", CliConfigFileEnabled = "cli_config_file_enabled", DisableKotlinAnalysisEnabled = "disable_kotlin_analysis_enabled", - FileBaselineInformationEnabled = "file_baseline_information_enabled", MlPoweredQueriesEnabled = "ml_powered_queries_enabled", TrapCachingEnabled = "trap_caching_enabled", + UploadFailedSarifEnabled = "upload_failed_sarif_enabled", } export const featureConfig: Record< @@ -45,10 +45,6 @@ export const featureConfig: Record< envVar: "CODEQL_PASS_CONFIG_TO_CLI", minimumVersion: "2.11.1", }, - [Feature.FileBaselineInformationEnabled]: { - envVar: "CODEQL_FILE_BASELINE_INFORMATION", - minimumVersion: "2.11.3", - }, [Feature.MlPoweredQueriesEnabled]: { envVar: "CODEQL_ML_POWERED_QUERIES", minimumVersion: "2.7.5", @@ -57,6 +53,10 @@ export const featureConfig: Record< envVar: "CODEQL_TRAP_CACHING", minimumVersion: undefined, }, + [Feature.UploadFailedSarifEnabled]: { + envVar: "CODEQL_ACTION_UPLOAD_FAILED_SARIF", + minimumVersion: "2.11.3", + }, }; /** diff --git a/src/init-action-post-helper.test.ts b/src/init-action-post-helper.test.ts index e24ee5064c..6d2d51d875 100644 --- a/src/init-action-post-helper.test.ts +++ b/src/init-action-post-helper.test.ts @@ -1,15 +1,27 @@ -import test from "ava"; +import test, { ExecutionContext } from "ava"; import * as sinon from "sinon"; +import * as actionsUtil from "./actions-util"; +import * as codeql from "./codeql"; import * as configUtils from "./config-utils"; +import { Feature } from "./feature-flags"; import * as initActionPostHelper from "./init-action-post-helper"; -import { setupTests } from "./testing-utils"; +import { getRunnerLogger } from "./logging"; +import { parseRepositoryNwo } from "./repository"; +import { + createFeatures, + getRecordingLogger, + setupTests, +} from "./testing-utils"; +import * as uploadLib from "./upload-lib"; import * as util from "./util"; +import * as workflow from "./workflow"; setupTests(test); test("post: init action with debug mode off", async (t) => { return await util.withTmpDir(async (tmpDir) => { + process.env["GITHUB_REPOSITORY"] = "github/codeql-action-fake-repository"; process.env["RUNNER_TEMP"] = tmpDir; const gitHubVersion: util.GitHubVersion = { @@ -29,7 +41,10 @@ test("post: init action with debug mode off", async (t) => { await initActionPostHelper.run( uploadDatabaseBundleSpy, uploadLogsSpy, - printDebugLogsSpy + printDebugLogsSpy, + parseRepositoryNwo("github/codeql-action"), + createFeatures([]), + getRunnerLogger(true) ); t.assert(uploadDatabaseBundleSpy.notCalled); @@ -40,6 +55,7 @@ test("post: init action with debug mode off", async (t) => { test("post: init action with debug mode on", async (t) => { return await util.withTmpDir(async (tmpDir) => { + process.env["GITHUB_REPOSITORY"] = "github/codeql-action-fake-repository"; process.env["RUNNER_TEMP"] = tmpDir; const gitHubVersion: util.GitHubVersion = { @@ -59,7 +75,10 @@ test("post: init action with debug mode on", async (t) => { await initActionPostHelper.run( uploadDatabaseBundleSpy, uploadLogsSpy, - printDebugLogsSpy + printDebugLogsSpy, + parseRepositoryNwo("github/codeql-action"), + createFeatures([]), + getRunnerLogger(true) ); t.assert(uploadDatabaseBundleSpy.called); @@ -67,3 +86,117 @@ test("post: init action with debug mode on", async (t) => { t.assert(printDebugLogsSpy.called); }); }); + +test("uploads failed SARIF run for typical workflow", async (t) => { + const actionsWorkflow = createTestWorkflow([ + { + name: "Checkout repository", + uses: "actions/checkout@v3", + }, + { + name: "Initialize CodeQL", + uses: "github/codeql-action/init@v2", + with: { + languages: "javascript", + }, + }, + { + name: "Perform CodeQL Analysis", + uses: "github/codeql-action/analyze@v2", + with: { + category: "my-category", + }, + }, + ]); + await testFailedSarifUpload(t, actionsWorkflow, { category: "my-category" }); +}); + +test("uploading failed SARIF run fails when workflow does not reference github/codeql-action", async (t) => { + const actionsWorkflow = createTestWorkflow([ + { + name: "Checkout repository", + uses: "actions/checkout@v3", + }, + ]); + await t.throwsAsync( + async () => await testFailedSarifUpload(t, actionsWorkflow) + ); +}); + +function createTestWorkflow( + steps: workflow.WorkflowJobStep[] +): workflow.Workflow { + return { + name: "CodeQL", + on: { + push: { + branches: ["main"], + }, + pull_request: { + branches: ["main"], + }, + }, + jobs: { + analyze: { + name: "CodeQL Analysis", + "runs-on": "ubuntu-latest", + steps, + }, + }, + }; +} + +async function testFailedSarifUpload( + t: ExecutionContext, + actionsWorkflow: workflow.Workflow, + { category }: { category?: string } = {} +): Promise { + const config = { + codeQLCmd: "codeql", + debugMode: true, + languages: [], + packs: [], + } as unknown as configUtils.Config; + const messages = []; + process.env["GITHUB_JOB"] = "analyze"; + process.env["GITHUB_REPOSITORY"] = "github/codeql-action-fake-repository"; + process.env["GITHUB_WORKSPACE"] = + "/home/runner/work/codeql-action/codeql-action"; + sinon.stub(actionsUtil, "getRequiredInput").withArgs("matrix").returns("{}"); + + const codeqlObject = await codeql.getCodeQLForTesting(); + sinon.stub(codeql, "getCodeQL").resolves(codeqlObject); + const diagnosticsExportStub = sinon.stub(codeqlObject, "diagnosticsExport"); + + sinon.stub(workflow, "getWorkflow").resolves(actionsWorkflow); + + const uploadFromActions = sinon.stub(uploadLib, "uploadFromActions"); + uploadFromActions.resolves({ sarifID: "42" } as uploadLib.UploadResult); + const waitForProcessing = sinon.stub(uploadLib, "waitForProcessing"); + + await initActionPostHelper.uploadFailedSarif( + config, + parseRepositoryNwo("github/codeql-action"), + createFeatures([Feature.UploadFailedSarifEnabled]), + getRecordingLogger(messages) + ); + t.deepEqual(messages, []); + t.true( + diagnosticsExportStub.calledOnceWith(sinon.match.string, category), + `Actual args were: ${diagnosticsExportStub.args}` + ); + t.true( + uploadFromActions.calledOnceWith( + sinon.match.string, + sinon.match.string, + category, + sinon.match.any + ), + `Actual args were: ${uploadFromActions.args}` + ); + t.true( + waitForProcessing.calledOnceWith(sinon.match.any, "42", sinon.match.any, { + isUnsuccessfulExecution: true, + }) + ); +} diff --git a/src/init-action-post-helper.ts b/src/init-action-post-helper.ts index 90b89c0c14..49e587ad1c 100644 --- a/src/init-action-post-helper.ts +++ b/src/init-action-post-helper.ts @@ -1,25 +1,118 @@ import * as core from "@actions/core"; import * as actionsUtil from "./actions-util"; -import { getConfig } from "./config-utils"; -import { getActionsLogger } from "./logging"; +import { getCodeQL } from "./codeql"; +import { Config, getConfig } from "./config-utils"; +import { Feature, FeatureEnablement } from "./feature-flags"; +import { Logger } from "./logging"; +import { RepositoryNwo } from "./repository"; +import { CODEQL_ACTION_ANALYZE_DID_UPLOAD_SARIF } from "./shared-environment"; +import * as uploadLib from "./upload-lib"; +import { getRequiredEnvParam, isInTestMode, parseMatrixInput } from "./util"; +import { + getCategoryInputOrThrow, + getCheckoutPathInputOrThrow, + getUploadInputOrThrow, + getWorkflow, +} from "./workflow"; + +export async function uploadFailedSarif( + config: Config, + repositoryNwo: RepositoryNwo, + featureEnablement: FeatureEnablement, + logger: Logger +) { + if (!config.codeQLCmd) { + logger.warning( + "CodeQL command not found. Unable to upload failed SARIF file." + ); + return; + } + const codeql = await getCodeQL(config.codeQLCmd); + if ( + !(await featureEnablement.getValue( + Feature.UploadFailedSarifEnabled, + codeql + )) + ) { + logger.debug("Uploading failed SARIF is disabled."); + return; + } + const workflow = await getWorkflow(); + const jobName = getRequiredEnvParam("GITHUB_JOB"); + const matrix = parseMatrixInput(actionsUtil.getRequiredInput("matrix")); + if ( + getUploadInputOrThrow(workflow, jobName, matrix) !== "true" || + isInTestMode() + ) { + logger.debug( + "Won't upload a failed SARIF file since SARIF upload is disabled." + ); + return; + } + const category = getCategoryInputOrThrow(workflow, jobName, matrix); + const checkoutPath = getCheckoutPathInputOrThrow(workflow, jobName, matrix); + + const sarifFile = "../codeql-failed-run.sarif"; + await codeql.diagnosticsExport(sarifFile, category); + + core.info(`Uploading failed SARIF file ${sarifFile}`); + const uploadResult = await uploadLib.uploadFromActions( + sarifFile, + checkoutPath, + category, + logger + ); + await uploadLib.waitForProcessing( + repositoryNwo, + uploadResult.sarifID, + logger, + { isUnsuccessfulExecution: true } + ); +} export async function run( uploadDatabaseBundleDebugArtifact: Function, uploadLogsDebugArtifact: Function, - printDebugLogs: Function + printDebugLogs: Function, + repositoryNwo: RepositoryNwo, + featureEnablement: FeatureEnablement, + logger: Logger ) { - const logger = getActionsLogger(); - const config = await getConfig(actionsUtil.getTemporaryDirectory(), logger); if (config === undefined) { logger.warning( "Debugging artifacts are unavailable since the 'init' Action failed before it could produce any." ); + return; + } + + // Environment variable used to integration test uploading a SARIF file for failed runs + const expectFailedSarifUpload = + process.env["CODEQL_ACTION_EXPECT_UPLOAD_FAILED_SARIF"] === "true"; + + if (process.env[CODEQL_ACTION_ANALYZE_DID_UPLOAD_SARIF] !== "true") { + try { + await uploadFailedSarif(config, repositoryNwo, featureEnablement, logger); + } catch (e) { + if (expectFailedSarifUpload) { + throw new Error( + "Expected to upload a SARIF file for the failed run, but encountered " + + `the following error: ${e}` + ); + } + logger.info( + `Failed to upload a SARIF file for the failed run. Error: ${e}` + ); + } + } else if (expectFailedSarifUpload) { + throw new Error( + "Expected to upload a SARIF file for the failed run, but didn't." + ); } // Upload appropriate Actions artifacts for debugging - if (config?.debugMode) { + if (config.debugMode) { core.info( "Debug mode is on. Uploading available database bundles and logs as Actions debugging artifacts..." ); diff --git a/src/init-action-post.ts b/src/init-action-post.ts index 75c4f3a82a..f71512067e 100644 --- a/src/init-action-post.ts +++ b/src/init-action-post.ts @@ -7,15 +7,37 @@ import * as core from "@actions/core"; import * as actionsUtil from "./actions-util"; +import { getGitHubVersion } from "./api-client"; import * as debugArtifacts from "./debug-artifacts"; +import { Features } from "./feature-flags"; import * as initActionPostHelper from "./init-action-post-helper"; +import { getActionsLogger } from "./logging"; +import { parseRepositoryNwo } from "./repository"; +import { checkGitHubVersionInRange, getRequiredEnvParam } from "./util"; async function runWrapper() { try { + const logger = getActionsLogger(); + const gitHubVersion = await getGitHubVersion(); + checkGitHubVersionInRange(gitHubVersion, logger); + + const repositoryNwo = parseRepositoryNwo( + getRequiredEnvParam("GITHUB_REPOSITORY") + ); + const features = new Features( + gitHubVersion, + repositoryNwo, + actionsUtil.getTemporaryDirectory(), + logger + ); + await initActionPostHelper.run( debugArtifacts.uploadDatabaseBundleDebugArtifact, debugArtifacts.uploadLogsDebugArtifact, - actionsUtil.printDebugLogs + actionsUtil.printDebugLogs, + repositoryNwo, + features, + logger ); } catch (error) { core.setFailed(`init post-action step failed: ${error}`); diff --git a/src/init-action.ts b/src/init-action.ts index c318ac6cd6..424a1dc055 100644 --- a/src/init-action.ts +++ b/src/init-action.ts @@ -10,7 +10,6 @@ import { getTemporaryDirectory, sendStatusReport, StatusReportBase, - validateWorkflow, } from "./actions-util"; import { getGitHubVersion } from "./api-client"; import { CodeQL, CODEQL_VERSION_NEW_TRACING } from "./codeql"; @@ -43,6 +42,7 @@ import { isHostedRunner, shouldBypassToolcache, } from "./util"; +import { validateWorkflow } from "./workflow"; // eslint-disable-next-line import/no-commonjs const pkg = require("../package.json"); diff --git a/src/shared-environment.ts b/src/shared-environment.ts index 6545c51a85..85460cf780 100644 --- a/src/shared-environment.ts +++ b/src/shared-environment.ts @@ -1,13 +1,24 @@ -export const ODASA_TRACER_CONFIGURATION = "ODASA_TRACER_CONFIGURATION"; -// The time at which the first action (normally init) started executing. -// If a workflow invokes a different action without first invoking the init -// action (i.e. the upload action is being used by a third-party integrator) -// then this variable will be assigned the start time of the action invoked -// rather that the init action. -export const CODEQL_WORKFLOW_STARTED_AT = "CODEQL_WORKFLOW_STARTED_AT"; +/** + * This environment variable is set to true when the `analyze` Action + * successfully uploads a SARIF file. It does NOT indicate whether the + * SARIF file was processed successfully. + */ +export const CODEQL_ACTION_ANALYZE_DID_UPLOAD_SARIF = + "CODEQL_ACTION_ANALYZE_DID_UPLOAD_SARIF"; export const CODEQL_ACTION_TESTING_ENVIRONMENT = "CODEQL_ACTION_TESTING_ENVIRONMENT"; /** Used to disable uploading SARIF results or status reports to the GitHub API */ export const CODEQL_ACTION_TEST_MODE = "CODEQL_ACTION_TEST_MODE"; + +/** + * The time at which the first action (normally init) started executing. + * If a workflow invokes a different action without first invoking the init + * action (i.e. the upload action is being used by a third-party integrator) + * then this variable will be assigned the start time of the action invoked + * rather that the init action. + */ +export const CODEQL_WORKFLOW_STARTED_AT = "CODEQL_WORKFLOW_STARTED_AT"; + +export const ODASA_TRACER_CONFIGURATION = "ODASA_TRACER_CONFIGURATION"; diff --git a/src/toolrunner-error-catcher.test.ts b/src/toolrunner-error-catcher.test.ts index 377c193fa0..2ac0dc46c3 100644 --- a/src/toolrunner-error-catcher.test.ts +++ b/src/toolrunner-error-catcher.test.ts @@ -21,7 +21,8 @@ test("matchers are never applied if non-error exit", async (t) => { t.deepEqual(await exec.exec("node", testArgs), 0); - t.deepEqual(await toolrunnerErrorCatcher("node", testArgs, matchers), 0); + const returnState = await toolrunnerErrorCatcher("node", testArgs, matchers); + t.deepEqual(returnState.exitCode, 0); }); test("regex matchers are applied to stdout for non-zero exit code", async (t) => { @@ -150,12 +151,11 @@ test("execErrorCatcher respects the ignoreReturnValue option", async (t) => { { instanceOf: Error } ); - t.deepEqual( - await toolrunnerErrorCatcher("node", testArgs, [], { - ignoreReturnCode: true, - }), - 199 - ); + const returnState = await toolrunnerErrorCatcher("node", testArgs, [], { + ignoreReturnCode: true, + }); + + t.deepEqual(returnState.exitCode, 199); }); test("execErrorCatcher preserves behavior of provided listeners", async (t) => { @@ -176,12 +176,10 @@ test("execErrorCatcher preserves behavior of provided listeners", async (t) => { const testArgs = buildDummyArgs(stdoutExpected, stderrExpected, "", 0); - t.deepEqual( - await toolrunnerErrorCatcher("node", testArgs, [], { - listeners, - }), - 0 - ); + const returnState = await toolrunnerErrorCatcher("node", testArgs, [], { + listeners, + }); + t.deepEqual(returnState.exitCode, 0); t.deepEqual(stdoutActual, `${stdoutExpected}\n`); t.deepEqual(stderrActual, `${stderrExpected}\n`); diff --git a/src/toolrunner-error-catcher.ts b/src/toolrunner-error-catcher.ts index 4f9fd701b5..a03de2e8e6 100644 --- a/src/toolrunner-error-catcher.ts +++ b/src/toolrunner-error-catcher.ts @@ -4,6 +4,11 @@ import * as safeWhich from "@chrisgavin/safe-which"; import { ErrorMatcher } from "./error-matcher"; +export interface ReturnState { + exitCode: number; + stdout: string; +} + /** * Wrapper for toolrunner.Toolrunner which checks for specific return code and/or regex matches in console output. * Output will be streamed to the live console as well as captured for subsequent processing. @@ -13,14 +18,14 @@ import { ErrorMatcher } from "./error-matcher"; * @param args optional arguments for tool. Escaping is handled by the lib. * @param matchers defines specific codes and/or regexes that should lead to return of a custom error * @param options optional exec options. See ExecOptions - * @returns Promise exit code + * @returns ReturnState exit code and stdout output, if applicable */ export async function toolrunnerErrorCatcher( commandLine: string, args?: string[], matchers?: ErrorMatcher[], options?: im.ExecOptions -): Promise { +): Promise { let stdout = ""; let stderr = ""; @@ -40,9 +45,9 @@ export async function toolrunnerErrorCatcher( }; // we capture the original return code or error so that if no match is found we can duplicate the behavior - let returnState: Error | number; + let exitCode: number; try { - returnState = await new toolrunner.ToolRunner( + exitCode = await new toolrunner.ToolRunner( await safeWhich.safeWhich(commandLine), args, { @@ -51,35 +56,32 @@ export async function toolrunnerErrorCatcher( ignoreReturnCode: true, // so we can check for specific codes using the matchers } ).exec(); - } catch (e) { - returnState = e instanceof Error ? e : new Error(String(e)); - } - // if there is a zero return code then we do not apply the matchers - if (returnState === 0) return returnState; + // if there is a zero return code then we do not apply the matchers + if (exitCode === 0) return { exitCode, stdout }; - if (matchers) { - for (const matcher of matchers) { - if ( - matcher.exitCode === returnState || - matcher.outputRegex?.test(stderr) || - matcher.outputRegex?.test(stdout) - ) { - throw new Error(matcher.message); + if (matchers) { + for (const matcher of matchers) { + if ( + matcher.exitCode === exitCode || + matcher.outputRegex?.test(stderr) || + matcher.outputRegex?.test(stdout) + ) { + throw new Error(matcher.message); + } } } - } - if (typeof returnState === "number") { // only if we were instructed to ignore the return code do we ever return it non-zero if (options?.ignoreReturnCode) { - return returnState; + return { exitCode, stdout }; } else { throw new Error( - `The process '${commandLine}' failed with exit code ${returnState}` + `The process '${commandLine}' failed with exit code ${exitCode}` ); } - } else { - throw returnState; + } catch (e) { + const error = e instanceof Error ? e : new Error(String(e)); + throw error; } } diff --git a/src/upload-lib.ts b/src/upload-lib.ts index de7e92b907..b1b5c38bd1 100644 --- a/src/upload-lib.ts +++ b/src/upload-lib.ts @@ -16,6 +16,7 @@ import { parseRepositoryNwo, RepositoryNwo } from "./repository"; import * as sharedEnv from "./shared-environment"; import * as util from "./util"; import { SarifFile, SarifResult, SarifRun } from "./util"; +import * as workflow from "./workflow"; // Takes a list of paths to sarif files and combines them together, // returning the contents of the combined sarif file. @@ -157,23 +158,22 @@ export function findSarifFilesInDir(sarifPath: string): string[] { // Uploads a single sarif file or a directory of sarif files // depending on what the path happens to refer to. -// Returns true iff the upload occurred and succeeded export async function uploadFromActions( sarifPath: string, + checkoutPath: string, + category: string | undefined, logger: Logger ): Promise { return await uploadFiles( getSarifFilePaths(sarifPath), parseRepositoryNwo(util.getRequiredEnvParam("GITHUB_REPOSITORY")), - await actionsUtil.getCommitOid( - actionsUtil.getRequiredInput("checkout_path") - ), + await actionsUtil.getCommitOid(checkoutPath), await actionsUtil.getRef(), await actionsUtil.getAnalysisKey(), - actionsUtil.getOptionalInput("category"), + category, util.getRequiredEnvParam("GITHUB_WORKFLOW"), - actionsUtil.getWorkflowRunID(), - actionsUtil.getRequiredInput("checkout_path"), + workflow.getWorkflowRunID(), + checkoutPath, actionsUtil.getRequiredInput("matrix"), logger ); @@ -385,60 +385,119 @@ async function uploadFiles( const STATUS_CHECK_FREQUENCY_MILLISECONDS = 5 * 1000; const STATUS_CHECK_TIMEOUT_MILLISECONDS = 2 * 60 * 1000; -// Waits until either the analysis is successfully processed, a processing error is reported, or STATUS_CHECK_TIMEOUT_MILLISECONDS elapses. +type ProcessingStatus = "pending" | "complete" | "failed"; + +/** + * Waits until either the analysis is successfully processed, a processing error + * is reported, or `STATUS_CHECK_TIMEOUT_MILLISECONDS` elapses. + * + * If `isUnsuccessfulExecution` is passed, will throw an error if the analysis + * processing does not produce a single error mentioning the unsuccessful + * execution. + */ export async function waitForProcessing( repositoryNwo: RepositoryNwo, sarifID: string, - logger: Logger + logger: Logger, + options: { isUnsuccessfulExecution: boolean } = { + isUnsuccessfulExecution: false, + } ): Promise { logger.startGroup("Waiting for processing to finish"); - const client = api.getApiClient(); + try { + const client = api.getApiClient(); + + const statusCheckingStarted = Date.now(); + // eslint-disable-next-line no-constant-condition + while (true) { + if ( + Date.now() > + statusCheckingStarted + STATUS_CHECK_TIMEOUT_MILLISECONDS + ) { + // If the analysis hasn't finished processing in the allotted time, we continue anyway rather than failing. + // It's possible the analysis will eventually finish processing, but it's not worth spending more Actions time waiting. + logger.warning( + "Timed out waiting for analysis to finish processing. Continuing." + ); + break; + } + let response: OctokitResponse | undefined = undefined; + try { + response = await client.request( + "GET /repos/:owner/:repo/code-scanning/sarifs/:sarif_id", + { + owner: repositoryNwo.owner, + repo: repositoryNwo.repo, + sarif_id: sarifID, + } + ); + } catch (e) { + logger.warning( + `An error occurred checking the status of the delivery. ${e} It should still be processed in the background, but errors that occur during processing may not be reported.` + ); + break; + } + const status = response.data.processing_status as ProcessingStatus; + logger.info(`Analysis upload status is ${status}.`); + + if (status === "pending") { + logger.debug("Analysis processing is still pending..."); + } else if (options.isUnsuccessfulExecution) { + // We expect a specific processing error for unsuccessful executions, so + // handle these separately. + handleProcessingResultForUnsuccessfulExecution( + response, + status, + logger + ); + break; + } else if (status === "complete") { + break; + } else if (status === "failed") { + throw new Error( + `Code Scanning could not process the submitted SARIF file:\n${response.data.errors}` + ); + } else { + util.assertNever(status); + } - const statusCheckingStarted = Date.now(); - // eslint-disable-next-line no-constant-condition - while (true) { - if ( - Date.now() > - statusCheckingStarted + STATUS_CHECK_TIMEOUT_MILLISECONDS - ) { - // If the analysis hasn't finished processing in the allotted time, we continue anyway rather than failing. - // It's possible the analysis will eventually finish processing, but it's not worth spending more Actions time waiting. - logger.warning( - "Timed out waiting for analysis to finish processing. Continuing." - ); - break; - } - let response: OctokitResponse | undefined = undefined; - try { - response = await client.request( - "GET /repos/:owner/:repo/code-scanning/sarifs/:sarif_id", - { - owner: repositoryNwo.owner, - repo: repositoryNwo.repo, - sarif_id: sarifID, - } - ); - } catch (e) { - logger.warning( - `An error occurred checking the status of the delivery. ${e} It should still be processed in the background, but errors that occur during processing may not be reported.` - ); - break; - } - const status = response.data.processing_status; - logger.info(`Analysis upload status is ${status}.`); - if (status === "complete") { - break; - } else if (status === "pending") { - logger.debug("Analysis processing is still pending..."); - } else if (status === "failed") { - throw new Error( - `Code Scanning could not process the submitted SARIF file:\n${response.data.errors}` - ); + await util.delay(STATUS_CHECK_FREQUENCY_MILLISECONDS); } + } finally { + logger.endGroup(); + } +} - await util.delay(STATUS_CHECK_FREQUENCY_MILLISECONDS); +/** + * Checks the processing result for an unsuccessful execution. Throws if the + * result is not a failure with a single "unsuccessful execution" error. + */ +function handleProcessingResultForUnsuccessfulExecution( + response: OctokitResponse, + status: Exclude, + logger: Logger +): void { + if ( + status === "failed" && + Array.isArray(response.data.errors) && + response.data.errors.length === 1 && + response.data.errors[0].toString().startsWith("unsuccessful execution") + ) { + logger.debug( + "Successfully uploaded a SARIF file for the unsuccessful execution. Received expected " + + '"unsuccessful execution" error, and no other errors.' + ); + } else { + const shortMessage = + "Failed to upload a SARIF file for the unsuccessful execution. Code scanning status " + + "information for the repository may be out of date as a result."; + const longMessage = + shortMessage + status === "failed" + ? ` Processing errors: ${response.data.errors}` + : ' Encountered no processing errors, but expected to receive an "unsuccessful execution" error.'; + logger.debug(longMessage); + throw new Error(shortMessage); } - logger.endGroup(); } export function validateUniqueCategory(sarif: SarifFile): void { diff --git a/src/upload-sarif-action.ts b/src/upload-sarif-action.ts index 7fe4f70c71..3729a24d81 100644 --- a/src/upload-sarif-action.ts +++ b/src/upload-sarif-action.ts @@ -53,6 +53,8 @@ async function run() { try { const uploadResult = await upload_lib.uploadFromActions( actionsUtil.getRequiredInput("sarif_file"), + actionsUtil.getRequiredInput("checkout_path"), + actionsUtil.getOptionalInput("category"), getActionsLogger() ); core.setOutput("sarif-id", uploadResult.sarifID); diff --git a/src/util.ts b/src/util.ts index cd6e4aa91d..fd368b59b7 100644 --- a/src/util.ts +++ b/src/util.ts @@ -892,3 +892,12 @@ export async function shouldBypassToolcache( } return bypass; } + +export function parseMatrixInput( + matrixInput: string | undefined +): { [key: string]: string } | undefined { + if (matrixInput === undefined || matrixInput === "null") { + return undefined; + } + return JSON.parse(matrixInput); +} diff --git a/src/workflow.test.ts b/src/workflow.test.ts new file mode 100644 index 0000000000..97c17851b0 --- /dev/null +++ b/src/workflow.test.ts @@ -0,0 +1,682 @@ +import test from "ava"; +import * as yaml from "js-yaml"; + +import { setupTests } from "./testing-utils"; +import { + CodedError, + formatWorkflowCause, + formatWorkflowErrors, + getCategoryInputOrThrow, + getWorkflowErrors, + patternIsSuperset, + Workflow, + WorkflowErrors, +} from "./workflow"; + +function errorCodes( + actual: CodedError[], + expected: CodedError[] +): [string[], string[]] { + return [actual.map(({ code }) => code), expected.map(({ code }) => code)]; +} + +setupTests(test); + +test("getWorkflowErrors() when on is empty", (t) => { + const errors = getWorkflowErrors({ on: {} }); + + t.deepEqual(...errorCodes(errors, [])); +}); + +test("getWorkflowErrors() when on.push is an array missing pull_request", (t) => { + const errors = getWorkflowErrors({ on: ["push"] }); + + t.deepEqual(...errorCodes(errors, [])); +}); + +test("getWorkflowErrors() when on.push is an array missing push", (t) => { + const errors = getWorkflowErrors({ on: ["pull_request"] }); + + t.deepEqual(...errorCodes(errors, [WorkflowErrors.MissingPushHook])); +}); + +test("getWorkflowErrors() when on.push is valid", (t) => { + const errors = getWorkflowErrors({ + on: ["push", "pull_request"], + }); + + t.deepEqual(...errorCodes(errors, [])); +}); + +test("getWorkflowErrors() when on.push is a valid superset", (t) => { + const errors = getWorkflowErrors({ + on: ["push", "pull_request", "schedule"], + }); + + t.deepEqual(...errorCodes(errors, [])); +}); + +test("getWorkflowErrors() when on.push should not have a path", (t) => { + const errors = getWorkflowErrors({ + on: { + push: { branches: ["main"], paths: ["test/*"] }, + pull_request: { branches: ["main"] }, + }, + }); + + t.deepEqual(...errorCodes(errors, [WorkflowErrors.PathsSpecified])); +}); + +test("getWorkflowErrors() when on.push is a correct object", (t) => { + const errors = getWorkflowErrors({ + on: { push: { branches: ["main"] }, pull_request: { branches: ["main"] } }, + }); + + t.deepEqual(...errorCodes(errors, [])); +}); + +test("getWorkflowErrors() when on.pull_requests is a string", (t) => { + const errors = getWorkflowErrors({ + on: { push: { branches: ["main"] }, pull_request: { branches: "*" } }, + }); + + t.deepEqual(...errorCodes(errors, [WorkflowErrors.MismatchedBranches])); +}); + +test("getWorkflowErrors() when on.pull_requests is a string and correct", (t) => { + const errors = getWorkflowErrors({ + on: { push: { branches: "*" }, pull_request: { branches: "*" } }, + }); + + t.deepEqual(...errorCodes(errors, [])); +}); + +test("getWorkflowErrors() when on.push is correct with empty objects", (t) => { + const errors = getWorkflowErrors( + yaml.load(` + on: + push: + pull_request: + `) as Workflow + ); + + t.deepEqual(...errorCodes(errors, [])); +}); + +test("getWorkflowErrors() when on.push is mismatched", (t) => { + const errors = getWorkflowErrors({ + on: { + push: { branches: ["main"] }, + pull_request: { branches: ["feature"] }, + }, + }); + + t.deepEqual(...errorCodes(errors, [WorkflowErrors.MismatchedBranches])); +}); + +test("getWorkflowErrors() when on.push is not mismatched", (t) => { + const errors = getWorkflowErrors({ + on: { + push: { branches: ["main", "feature"] }, + pull_request: { branches: ["main"] }, + }, + }); + + t.deepEqual(...errorCodes(errors, [])); +}); + +test("getWorkflowErrors() when on.push is mismatched for pull_request", (t) => { + const errors = getWorkflowErrors({ + on: { + push: { branches: ["main"] }, + pull_request: { branches: ["main", "feature"] }, + }, + }); + + t.deepEqual(...errorCodes(errors, [WorkflowErrors.MismatchedBranches])); +}); + +test("getWorkflowErrors() for a range of malformed workflows", (t) => { + t.deepEqual( + ...errorCodes( + getWorkflowErrors({ + on: { + push: 1, + pull_request: 1, + }, + } as any), + [] + ) + ); + + t.deepEqual( + ...errorCodes( + getWorkflowErrors({ + on: 1, + } as any), + [] + ) + ); + + t.deepEqual( + ...errorCodes( + getWorkflowErrors({ + on: 1, + jobs: 1, + } as any), + [] + ) + ); + + t.deepEqual( + ...errorCodes( + getWorkflowErrors({ + on: 1, + jobs: [1], + } as any), + [] + ) + ); + + t.deepEqual( + ...errorCodes( + getWorkflowErrors({ + on: 1, + jobs: { 1: 1 }, + } as any), + [] + ) + ); + + t.deepEqual( + ...errorCodes( + getWorkflowErrors({ + on: 1, + jobs: { test: 1 }, + } as any), + [] + ) + ); + + t.deepEqual( + ...errorCodes( + getWorkflowErrors({ + on: 1, + jobs: { test: [1] }, + } as any), + [] + ) + ); + + t.deepEqual( + ...errorCodes( + getWorkflowErrors({ + on: 1, + jobs: { test: { steps: 1 } }, + } as any), + [] + ) + ); + + t.deepEqual( + ...errorCodes( + getWorkflowErrors({ + on: 1, + jobs: { test: { steps: [{ notrun: "git checkout HEAD^2" }] } }, + } as any), + [] + ) + ); + + t.deepEqual( + ...errorCodes( + getWorkflowErrors({ + on: 1, + jobs: { test: [undefined] }, + } as any), + [] + ) + ); + + t.deepEqual(...errorCodes(getWorkflowErrors(1 as any), [])); + + t.deepEqual( + ...errorCodes( + getWorkflowErrors({ + on: { + push: { + branches: 1, + }, + pull_request: { + branches: 1, + }, + }, + } as any), + [] + ) + ); +}); + +test("getWorkflowErrors() when on.pull_request for every branch but push specifies branches", (t) => { + const errors = getWorkflowErrors( + yaml.load(` + name: "CodeQL" + on: + push: + branches: ["main"] + pull_request: + `) as Workflow + ); + + t.deepEqual(...errorCodes(errors, [WorkflowErrors.MismatchedBranches])); +}); + +test("getWorkflowErrors() when on.pull_request for wildcard branches", (t) => { + const errors = getWorkflowErrors({ + on: { + push: { branches: ["feature/*"] }, + pull_request: { branches: "feature/moose" }, + }, + }); + + t.deepEqual(...errorCodes(errors, [])); +}); + +test("getWorkflowErrors() when on.pull_request for mismatched wildcard branches", (t) => { + const errors = getWorkflowErrors({ + on: { + push: { branches: ["feature/moose"] }, + pull_request: { branches: "feature/*" }, + }, + }); + + t.deepEqual(...errorCodes(errors, [WorkflowErrors.MismatchedBranches])); +}); + +test("getWorkflowErrors() when HEAD^2 is checked out", (t) => { + process.env.GITHUB_JOB = "test"; + + const errors = getWorkflowErrors({ + on: ["push", "pull_request"], + jobs: { test: { steps: [{ run: "git checkout HEAD^2" }] } }, + }); + + t.deepEqual(...errorCodes(errors, [WorkflowErrors.CheckoutWrongHead])); +}); + +test("formatWorkflowErrors() when there is one error", (t) => { + const message = formatWorkflowErrors([WorkflowErrors.CheckoutWrongHead]); + t.true(message.startsWith("1 issue was detected with this workflow:")); +}); + +test("formatWorkflowErrors() when there are multiple errors", (t) => { + const message = formatWorkflowErrors([ + WorkflowErrors.CheckoutWrongHead, + WorkflowErrors.PathsSpecified, + ]); + t.true(message.startsWith("2 issues were detected with this workflow:")); +}); + +test("formatWorkflowCause() with no errors", (t) => { + const message = formatWorkflowCause([]); + + t.deepEqual(message, undefined); +}); + +test("formatWorkflowCause()", (t) => { + const message = formatWorkflowCause([ + WorkflowErrors.CheckoutWrongHead, + WorkflowErrors.PathsSpecified, + ]); + + t.deepEqual(message, "CheckoutWrongHead,PathsSpecified"); + t.deepEqual(formatWorkflowCause([]), undefined); +}); + +test("patternIsSuperset()", (t) => { + t.false(patternIsSuperset("main-*", "main")); + t.true(patternIsSuperset("*", "*")); + t.true(patternIsSuperset("*", "main-*")); + t.false(patternIsSuperset("main-*", "*")); + t.false(patternIsSuperset("main-*", "main")); + t.true(patternIsSuperset("main", "main")); + t.false(patternIsSuperset("*", "feature/*")); + t.true(patternIsSuperset("**", "feature/*")); + t.false(patternIsSuperset("feature-*", "**")); + t.false(patternIsSuperset("a/**/c", "a/**/d")); + t.false(patternIsSuperset("a/**/c", "a/**")); + t.true(patternIsSuperset("a/**", "a/**/c")); + t.true(patternIsSuperset("a/**/c", "a/main-**/c")); + t.false(patternIsSuperset("a/**/b/**/c", "a/**/d/**/c")); + t.true(patternIsSuperset("a/**/b/**/c", "a/**/b/c/**/c")); + t.true(patternIsSuperset("a/**/b/**/c", "a/**/b/d/**/c")); + t.false(patternIsSuperset("a/**/c/d/**/c", "a/**/b/**/c")); + t.false(patternIsSuperset("a/main-**/c", "a/**/c")); + t.true(patternIsSuperset("/robin/*/release/*", "/robin/moose/release/goose")); + t.false( + patternIsSuperset("/robin/moose/release/goose", "/robin/*/release/*") + ); +}); + +test("getWorkflowErrors() when branches contain dots", (t) => { + const errors = getWorkflowErrors( + yaml.load(` + on: + push: + branches: [4.1, master] + pull_request: + # The branches below must be a subset of the branches above + branches: [4.1, master] + `) as Workflow + ); + + t.deepEqual(...errorCodes(errors, [])); +}); + +test("getWorkflowErrors() when on.push has a trailing comma", (t) => { + const errors = getWorkflowErrors( + yaml.load(` + name: "CodeQL" + on: + push: + branches: [master, ] + pull_request: + # The branches below must be a subset of the branches above + branches: [master] + `) as Workflow + ); + + t.deepEqual(...errorCodes(errors, [])); +}); + +test("getWorkflowErrors() should only report the current job's CheckoutWrongHead", (t) => { + process.env.GITHUB_JOB = "test"; + + const errors = getWorkflowErrors( + yaml.load(` + name: "CodeQL" + on: + push: + branches: [master] + pull_request: + # The branches below must be a subset of the branches above + branches: [master] + jobs: + test: + steps: + - run: "git checkout HEAD^2" + + test2: + steps: + - run: "git checkout HEAD^2" + + test3: + steps: [] + `) as Workflow + ); + + t.deepEqual(...errorCodes(errors, [WorkflowErrors.CheckoutWrongHead])); +}); + +test("getWorkflowErrors() should not report a different job's CheckoutWrongHead", (t) => { + process.env.GITHUB_JOB = "test3"; + + const errors = getWorkflowErrors( + yaml.load(` + name: "CodeQL" + on: + push: + branches: [master] + pull_request: + # The branches below must be a subset of the branches above + branches: [master] + jobs: + test: + steps: + - run: "git checkout HEAD^2" + + test2: + steps: + - run: "git checkout HEAD^2" + + test3: + steps: [] + `) as Workflow + ); + + t.deepEqual(...errorCodes(errors, [])); +}); + +test("getWorkflowErrors() when on is missing", (t) => { + const errors = getWorkflowErrors( + yaml.load(` + name: "CodeQL" + `) as Workflow + ); + + t.deepEqual(...errorCodes(errors, [])); +}); + +test("getWorkflowErrors() with a different on setup", (t) => { + t.deepEqual( + ...errorCodes( + getWorkflowErrors( + yaml.load(` + name: "CodeQL" + on: "workflow_dispatch" + `) as Workflow + ), + [] + ) + ); + + t.deepEqual( + ...errorCodes( + getWorkflowErrors( + yaml.load(` + name: "CodeQL" + on: [workflow_dispatch] + `) as Workflow + ), + [] + ) + ); + + t.deepEqual( + ...errorCodes( + getWorkflowErrors( + yaml.load(` + name: "CodeQL" + on: + workflow_dispatch: {} + `) as Workflow + ), + [] + ) + ); +}); + +test("getWorkflowErrors() should not report an error if PRs are totally unconfigured", (t) => { + t.deepEqual( + ...errorCodes( + getWorkflowErrors( + yaml.load(` + name: "CodeQL" + on: + push: + branches: [master] + `) as Workflow + ), + [] + ) + ); + + t.deepEqual( + ...errorCodes( + getWorkflowErrors( + yaml.load(` + name: "CodeQL" + on: ["push"] + `) as Workflow + ), + [] + ) + ); +}); + +test("getCategoryInputOrThrow returns category for simple workflow with category", (t) => { + process.env["GITHUB_REPOSITORY"] = "github/codeql-action-fake-repository"; + t.is( + getCategoryInputOrThrow( + yaml.load(` + jobs: + analysis: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: github/codeql-action/init@v2 + - uses: github/codeql-action/analyze@v2 + with: + category: some-category + `) as Workflow, + "analysis", + {} + ), + "some-category" + ); +}); + +test("getCategoryInputOrThrow returns undefined for simple workflow without category", (t) => { + process.env["GITHUB_REPOSITORY"] = "github/codeql-action-fake-repository"; + t.is( + getCategoryInputOrThrow( + yaml.load(` + jobs: + analysis: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: github/codeql-action/init@v2 + - uses: github/codeql-action/analyze@v2 + `) as Workflow, + "analysis", + {} + ), + undefined + ); +}); + +test("getCategoryInputOrThrow returns category for workflow with multiple jobs", (t) => { + process.env["GITHUB_REPOSITORY"] = "github/codeql-action-fake-repository"; + t.is( + getCategoryInputOrThrow( + yaml.load(` + jobs: + foo: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: github/codeql-action/init@v2 + - runs: ./build foo + - uses: github/codeql-action/analyze@v2 + with: + category: foo-category + bar: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: github/codeql-action/init@v2 + - runs: ./build bar + - uses: github/codeql-action/analyze@v2 + with: + category: bar-category + `) as Workflow, + "bar", + {} + ), + "bar-category" + ); +}); + +test("getCategoryInputOrThrow finds category for workflow with language matrix", (t) => { + process.env["GITHUB_REPOSITORY"] = "github/codeql-action-fake-repository"; + t.is( + getCategoryInputOrThrow( + yaml.load(` + jobs: + analysis: + runs-on: ubuntu-latest + strategy: + matrix: + language: [javascript, python] + steps: + - uses: actions/checkout@v2 + - uses: github/codeql-action/init@v2 + with: + language: \${{ matrix.language }} + - uses: github/codeql-action/analyze@v2 + with: + category: "/language:\${{ matrix.language }}" + `) as Workflow, + "analysis", + { language: "javascript" } + ), + "/language:javascript" + ); +}); + +test("getCategoryInputOrThrow throws error for workflow with dynamic category", (t) => { + process.env["GITHUB_REPOSITORY"] = "github/codeql-action-fake-repository"; + t.throws( + () => + getCategoryInputOrThrow( + yaml.load(` + jobs: + analysis: + steps: + - uses: actions/checkout@v2 + - uses: github/codeql-action/init@v2 + - uses: github/codeql-action/analyze@v2 + with: + category: "\${{ github.workflow }}" + `) as Workflow, + "analysis", + {} + ), + { + message: + "Could not get category input to github/codeql-action/analyze since it contained " + + "an unrecognized dynamic value.", + } + ); +}); + +test("getCategoryInputOrThrow throws error for workflow with multiple calls to analyze", (t) => { + process.env["GITHUB_REPOSITORY"] = "github/codeql-action-fake-repository"; + t.throws( + () => + getCategoryInputOrThrow( + yaml.load(` + jobs: + analysis: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: github/codeql-action/init@v2 + - uses: github/codeql-action/analyze@v2 + with: + category: some-category + - uses: github/codeql-action/analyze@v2 + with: + category: another-category + `) as Workflow, + "analysis", + {} + ), + { + message: + "Could not get category input to github/codeql-action/analyze since the analysis job " + + "calls github/codeql-action/analyze multiple times.", + } + ); +}); diff --git a/src/workflow.ts b/src/workflow.ts new file mode 100644 index 0000000000..a681d07bf5 --- /dev/null +++ b/src/workflow.ts @@ -0,0 +1,455 @@ +import * as fs from "fs"; +import * as path from "path"; + +import * as core from "@actions/core"; +import * as yaml from "js-yaml"; + +import * as api from "./api-client"; +import { getRequiredEnvParam } from "./util"; + +export interface WorkflowJobStep { + name?: string; + run?: any; + uses?: string; + with?: { [key: string]: string }; +} + +interface WorkflowJob { + name?: string; + "runs-on"?: string; + steps?: WorkflowJobStep[]; +} + +interface WorkflowTrigger { + branches?: string[] | string; + paths?: string[]; +} + +// on: {} then push/pull_request are undefined +// on: +// push: +// pull_request: +// then push/pull_request are null +interface WorkflowTriggers { + push?: WorkflowTrigger | null; + pull_request?: WorkflowTrigger | null; +} + +export interface Workflow { + name?: string; + jobs?: { [key: string]: WorkflowJob }; + on?: string | string[] | WorkflowTriggers; +} + +function isObject(o: unknown): o is object { + return o !== null && typeof o === "object"; +} + +const GLOB_PATTERN = new RegExp("(\\*\\*?)"); + +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string +} + +function patternToRegExp(value) { + return new RegExp( + `^${value + .toString() + .split(GLOB_PATTERN) + .reduce(function (arr, cur) { + if (cur === "**") { + arr.push(".*?"); + } else if (cur === "*") { + arr.push("[^/]*?"); + } else if (cur) { + arr.push(escapeRegExp(cur)); + } + return arr; + }, []) + .join("")}$` + ); +} + +// this function should return true if patternA is a superset of patternB +// e.g: * is a superset of main-* but main-* is not a superset of *. +export function patternIsSuperset(patternA: string, patternB: string): boolean { + return patternToRegExp(patternA).test(patternB); +} + +function branchesToArray(branches?: string | null | string[]): string[] | "**" { + if (typeof branches === "string") { + return [branches]; + } + if (Array.isArray(branches)) { + if (branches.length === 0) { + return "**"; + } + return branches; + } + return "**"; +} +export interface CodedError { + message: string; + code: string; +} + +function toCodedErrors(errors: { + [code: string]: string; +}): Record { + return Object.entries(errors).reduce((acc, [code, message]) => { + acc[code] = { message, code }; + return acc; + }, {} as Record); +} + +// code to send back via status report +// message to add as a warning annotation to the run +export const WorkflowErrors = toCodedErrors({ + MismatchedBranches: `Please make sure that every branch in on.pull_request is also in on.push so that Code Scanning can compare pull requests against the state of the base branch.`, + MissingPushHook: `Please specify an on.push hook so that Code Scanning can compare pull requests against the state of the base branch.`, + PathsSpecified: `Using on.push.paths can prevent Code Scanning annotating new alerts in your pull requests.`, + PathsIgnoreSpecified: `Using on.push.paths-ignore can prevent Code Scanning annotating new alerts in your pull requests.`, + CheckoutWrongHead: `git checkout HEAD^2 is no longer necessary. Please remove this step as Code Scanning recommends analyzing the merge commit for best results.`, +}); + +export function getWorkflowErrors(doc: Workflow): CodedError[] { + const errors: CodedError[] = []; + + const jobName = process.env.GITHUB_JOB; + + if (jobName) { + const job = doc?.jobs?.[jobName]; + + const steps = job?.steps; + + if (Array.isArray(steps)) { + for (const step of steps) { + // this was advice that we used to give in the README + // we actually want to run the analysis on the merge commit + // to produce results that are more inline with expectations + // (i.e: this is what will happen if you merge this PR) + // and avoid some race conditions + if (step?.run === "git checkout HEAD^2") { + errors.push(WorkflowErrors.CheckoutWrongHead); + break; + } + } + } + } + + let missingPush = false; + + if (doc.on === undefined) { + // this is not a valid config + } else if (typeof doc.on === "string") { + if (doc.on === "pull_request") { + missingPush = true; + } + } else if (Array.isArray(doc.on)) { + const hasPush = doc.on.includes("push"); + const hasPullRequest = doc.on.includes("pull_request"); + if (hasPullRequest && !hasPush) { + missingPush = true; + } + } else if (isObject(doc.on)) { + const hasPush = Object.prototype.hasOwnProperty.call(doc.on, "push"); + const hasPullRequest = Object.prototype.hasOwnProperty.call( + doc.on, + "pull_request" + ); + + if (!hasPush && hasPullRequest) { + missingPush = true; + } + if (hasPush && hasPullRequest) { + const paths = doc.on.push?.paths; + // if you specify paths or paths-ignore you can end up with commits that have no baseline + // if they didn't change any files + // currently we cannot go back through the history and find the most recent baseline + if (Array.isArray(paths) && paths.length > 0) { + errors.push(WorkflowErrors.PathsSpecified); + } + const pathsIgnore = doc.on.push?.["paths-ignore"]; + if (Array.isArray(pathsIgnore) && pathsIgnore.length > 0) { + errors.push(WorkflowErrors.PathsIgnoreSpecified); + } + } + + // if doc.on.pull_request is null that means 'all branches' + // if doc.on.pull_request is undefined that means 'off' + // we only want to check for mismatched branches if pull_request is on. + if (doc.on.pull_request !== undefined) { + const push = branchesToArray(doc.on.push?.branches); + + if (push !== "**") { + const pull_request = branchesToArray(doc.on.pull_request?.branches); + + if (pull_request !== "**") { + const difference = pull_request.filter( + (value) => !push.some((o) => patternIsSuperset(o, value)) + ); + if (difference.length > 0) { + // there are branches in pull_request that may not have a baseline + // because we are not building them on push + errors.push(WorkflowErrors.MismatchedBranches); + } + } else if (push.length > 0) { + // push is set up to run on a subset of branches + // and you could open a PR against a branch with no baseline + errors.push(WorkflowErrors.MismatchedBranches); + } + } + } + } + + if (missingPush) { + errors.push(WorkflowErrors.MissingPushHook); + } + + return errors; +} + +export async function validateWorkflow(): Promise { + let workflow: Workflow; + try { + workflow = await getWorkflow(); + } catch (e) { + return `error: getWorkflow() failed: ${String(e)}`; + } + let workflowErrors: CodedError[]; + try { + workflowErrors = getWorkflowErrors(workflow); + } catch (e) { + return `error: getWorkflowErrors() failed: ${String(e)}`; + } + + if (workflowErrors.length > 0) { + let message: string; + try { + message = formatWorkflowErrors(workflowErrors); + } catch (e) { + return `error: formatWorkflowErrors() failed: ${String(e)}`; + } + core.warning(message); + } + + return formatWorkflowCause(workflowErrors); +} + +export function formatWorkflowErrors(errors: CodedError[]): string { + const issuesWere = errors.length === 1 ? "issue was" : "issues were"; + + const errorsList = errors.map((e) => e.message).join(" "); + + return `${errors.length} ${issuesWere} detected with this workflow: ${errorsList}`; +} + +export function formatWorkflowCause(errors: CodedError[]): undefined | string { + if (errors.length === 0) { + return undefined; + } + return errors.map((e) => e.code).join(","); +} + +export async function getWorkflow(): Promise { + const relativePath = await getWorkflowPath(); + const absolutePath = path.join( + getRequiredEnvParam("GITHUB_WORKSPACE"), + relativePath + ); + + return yaml.load(fs.readFileSync(absolutePath, "utf-8")) as Workflow; +} + +/** + * Get the path of the currently executing workflow. + */ +export async function getWorkflowPath(): Promise { + const repo_nwo = getRequiredEnvParam("GITHUB_REPOSITORY").split("/"); + const owner = repo_nwo[0]; + const repo = repo_nwo[1]; + const run_id = Number(getRequiredEnvParam("GITHUB_RUN_ID")); + + const apiClient = api.getApiClient(); + const runsResponse = await apiClient.request( + "GET /repos/:owner/:repo/actions/runs/:run_id?exclude_pull_requests=true", + { + owner, + repo, + run_id, + } + ); + const workflowUrl = runsResponse.data.workflow_url; + + const workflowResponse = await apiClient.request(`GET ${workflowUrl}`); + + return workflowResponse.data.path; +} + +/** + * Get the workflow run ID. + */ +export function getWorkflowRunID(): number { + const workflowRunID = parseInt(getRequiredEnvParam("GITHUB_RUN_ID"), 10); + if (Number.isNaN(workflowRunID)) { + throw new Error("GITHUB_RUN_ID must define a non NaN workflow run ID"); + } + return workflowRunID; +} + +function getStepsCallingAction( + job: WorkflowJob, + actionName: string +): WorkflowJobStep[] { + const steps = job.steps; + if (!Array.isArray(steps)) { + throw new Error( + `Could not get steps calling ${actionName} since job.steps was not an array.` + ); + } + return steps.filter((step) => step.uses?.includes(actionName)); +} + +/** + * Makes a best effort attempt to retrieve the value of a particular input with which + * an Action in the workflow would be invoked. + * + * Typically you'll want to wrap this function in a try/catch block and handle the error. + * + * @returns the value of the input, or undefined if no such input is passed to the Action + * @throws an error if the value of the input could not be determined, or we could not + * determine that no such input is passed to the Action. + */ +function getInputOrThrow( + workflow: Workflow, + jobName: string, + actionName: string, + inputName: string, + matrixVars: { [key: string]: string } | undefined +) { + const preamble = `Could not get ${inputName} input to ${actionName} since`; + if (!workflow.jobs) { + throw new Error(`${preamble} the workflow has no jobs.`); + } + if (!workflow.jobs[jobName]) { + throw new Error(`${preamble} the workflow has no job named ${jobName}.`); + } + + const stepsCallingAction = getStepsCallingAction( + workflow.jobs[jobName], + actionName + ); + + if (stepsCallingAction.length === 0) { + throw new Error( + `${preamble} the ${jobName} job does not call ${actionName}.` + ); + } else if (stepsCallingAction.length > 1) { + throw new Error( + `${preamble} the ${jobName} job calls ${actionName} multiple times.` + ); + } + + let input = stepsCallingAction[0].with?.[inputName]; + + if (input !== undefined && matrixVars !== undefined) { + // Make a basic attempt to substitute matrix variables + // First normalize by removing whitespace + input = input.replace(/\${{\s+/, "${{").replace(/\s+}}/, "}}"); + for (const [key, value] of Object.entries(matrixVars)) { + input = input.replace(`\${{matrix.${key}}}`, value); + } + } + if (input !== undefined && input.includes("${{")) { + throw new Error( + `Could not get ${inputName} input to ${actionName} since it contained an unrecognized dynamic value.` + ); + } + return input; +} + +/** + * Get the expected name of the analyze Action. + * + * This allows us to test workflow parsing functionality as a CodeQL Action PR check. + */ +function getAnalyzeActionName() { + if (getRequiredEnvParam("GITHUB_REPOSITORY") === "github/codeql-action") { + return "./analyze"; + } else { + return "github/codeql-action/analyze"; + } +} + +/** + * Makes a best effort attempt to retrieve the category input for the particular job, + * given a set of matrix variables. + * + * Typically you'll want to wrap this function in a try/catch block and handle the error. + * + * @returns the category input, or undefined if the category input is not defined + * @throws an error if the category input could not be determined + */ +export function getCategoryInputOrThrow( + workflow: Workflow, + jobName: string, + matrixVars: { [key: string]: string } | undefined +): string | undefined { + return getInputOrThrow( + workflow, + jobName, + getAnalyzeActionName(), + "category", + matrixVars + ); +} + +/** + * Makes a best effort attempt to retrieve the upload input for the particular job, + * given a set of matrix variables. + * + * Typically you'll want to wrap this function in a try/catch block and handle the error. + * + * @returns the upload input + * @throws an error if the upload input could not be determined + */ +export function getUploadInputOrThrow( + workflow: Workflow, + jobName: string, + matrixVars: { [key: string]: string } | undefined +): string { + return ( + getInputOrThrow( + workflow, + jobName, + getAnalyzeActionName(), + "upload", + matrixVars + ) || "true" // if unspecified, upload defaults to true + ); +} + +/** + * Makes a best effort attempt to retrieve the checkout_path input for the + * particular job, given a set of matrix variables. + * + * Typically you'll want to wrap this function in a try/catch block and handle the error. + * + * @returns the checkout_path input + * @throws an error if the checkout_path input could not be determined + */ +export function getCheckoutPathInputOrThrow( + workflow: Workflow, + jobName: string, + matrixVars: { [key: string]: string } | undefined +): string { + return ( + getInputOrThrow( + workflow, + jobName, + getAnalyzeActionName(), + "checkout_path", + matrixVars + ) || getRequiredEnvParam("GITHUB_WORKSPACE") // if unspecified, checkout_path defaults to ${{ github.workspace }} + ); +}