summaryrefslogtreecommitdiffstats
path: root/pkg/runner/testdata/actions/node16/node_modules/@actions/github
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2024-10-20 23:07:42 +0200
committerDaniel Baumann <daniel@debian.org>2024-11-09 15:38:42 +0100
commit714c83b2736d7e308bc33c49057952490eb98be2 (patch)
tree1d9ba7035798368569cd49056f4d596efc908cd8 /pkg/runner/testdata/actions/node16/node_modules/@actions/github
parentInitial commit. (diff)
downloadforgejo-act-debian.tar.xz
forgejo-act-debian.zip
Adding upstream version 1.21.4.HEADupstream/1.21.4upstreamdebian
Signed-off-by: Daniel Baumann <daniel@debian.org>
Diffstat (limited to 'pkg/runner/testdata/actions/node16/node_modules/@actions/github')
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/README.md97
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/context.d.ts29
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/context.js50
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/context.js.map1
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/github.d.ts11
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/github.js36
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/github.js.map1
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/interfaces.d.ts40
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/interfaces.js4
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/interfaces.js.map1
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/internal/utils.d.ts6
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/internal/utils.js43
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/internal/utils.js.map1
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/utils.d.ts21
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/utils.js54
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/utils.js.map1
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/LICENSE21
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/README.md79
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/RELEASES.md26
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/actions.pngbin0 -> 33889 bytes
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/auth.d.ts23
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/auth.js58
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/index.d.ts124
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/index.js537
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/interfaces.d.ts49
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/interfaces.js2
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/package.json39
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/proxy.d.ts2
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/proxy.js57
-rw-r--r--pkg/runner/testdata/actions/node16/node_modules/@actions/github/package.json50
30 files changed, 1463 insertions, 0 deletions
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/README.md b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/README.md
new file mode 100644
index 0000000..02e9be0
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/README.md
@@ -0,0 +1,97 @@
+# `@actions/github`
+
+> A hydrated Octokit client.
+
+## Usage
+
+Returns an authenticated Octokit client that follows the machine [proxy settings](https://help.github.com/en/actions/hosting-your-own-runners/using-a-proxy-server-with-self-hosted-runners) and correctly sets GHES base urls. See https://octokit.github.io/rest.js for the API.
+
+```js
+const github = require('@actions/github');
+const core = require('@actions/core');
+
+async function run() {
+ // This should be a token with access to your repository scoped in as a secret.
+ // The YML workflow will need to set myToken with the GitHub Secret Token
+ // myToken: ${{ secrets.GITHUB_TOKEN }}
+ // https://help.github.com/en/actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token#about-the-github_token-secret
+ const myToken = core.getInput('myToken');
+
+ const octokit = github.getOctokit(myToken)
+
+ // You can also pass in additional options as a second parameter to getOctokit
+ // const octokit = github.getOctokit(myToken, {userAgent: "MyActionVersion1"});
+
+ const { data: pullRequest } = await octokit.pulls.get({
+ owner: 'octokit',
+ repo: 'rest.js',
+ pull_number: 123,
+ mediaType: {
+ format: 'diff'
+ }
+ });
+
+ console.log(pullRequest);
+}
+
+run();
+```
+
+You can also make GraphQL requests. See https://github.com/octokit/graphql.js for the API.
+
+```js
+const result = await octokit.graphql(query, variables);
+```
+
+Finally, you can get the context of the current action:
+
+```js
+const github = require('@actions/github');
+
+const context = github.context;
+
+const newIssue = await octokit.issues.create({
+ ...context.repo,
+ title: 'New issue!',
+ body: 'Hello Universe!'
+});
+```
+
+## Webhook payload typescript definitions
+
+The npm module `@octokit/webhooks` provides type definitions for the response payloads. You can cast the payload to these types for better type information.
+
+First, install the npm module `npm install @octokit/webhooks`
+
+Then, assert the type based on the eventName
+```ts
+import * as core from '@actions/core'
+import * as github from '@actions/github'
+import * as Webhooks from '@octokit/webhooks'
+if (github.context.eventName === 'push') {
+ const pushPayload = github.context.payload as Webhooks.WebhookPayloadPush
+ core.info(`The head commit is: ${pushPayload.head}`)
+}
+```
+
+## Extending the Octokit instance
+`@octokit/core` now supports the [plugin architecture](https://github.com/octokit/core.js#plugins). You can extend the GitHub instance using plugins.
+
+For example, using the `@octokit/plugin-enterprise-server` you can now access enterprise admin apis on GHES instances.
+
+```ts
+import { GitHub, getOctokitOptions } from '@actions/github/lib/utils'
+import { enterpriseServer220Admin } from '@octokit/plugin-enterprise-server'
+
+const octokit = GitHub.plugin(enterpriseServer220Admin)
+// or override some of the default values as well
+// const octokit = GitHub.plugin(enterpriseServer220Admin).defaults({userAgent: "MyNewUserAgent"})
+
+const myToken = core.getInput('myToken');
+const myOctokit = new octokit(getOctokitOptions(token))
+// Create a new user
+myOctokit.enterpriseAdmin.createUser({
+ login: "testuser",
+ email: "testuser@test.com",
+});
+```
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/context.d.ts b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/context.d.ts
new file mode 100644
index 0000000..daab690
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/context.d.ts
@@ -0,0 +1,29 @@
+import { WebhookPayload } from './interfaces';
+export declare class Context {
+ /**
+ * Webhook payload object that triggered the workflow
+ */
+ payload: WebhookPayload;
+ eventName: string;
+ sha: string;
+ ref: string;
+ workflow: string;
+ action: string;
+ actor: string;
+ job: string;
+ runNumber: number;
+ runId: number;
+ /**
+ * Hydrate the context from the environment
+ */
+ constructor();
+ get issue(): {
+ owner: string;
+ repo: string;
+ number: number;
+ };
+ get repo(): {
+ owner: string;
+ repo: string;
+ };
+}
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/context.js b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/context.js
new file mode 100644
index 0000000..dd4d10a
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/context.js
@@ -0,0 +1,50 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Context = void 0;
+const fs_1 = require("fs");
+const os_1 = require("os");
+class Context {
+ /**
+ * Hydrate the context from the environment
+ */
+ constructor() {
+ this.payload = {};
+ if (process.env.GITHUB_EVENT_PATH) {
+ if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {
+ this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));
+ }
+ else {
+ const path = process.env.GITHUB_EVENT_PATH;
+ process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);
+ }
+ }
+ this.eventName = process.env.GITHUB_EVENT_NAME;
+ this.sha = process.env.GITHUB_SHA;
+ this.ref = process.env.GITHUB_REF;
+ this.workflow = process.env.GITHUB_WORKFLOW;
+ this.action = process.env.GITHUB_ACTION;
+ this.actor = process.env.GITHUB_ACTOR;
+ this.job = process.env.GITHUB_JOB;
+ this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);
+ this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);
+ }
+ get issue() {
+ const payload = this.payload;
+ return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });
+ }
+ get repo() {
+ if (process.env.GITHUB_REPOSITORY) {
+ const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');
+ return { owner, repo };
+ }
+ if (this.payload.repository) {
+ return {
+ owner: this.payload.repository.owner.login,
+ repo: this.payload.repository.name
+ };
+ }
+ throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'");
+ }
+}
+exports.Context = Context;
+//# sourceMappingURL=context.js.map \ No newline at end of file
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/context.js.map b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/context.js.map
new file mode 100644
index 0000000..9c4eafe
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/context.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";;;AAEA,2BAA2C;AAC3C,2BAAsB;AAEtB,MAAa,OAAO;IAgBlB;;OAEG;IACH;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACjB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE;YACjC,IAAI,eAAU,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;gBAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CACvB,iBAAY,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAChE,CAAA;aACF;iBAAM;gBACL,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAA;gBAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,kBAAkB,QAAG,EAAE,CAAC,CAAA;aACvE;SACF;QACD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAA2B,CAAA;QACxD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAoB,CAAA;QAC3C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAoB,CAAA;QAC3C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAyB,CAAA;QACrD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAuB,CAAA;QACjD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAsB,CAAA;QAC/C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAoB,CAAA;QAC3C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAA2B,EAAE,EAAE,CAAC,CAAA;QACtE,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAuB,EAAE,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,IAAI,KAAK;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAE5B,uCACK,IAAI,CAAC,IAAI,KACZ,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC,MAAM,IAClE;IACH,CAAC;IAED,IAAI,IAAI;QACN,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE;YACjC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC9D,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,CAAA;SACrB;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YAC3B,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK;gBAC1C,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;aACnC,CAAA;SACF;QAED,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAA;IACH,CAAC;CACF;AApED,0BAoEC"} \ No newline at end of file
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/github.d.ts b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/github.d.ts
new file mode 100644
index 0000000..90c3b98
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/github.d.ts
@@ -0,0 +1,11 @@
+import * as Context from './context';
+import { GitHub } from './utils';
+import { OctokitOptions } from '@octokit/core/dist-types/types';
+export declare const context: Context.Context;
+/**
+ * Returns a hydrated octokit ready to use for GitHub Actions
+ *
+ * @param token the repo PAT or GITHUB_TOKEN
+ * @param options other options to set
+ */
+export declare function getOctokit(token: string, options?: OctokitOptions): InstanceType<typeof GitHub>;
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/github.js b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/github.js
new file mode 100644
index 0000000..e30e81e
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/github.js
@@ -0,0 +1,36 @@
+"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 (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getOctokit = exports.context = void 0;
+const Context = __importStar(require("./context"));
+const utils_1 = require("./utils");
+exports.context = new Context.Context();
+/**
+ * Returns a hydrated octokit ready to use for GitHub Actions
+ *
+ * @param token the repo PAT or GITHUB_TOKEN
+ * @param options other options to set
+ */
+function getOctokit(token, options) {
+ return new utils_1.GitHub(utils_1.getOctokitOptions(token, options));
+}
+exports.getOctokit = getOctokit;
+//# sourceMappingURL=github.js.map \ No newline at end of file
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/github.js.map b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/github.js.map
new file mode 100644
index 0000000..717d03e
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/github.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAoC;AACpC,mCAAiD;AAKpC,QAAA,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAA;AAE5C;;;;;GAKG;AACH,SAAgB,UAAU,CACxB,KAAa,EACb,OAAwB;IAExB,OAAO,IAAI,cAAM,CAAC,yBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;AACtD,CAAC;AALD,gCAKC"} \ No newline at end of file
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/interfaces.d.ts b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/interfaces.d.ts
new file mode 100644
index 0000000..f810333
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/interfaces.d.ts
@@ -0,0 +1,40 @@
+export interface PayloadRepository {
+ [key: string]: any;
+ full_name?: string;
+ name: string;
+ owner: {
+ [key: string]: any;
+ login: string;
+ name?: string;
+ };
+ html_url?: string;
+}
+export interface WebhookPayload {
+ [key: string]: any;
+ repository?: PayloadRepository;
+ issue?: {
+ [key: string]: any;
+ number: number;
+ html_url?: string;
+ body?: string;
+ };
+ pull_request?: {
+ [key: string]: any;
+ number: number;
+ html_url?: string;
+ body?: string;
+ };
+ sender?: {
+ [key: string]: any;
+ type: string;
+ };
+ action?: string;
+ installation?: {
+ id: number;
+ [key: string]: any;
+ };
+ comment?: {
+ id: number;
+ [key: string]: any;
+ };
+}
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/interfaces.js b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/interfaces.js
new file mode 100644
index 0000000..a660b5e
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/interfaces.js
@@ -0,0 +1,4 @@
+"use strict";
+/* eslint-disable @typescript-eslint/no-explicit-any */
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=interfaces.js.map \ No newline at end of file
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/interfaces.js.map b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/interfaces.js.map
new file mode 100644
index 0000000..dc2c960
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/interfaces.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";AAAA,uDAAuD"} \ No newline at end of file
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/internal/utils.d.ts b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/internal/utils.d.ts
new file mode 100644
index 0000000..5790d91
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/internal/utils.d.ts
@@ -0,0 +1,6 @@
+/// <reference types="node" />
+import * as http from 'http';
+import { OctokitOptions } from '@octokit/core/dist-types/types';
+export declare function getAuthString(token: string, options: OctokitOptions): string | undefined;
+export declare function getProxyAgent(destinationUrl: string): http.Agent;
+export declare function getApiBaseUrl(): string;
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/internal/utils.js b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/internal/utils.js
new file mode 100644
index 0000000..197a441
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/internal/utils.js
@@ -0,0 +1,43 @@
+"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 (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;
+const httpClient = __importStar(require("@actions/http-client"));
+function getAuthString(token, options) {
+ if (!token && !options.auth) {
+ throw new Error('Parameter token or opts.auth is required');
+ }
+ else if (token && options.auth) {
+ throw new Error('Parameters token and opts.auth may not both be specified');
+ }
+ return typeof options.auth === 'string' ? options.auth : `token ${token}`;
+}
+exports.getAuthString = getAuthString;
+function getProxyAgent(destinationUrl) {
+ const hc = new httpClient.HttpClient();
+ return hc.getAgent(destinationUrl);
+}
+exports.getProxyAgent = getProxyAgent;
+function getApiBaseUrl() {
+ return process.env['GITHUB_API_URL'] || 'https://api.github.com';
+}
+exports.getApiBaseUrl = getApiBaseUrl;
+//# sourceMappingURL=utils.js.map \ No newline at end of file
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/internal/utils.js.map b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/internal/utils.js.map
new file mode 100644
index 0000000..f1f519d
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/internal/utils.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/internal/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,iEAAkD;AAGlD,SAAgB,aAAa,CAC3B,KAAa,EACb,OAAuB;IAEvB,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;KAC5D;SAAM,IAAI,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;KAC5E;IAED,OAAO,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAA;AAC3E,CAAC;AAXD,sCAWC;AAED,SAAgB,aAAa,CAAC,cAAsB;IAClD,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,CAAA;IACtC,OAAO,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;AACpC,CAAC;AAHD,sCAGC;AAED,SAAgB,aAAa;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,wBAAwB,CAAA;AAClE,CAAC;AAFD,sCAEC"} \ No newline at end of file
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/utils.d.ts b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/utils.d.ts
new file mode 100644
index 0000000..0015a35
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/utils.d.ts
@@ -0,0 +1,21 @@
+import * as Context from './context';
+import { Octokit } from '@octokit/core';
+import { OctokitOptions } from '@octokit/core/dist-types/types';
+export declare const context: Context.Context;
+export declare const GitHub: (new (...args: any[]) => {
+ [x: string]: any;
+}) & {
+ new (...args: any[]): {
+ [x: string]: any;
+ };
+ plugins: any[];
+} & typeof Octokit & import("@octokit/core/dist-types/types").Constructor<import("@octokit/plugin-rest-endpoint-methods/dist-types/generated/method-types").RestEndpointMethods & {
+ paginate: import("@octokit/plugin-paginate-rest").PaginateInterface;
+}>;
+/**
+ * Convience function to correctly format Octokit Options to pass into the constructor.
+ *
+ * @param token the repo PAT or GITHUB_TOKEN
+ * @param options other options to set
+ */
+export declare function getOctokitOptions(token: string, options?: OctokitOptions): OctokitOptions;
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/utils.js b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/utils.js
new file mode 100644
index 0000000..b066c22
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/utils.js
@@ -0,0 +1,54 @@
+"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 (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getOctokitOptions = exports.GitHub = exports.context = void 0;
+const Context = __importStar(require("./context"));
+const Utils = __importStar(require("./internal/utils"));
+// octokit + plugins
+const core_1 = require("@octokit/core");
+const plugin_rest_endpoint_methods_1 = require("@octokit/plugin-rest-endpoint-methods");
+const plugin_paginate_rest_1 = require("@octokit/plugin-paginate-rest");
+exports.context = new Context.Context();
+const baseUrl = Utils.getApiBaseUrl();
+const defaults = {
+ baseUrl,
+ request: {
+ agent: Utils.getProxyAgent(baseUrl)
+ }
+};
+exports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(defaults);
+/**
+ * Convience function to correctly format Octokit Options to pass into the constructor.
+ *
+ * @param token the repo PAT or GITHUB_TOKEN
+ * @param options other options to set
+ */
+function getOctokitOptions(token, options) {
+ const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller
+ // Auth
+ const auth = Utils.getAuthString(token, opts);
+ if (auth) {
+ opts.auth = auth;
+ }
+ return opts;
+}
+exports.getOctokitOptions = getOctokitOptions;
+//# sourceMappingURL=utils.js.map \ No newline at end of file
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/utils.js.map b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/utils.js.map
new file mode 100644
index 0000000..3a6f6b4
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/lib/utils.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAoC;AACpC,wDAAyC;AAEzC,oBAAoB;AACpB,wCAAqC;AAErC,wFAAyE;AACzE,wEAA0D;AAE7C,QAAA,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAA;AAE5C,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,EAAE,CAAA;AACrC,MAAM,QAAQ,GAAG;IACf,OAAO;IACP,OAAO,EAAE;QACP,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC;KACpC;CACF,CAAA;AAEY,QAAA,MAAM,GAAG,cAAO,CAAC,MAAM,CAClC,kDAAmB,EACnB,mCAAY,CACb,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAEpB;;;;;GAKG;AACH,SAAgB,iBAAiB,CAC/B,KAAa,EACb,OAAwB;IAExB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC,CAAA,CAAC,iEAAiE;IAE/G,OAAO;IACP,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC7C,IAAI,IAAI,EAAE;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;KACjB;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAbD,8CAaC"} \ No newline at end of file
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/LICENSE b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/LICENSE
new file mode 100644
index 0000000..5823a51
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/LICENSE
@@ -0,0 +1,21 @@
+Actions Http Client for Node.js
+
+Copyright (c) GitHub, Inc.
+
+All rights reserved.
+
+MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
+associated documentation files (the "Software"), to deal in the Software without restriction,
+including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/README.md b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/README.md
new file mode 100644
index 0000000..be61eb3
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/README.md
@@ -0,0 +1,79 @@
+
+<p align="center">
+ <img src="actions.png">
+</p>
+
+# Actions Http-Client
+
+[![Http Status](https://github.com/actions/http-client/workflows/http-tests/badge.svg)](https://github.com/actions/http-client/actions)
+
+A lightweight HTTP client optimized for use with actions, TypeScript with generics and async await.
+
+## Features
+
+ - HTTP client with TypeScript generics and async/await/Promises
+ - Typings included so no need to acquire separately (great for intellisense and no versioning drift)
+ - [Proxy support](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/about-self-hosted-runners#using-a-proxy-server-with-self-hosted-runners) just works with actions and the runner
+ - Targets ES2019 (runner runs actions with node 12+). Only supported on node 12+.
+ - Basic, Bearer and PAT Support out of the box. Extensible handlers for others.
+ - Redirects supported
+
+Features and releases [here](./RELEASES.md)
+
+## Install
+
+```
+npm install @actions/http-client --save
+```
+
+## Samples
+
+See the [HTTP](./__tests__) tests for detailed examples.
+
+## Errors
+
+### HTTP
+
+The HTTP client does not throw unless truly exceptional.
+
+* A request that successfully executes resulting in a 404, 500 etc... will return a response object with a status code and a body.
+* Redirects (3xx) will be followed by default.
+
+See [HTTP tests](./__tests__) for detailed examples.
+
+## Debugging
+
+To enable detailed console logging of all HTTP requests and responses, set the NODE_DEBUG environment varible:
+
+```
+export NODE_DEBUG=http
+```
+
+## Node support
+
+The http-client is built using the latest LTS version of Node 12. It may work on previous node LTS versions but it's tested and officially supported on Node12+.
+
+## Support and Versioning
+
+We follow semver and will hold compatibility between major versions and increment the minor version with new features and capabilities (while holding compat).
+
+## Contributing
+
+We welcome PRs. Please create an issue and if applicable, a design before proceeding with code.
+
+once:
+
+```bash
+$ npm install
+```
+
+To build:
+
+```bash
+$ npm run build
+```
+
+To run all tests:
+```bash
+$ npm test
+```
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/RELEASES.md b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/RELEASES.md
new file mode 100644
index 0000000..935178a
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/RELEASES.md
@@ -0,0 +1,26 @@
+## Releases
+
+## 1.0.10
+
+Contains a bug fix where proxy is defined without a user and password. see [PR here](https://github.com/actions/http-client/pull/42)
+
+## 1.0.9
+Throw HttpClientError instead of a generic Error from the \<verb>Json() helper methods when the server responds with a non-successful status code.
+
+## 1.0.8
+Fixed security issue where a redirect (e.g. 302) to another domain would pass headers. The fix was to strip the authorization header if the hostname was different. More [details in PR #27](https://github.com/actions/http-client/pull/27)
+
+## 1.0.7
+Update NPM dependencies and add 429 to the list of HttpCodes
+
+## 1.0.6
+Automatically sends Content-Type and Accept application/json headers for \<verb>Json() helper methods if not set in the client or parameters.
+
+## 1.0.5
+Adds \<verb>Json() helper methods for json over http scenarios.
+
+## 1.0.4
+Started to add \<verb>Json() helper methods. Do not use this release for that. Use >= 1.0.5 since there was an issue with types.
+
+## 1.0.1 to 1.0.3
+Adds proxy support.
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/actions.png b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/actions.png
new file mode 100644
index 0000000..1857ef3
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/actions.png
Binary files differ
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/auth.d.ts b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/auth.d.ts
new file mode 100644
index 0000000..1094189
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/auth.d.ts
@@ -0,0 +1,23 @@
+import ifm = require('./interfaces');
+export declare class BasicCredentialHandler implements ifm.IRequestHandler {
+ username: string;
+ password: string;
+ constructor(username: string, password: string);
+ prepareRequest(options: any): void;
+ canHandleAuthentication(response: ifm.IHttpClientResponse): boolean;
+ handleAuthentication(httpClient: ifm.IHttpClient, requestInfo: ifm.IRequestInfo, objs: any): Promise<ifm.IHttpClientResponse>;
+}
+export declare class BearerCredentialHandler implements ifm.IRequestHandler {
+ token: string;
+ constructor(token: string);
+ prepareRequest(options: any): void;
+ canHandleAuthentication(response: ifm.IHttpClientResponse): boolean;
+ handleAuthentication(httpClient: ifm.IHttpClient, requestInfo: ifm.IRequestInfo, objs: any): Promise<ifm.IHttpClientResponse>;
+}
+export declare class PersonalAccessTokenCredentialHandler implements ifm.IRequestHandler {
+ token: string;
+ constructor(token: string);
+ prepareRequest(options: any): void;
+ canHandleAuthentication(response: ifm.IHttpClientResponse): boolean;
+ handleAuthentication(httpClient: ifm.IHttpClient, requestInfo: ifm.IRequestInfo, objs: any): Promise<ifm.IHttpClientResponse>;
+}
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/auth.js b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/auth.js
new file mode 100644
index 0000000..67a58aa
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/auth.js
@@ -0,0 +1,58 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class BasicCredentialHandler {
+ constructor(username, password) {
+ this.username = username;
+ this.password = password;
+ }
+ prepareRequest(options) {
+ options.headers['Authorization'] =
+ 'Basic ' +
+ Buffer.from(this.username + ':' + this.password).toString('base64');
+ }
+ // This handler cannot handle 401
+ canHandleAuthentication(response) {
+ return false;
+ }
+ handleAuthentication(httpClient, requestInfo, objs) {
+ return null;
+ }
+}
+exports.BasicCredentialHandler = BasicCredentialHandler;
+class BearerCredentialHandler {
+ constructor(token) {
+ this.token = token;
+ }
+ // currently implements pre-authorization
+ // TODO: support preAuth = false where it hooks on 401
+ prepareRequest(options) {
+ options.headers['Authorization'] = 'Bearer ' + this.token;
+ }
+ // This handler cannot handle 401
+ canHandleAuthentication(response) {
+ return false;
+ }
+ handleAuthentication(httpClient, requestInfo, objs) {
+ return null;
+ }
+}
+exports.BearerCredentialHandler = BearerCredentialHandler;
+class PersonalAccessTokenCredentialHandler {
+ constructor(token) {
+ this.token = token;
+ }
+ // currently implements pre-authorization
+ // TODO: support preAuth = false where it hooks on 401
+ prepareRequest(options) {
+ options.headers['Authorization'] =
+ 'Basic ' + Buffer.from('PAT:' + this.token).toString('base64');
+ }
+ // This handler cannot handle 401
+ canHandleAuthentication(response) {
+ return false;
+ }
+ handleAuthentication(httpClient, requestInfo, objs) {
+ return null;
+ }
+}
+exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/index.d.ts b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/index.d.ts
new file mode 100644
index 0000000..9583dc7
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/index.d.ts
@@ -0,0 +1,124 @@
+/// <reference types="node" />
+import http = require('http');
+import ifm = require('./interfaces');
+export declare enum HttpCodes {
+ OK = 200,
+ MultipleChoices = 300,
+ MovedPermanently = 301,
+ ResourceMoved = 302,
+ SeeOther = 303,
+ NotModified = 304,
+ UseProxy = 305,
+ SwitchProxy = 306,
+ TemporaryRedirect = 307,
+ PermanentRedirect = 308,
+ BadRequest = 400,
+ Unauthorized = 401,
+ PaymentRequired = 402,
+ Forbidden = 403,
+ NotFound = 404,
+ MethodNotAllowed = 405,
+ NotAcceptable = 406,
+ ProxyAuthenticationRequired = 407,
+ RequestTimeout = 408,
+ Conflict = 409,
+ Gone = 410,
+ TooManyRequests = 429,
+ InternalServerError = 500,
+ NotImplemented = 501,
+ BadGateway = 502,
+ ServiceUnavailable = 503,
+ GatewayTimeout = 504
+}
+export declare enum Headers {
+ Accept = "accept",
+ ContentType = "content-type"
+}
+export declare enum MediaTypes {
+ ApplicationJson = "application/json"
+}
+/**
+ * Returns the proxy URL, depending upon the supplied url and proxy environment variables.
+ * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com
+ */
+export declare function getProxyUrl(serverUrl: string): string;
+export declare class HttpClientError extends Error {
+ constructor(message: string, statusCode: number);
+ statusCode: number;
+ result?: any;
+}
+export declare class HttpClientResponse implements ifm.IHttpClientResponse {
+ constructor(message: http.IncomingMessage);
+ message: http.IncomingMessage;
+ readBody(): Promise<string>;
+}
+export declare function isHttps(requestUrl: string): boolean;
+export declare class HttpClient {
+ userAgent: string | undefined;
+ handlers: ifm.IRequestHandler[];
+ requestOptions: ifm.IRequestOptions;
+ private _ignoreSslError;
+ private _socketTimeout;
+ private _allowRedirects;
+ private _allowRedirectDowngrade;
+ private _maxRedirects;
+ private _allowRetries;
+ private _maxRetries;
+ private _agent;
+ private _proxyAgent;
+ private _keepAlive;
+ private _disposed;
+ constructor(userAgent?: string, handlers?: ifm.IRequestHandler[], requestOptions?: ifm.IRequestOptions);
+ options(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>;
+ get(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>;
+ del(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>;
+ post(requestUrl: string, data: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>;
+ patch(requestUrl: string, data: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>;
+ put(requestUrl: string, data: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>;
+ head(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>;
+ sendStream(verb: string, requestUrl: string, stream: NodeJS.ReadableStream, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>;
+ /**
+ * Gets a typed object from an endpoint
+ * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise
+ */
+ getJson<T>(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.ITypedResponse<T>>;
+ postJson<T>(requestUrl: string, obj: any, additionalHeaders?: ifm.IHeaders): Promise<ifm.ITypedResponse<T>>;
+ putJson<T>(requestUrl: string, obj: any, additionalHeaders?: ifm.IHeaders): Promise<ifm.ITypedResponse<T>>;
+ patchJson<T>(requestUrl: string, obj: any, additionalHeaders?: ifm.IHeaders): Promise<ifm.ITypedResponse<T>>;
+ /**
+ * Makes a raw http request.
+ * All other methods such as get, post, patch, and request ultimately call this.
+ * Prefer get, del, post and patch
+ */
+ request(verb: string, requestUrl: string, data: string | NodeJS.ReadableStream, headers: ifm.IHeaders): Promise<ifm.IHttpClientResponse>;
+ /**
+ * Needs to be called if keepAlive is set to true in request options.
+ */
+ dispose(): void;
+ /**
+ * Raw request.
+ * @param info
+ * @param data
+ */
+ requestRaw(info: ifm.IRequestInfo, data: string | NodeJS.ReadableStream): Promise<ifm.IHttpClientResponse>;
+ /**
+ * Raw request with callback.
+ * @param info
+ * @param data
+ * @param onResult
+ */
+ requestRawWithCallback(info: ifm.IRequestInfo, data: string | NodeJS.ReadableStream, onResult: (err: any, res: ifm.IHttpClientResponse) => void): void;
+ /**
+ * Gets an http agent. This function is useful when you need an http agent that handles
+ * routing through a proxy server - depending upon the url and proxy environment variables.
+ * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com
+ */
+ getAgent(serverUrl: string): http.Agent;
+ private _prepareRequest;
+ private _mergeHeaders;
+ private _getExistingOrDefaultHeader;
+ private _getAgent;
+ private _performExponentialBackoff;
+ private static dateTimeDeserializer;
+ private _processResponse;
+}
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/index.js b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/index.js
new file mode 100644
index 0000000..43b2b10
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/index.js
@@ -0,0 +1,537 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const http = require("http");
+const https = require("https");
+const pm = require("./proxy");
+let tunnel;
+var HttpCodes;
+(function (HttpCodes) {
+ HttpCodes[HttpCodes["OK"] = 200] = "OK";
+ HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices";
+ HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently";
+ HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved";
+ HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther";
+ HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified";
+ HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy";
+ HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy";
+ HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect";
+ HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect";
+ HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest";
+ HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized";
+ HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired";
+ HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden";
+ HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound";
+ HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed";
+ HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable";
+ HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired";
+ HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout";
+ HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict";
+ HttpCodes[HttpCodes["Gone"] = 410] = "Gone";
+ HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests";
+ HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError";
+ HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented";
+ HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway";
+ HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable";
+ HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout";
+})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));
+var Headers;
+(function (Headers) {
+ Headers["Accept"] = "accept";
+ Headers["ContentType"] = "content-type";
+})(Headers = exports.Headers || (exports.Headers = {}));
+var MediaTypes;
+(function (MediaTypes) {
+ MediaTypes["ApplicationJson"] = "application/json";
+})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));
+/**
+ * Returns the proxy URL, depending upon the supplied url and proxy environment variables.
+ * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com
+ */
+function getProxyUrl(serverUrl) {
+ let proxyUrl = pm.getProxyUrl(new URL(serverUrl));
+ return proxyUrl ? proxyUrl.href : '';
+}
+exports.getProxyUrl = getProxyUrl;
+const HttpRedirectCodes = [
+ HttpCodes.MovedPermanently,
+ HttpCodes.ResourceMoved,
+ HttpCodes.SeeOther,
+ HttpCodes.TemporaryRedirect,
+ HttpCodes.PermanentRedirect
+];
+const HttpResponseRetryCodes = [
+ HttpCodes.BadGateway,
+ HttpCodes.ServiceUnavailable,
+ HttpCodes.GatewayTimeout
+];
+const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];
+const ExponentialBackoffCeiling = 10;
+const ExponentialBackoffTimeSlice = 5;
+class HttpClientError extends Error {
+ constructor(message, statusCode) {
+ super(message);
+ this.name = 'HttpClientError';
+ this.statusCode = statusCode;
+ Object.setPrototypeOf(this, HttpClientError.prototype);
+ }
+}
+exports.HttpClientError = HttpClientError;
+class HttpClientResponse {
+ constructor(message) {
+ this.message = message;
+ }
+ readBody() {
+ return new Promise(async (resolve, reject) => {
+ let output = Buffer.alloc(0);
+ this.message.on('data', (chunk) => {
+ output = Buffer.concat([output, chunk]);
+ });
+ this.message.on('end', () => {
+ resolve(output.toString());
+ });
+ });
+ }
+}
+exports.HttpClientResponse = HttpClientResponse;
+function isHttps(requestUrl) {
+ let parsedUrl = new URL(requestUrl);
+ return parsedUrl.protocol === 'https:';
+}
+exports.isHttps = isHttps;
+class HttpClient {
+ constructor(userAgent, handlers, requestOptions) {
+ this._ignoreSslError = false;
+ this._allowRedirects = true;
+ this._allowRedirectDowngrade = false;
+ this._maxRedirects = 50;
+ this._allowRetries = false;
+ this._maxRetries = 1;
+ this._keepAlive = false;
+ this._disposed = false;
+ this.userAgent = userAgent;
+ this.handlers = handlers || [];
+ this.requestOptions = requestOptions;
+ if (requestOptions) {
+ if (requestOptions.ignoreSslError != null) {
+ this._ignoreSslError = requestOptions.ignoreSslError;
+ }
+ this._socketTimeout = requestOptions.socketTimeout;
+ if (requestOptions.allowRedirects != null) {
+ this._allowRedirects = requestOptions.allowRedirects;
+ }
+ if (requestOptions.allowRedirectDowngrade != null) {
+ this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;
+ }
+ if (requestOptions.maxRedirects != null) {
+ this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);
+ }
+ if (requestOptions.keepAlive != null) {
+ this._keepAlive = requestOptions.keepAlive;
+ }
+ if (requestOptions.allowRetries != null) {
+ this._allowRetries = requestOptions.allowRetries;
+ }
+ if (requestOptions.maxRetries != null) {
+ this._maxRetries = requestOptions.maxRetries;
+ }
+ }
+ }
+ options(requestUrl, additionalHeaders) {
+ return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});
+ }
+ get(requestUrl, additionalHeaders) {
+ return this.request('GET', requestUrl, null, additionalHeaders || {});
+ }
+ del(requestUrl, additionalHeaders) {
+ return this.request('DELETE', requestUrl, null, additionalHeaders || {});
+ }
+ post(requestUrl, data, additionalHeaders) {
+ return this.request('POST', requestUrl, data, additionalHeaders || {});
+ }
+ patch(requestUrl, data, additionalHeaders) {
+ return this.request('PATCH', requestUrl, data, additionalHeaders || {});
+ }
+ put(requestUrl, data, additionalHeaders) {
+ return this.request('PUT', requestUrl, data, additionalHeaders || {});
+ }
+ head(requestUrl, additionalHeaders) {
+ return this.request('HEAD', requestUrl, null, additionalHeaders || {});
+ }
+ sendStream(verb, requestUrl, stream, additionalHeaders) {
+ return this.request(verb, requestUrl, stream, additionalHeaders);
+ }
+ /**
+ * Gets a typed object from an endpoint
+ * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise
+ */
+ async getJson(requestUrl, additionalHeaders = {}) {
+ additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);
+ let res = await this.get(requestUrl, additionalHeaders);
+ return this._processResponse(res, this.requestOptions);
+ }
+ async postJson(requestUrl, obj, additionalHeaders = {}) {
+ let data = JSON.stringify(obj, null, 2);
+ additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);
+ additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);
+ let res = await this.post(requestUrl, data, additionalHeaders);
+ return this._processResponse(res, this.requestOptions);
+ }
+ async putJson(requestUrl, obj, additionalHeaders = {}) {
+ let data = JSON.stringify(obj, null, 2);
+ additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);
+ additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);
+ let res = await this.put(requestUrl, data, additionalHeaders);
+ return this._processResponse(res, this.requestOptions);
+ }
+ async patchJson(requestUrl, obj, additionalHeaders = {}) {
+ let data = JSON.stringify(obj, null, 2);
+ additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);
+ additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);
+ let res = await this.patch(requestUrl, data, additionalHeaders);
+ return this._processResponse(res, this.requestOptions);
+ }
+ /**
+ * Makes a raw http request.
+ * All other methods such as get, post, patch, and request ultimately call this.
+ * Prefer get, del, post and patch
+ */
+ async request(verb, requestUrl, data, headers) {
+ if (this._disposed) {
+ throw new Error('Client has already been disposed.');
+ }
+ let parsedUrl = new URL(requestUrl);
+ let info = this._prepareRequest(verb, parsedUrl, headers);
+ // Only perform retries on reads since writes may not be idempotent.
+ let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1
+ ? this._maxRetries + 1
+ : 1;
+ let numTries = 0;
+ let response;
+ while (numTries < maxTries) {
+ response = await this.requestRaw(info, data);
+ // Check if it's an authentication challenge
+ if (response &&
+ response.message &&
+ response.message.statusCode === HttpCodes.Unauthorized) {
+ let authenticationHandler;
+ for (let i = 0; i < this.handlers.length; i++) {
+ if (this.handlers[i].canHandleAuthentication(response)) {
+ authenticationHandler = this.handlers[i];
+ break;
+ }
+ }
+ if (authenticationHandler) {
+ return authenticationHandler.handleAuthentication(this, info, data);
+ }
+ else {
+ // We have received an unauthorized response but have no handlers to handle it.
+ // Let the response return to the caller.
+ return response;
+ }
+ }
+ let redirectsRemaining = this._maxRedirects;
+ while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&
+ this._allowRedirects &&
+ redirectsRemaining > 0) {
+ const redirectUrl = response.message.headers['location'];
+ if (!redirectUrl) {
+ // if there's no location to redirect to, we won't
+ break;
+ }
+ let parsedRedirectUrl = new URL(redirectUrl);
+ if (parsedUrl.protocol == 'https:' &&
+ parsedUrl.protocol != parsedRedirectUrl.protocol &&
+ !this._allowRedirectDowngrade) {
+ throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.');
+ }
+ // we need to finish reading the response before reassigning response
+ // which will leak the open socket.
+ await response.readBody();
+ // strip authorization header if redirected to a different hostname
+ if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {
+ for (let header in headers) {
+ // header names are case insensitive
+ if (header.toLowerCase() === 'authorization') {
+ delete headers[header];
+ }
+ }
+ }
+ // let's make the request with the new redirectUrl
+ info = this._prepareRequest(verb, parsedRedirectUrl, headers);
+ response = await this.requestRaw(info, data);
+ redirectsRemaining--;
+ }
+ if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {
+ // If not a retry code, return immediately instead of retrying
+ return response;
+ }
+ numTries += 1;
+ if (numTries < maxTries) {
+ await response.readBody();
+ await this._performExponentialBackoff(numTries);
+ }
+ }
+ return response;
+ }
+ /**
+ * Needs to be called if keepAlive is set to true in request options.
+ */
+ dispose() {
+ if (this._agent) {
+ this._agent.destroy();
+ }
+ this._disposed = true;
+ }
+ /**
+ * Raw request.
+ * @param info
+ * @param data
+ */
+ requestRaw(info, data) {
+ return new Promise((resolve, reject) => {
+ let callbackForResult = function (err, res) {
+ if (err) {
+ reject(err);
+ }
+ resolve(res);
+ };
+ this.requestRawWithCallback(info, data, callbackForResult);
+ });
+ }
+ /**
+ * Raw request with callback.
+ * @param info
+ * @param data
+ * @param onResult
+ */
+ requestRawWithCallback(info, data, onResult) {
+ let socket;
+ if (typeof data === 'string') {
+ info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');
+ }
+ let callbackCalled = false;
+ let handleResult = (err, res) => {
+ if (!callbackCalled) {
+ callbackCalled = true;
+ onResult(err, res);
+ }
+ };
+ let req = info.httpModule.request(info.options, (msg) => {
+ let res = new HttpClientResponse(msg);
+ handleResult(null, res);
+ });
+ req.on('socket', sock => {
+ socket = sock;
+ });
+ // If we ever get disconnected, we want the socket to timeout eventually
+ req.setTimeout(this._socketTimeout || 3 * 60000, () => {
+ if (socket) {
+ socket.end();
+ }
+ handleResult(new Error('Request timeout: ' + info.options.path), null);
+ });
+ req.on('error', function (err) {
+ // err has statusCode property
+ // res should have headers
+ handleResult(err, null);
+ });
+ if (data && typeof data === 'string') {
+ req.write(data, 'utf8');
+ }
+ if (data && typeof data !== 'string') {
+ data.on('close', function () {
+ req.end();
+ });
+ data.pipe(req);
+ }
+ else {
+ req.end();
+ }
+ }
+ /**
+ * Gets an http agent. This function is useful when you need an http agent that handles
+ * routing through a proxy server - depending upon the url and proxy environment variables.
+ * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com
+ */
+ getAgent(serverUrl) {
+ let parsedUrl = new URL(serverUrl);
+ return this._getAgent(parsedUrl);
+ }
+ _prepareRequest(method, requestUrl, headers) {
+ const info = {};
+ info.parsedUrl = requestUrl;
+ const usingSsl = info.parsedUrl.protocol === 'https:';
+ info.httpModule = usingSsl ? https : http;
+ const defaultPort = usingSsl ? 443 : 80;
+ info.options = {};
+ info.options.host = info.parsedUrl.hostname;
+ info.options.port = info.parsedUrl.port
+ ? parseInt(info.parsedUrl.port)
+ : defaultPort;
+ info.options.path =
+ (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');
+ info.options.method = method;
+ info.options.headers = this._mergeHeaders(headers);
+ if (this.userAgent != null) {
+ info.options.headers['user-agent'] = this.userAgent;
+ }
+ info.options.agent = this._getAgent(info.parsedUrl);
+ // gives handlers an opportunity to participate
+ if (this.handlers) {
+ this.handlers.forEach(handler => {
+ handler.prepareRequest(info.options);
+ });
+ }
+ return info;
+ }
+ _mergeHeaders(headers) {
+ const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});
+ if (this.requestOptions && this.requestOptions.headers) {
+ return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));
+ }
+ return lowercaseKeys(headers || {});
+ }
+ _getExistingOrDefaultHeader(additionalHeaders, header, _default) {
+ const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});
+ let clientHeader;
+ if (this.requestOptions && this.requestOptions.headers) {
+ clientHeader = lowercaseKeys(this.requestOptions.headers)[header];
+ }
+ return additionalHeaders[header] || clientHeader || _default;
+ }
+ _getAgent(parsedUrl) {
+ let agent;
+ let proxyUrl = pm.getProxyUrl(parsedUrl);
+ let useProxy = proxyUrl && proxyUrl.hostname;
+ if (this._keepAlive && useProxy) {
+ agent = this._proxyAgent;
+ }
+ if (this._keepAlive && !useProxy) {
+ agent = this._agent;
+ }
+ // if agent is already assigned use that agent.
+ if (!!agent) {
+ return agent;
+ }
+ const usingSsl = parsedUrl.protocol === 'https:';
+ let maxSockets = 100;
+ if (!!this.requestOptions) {
+ maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;
+ }
+ if (useProxy) {
+ // If using proxy, need tunnel
+ if (!tunnel) {
+ tunnel = require('tunnel');
+ }
+ const agentOptions = {
+ maxSockets: maxSockets,
+ keepAlive: this._keepAlive,
+ proxy: {
+ ...((proxyUrl.username || proxyUrl.password) && {
+ proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`
+ }),
+ host: proxyUrl.hostname,
+ port: proxyUrl.port
+ }
+ };
+ let tunnelAgent;
+ const overHttps = proxyUrl.protocol === 'https:';
+ if (usingSsl) {
+ tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;
+ }
+ else {
+ tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;
+ }
+ agent = tunnelAgent(agentOptions);
+ this._proxyAgent = agent;
+ }
+ // if reusing agent across request and tunneling agent isn't assigned create a new agent
+ if (this._keepAlive && !agent) {
+ const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };
+ agent = usingSsl ? new https.Agent(options) : new http.Agent(options);
+ this._agent = agent;
+ }
+ // if not using private agent and tunnel agent isn't setup then use global agent
+ if (!agent) {
+ agent = usingSsl ? https.globalAgent : http.globalAgent;
+ }
+ if (usingSsl && this._ignoreSslError) {
+ // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process
+ // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options
+ // we have to cast it to any and change it directly
+ agent.options = Object.assign(agent.options || {}, {
+ rejectUnauthorized: false
+ });
+ }
+ return agent;
+ }
+ _performExponentialBackoff(retryNumber) {
+ retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);
+ const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);
+ return new Promise(resolve => setTimeout(() => resolve(), ms));
+ }
+ static dateTimeDeserializer(key, value) {
+ if (typeof value === 'string') {
+ let a = new Date(value);
+ if (!isNaN(a.valueOf())) {
+ return a;
+ }
+ }
+ return value;
+ }
+ async _processResponse(res, options) {
+ return new Promise(async (resolve, reject) => {
+ const statusCode = res.message.statusCode;
+ const response = {
+ statusCode: statusCode,
+ result: null,
+ headers: {}
+ };
+ // not found leads to null obj returned
+ if (statusCode == HttpCodes.NotFound) {
+ resolve(response);
+ }
+ let obj;
+ let contents;
+ // get the result from the body
+ try {
+ contents = await res.readBody();
+ if (contents && contents.length > 0) {
+ if (options && options.deserializeDates) {
+ obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);
+ }
+ else {
+ obj = JSON.parse(contents);
+ }
+ response.result = obj;
+ }
+ response.headers = res.message.headers;
+ }
+ catch (err) {
+ // Invalid resource (contents not json); leaving result obj null
+ }
+ // note that 3xx redirects are handled by the http layer.
+ if (statusCode > 299) {
+ let msg;
+ // if exception/error in body, attempt to get better error
+ if (obj && obj.message) {
+ msg = obj.message;
+ }
+ else if (contents && contents.length > 0) {
+ // it may be the case that the exception is in the body message as string
+ msg = contents;
+ }
+ else {
+ msg = 'Failed request: (' + statusCode + ')';
+ }
+ let err = new HttpClientError(msg, statusCode);
+ err.result = response.result;
+ reject(err);
+ }
+ else {
+ resolve(response);
+ }
+ });
+ }
+}
+exports.HttpClient = HttpClient;
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/interfaces.d.ts b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/interfaces.d.ts
new file mode 100644
index 0000000..78bd85b
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/interfaces.d.ts
@@ -0,0 +1,49 @@
+/// <reference types="node" />
+import http = require('http');
+export interface IHeaders {
+ [key: string]: any;
+}
+export interface IHttpClient {
+ options(requestUrl: string, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>;
+ get(requestUrl: string, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>;
+ del(requestUrl: string, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>;
+ post(requestUrl: string, data: string, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>;
+ patch(requestUrl: string, data: string, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>;
+ put(requestUrl: string, data: string, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>;
+ sendStream(verb: string, requestUrl: string, stream: NodeJS.ReadableStream, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>;
+ request(verb: string, requestUrl: string, data: string | NodeJS.ReadableStream, headers: IHeaders): Promise<IHttpClientResponse>;
+ requestRaw(info: IRequestInfo, data: string | NodeJS.ReadableStream): Promise<IHttpClientResponse>;
+ requestRawWithCallback(info: IRequestInfo, data: string | NodeJS.ReadableStream, onResult: (err: any, res: IHttpClientResponse) => void): void;
+}
+export interface IRequestHandler {
+ prepareRequest(options: http.RequestOptions): void;
+ canHandleAuthentication(response: IHttpClientResponse): boolean;
+ handleAuthentication(httpClient: IHttpClient, requestInfo: IRequestInfo, objs: any): Promise<IHttpClientResponse>;
+}
+export interface IHttpClientResponse {
+ message: http.IncomingMessage;
+ readBody(): Promise<string>;
+}
+export interface IRequestInfo {
+ options: http.RequestOptions;
+ parsedUrl: URL;
+ httpModule: any;
+}
+export interface IRequestOptions {
+ headers?: IHeaders;
+ socketTimeout?: number;
+ ignoreSslError?: boolean;
+ allowRedirects?: boolean;
+ allowRedirectDowngrade?: boolean;
+ maxRedirects?: number;
+ maxSockets?: number;
+ keepAlive?: boolean;
+ deserializeDates?: boolean;
+ allowRetries?: boolean;
+ maxRetries?: number;
+}
+export interface ITypedResponse<T> {
+ statusCode: number;
+ result: T | null;
+ headers: Object;
+}
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/interfaces.js b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/interfaces.js
new file mode 100644
index 0000000..c8ad2e5
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/interfaces.js
@@ -0,0 +1,2 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/package.json b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/package.json
new file mode 100644
index 0000000..0c99fd4
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/package.json
@@ -0,0 +1,39 @@
+{
+ "name": "@actions/http-client",
+ "version": "1.0.11",
+ "description": "Actions Http Client",
+ "main": "index.js",
+ "scripts": {
+ "build": "rm -Rf ./_out && tsc && cp package*.json ./_out && cp *.md ./_out && cp LICENSE ./_out && cp actions.png ./_out",
+ "test": "jest",
+ "format": "prettier --write *.ts && prettier --write **/*.ts",
+ "format-check": "prettier --check *.ts && prettier --check **/*.ts",
+ "audit-check": "npm audit --audit-level=moderate"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/actions/http-client.git"
+ },
+ "keywords": [
+ "Actions",
+ "Http"
+ ],
+ "author": "GitHub, Inc.",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/actions/http-client/issues"
+ },
+ "homepage": "https://github.com/actions/http-client#readme",
+ "devDependencies": {
+ "@types/jest": "^25.1.4",
+ "@types/node": "^12.12.31",
+ "jest": "^25.1.0",
+ "prettier": "^2.0.4",
+ "proxy": "^1.0.1",
+ "ts-jest": "^25.2.1",
+ "typescript": "^3.8.3"
+ },
+ "dependencies": {
+ "tunnel": "0.0.6"
+ }
+}
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/proxy.d.ts b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/proxy.d.ts
new file mode 100644
index 0000000..4599865
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/proxy.d.ts
@@ -0,0 +1,2 @@
+export declare function getProxyUrl(reqUrl: URL): URL | undefined;
+export declare function checkBypass(reqUrl: URL): boolean;
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/proxy.js b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/proxy.js
new file mode 100644
index 0000000..88f00ec
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/node_modules/@actions/http-client/proxy.js
@@ -0,0 +1,57 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+function getProxyUrl(reqUrl) {
+ let usingSsl = reqUrl.protocol === 'https:';
+ let proxyUrl;
+ if (checkBypass(reqUrl)) {
+ return proxyUrl;
+ }
+ let proxyVar;
+ if (usingSsl) {
+ proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];
+ }
+ else {
+ proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];
+ }
+ if (proxyVar) {
+ proxyUrl = new URL(proxyVar);
+ }
+ return proxyUrl;
+}
+exports.getProxyUrl = getProxyUrl;
+function checkBypass(reqUrl) {
+ if (!reqUrl.hostname) {
+ return false;
+ }
+ let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';
+ if (!noProxy) {
+ return false;
+ }
+ // Determine the request port
+ let reqPort;
+ if (reqUrl.port) {
+ reqPort = Number(reqUrl.port);
+ }
+ else if (reqUrl.protocol === 'http:') {
+ reqPort = 80;
+ }
+ else if (reqUrl.protocol === 'https:') {
+ reqPort = 443;
+ }
+ // Format the request hostname and hostname with port
+ let upperReqHosts = [reqUrl.hostname.toUpperCase()];
+ if (typeof reqPort === 'number') {
+ upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);
+ }
+ // Compare request host against noproxy
+ for (let upperNoProxyItem of noProxy
+ .split(',')
+ .map(x => x.trim().toUpperCase())
+ .filter(x => x)) {
+ if (upperReqHosts.some(x => x === upperNoProxyItem)) {
+ return true;
+ }
+ }
+ return false;
+}
+exports.checkBypass = checkBypass;
diff --git a/pkg/runner/testdata/actions/node16/node_modules/@actions/github/package.json b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/package.json
new file mode 100644
index 0000000..0288f17
--- /dev/null
+++ b/pkg/runner/testdata/actions/node16/node_modules/@actions/github/package.json
@@ -0,0 +1,50 @@
+{
+ "name": "@actions/github",
+ "version": "4.0.0",
+ "description": "Actions github lib",
+ "keywords": [
+ "github",
+ "actions"
+ ],
+ "homepage": "https://github.com/actions/toolkit/tree/master/packages/github",
+ "license": "MIT",
+ "main": "lib/github.js",
+ "types": "lib/github.d.ts",
+ "directories": {
+ "lib": "lib",
+ "test": "__tests__"
+ },
+ "files": [
+ "lib",
+ "!.DS_Store"
+ ],
+ "publishConfig": {
+ "access": "public"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/actions/toolkit.git",
+ "directory": "packages/github"
+ },
+ "scripts": {
+ "audit-moderate": "npm install && npm audit --audit-level=moderate",
+ "test": "jest",
+ "build": "tsc",
+ "format": "prettier --write **/*.ts",
+ "format-check": "prettier --check **/*.ts",
+ "tsc": "tsc"
+ },
+ "bugs": {
+ "url": "https://github.com/actions/toolkit/issues"
+ },
+ "dependencies": {
+ "@actions/http-client": "^1.0.8",
+ "@octokit/core": "^3.0.0",
+ "@octokit/plugin-paginate-rest": "^2.2.3",
+ "@octokit/plugin-rest-endpoint-methods": "^4.0.0"
+ },
+ "devDependencies": {
+ "jest": "^25.1.0",
+ "proxy": "^1.0.1"
+ }
+}