From aa676f3cc725685fdc6eef04a0c75342005f10db Mon Sep 17 00:00:00 2001 From: Brian Cristante <33549821+brcrista@users.noreply.github.com> Date: Wed, 11 May 2022 17:14:25 -0400 Subject: [PATCH] Update other packages to use http-client v2 (#1082) We moved `@actions/http-client` to be part of the toolkit in https://github.com/actions/toolkit/pull/1062. We also made some breaking changes to exported types and released v2. The biggest change in terms of lines of code affected was to get rid of the `I-` prefix for interfaces since TypeScript doesn't follow this convention. I bumped the patch version of all packages except for `tool-cache`, where I bumped the major version. The rationale is explained in the release notes for that package. --- packages/artifact/RELEASES.md | 6 +- packages/artifact/__tests__/retry.test.ts | 5 +- packages/artifact/package-lock.json | 44 ++++++---- packages/artifact/package.json | 4 +- .../src/internal/download-http-client.ts | 8 +- .../artifact/src/internal/http-manager.ts | 2 +- .../artifact/src/internal/requestUtils.ts | 12 +-- .../src/internal/upload-http-client.ts | 9 +- packages/artifact/src/internal/utils.ts | 19 ++--- packages/cache/RELEASES.md | 3 + packages/cache/__tests__/saveCache.test.ts | 8 +- packages/cache/package-lock.json | 63 +++++--------- packages/cache/package.json | 4 +- .../cache/src/internal/cacheHttpClient.ts | 13 +-- packages/cache/src/internal/contracts.d.ts | 4 +- packages/cache/src/internal/downloadUtils.ts | 5 +- packages/cache/src/internal/requestUtils.ts | 15 ++-- packages/core/RELEASES.md | 3 + packages/core/package-lock.json | 37 ++------ packages/core/package.json | 4 +- packages/core/src/oidc-utils.ts | 6 +- packages/github/RELEASES.md | 3 + packages/github/package-lock.json | 37 ++------ packages/github/package.json | 4 +- packages/glob/package-lock.json | 49 +++++++++-- packages/http-client/package.json | 2 +- packages/tool-cache/RELEASES.md | 5 ++ packages/tool-cache/package-lock.json | 84 +++++++++++-------- packages/tool-cache/package.json | 4 +- packages/tool-cache/src/tool-cache.ts | 10 +-- 30 files changed, 249 insertions(+), 223 deletions(-) diff --git a/packages/artifact/RELEASES.md b/packages/artifact/RELEASES.md index 8f3fd7132c..3d4425d8b3 100644 --- a/packages/artifact/RELEASES.md +++ b/packages/artifact/RELEASES.md @@ -77,4 +77,8 @@ ### 1.0.0 -- Update `lockfileVersion` to `v2` in `package-lock.json [#1009](https://github.com/actions/toolkit/pull/1009) \ No newline at end of file +- Update `lockfileVersion` to `v2` in `package-lock.json` [#1009](https://github.com/actions/toolkit/pull/1009) + +### 1.0.1 + +- Update to v2.0.0 of `@actions/http-client` \ No newline at end of file diff --git a/packages/artifact/__tests__/retry.test.ts b/packages/artifact/__tests__/retry.test.ts index 12c497842a..d1e9256ed0 100644 --- a/packages/artifact/__tests__/retry.test.ts +++ b/packages/artifact/__tests__/retry.test.ts @@ -3,7 +3,6 @@ import * as net from 'net' import * as core from '@actions/core' import * as configVariables from '../src/internal/config-variables' import {retry} from '../src/internal/requestUtils' -import {IHttpClientResponse} from '@actions/http-client/interfaces' import {HttpClientResponse} from '@actions/http-client' jest.mock('../src/internal/config-variables') @@ -42,7 +41,7 @@ async function testRetry( async function handleResponse( testResponseCode: number | undefined -): Promise { +): Promise { if (!testResponseCode) { throw new Error( 'Test incorrectly set up. reverse.pop() was called too many times so not enough test response codes were supplied' @@ -72,7 +71,7 @@ async function emptyMockReadBody(): Promise { async function setupSingleMockResponse( statusCode: number -): Promise { +): Promise { const mockMessage = new http.IncomingMessage(new net.Socket()) const mockReadBody = emptyMockReadBody mockMessage.statusCode = statusCode diff --git a/packages/artifact/package-lock.json b/packages/artifact/package-lock.json index 7f5ec7d259..56e6a712eb 100644 --- a/packages/artifact/package-lock.json +++ b/packages/artifact/package-lock.json @@ -1,16 +1,16 @@ { "name": "@actions/artifact", - "version": "0.6.1", + "version": "1.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@actions/artifact", - "version": "0.6.1", + "version": "1.0.1", "license": "MIT", "dependencies": { "@actions/core": "^1.2.6", - "@actions/http-client": "^1.0.11", + "@actions/http-client": "^2.0.0", "tmp": "^0.2.1", "tmp-promise": "^3.0.2" }, @@ -20,14 +20,14 @@ } }, "node_modules/@actions/core": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.6.0.tgz", - "integrity": "sha512-NB1UAZomZlCV/LmJqkLhNTqtKfFXJZAUPcfl/zqG7EfsQdeUJtaWO98SGbuQ3pydJ3fHl2CvI/51OKYlCYYcaw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.8.0.tgz", + "integrity": "sha512-XirM+Zo/PFlA+1h+i4bkfvagujta+LIM2AOSzPbt8JqXbbuxb1HTB+FqIyaKmue9yiCx/JIJY6pXsOl3+T8JGw==", "dependencies": { "@actions/http-client": "^1.0.11" } }, - "node_modules/@actions/http-client": { + "node_modules/@actions/core/node_modules/@actions/http-client": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", @@ -35,6 +35,11 @@ "tunnel": "0.0.6" } }, + "node_modules/@actions/http-client": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.0.tgz", + "integrity": "sha512-fm1+OPPey5ypgStT9K8zbBhICj4J4UV/TJIHDhuWlkb8KyJaAtjcZK184dTqul0dV0nPKX97FNtDXX20BTLXSA==" + }, "node_modules/@types/tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.2.3.tgz", @@ -187,20 +192,27 @@ }, "dependencies": { "@actions/core": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.6.0.tgz", - "integrity": "sha512-NB1UAZomZlCV/LmJqkLhNTqtKfFXJZAUPcfl/zqG7EfsQdeUJtaWO98SGbuQ3pydJ3fHl2CvI/51OKYlCYYcaw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.8.0.tgz", + "integrity": "sha512-XirM+Zo/PFlA+1h+i4bkfvagujta+LIM2AOSzPbt8JqXbbuxb1HTB+FqIyaKmue9yiCx/JIJY6pXsOl3+T8JGw==", "requires": { "@actions/http-client": "^1.0.11" + }, + "dependencies": { + "@actions/http-client": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", + "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", + "requires": { + "tunnel": "0.0.6" + } + } } }, "@actions/http-client": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", - "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", - "requires": { - "tunnel": "0.0.6" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.0.tgz", + "integrity": "sha512-fm1+OPPey5ypgStT9K8zbBhICj4J4UV/TJIHDhuWlkb8KyJaAtjcZK184dTqul0dV0nPKX97FNtDXX20BTLXSA==" }, "@types/tmp": { "version": "0.2.3", diff --git a/packages/artifact/package.json b/packages/artifact/package.json index 6dd84aa236..64c5166867 100644 --- a/packages/artifact/package.json +++ b/packages/artifact/package.json @@ -1,6 +1,6 @@ { "name": "@actions/artifact", - "version": "1.0.0", + "version": "1.0.1", "preview": true, "description": "Actions artifact lib", "keywords": [ @@ -38,7 +38,7 @@ }, "dependencies": { "@actions/core": "^1.2.6", - "@actions/http-client": "^1.0.11", + "@actions/http-client": "^2.0.0", "tmp": "^0.2.1", "tmp-promise": "^3.0.2" }, diff --git a/packages/artifact/src/internal/download-http-client.ts b/packages/artifact/src/internal/download-http-client.ts index c81ac917a6..2df4675fec 100644 --- a/packages/artifact/src/internal/download-http-client.ts +++ b/packages/artifact/src/internal/download-http-client.ts @@ -18,7 +18,7 @@ import {URL} from 'url' import {StatusReporter} from './status-reporter' import {performance} from 'perf_hooks' import {ListArtifactsResponse, QueryArtifactResponse} from './contracts' -import {IHttpClientResponse} from '@actions/http-client/interfaces' +import {HttpClientResponse} from '@actions/http-client' import {HttpManager} from './http-manager' import {DownloadItem} from './download-specification' import {getDownloadFileConcurrency, getRetryLimit} from './config-variables' @@ -152,7 +152,7 @@ export class DownloadHttpClient { const headers = getDownloadHeaders('application/json', true, true) // a single GET request is used to download a file - const makeDownloadRequest = async (): Promise => { + const makeDownloadRequest = async (): Promise => { const client = this.downloadHttpManager.getClient(httpClientIndex) return await client.get(artifactLocation, headers) } @@ -225,7 +225,7 @@ export class DownloadHttpClient { // keep trying to download a file until a retry limit has been reached while (retryCount <= retryLimit) { - let response: IHttpClientResponse + let response: HttpClientResponse try { response = await makeDownloadRequest() } catch (error) { @@ -295,7 +295,7 @@ export class DownloadHttpClient { * @param isGzip a boolean denoting if the content is compressed using gzip and if we need to decode it */ async pipeResponseToFile( - response: IHttpClientResponse, + response: HttpClientResponse, destinationStream: fs.WriteStream, isGzip: boolean ): Promise { diff --git a/packages/artifact/src/internal/http-manager.ts b/packages/artifact/src/internal/http-manager.ts index 9c19a620e4..9b44fb8584 100644 --- a/packages/artifact/src/internal/http-manager.ts +++ b/packages/artifact/src/internal/http-manager.ts @@ -1,4 +1,4 @@ -import {HttpClient} from '@actions/http-client/index' +import {HttpClient} from '@actions/http-client' import {createHttpClient} from './utils' /** diff --git a/packages/artifact/src/internal/requestUtils.ts b/packages/artifact/src/internal/requestUtils.ts index 65f40e7bfa..4abc5b039d 100644 --- a/packages/artifact/src/internal/requestUtils.ts +++ b/packages/artifact/src/internal/requestUtils.ts @@ -1,4 +1,4 @@ -import {IHttpClientResponse} from '@actions/http-client/interfaces' +import {HttpClientResponse} from '@actions/http-client' import { isRetryableStatusCode, isSuccessStatusCode, @@ -11,11 +11,11 @@ import {getRetryLimit} from './config-variables' export async function retry( name: string, - operation: () => Promise, + operation: () => Promise, customErrorMessages: Map, maxAttempts: number -): Promise { - let response: IHttpClientResponse | undefined = undefined +): Promise { + let response: HttpClientResponse | undefined = undefined let statusCode: number | undefined = undefined let isRetryable = false let errorMessage = '' @@ -71,9 +71,9 @@ export async function retry( export async function retryHttpClientRequest( name: string, - method: () => Promise, + method: () => Promise, customErrorMessages: Map = new Map(), maxAttempts = getRetryLimit() -): Promise { +): Promise { return await retry(name, method, customErrorMessages, maxAttempts) } diff --git a/packages/artifact/src/internal/upload-http-client.ts b/packages/artifact/src/internal/upload-http-client.ts index 9892a42d79..180466e78f 100644 --- a/packages/artifact/src/internal/upload-http-client.ts +++ b/packages/artifact/src/internal/upload-http-client.ts @@ -31,8 +31,7 @@ import {promisify} from 'util' import {URL} from 'url' import {performance} from 'perf_hooks' import {StatusReporter} from './status-reporter' -import {HttpCodes} from '@actions/http-client' -import {IHttpClientResponse} from '@actions/http-client/interfaces' +import {HttpCodes, HttpClientResponse} from '@actions/http-client' import {HttpManager} from './http-manager' import {UploadSpecification} from './upload-specification' import {UploadOptions} from './upload-options' @@ -416,7 +415,7 @@ export class UploadHttpClient { getContentRange(start, end, uploadFileSize) ) - const uploadChunkRequest = async (): Promise => { + const uploadChunkRequest = async (): Promise => { const client = this.uploadHttpManager.getClient(httpClientIndex) return await client.sendStream('PUT', resourceUrl, openStream(), headers) } @@ -427,7 +426,7 @@ export class UploadHttpClient { // Increments the current retry count and then checks if the retry limit has been reached // If there have been too many retries, fail so the download stops const incrementAndCheckRetryLimit = ( - response?: IHttpClientResponse + response?: HttpClientResponse ): boolean => { retryCount++ if (retryCount > retryLimit) { @@ -464,7 +463,7 @@ export class UploadHttpClient { // allow for failed chunks to be retried multiple times while (retryCount <= retryLimit) { - let response: IHttpClientResponse + let response: HttpClientResponse try { response = await uploadChunkRequest() diff --git a/packages/artifact/src/internal/utils.ts b/packages/artifact/src/internal/utils.ts index f2b99f335c..2f2883e7ac 100644 --- a/packages/artifact/src/internal/utils.ts +++ b/packages/artifact/src/internal/utils.ts @@ -1,9 +1,8 @@ -import {debug, info, warning} from '@actions/core' import {promises as fs} from 'fs' -import {HttpCodes, HttpClient} from '@actions/http-client' -import {BearerCredentialHandler} from '@actions/http-client/auth' -import {IHeaders, IHttpClientResponse} from '@actions/http-client/interfaces' -import {IncomingHttpHeaders} from 'http' +import {IncomingHttpHeaders, OutgoingHttpHeaders} from 'http' +import {debug, info, warning} from '@actions/core' +import {HttpCodes, HttpClient, HttpClientResponse} from '@actions/http-client' +import {BearerCredentialHandler} from '@actions/http-client/lib/auth' import { getRuntimeToken, getRuntimeUrl, @@ -139,8 +138,8 @@ export function getDownloadHeaders( contentType: string, isKeepAlive?: boolean, acceptGzip?: boolean -): IHeaders { - const requestOptions: IHeaders = {} +): OutgoingHttpHeaders { + const requestOptions: OutgoingHttpHeaders = {} if (contentType) { requestOptions['Content-Type'] = contentType @@ -181,8 +180,8 @@ export function getUploadHeaders( uncompressedLength?: number, contentLength?: number, contentRange?: string -): IHeaders { - const requestOptions: IHeaders = {} +): OutgoingHttpHeaders { + const requestOptions: OutgoingHttpHeaders = {} requestOptions['Accept'] = `application/json;api-version=${getApiVersion()}` if (contentType) { requestOptions['Content-Type'] = contentType @@ -227,7 +226,7 @@ export function getArtifactUrl(): string { * Certain information such as the TLSSocket and the Readable state are not really useful for diagnostic purposes so they can be avoided. * Other information such as the headers, the response code and message might be useful, so this is displayed. */ -export function displayHttpDiagnostics(response: IHttpClientResponse): void { +export function displayHttpDiagnostics(response: HttpClientResponse): void { info( `##### Begin Diagnostic HTTP information ##### Status Code: ${response.message.statusCode} diff --git a/packages/cache/RELEASES.md b/packages/cache/RELEASES.md index ec77c2bc24..58217f8675 100644 --- a/packages/cache/RELEASES.md +++ b/packages/cache/RELEASES.md @@ -56,3 +56,6 @@ ### 2.0.0 - Added support to check if Actions cache service feature is available or not [#1028](https://github.com/actions/toolkit/pull/1028) + +### 2.0.3 +- Update to v2.0.0 of `@actions/http-client` \ No newline at end of file diff --git a/packages/cache/__tests__/saveCache.test.ts b/packages/cache/__tests__/saveCache.test.ts index 6949759b30..4627f2c7fa 100644 --- a/packages/cache/__tests__/saveCache.test.ts +++ b/packages/cache/__tests__/saveCache.test.ts @@ -5,7 +5,7 @@ import * as cacheHttpClient from '../src/internal/cacheHttpClient' import * as cacheUtils from '../src/internal/cacheUtils' import {CacheFilename, CompressionMethod} from '../src/internal/constants' import * as tar from '../src/internal/tar' -import {ITypedResponse} from '@actions/http-client/interfaces' +import {TypedResponse} from '@actions/http-client/lib/interfaces' import { ReserveCacheResponse, ITypedResponseWithError @@ -172,7 +172,7 @@ test('save with reserve cache failure should fail', async () => { const reserveCacheMock = jest .spyOn(cacheHttpClient, 'reserveCache') .mockImplementation(async () => { - const response: ITypedResponse = { + const response: TypedResponse = { statusCode: 500, result: null, headers: {} @@ -208,7 +208,7 @@ test('save with server error should fail', async () => { const reserveCacheMock = jest .spyOn(cacheHttpClient, 'reserveCache') .mockImplementation(async () => { - const response: ITypedResponse = { + const response: TypedResponse = { statusCode: 500, result: {cacheId}, headers: {} @@ -257,7 +257,7 @@ test('save with valid inputs uploads a cache', async () => { const reserveCacheMock = jest .spyOn(cacheHttpClient, 'reserveCache') .mockImplementation(async () => { - const response: ITypedResponse = { + const response: TypedResponse = { statusCode: 500, result: {cacheId}, headers: {} diff --git a/packages/cache/package-lock.json b/packages/cache/package-lock.json index 2ec7b7d6a6..d577d79f57 100644 --- a/packages/cache/package-lock.json +++ b/packages/cache/package-lock.json @@ -1,18 +1,18 @@ { "name": "@actions/cache", - "version": "2.0.2", + "version": "2.0.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@actions/cache", - "version": "2.0.0", + "version": "2.0.3", "license": "MIT", "dependencies": { "@actions/core": "^1.2.6", "@actions/exec": "^1.0.1", "@actions/glob": "^0.1.0", - "@actions/http-client": "^1.0.9", + "@actions/http-client": "^2.0.0", "@actions/io": "^1.0.1", "@azure/ms-rest-js": "^2.6.0", "@azure/storage-blob": "^12.8.0", @@ -31,9 +31,9 @@ "integrity": "sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA==" }, "node_modules/@actions/exec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.0.4.tgz", - "integrity": "sha512-4DPChWow9yc9W3WqEbUj8Nr86xkpyE29ZzWjXucHItclLbEW6jr80Zx4nqv18QL6KK65+cifiQZXvnqgTV6oHw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", + "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", "dependencies": { "@actions/io": "^1.0.1" } @@ -48,25 +48,14 @@ } }, "node_modules/@actions/http-client": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.9.tgz", - "integrity": "sha512-0O4SsJ7q+MK0ycvXPl2e6bMXV7dxAXOGjrXS1eTF9s2S401Tp6c/P3c3Joz04QefC1J6Gt942Wl2jbm3f4mLcg==", - "dependencies": { - "tunnel": "0.0.6" - } - }, - "node_modules/@actions/http-client/node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.0.tgz", + "integrity": "sha512-fm1+OPPey5ypgStT9K8zbBhICj4J4UV/TJIHDhuWlkb8KyJaAtjcZK184dTqul0dV0nPKX97FNtDXX20BTLXSA==" }, "node_modules/@actions/io": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.0.2.tgz", - "integrity": "sha512-J8KuFqVPr3p6U8W93DOXlXW6zFvrQAJANdS+vw0YhusLIq+bszW8zmK2Fh1C2kDPX8FMvwIl1OUcFgvJoXLbAg==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.2.tgz", + "integrity": "sha512-d+RwPlMp+2qmBfeLYPLXuSRykDIFEwdTA0MMxzS9kh4kvP1ftrc/9fzy6pX6qAjthdXruHQ6/6kjT/DNo5ALuw==" }, "node_modules/@azure/abort-controller": { "version": "1.0.4", @@ -618,9 +607,9 @@ "integrity": "sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA==" }, "@actions/exec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.0.4.tgz", - "integrity": "sha512-4DPChWow9yc9W3WqEbUj8Nr86xkpyE29ZzWjXucHItclLbEW6jr80Zx4nqv18QL6KK65+cifiQZXvnqgTV6oHw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", + "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", "requires": { "@actions/io": "^1.0.1" } @@ -635,24 +624,14 @@ } }, "@actions/http-client": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.9.tgz", - "integrity": "sha512-0O4SsJ7q+MK0ycvXPl2e6bMXV7dxAXOGjrXS1eTF9s2S401Tp6c/P3c3Joz04QefC1J6Gt942Wl2jbm3f4mLcg==", - "requires": { - "tunnel": "0.0.6" - }, - "dependencies": { - "tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" - } - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.0.tgz", + "integrity": "sha512-fm1+OPPey5ypgStT9K8zbBhICj4J4UV/TJIHDhuWlkb8KyJaAtjcZK184dTqul0dV0nPKX97FNtDXX20BTLXSA==" }, "@actions/io": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.0.2.tgz", - "integrity": "sha512-J8KuFqVPr3p6U8W93DOXlXW6zFvrQAJANdS+vw0YhusLIq+bszW8zmK2Fh1C2kDPX8FMvwIl1OUcFgvJoXLbAg==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.2.tgz", + "integrity": "sha512-d+RwPlMp+2qmBfeLYPLXuSRykDIFEwdTA0MMxzS9kh4kvP1ftrc/9fzy6pX6qAjthdXruHQ6/6kjT/DNo5ALuw==" }, "@azure/abort-controller": { "version": "1.0.4", diff --git a/packages/cache/package.json b/packages/cache/package.json index 97f774b1bd..1185abeda5 100644 --- a/packages/cache/package.json +++ b/packages/cache/package.json @@ -1,6 +1,6 @@ { "name": "@actions/cache", - "version": "2.0.2", + "version": "2.0.3", "preview": true, "description": "Actions cache lib", "keywords": [ @@ -40,7 +40,7 @@ "@actions/core": "^1.2.6", "@actions/exec": "^1.0.1", "@actions/glob": "^0.1.0", - "@actions/http-client": "^1.0.9", + "@actions/http-client": "^2.0.0", "@actions/io": "^1.0.1", "@azure/ms-rest-js": "^2.6.0", "@azure/storage-blob": "^12.8.0", diff --git a/packages/cache/src/internal/cacheHttpClient.ts b/packages/cache/src/internal/cacheHttpClient.ts index 21f6991765..c66d1a73e7 100644 --- a/packages/cache/src/internal/cacheHttpClient.ts +++ b/packages/cache/src/internal/cacheHttpClient.ts @@ -1,7 +1,10 @@ import * as core from '@actions/core' import {HttpClient} from '@actions/http-client' -import {BearerCredentialHandler} from '@actions/http-client/auth' -import {IRequestOptions, ITypedResponse} from '@actions/http-client/interfaces' +import {BearerCredentialHandler} from '@actions/http-client/lib/auth' +import { + RequestOptions, + TypedResponse +} from '@actions/http-client/lib/interfaces' import * as crypto from 'crypto' import * as fs from 'fs' import {URL} from 'url' @@ -46,8 +49,8 @@ function createAcceptHeader(type: string, apiVersion: string): string { return `${type};api-version=${apiVersion}` } -function getRequestOptions(): IRequestOptions { - const requestOptions: IRequestOptions = { +function getRequestOptions(): RequestOptions { + const requestOptions: RequestOptions = { headers: { Accept: createAcceptHeader('application/json', '6.0-preview.1') } @@ -275,7 +278,7 @@ async function commitCache( httpClient: HttpClient, cacheId: number, filesize: number -): Promise> { +): Promise> { const commitCacheRequest: CommitCacheRequest = {size: filesize} return await retryTypedResponse('commitCache', async () => httpClient.postJson( diff --git a/packages/cache/src/internal/contracts.d.ts b/packages/cache/src/internal/contracts.d.ts index eb79fdaed7..1b2a13a139 100644 --- a/packages/cache/src/internal/contracts.d.ts +++ b/packages/cache/src/internal/contracts.d.ts @@ -1,8 +1,8 @@ import {CompressionMethod} from './constants' -import {ITypedResponse} from '@actions/http-client/interfaces' +import {TypedResponse} from '@actions/http-client/lib/interfaces' import {HttpClientError} from '@actions/http-client' -export interface ITypedResponseWithError extends ITypedResponse { +export interface ITypedResponseWithError extends TypedResponse { error?: HttpClientError } diff --git a/packages/cache/src/internal/downloadUtils.ts b/packages/cache/src/internal/downloadUtils.ts index bedaa3752b..08b2dee80e 100644 --- a/packages/cache/src/internal/downloadUtils.ts +++ b/packages/cache/src/internal/downloadUtils.ts @@ -1,6 +1,5 @@ import * as core from '@actions/core' -import {HttpClient} from '@actions/http-client' -import {IHttpClientResponse} from '@actions/http-client/interfaces' +import {HttpClient, HttpClientResponse} from '@actions/http-client' import {BlockBlobClient} from '@azure/storage-blob' import {TransferProgressEvent} from '@azure/ms-rest-js' import * as buffer from 'buffer' @@ -20,7 +19,7 @@ import {retryHttpClientResponse} from './requestUtils' * @param output the writable stream */ async function pipeResponseToStream( - response: IHttpClientResponse, + response: HttpClientResponse, output: NodeJS.WritableStream ): Promise { const pipeline = util.promisify(stream.pipeline) diff --git a/packages/cache/src/internal/requestUtils.ts b/packages/cache/src/internal/requestUtils.ts index be254b93ec..043c8a7cef 100644 --- a/packages/cache/src/internal/requestUtils.ts +++ b/packages/cache/src/internal/requestUtils.ts @@ -1,6 +1,9 @@ import * as core from '@actions/core' -import {HttpCodes, HttpClientError} from '@actions/http-client' -import {IHttpClientResponse} from '@actions/http-client/interfaces' +import { + HttpCodes, + HttpClientError, + HttpClientResponse +} from '@actions/http-client' import {DefaultRetryDelay, DefaultRetryAttempts} from './constants' import {ITypedResponseWithError} from './contracts' @@ -103,7 +106,7 @@ export async function retryTypedResponse( maxAttempts, delay, // If the error object contains the statusCode property, extract it and return - // an ITypedResponse so it can be processed by the retry logic. + // an TypedResponse so it can be processed by the retry logic. (error: Error) => { if (error instanceof HttpClientError) { return { @@ -121,14 +124,14 @@ export async function retryTypedResponse( export async function retryHttpClientResponse( name: string, - method: () => Promise, + method: () => Promise, maxAttempts = DefaultRetryAttempts, delay = DefaultRetryDelay -): Promise { +): Promise { return await retry( name, method, - (response: IHttpClientResponse) => response.message.statusCode, + (response: HttpClientResponse) => response.message.statusCode, maxAttempts, delay ) diff --git a/packages/core/RELEASES.md b/packages/core/RELEASES.md index d35801ee70..2f00f0ceee 100644 --- a/packages/core/RELEASES.md +++ b/packages/core/RELEASES.md @@ -1,5 +1,8 @@ # @actions/core Releases +### 1.8.1 +- Update to v2.0.0 of `@actions/http-client` + ### 1.8.0 - Deprecate `markdownSummary` extension export in favor of `summary` - https://github.com/actions/toolkit/pull/1072 diff --git a/packages/core/package-lock.json b/packages/core/package-lock.json index b4392f8de0..cd2ff3ed96 100644 --- a/packages/core/package-lock.json +++ b/packages/core/package-lock.json @@ -1,62 +1,43 @@ { "name": "@actions/core", - "version": "1.8.0", + "version": "1.8.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@actions/core", - "version": "1.6.0", + "version": "1.8.1", "license": "MIT", "dependencies": { - "@actions/http-client": "^1.0.11" + "@actions/http-client": "^2.0.0" }, "devDependencies": { "@types/node": "^12.0.2" } }, "node_modules/@actions/http-client": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", - "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", - "dependencies": { - "tunnel": "0.0.6" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.0.tgz", + "integrity": "sha512-fm1+OPPey5ypgStT9K8zbBhICj4J4UV/TJIHDhuWlkb8KyJaAtjcZK184dTqul0dV0nPKX97FNtDXX20BTLXSA==" }, "node_modules/@types/node": { "version": "12.0.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.2.tgz", "integrity": "sha512-5tabW/i+9mhrfEOUcLDu2xBPsHJ+X5Orqy9FKpale3SjDA17j5AEpYq5vfy3oAeAHGcvANRCO3NV3d2D6q3NiA==", "dev": true - }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } } }, "dependencies": { "@actions/http-client": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", - "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", - "requires": { - "tunnel": "0.0.6" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.0.tgz", + "integrity": "sha512-fm1+OPPey5ypgStT9K8zbBhICj4J4UV/TJIHDhuWlkb8KyJaAtjcZK184dTqul0dV0nPKX97FNtDXX20BTLXSA==" }, "@types/node": { "version": "12.0.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.2.tgz", "integrity": "sha512-5tabW/i+9mhrfEOUcLDu2xBPsHJ+X5Orqy9FKpale3SjDA17j5AEpYq5vfy3oAeAHGcvANRCO3NV3d2D6q3NiA==", "dev": true - }, - "tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" } } } diff --git a/packages/core/package.json b/packages/core/package.json index c63533fa21..cd91438695 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@actions/core", - "version": "1.8.0", + "version": "1.8.1", "description": "Actions core lib", "keywords": [ "github", @@ -36,7 +36,7 @@ "url": "https://github.com/actions/toolkit/issues" }, "dependencies": { - "@actions/http-client": "^1.0.11" + "@actions/http-client": "^2.0.0" }, "devDependencies": { "@types/node": "^12.0.2" diff --git a/packages/core/src/oidc-utils.ts b/packages/core/src/oidc-utils.ts index e33da5f11a..d490a3cedf 100644 --- a/packages/core/src/oidc-utils.ts +++ b/packages/core/src/oidc-utils.ts @@ -1,8 +1,8 @@ /* eslint-disable @typescript-eslint/no-extraneous-class */ import * as actions_http_client from '@actions/http-client' -import {IRequestOptions} from '@actions/http-client/interfaces' +import {RequestOptions} from '@actions/http-client/lib/interfaces' import {HttpClient} from '@actions/http-client' -import {BearerCredentialHandler} from '@actions/http-client/auth' +import {BearerCredentialHandler} from '@actions/http-client/lib/auth' import {debug, setSecret} from './core' interface TokenResponse { value?: string @@ -13,7 +13,7 @@ export class OidcClient { allowRetry = true, maxRetry = 10 ): actions_http_client.HttpClient { - const requestOptions: IRequestOptions = { + const requestOptions: RequestOptions = { allowRetries: allowRetry, maxRetries: maxRetry } diff --git a/packages/github/RELEASES.md b/packages/github/RELEASES.md index 225953b543..abbca6f1f2 100644 --- a/packages/github/RELEASES.md +++ b/packages/github/RELEASES.md @@ -1,5 +1,8 @@ # @actions/github Releases +### 5.0.2 +- Update to v2.0.0 of `@actions/http-client` + ### 5.0.1 - [Update Octokit Dependencies](https://github.com/actions/toolkit/pull/1037) ### 5.0.0 diff --git a/packages/github/package-lock.json b/packages/github/package-lock.json index 0a497e0d42..defa7724d6 100644 --- a/packages/github/package-lock.json +++ b/packages/github/package-lock.json @@ -1,15 +1,15 @@ { "name": "@actions/github", - "version": "5.0.1", + "version": "5.0.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@actions/github", - "version": "5.0.1", + "version": "5.0.2", "license": "MIT", "dependencies": { - "@actions/http-client": "^1.0.11", + "@actions/http-client": "^2.0.0", "@octokit/core": "^3.6.0", "@octokit/plugin-paginate-rest": "^2.17.0", "@octokit/plugin-rest-endpoint-methods": "^5.13.0" @@ -19,12 +19,9 @@ } }, "node_modules/@actions/http-client": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", - "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", - "dependencies": { - "tunnel": "0.0.6" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.0.tgz", + "integrity": "sha512-fm1+OPPey5ypgStT9K8zbBhICj4J4UV/TJIHDhuWlkb8KyJaAtjcZK184dTqul0dV0nPKX97FNtDXX20BTLXSA==" }, "node_modules/@octokit/auth-token": { "version": "2.4.5", @@ -340,14 +337,6 @@ "proxy": "bin/proxy.js" } }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } - }, "node_modules/universal-user-agent": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", @@ -361,12 +350,9 @@ }, "dependencies": { "@actions/http-client": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", - "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", - "requires": { - "tunnel": "0.0.6" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.0.tgz", + "integrity": "sha512-fm1+OPPey5ypgStT9K8zbBhICj4J4UV/TJIHDhuWlkb8KyJaAtjcZK184dTqul0dV0nPKX97FNtDXX20BTLXSA==" }, "@octokit/auth-token": { "version": "2.4.5", @@ -635,11 +621,6 @@ "debug": "^4.1.1" } }, - "tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" - }, "universal-user-agent": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", diff --git a/packages/github/package.json b/packages/github/package.json index 208b5a79d6..8ed6c42450 100644 --- a/packages/github/package.json +++ b/packages/github/package.json @@ -1,6 +1,6 @@ { "name": "@actions/github", - "version": "5.0.1", + "version": "5.0.2", "description": "Actions github lib", "keywords": [ "github", @@ -38,7 +38,7 @@ "url": "https://github.com/actions/toolkit/issues" }, "dependencies": { - "@actions/http-client": "^1.0.11", + "@actions/http-client": "^2.0.0", "@octokit/core": "^3.6.0", "@octokit/plugin-paginate-rest": "^2.17.0", "@octokit/plugin-rest-endpoint-methods": "^5.13.0" diff --git a/packages/glob/package-lock.json b/packages/glob/package-lock.json index ee9a173972..0aee7b6039 100644 --- a/packages/glob/package-lock.json +++ b/packages/glob/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@actions/glob", - "version": "0.2.1", + "version": "0.3.0", "license": "MIT", "dependencies": { "@actions/core": "^1.2.6", @@ -14,9 +14,20 @@ } }, "node_modules/@actions/core": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.6.tgz", - "integrity": "sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.8.0.tgz", + "integrity": "sha512-XirM+Zo/PFlA+1h+i4bkfvagujta+LIM2AOSzPbt8JqXbbuxb1HTB+FqIyaKmue9yiCx/JIJY6pXsOl3+T8JGw==", + "dependencies": { + "@actions/http-client": "^1.0.11" + } + }, + "node_modules/@actions/http-client": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", + "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", + "dependencies": { + "tunnel": "0.0.6" + } }, "node_modules/balanced-match": { "version": "1.0.0", @@ -47,13 +58,32 @@ "engines": { "node": "*" } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } } }, "dependencies": { "@actions/core": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.6.tgz", - "integrity": "sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.8.0.tgz", + "integrity": "sha512-XirM+Zo/PFlA+1h+i4bkfvagujta+LIM2AOSzPbt8JqXbbuxb1HTB+FqIyaKmue9yiCx/JIJY6pXsOl3+T8JGw==", + "requires": { + "@actions/http-client": "^1.0.11" + } + }, + "@actions/http-client": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", + "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", + "requires": { + "tunnel": "0.0.6" + } }, "balanced-match": { "version": "1.0.0", @@ -81,6 +111,11 @@ "requires": { "brace-expansion": "^1.1.7" } + }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" } } } diff --git a/packages/http-client/package.json b/packages/http-client/package.json index f9db7e7702..ed4129c05e 100644 --- a/packages/http-client/package.json +++ b/packages/http-client/package.json @@ -25,7 +25,7 @@ "repository": { "type": "git", "url": "git+https://github.com/actions/toolkit.git", - "directory": "packages/github" + "directory": "packages/http-client" }, "scripts": { "audit-moderate": "npm install && npm audit --json --audit-level=moderate > audit.json", diff --git a/packages/tool-cache/RELEASES.md b/packages/tool-cache/RELEASES.md index c613f18332..8285cb221c 100644 --- a/packages/tool-cache/RELEASES.md +++ b/packages/tool-cache/RELEASES.md @@ -1,5 +1,10 @@ # @actions/tool-cache Releases +### 2.0.0 +- Update to v2.0.0 of `@actions/http-client` +- The type of the `headers` parameter in the exported function `downloadTool` has been narrowed from `{ [header: string]: any }` to `{ [header: string]: number | string | string[] | undefined; }` (that is, `http.OutgoingHttpHeaders`). + This is strictly a compile-time change for TypeScript consumers. Previous attempts to use a header value of a type other than those now accepted would have resulted in an error at run time. + ### 1.7.2 - Update `lockfileVersion` to `v2` in `package-lock.json [#1025](https://github.com/actions/toolkit/pull/1025) diff --git a/packages/tool-cache/package-lock.json b/packages/tool-cache/package-lock.json index 524d13452a..bb33ad7f33 100644 --- a/packages/tool-cache/package-lock.json +++ b/packages/tool-cache/package-lock.json @@ -1,17 +1,17 @@ { "name": "@actions/tool-cache", - "version": "1.7.2", + "version": "2.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@actions/tool-cache", - "version": "1.7.2", + "version": "2.0.0", "license": "MIT", "dependencies": { "@actions/core": "^1.2.6", "@actions/exec": "^1.0.0", - "@actions/http-client": "^1.0.8", + "@actions/http-client": "^2.0.0", "@actions/io": "^1.1.1", "semver": "^6.1.0", "uuid": "^3.3.2" @@ -24,30 +24,38 @@ } }, "node_modules/@actions/core": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.6.tgz", - "integrity": "sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.8.0.tgz", + "integrity": "sha512-XirM+Zo/PFlA+1h+i4bkfvagujta+LIM2AOSzPbt8JqXbbuxb1HTB+FqIyaKmue9yiCx/JIJY6pXsOl3+T8JGw==", + "dependencies": { + "@actions/http-client": "^1.0.11" + } + }, + "node_modules/@actions/core/node_modules/@actions/http-client": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", + "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", + "dependencies": { + "tunnel": "0.0.6" + } }, "node_modules/@actions/exec": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.0.3.tgz", - "integrity": "sha512-TogJGnueOmM7ntCi0ASTUj4LapRRtDfj57Ja4IhPmg2fls28uVOPbAn8N+JifaOumN2UG3oEO/Ixek2A4NcYSA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", + "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", "dependencies": { "@actions/io": "^1.0.1" } }, "node_modules/@actions/http-client": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.8.tgz", - "integrity": "sha512-G4JjJ6f9Hb3Zvejj+ewLLKLf99ZC+9v+yCxoYf9vSyH+WkzPLB2LuUtRMGNkooMqdugGBFStIKXOuvH1W+EctA==", - "dependencies": { - "tunnel": "0.0.6" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.0.tgz", + "integrity": "sha512-fm1+OPPey5ypgStT9K8zbBhICj4J4UV/TJIHDhuWlkb8KyJaAtjcZK184dTqul0dV0nPKX97FNtDXX20BTLXSA==" }, "node_modules/@actions/io": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.1.tgz", - "integrity": "sha512-Qi4JoKXjmE0O67wAOH6y0n26QXhMKMFo7GD/4IXNVcrtLjUlGjGuVys6pQgwF3ArfGTQu0XpqaNr0YhED2RaRA==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.2.tgz", + "integrity": "sha512-d+RwPlMp+2qmBfeLYPLXuSRykDIFEwdTA0MMxzS9kh4kvP1ftrc/9fzy6pX6qAjthdXruHQ6/6kjT/DNo5ALuw==" }, "node_modules/@types/nock": { "version": "10.0.3", @@ -280,30 +288,40 @@ }, "dependencies": { "@actions/core": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.6.tgz", - "integrity": "sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.8.0.tgz", + "integrity": "sha512-XirM+Zo/PFlA+1h+i4bkfvagujta+LIM2AOSzPbt8JqXbbuxb1HTB+FqIyaKmue9yiCx/JIJY6pXsOl3+T8JGw==", + "requires": { + "@actions/http-client": "^1.0.11" + }, + "dependencies": { + "@actions/http-client": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", + "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", + "requires": { + "tunnel": "0.0.6" + } + } + } }, "@actions/exec": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.0.3.tgz", - "integrity": "sha512-TogJGnueOmM7ntCi0ASTUj4LapRRtDfj57Ja4IhPmg2fls28uVOPbAn8N+JifaOumN2UG3oEO/Ixek2A4NcYSA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", + "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", "requires": { "@actions/io": "^1.0.1" } }, "@actions/http-client": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.8.tgz", - "integrity": "sha512-G4JjJ6f9Hb3Zvejj+ewLLKLf99ZC+9v+yCxoYf9vSyH+WkzPLB2LuUtRMGNkooMqdugGBFStIKXOuvH1W+EctA==", - "requires": { - "tunnel": "0.0.6" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.0.tgz", + "integrity": "sha512-fm1+OPPey5ypgStT9K8zbBhICj4J4UV/TJIHDhuWlkb8KyJaAtjcZK184dTqul0dV0nPKX97FNtDXX20BTLXSA==" }, "@actions/io": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.1.tgz", - "integrity": "sha512-Qi4JoKXjmE0O67wAOH6y0n26QXhMKMFo7GD/4IXNVcrtLjUlGjGuVys6pQgwF3ArfGTQu0XpqaNr0YhED2RaRA==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.2.tgz", + "integrity": "sha512-d+RwPlMp+2qmBfeLYPLXuSRykDIFEwdTA0MMxzS9kh4kvP1ftrc/9fzy6pX6qAjthdXruHQ6/6kjT/DNo5ALuw==" }, "@types/nock": { "version": "10.0.3", diff --git a/packages/tool-cache/package.json b/packages/tool-cache/package.json index da75109d5d..7c48d91a6c 100644 --- a/packages/tool-cache/package.json +++ b/packages/tool-cache/package.json @@ -1,6 +1,6 @@ { "name": "@actions/tool-cache", - "version": "1.7.2", + "version": "2.0.0", "description": "Actions tool-cache lib", "keywords": [ "github", @@ -38,7 +38,7 @@ "dependencies": { "@actions/core": "^1.2.6", "@actions/exec": "^1.0.0", - "@actions/http-client": "^1.0.8", + "@actions/http-client": "^2.0.0", "@actions/io": "^1.1.1", "semver": "^6.1.0", "uuid": "^3.3.2" diff --git a/packages/tool-cache/src/tool-cache.ts b/packages/tool-cache/src/tool-cache.ts index 92fd519afa..694d12521e 100644 --- a/packages/tool-cache/src/tool-cache.ts +++ b/packages/tool-cache/src/tool-cache.ts @@ -8,12 +8,12 @@ import * as httpm from '@actions/http-client' import * as semver from 'semver' import * as stream from 'stream' import * as util from 'util' +import {ok} from 'assert' +import {OutgoingHttpHeaders} from 'http' import uuidV4 from 'uuid/v4' import {exec} from '@actions/exec/lib/exec' import {ExecOptions} from '@actions/exec/lib/interfaces' -import {ok} from 'assert' import {RetryHelper} from './retry-helper' -import {IHeaders} from '@actions/http-client/interfaces' export class HTTPError extends Error { constructor(readonly httpStatusCode: number | undefined) { @@ -39,7 +39,7 @@ export async function downloadTool( url: string, dest?: string, auth?: string, - headers?: IHeaders + headers?: OutgoingHttpHeaders ): Promise { dest = dest || path.join(_getTempDirectory(), uuidV4()) await io.mkdirP(path.dirname(dest)) @@ -82,7 +82,7 @@ async function downloadToolAttempt( url: string, dest: string, auth?: string, - headers?: IHeaders + headers?: OutgoingHttpHeaders ): Promise { if (fs.existsSync(dest)) { throw new Error(`Destination file path ${dest} already exists`) @@ -596,7 +596,7 @@ export async function getManifestFromRepo( const treeUrl = `https://api.github.com/repos/${owner}/${repo}/git/trees/${branch}` const http: httpm.HttpClient = new httpm.HttpClient('tool-cache') - const headers: IHeaders = {} + const headers: OutgoingHttpHeaders = {} if (auth) { core.debug('set auth') headers.authorization = auth