Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fix invalid API call when running locally
The method getAnalysisKey would call getWorkflowPath and raise an API Error.

This change follows the pattern in prepareLocalRunEnvironment to set a dummy value for the required environment variable, therefore shortcutting the API request.
Simon Engledew committed Nov 4, 2020

Unverified

No user is associated with the committer email.
1 parent bc1ee16 commit 5c0e2f9
Showing 7 changed files with 61 additions and 2 deletions.
1 change: 1 addition & 0 deletions CONTRIBUTING.md
@@ -36,6 +36,7 @@ It is possible to run this action locally via [act](https://github.com/nektos/ac

```bash
CODEQL_LOCAL_RUN=true
GITHUB_SERVER_URL=https://github.com

# Optional, for better logging
GITHUB_JOB=<ANY_JOB_NAME>
3 changes: 3 additions & 0 deletions lib/actions-util.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/actions-util.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions lib/actions-util.test.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/actions-util.test.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

29 changes: 29 additions & 0 deletions src/actions-util.test.ts
@@ -33,30 +33,59 @@ test("getRef() returns head PR ref if GITHUB_SHA not currently checked out", asy
t.deepEqual(actualRef, "refs/pull/1/head");
});

test("getAnalysisKey() when a local run", async (t) => {
const origLocalRun = process.env.CODEQL_LOCAL_RUN;

process.env.CODEQL_LOCAL_RUN = "true";
process.env.CODEQL_ACTION_ANALYSIS_KEY = "";
process.env.GITHUB_JOB = "";

actionsutil.prepareLocalRunEnvironment();

const actualAnalysisKey = await actionsutil.getAnalysisKey();

t.deepEqual(actualAnalysisKey, "LOCAL-RUN:UNKNOWN-JOB");

process.env.CODEQL_LOCAL_RUN = origLocalRun;
});

test("prepareEnvironment() when a local run", (t) => {
const origLocalRun = process.env.CODEQL_LOCAL_RUN;

process.env.CODEQL_LOCAL_RUN = "false";
process.env.GITHUB_JOB = "YYY";
process.env.CODEQL_ACTION_ANALYSIS_KEY = "TEST";

actionsutil.prepareLocalRunEnvironment();

// unchanged
t.deepEqual(process.env.GITHUB_JOB, "YYY");
t.deepEqual(process.env.CODEQL_ACTION_ANALYSIS_KEY, "TEST");

process.env.CODEQL_LOCAL_RUN = "true";

actionsutil.prepareLocalRunEnvironment();

// unchanged
t.deepEqual(process.env.GITHUB_JOB, "YYY");
t.deepEqual(process.env.CODEQL_ACTION_ANALYSIS_KEY, "TEST");

process.env.CODEQL_ACTION_ANALYSIS_KEY = "";

actionsutil.prepareLocalRunEnvironment();

// updated
t.deepEqual(process.env.GITHUB_JOB, "YYY");
t.deepEqual(process.env.CODEQL_ACTION_ANALYSIS_KEY, "LOCAL-RUN:YYY");

process.env.GITHUB_JOB = "";
process.env.CODEQL_ACTION_ANALYSIS_KEY = "";

actionsutil.prepareLocalRunEnvironment();

// updated
t.deepEqual(process.env.GITHUB_JOB, "UNKNOWN-JOB");
t.deepEqual(process.env.CODEQL_ACTION_ANALYSIS_KEY, "LOCAL-RUN:UNKNOWN-JOB");

process.env.CODEQL_LOCAL_RUN = origLocalRun;
});
6 changes: 6 additions & 0 deletions src/actions-util.ts
@@ -52,6 +52,12 @@ export function prepareLocalRunEnvironment() {
if (!process.env.GITHUB_JOB) {
core.exportVariable("GITHUB_JOB", "UNKNOWN-JOB");
}
if (!process.env.CODEQL_ACTION_ANALYSIS_KEY) {
core.exportVariable(
"CODEQL_ACTION_ANALYSIS_KEY",
`LOCAL-RUN:${process.env.GITHUB_JOB}`
);
}
}

/**

0 comments on commit 5c0e2f9

Please sign in to comment.