Add support for downloading packs from GHES

This change adds:

- new `registries` block allowed in code scanning config file
- new `registries-auth-tokens` input in init action
- Change the downloadPacks function so that it accepts new parameters:
    - registries block
    - api auth
- Generate a qlconfig.yml file with the registries block if one is
  supplied. Use this file when downloading packs.
- temporarily set the `GITHUB_TOKEN` and `CODEQL_REGISTRIES_AUTH` based
  on api auth

TODO:

1. integration test
2. handle pack downloads when the config is generated by the CLI
This commit is contained in:
Andrew Eisenberg 2022-08-29 12:57:46 -07:00
parent c7bb8946b2
commit 0e98efa2bb
37 changed files with 428 additions and 103 deletions

View file

@ -209,6 +209,7 @@ test("getGitHubVersion", async (t) => {
auth: "",
url: "https://github.com",
apiURL: undefined,
registriesAuthTokens: undefined,
});
t.deepEqual(util.GitHubVariant.DOTCOM, v.type);
@ -217,6 +218,7 @@ test("getGitHubVersion", async (t) => {
auth: "",
url: "https://ghe.example.com",
apiURL: undefined,
registriesAuthTokens: undefined,
});
t.deepEqual(
{ type: util.GitHubVariant.GHES, version: "2.0" } as util.GitHubVersion,
@ -228,6 +230,7 @@ test("getGitHubVersion", async (t) => {
auth: "",
url: "https://example.githubenterprise.com",
apiURL: undefined,
registriesAuthTokens: undefined,
});
t.deepEqual({ type: util.GitHubVariant.GHAE }, ghae);
@ -236,6 +239,7 @@ test("getGitHubVersion", async (t) => {
auth: "",
url: "https://ghe.example.com",
apiURL: undefined,
registriesAuthTokens: undefined,
});
t.deepEqual({ type: util.GitHubVariant.DOTCOM }, v3);
});