Add environment variables to signal feature and version to the CLI

This PR ensures environment variables are set before any invocation of
the CLI.  Here is a list of vars that are set:

https://github.com/github/codeql-coreql-team/issues/1124#issuecomment-852463521

This ensures the CLI knows the features and versions of the containing
actions/runner.

Additionally:

- Fix the user agent so that it more closely aligns with user agent
  spec
- Refactor environment variable initialization so that it all happens in
  one place and call.
- Move Mode, getRequiredEnvParam, setMode, getMode out of actions-util
  and into util. actions-util is meant for utils only called by the
  action, not the runner.

The `prepareLocalRunEnvironment()` method is most likely deprecated and
should be removed. I originally added it because I had a way of working
where I would run the action from my local machine to test out changes,
but this was always a little flaky. So, I no longer use this way of
working. I will probably remove it soon.
This commit is contained in:
Andrew Eisenberg 2021-06-01 14:49:07 -07:00
parent 539d968ad7
commit 3708898bf2
48 changed files with 387 additions and 250 deletions

View file

@ -2,9 +2,9 @@ import * as githubUtils from "@actions/github/lib/utils";
import test, { ExecutionContext } from "ava";
import sinon from "sinon";
import { Mode, setMode } from "./actions-util";
import { getApiClient } from "./api-client";
import { setupTests } from "./testing-utils";
import { Mode, initializeEnvironment } from "./util";
// eslint-disable-next-line import/no-commonjs
const pkg = require("../package.json");
@ -15,7 +15,7 @@ let githubStub: sinon.SinonStub;
test.beforeEach(() => {
githubStub = sinon.stub(githubUtils, "GitHub");
setMode(Mode.actions);
initializeEnvironment(Mode.actions, pkg.version);
});
test("Get the client API", async (t) => {
@ -30,7 +30,7 @@ test("Get the client API", async (t) => {
{
auth: "token xyz",
baseUrl: "http://hucairz/api/v3",
userAgent: `CodeQL Action/${pkg.version}`,
userAgent: `CodeQL-Action/${pkg.version}`,
}
);
});
@ -47,7 +47,7 @@ test("Get the client API external", async (t) => {
{
auth: "token abc",
baseUrl: "http://hucairz/api/v3",
userAgent: `CodeQL Action/${pkg.version}`,
userAgent: `CodeQL-Action/${pkg.version}`,
}
);
});
@ -63,7 +63,7 @@ test("Get the client API external not present", async (t) => {
{
auth: "token xyz",
baseUrl: "http://hucairz/api/v3",
userAgent: `CodeQL Action/${pkg.version}`,
userAgent: `CodeQL-Action/${pkg.version}`,
}
);
});
@ -79,7 +79,7 @@ test("Get the client API with github url", async (t) => {
{
auth: "token xyz",
baseUrl: "https://api.github.com",
userAgent: `CodeQL Action/${pkg.version}`,
userAgent: `CodeQL-Action/${pkg.version}`,
}
);
});