mirror of
https://github.com/actions/upload-artifact.git
synced 2026-10-18 09:21:35 +00:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
068fe031ff |
Generated
+3
-3
@@ -1,9 +1,9 @@
|
|||||||
---
|
---
|
||||||
name: "@actions/artifact"
|
name: "@actions/artifact"
|
||||||
version: 6.3.1
|
version: 6.2.0
|
||||||
type: npm
|
type: npm
|
||||||
summary:
|
summary: Actions artifact lib
|
||||||
homepage:
|
homepage: https://github.com/actions/toolkit/tree/main/packages/artifact
|
||||||
license: mit
|
license: mit
|
||||||
licenses:
|
licenses:
|
||||||
- sources: LICENSE.md
|
- sources: LICENSE.md
|
||||||
|
|||||||
Generated
+3
-3
@@ -1,9 +1,9 @@
|
|||||||
---
|
---
|
||||||
name: "@actions/core"
|
name: "@actions/core"
|
||||||
version: 3.0.1
|
version: 3.0.0
|
||||||
type: npm
|
type: npm
|
||||||
summary:
|
summary: Actions core lib
|
||||||
homepage:
|
homepage: https://github.com/actions/toolkit/tree/main/packages/core
|
||||||
license: mit
|
license: mit
|
||||||
licenses:
|
licenses:
|
||||||
- sources: LICENSE.md
|
- sources: LICENSE.md
|
||||||
|
|||||||
Generated
+3
-3
@@ -1,9 +1,9 @@
|
|||||||
---
|
---
|
||||||
name: "@actions/github"
|
name: "@actions/github"
|
||||||
version: 9.1.1
|
version: 9.0.0
|
||||||
type: npm
|
type: npm
|
||||||
summary:
|
summary: Actions github lib
|
||||||
homepage:
|
homepage: https://github.com/actions/toolkit/tree/main/packages/github
|
||||||
license: mit
|
license: mit
|
||||||
licenses:
|
licenses:
|
||||||
- sources: LICENSE.md
|
- sources: LICENSE.md
|
||||||
|
|||||||
Vendored
+87
-154
@@ -79219,7 +79219,7 @@ module.exports = index;
|
|||||||
/***/ 2822:
|
/***/ 2822:
|
||||||
/***/ ((module) => {
|
/***/ ((module) => {
|
||||||
|
|
||||||
module.exports = /*#__PURE__*/JSON.parse('{"name":"@actions/artifact","version":"6.3.1","preview":true,"description":"Actions artifact lib","keywords":["github","actions","artifact"],"homepage":"https://github.com/actions/toolkit/tree/main/packages/artifact","license":"MIT","type":"module","main":"lib/artifact.js","types":"lib/artifact.d.ts","exports":{".":{"types":"./lib/artifact.d.ts","import":"./lib/artifact.js"}},"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/artifact"},"scripts":{"audit-moderate":"npm install && npm audit --json --audit-level=moderate > audit.json","test":"cd ../../ && npm run test ./packages/artifact","bootstrap":"cd ../../ && npm run bootstrap","tsc-run":"tsc && cp src/internal/shared/package-version.cjs lib/internal/shared/","tsc":"npm run bootstrap && npm run tsc-run","gen:docs":"typedoc --plugin typedoc-plugin-markdown --out docs/generated src/artifact.ts --githubPages false --readme none"},"bugs":{"url":"https://github.com/actions/toolkit/issues"},"dependencies":{"@actions/core":"^3.0.1","@actions/github":"^9.1.1","@actions/http-client":"^4.0.1","@azure/storage-blob":"^12.31.0","@octokit/core":"^7.0.6","@octokit/plugin-request-log":"^6.0.0","@octokit/plugin-retry":"^8.1.0","@octokit/request":"^10.0.8","@octokit/request-error":"^7.1.0","@protobuf-ts/runtime":"^2.11.1","@protobuf-ts/runtime-rpc":"^2.11.1","archiver":"^7.0.1","jwt-decode":"^4.0.0","unzip-stream":"^0.3.1"},"devDependencies":{"@protobuf-ts/plugin":"^2.11.1","@types/archiver":"^7.0.0","@types/unzip-stream":"^0.3.4","typedoc":"^0.28.19","typedoc-plugin-markdown":"^4.11.0","typescript":"^5.9.3"},"overrides":{"uri-js":"npm:uri-js-replace@^1.0.1","node-fetch":"^3.3.2"}}');
|
module.exports = /*#__PURE__*/JSON.parse('{"name":"@actions/artifact","version":"6.2.0","preview":true,"description":"Actions artifact lib","keywords":["github","actions","artifact"],"homepage":"https://github.com/actions/toolkit/tree/main/packages/artifact","license":"MIT","type":"module","main":"lib/artifact.js","types":"lib/artifact.d.ts","exports":{".":{"types":"./lib/artifact.d.ts","import":"./lib/artifact.js"}},"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/artifact"},"scripts":{"audit-moderate":"npm install && npm audit --json --audit-level=moderate > audit.json","test":"cd ../../ && npm run test ./packages/artifact","bootstrap":"cd ../../ && npm run bootstrap","tsc-run":"tsc && cp src/internal/shared/package-version.cjs lib/internal/shared/","tsc":"npm run bootstrap && npm run tsc-run","gen:docs":"typedoc --plugin typedoc-plugin-markdown --out docs/generated src/artifact.ts --githubPages false --readme none"},"bugs":{"url":"https://github.com/actions/toolkit/issues"},"dependencies":{"@actions/core":"^3.0.0","@actions/github":"^9.0.0","@actions/http-client":"^4.0.0","@azure/storage-blob":"^12.30.0","@octokit/core":"^7.0.6","@octokit/plugin-request-log":"^6.0.0","@octokit/plugin-retry":"^8.0.0","@octokit/request":"^10.0.7","@octokit/request-error":"^7.1.0","@protobuf-ts/plugin":"^2.2.3-alpha.1","@protobuf-ts/runtime":"^2.9.4","archiver":"^7.0.1","jwt-decode":"^4.0.0","unzip-stream":"^0.3.1"},"devDependencies":{"@types/archiver":"^7.0.0","@types/unzip-stream":"^0.3.4","typedoc":"^0.28.16","typedoc-plugin-markdown":"^4.9.0","typescript":"^5.9.3"},"overrides":{"uri-js":"npm:uri-js-replace@^1.0.1","node-fetch":"^3.3.2"}}');
|
||||||
|
|
||||||
/***/ })
|
/***/ })
|
||||||
|
|
||||||
@@ -86690,7 +86690,7 @@ NetworkError.isNetworkErrorCode = (code) => {
|
|||||||
};
|
};
|
||||||
class UsageError extends Error {
|
class UsageError extends Error {
|
||||||
constructor() {
|
constructor() {
|
||||||
const message = `Artifact storage quota has been hit. Unable to upload any new artifacts.\nMore info on storage limits: https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions#calculating-minute-and-storage-spending`;
|
const message = `Artifact storage quota has been hit. Unable to upload any new artifacts. Usage is recalculated every 6-12 hours.\nMore info on storage limits: https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions#calculating-minute-and-storage-spending`;
|
||||||
super(message);
|
super(message);
|
||||||
this.name = 'UsageError';
|
this.name = 'UsageError';
|
||||||
}
|
}
|
||||||
@@ -86900,9 +86900,8 @@ var artifact_twirp_client_awaiter = (undefined && undefined.__awaiter) || functi
|
|||||||
class ArtifactHttpClient {
|
class ArtifactHttpClient {
|
||||||
constructor(userAgent, maxAttempts, baseRetryIntervalMilliseconds, retryMultiplier) {
|
constructor(userAgent, maxAttempts, baseRetryIntervalMilliseconds, retryMultiplier) {
|
||||||
this.maxAttempts = 5;
|
this.maxAttempts = 5;
|
||||||
this.baseRetryIntervalMilliseconds = 8000;
|
this.baseRetryIntervalMilliseconds = 3000;
|
||||||
this.retryMultiplier = 1.5;
|
this.retryMultiplier = 1.5;
|
||||||
this.retryTimeoutMilliseconds = 120000;
|
|
||||||
const token = getRuntimeToken();
|
const token = getRuntimeToken();
|
||||||
this.baseUrl = getResultsServiceUrl();
|
this.baseUrl = getResultsServiceUrl();
|
||||||
if (maxAttempts) {
|
if (maxAttempts) {
|
||||||
@@ -86941,16 +86940,11 @@ class ArtifactHttpClient {
|
|||||||
let attempt = 0;
|
let attempt = 0;
|
||||||
let errorMessage = '';
|
let errorMessage = '';
|
||||||
let rawBody = '';
|
let rawBody = '';
|
||||||
let totalRetryWaitMilliseconds = 0;
|
|
||||||
while (attempt < this.maxAttempts) {
|
while (attempt < this.maxAttempts) {
|
||||||
let isRetryable = false;
|
let isRetryable = false;
|
||||||
let retryAfterSeconds;
|
|
||||||
try {
|
try {
|
||||||
const response = yield operation();
|
const response = yield operation();
|
||||||
const statusCode = response.message.statusCode;
|
const statusCode = response.message.statusCode;
|
||||||
if (statusCode === HttpCodes.TooManyRequests) {
|
|
||||||
retryAfterSeconds = this.getRetryAfterSeconds(response);
|
|
||||||
}
|
|
||||||
rawBody = yield response.readBody();
|
rawBody = yield response.readBody();
|
||||||
core_debug(`[Response] - ${response.message.statusCode}`);
|
core_debug(`[Response] - ${response.message.statusCode}`);
|
||||||
core_debug(`Headers: ${JSON.stringify(response.message.headers, null, 2)}`);
|
core_debug(`Headers: ${JSON.stringify(response.message.headers, null, 2)}`);
|
||||||
@@ -86988,16 +86982,9 @@ class ArtifactHttpClient {
|
|||||||
if (attempt + 1 === this.maxAttempts) {
|
if (attempt + 1 === this.maxAttempts) {
|
||||||
throw new Error(`Failed to make request after ${this.maxAttempts} attempts: ${errorMessage}`);
|
throw new Error(`Failed to make request after ${this.maxAttempts} attempts: ${errorMessage}`);
|
||||||
}
|
}
|
||||||
const retryTimeMilliseconds = retryAfterSeconds !== undefined
|
const retryTimeMilliseconds = this.getExponentialRetryTimeMilliseconds(attempt);
|
||||||
? retryAfterSeconds * 1000
|
|
||||||
: this.getExponentialRetryTimeMilliseconds(attempt);
|
|
||||||
if (totalRetryWaitMilliseconds + retryTimeMilliseconds >
|
|
||||||
this.retryTimeoutMilliseconds) {
|
|
||||||
throw new Error(`Retry wait of ${retryTimeMilliseconds} ms would exceed the maximum total retry wait of ${this.retryTimeoutMilliseconds} ms: ${errorMessage}`);
|
|
||||||
}
|
|
||||||
info(`Attempt ${attempt + 1} of ${this.maxAttempts} failed with error: ${errorMessage}. Retrying request in ${retryTimeMilliseconds} ms...`);
|
info(`Attempt ${attempt + 1} of ${this.maxAttempts} failed with error: ${errorMessage}. Retrying request in ${retryTimeMilliseconds} ms...`);
|
||||||
yield this.sleep(retryTimeMilliseconds);
|
yield this.sleep(retryTimeMilliseconds);
|
||||||
totalRetryWaitMilliseconds += retryTimeMilliseconds;
|
|
||||||
attempt++;
|
attempt++;
|
||||||
}
|
}
|
||||||
throw new Error(`Request failed`);
|
throw new Error(`Request failed`);
|
||||||
@@ -87020,17 +87007,6 @@ class ArtifactHttpClient {
|
|||||||
];
|
];
|
||||||
return retryableStatusCodes.includes(statusCode);
|
return retryableStatusCodes.includes(statusCode);
|
||||||
}
|
}
|
||||||
// Only positive integer seconds are supported, not HTTP-date values.
|
|
||||||
getRetryAfterSeconds(response) {
|
|
||||||
var _a;
|
|
||||||
const header = response.message.headers['retry-after'];
|
|
||||||
const value = (_a = (Array.isArray(header) ? header[0] : header)) === null || _a === void 0 ? void 0 : _a.trim();
|
|
||||||
if (value === undefined || !/^\d+$/.test(value)) {
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
const parsed = parseInt(value, 10);
|
|
||||||
return !isNaN(parsed) && parsed > 0 ? parsed : undefined;
|
|
||||||
}
|
|
||||||
sleep(milliseconds) {
|
sleep(milliseconds) {
|
||||||
return artifact_twirp_client_awaiter(this, void 0, void 0, function* () {
|
return artifact_twirp_client_awaiter(this, void 0, void 0, function* () {
|
||||||
return new Promise(resolve => setTimeout(resolve, milliseconds));
|
return new Promise(resolve => setTimeout(resolve, milliseconds));
|
||||||
@@ -88045,13 +88021,13 @@ class Sanitizer {
|
|||||||
message: value.message,
|
message: value.message,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (key === "headers" && isObject(value)) {
|
if (key === "headers") {
|
||||||
return this.sanitizeHeaders(value);
|
return this.sanitizeHeaders(value);
|
||||||
}
|
}
|
||||||
else if (key === "url" && typeof value === "string") {
|
else if (key === "url") {
|
||||||
return this.sanitizeUrl(value);
|
return this.sanitizeUrl(value);
|
||||||
}
|
}
|
||||||
else if (key === "query" && isObject(value)) {
|
else if (key === "query") {
|
||||||
return this.sanitizeQuery(value);
|
return this.sanitizeQuery(value);
|
||||||
}
|
}
|
||||||
else if (key === "body") {
|
else if (key === "body") {
|
||||||
@@ -88622,68 +88598,6 @@ function logPolicy_logPolicy(options = {}) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
//# sourceMappingURL=logPolicy.js.map
|
//# sourceMappingURL=logPolicy.js.map
|
||||||
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/policies/redirectPolicy.js
|
|
||||||
// Copyright (c) Microsoft Corporation.
|
|
||||||
// Licensed under the MIT License.
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The programmatic identifier of the redirectPolicy.
|
|
||||||
*/
|
|
||||||
const redirectPolicyName = "redirectPolicy";
|
|
||||||
/**
|
|
||||||
* Methods that are allowed to follow redirects 301 and 302
|
|
||||||
*/
|
|
||||||
const allowedRedirect = ["GET", "HEAD"];
|
|
||||||
/**
|
|
||||||
* A policy to follow Location headers from the server in order
|
|
||||||
* to support server-side redirection.
|
|
||||||
* In the browser, this policy is not used.
|
|
||||||
* @param options - Options to control policy behavior.
|
|
||||||
*/
|
|
||||||
function redirectPolicy_redirectPolicy(options = {}) {
|
|
||||||
const { maxRetries = 20, allowCrossOriginRedirects = false } = options;
|
|
||||||
return {
|
|
||||||
name: redirectPolicyName,
|
|
||||||
async sendRequest(request, next) {
|
|
||||||
const response = await next(request);
|
|
||||||
return handleRedirect(next, response, maxRetries, allowCrossOriginRedirects);
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
async function handleRedirect(next, response, maxRetries, allowCrossOriginRedirects, currentRetries = 0) {
|
|
||||||
const { request, status, headers } = response;
|
|
||||||
const locationHeader = headers.get("location");
|
|
||||||
if (locationHeader &&
|
|
||||||
(status === 300 ||
|
|
||||||
(status === 301 && allowedRedirect.includes(request.method)) ||
|
|
||||||
(status === 302 && allowedRedirect.includes(request.method)) ||
|
|
||||||
(status === 303 && request.method === "POST") ||
|
|
||||||
status === 307) &&
|
|
||||||
currentRetries < maxRetries) {
|
|
||||||
const url = new URL(locationHeader, request.url);
|
|
||||||
// Only follow redirects to the same origin by default.
|
|
||||||
if (!allowCrossOriginRedirects) {
|
|
||||||
const originalUrl = new URL(request.url);
|
|
||||||
if (url.origin !== originalUrl.origin) {
|
|
||||||
log_logger.verbose(`Skipping cross-origin redirect from ${originalUrl.origin} to ${url.origin}.`);
|
|
||||||
return response;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
request.url = url.toString();
|
|
||||||
// POST request with Status code 303 should be converted into a
|
|
||||||
// redirected GET request if the redirect url is present in the location header
|
|
||||||
if (status === 303) {
|
|
||||||
request.method = "GET";
|
|
||||||
request.headers.delete("Content-Length");
|
|
||||||
delete request.body;
|
|
||||||
}
|
|
||||||
request.headers.delete("Authorization");
|
|
||||||
const res = await next(request);
|
|
||||||
return handleRedirect(next, res, maxRetries, allowCrossOriginRedirects, currentRetries + 1);
|
|
||||||
}
|
|
||||||
return response;
|
|
||||||
}
|
|
||||||
//# sourceMappingURL=redirectPolicy.js.map
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/util/userAgentPlatform.js
|
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/util/userAgentPlatform.js
|
||||||
// Copyright (c) Microsoft Corporation.
|
// Copyright (c) Microsoft Corporation.
|
||||||
// Licensed under the MIT License.
|
// Licensed under the MIT License.
|
||||||
@@ -88701,14 +88615,15 @@ function getHeaderName() {
|
|||||||
async function userAgentPlatform_setPlatformSpecificData(map) {
|
async function userAgentPlatform_setPlatformSpecificData(map) {
|
||||||
if (process && process.versions) {
|
if (process && process.versions) {
|
||||||
const osInfo = `${os.type()} ${os.release()}; ${os.arch()}`;
|
const osInfo = `${os.type()} ${os.release()}; ${os.arch()}`;
|
||||||
if (process.versions.bun) {
|
const versions = process.versions;
|
||||||
map.set("Bun", `${process.versions.bun} (${osInfo})`);
|
if (versions.bun) {
|
||||||
|
map.set("Bun", `${versions.bun} (${osInfo})`);
|
||||||
}
|
}
|
||||||
else if (process.versions.deno) {
|
else if (versions.deno) {
|
||||||
map.set("Deno", `${process.versions.deno} (${osInfo})`);
|
map.set("Deno", `${versions.deno} (${osInfo})`);
|
||||||
}
|
}
|
||||||
else if (process.versions.node) {
|
else if (versions.node) {
|
||||||
map.set("Node", `${process.versions.node} (${osInfo})`);
|
map.set("Node", `${versions.node} (${osInfo})`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -89015,7 +88930,7 @@ function isSystemError(err) {
|
|||||||
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/constants.js
|
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/constants.js
|
||||||
// Copyright (c) Microsoft Corporation.
|
// Copyright (c) Microsoft Corporation.
|
||||||
// Licensed under the MIT License.
|
// Licensed under the MIT License.
|
||||||
const constants_SDK_VERSION = "0.3.5";
|
const constants_SDK_VERSION = "0.3.3";
|
||||||
const constants_DEFAULT_RETRY_POLICY_COUNT = 3;
|
const constants_DEFAULT_RETRY_POLICY_COUNT = 3;
|
||||||
//# sourceMappingURL=constants.js.map
|
//# sourceMappingURL=constants.js.map
|
||||||
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/policies/retryPolicy.js
|
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/policies/retryPolicy.js
|
||||||
@@ -89025,7 +88940,6 @@ const constants_DEFAULT_RETRY_POLICY_COUNT = 3;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const retryPolicyLogger = createClientLogger("ts-http-runtime retryPolicy");
|
const retryPolicyLogger = createClientLogger("ts-http-runtime retryPolicy");
|
||||||
/**
|
/**
|
||||||
* The programmatic identifier of the retryPolicy.
|
* The programmatic identifier of the retryPolicy.
|
||||||
@@ -89056,11 +88970,11 @@ function retryPolicy_retryPolicy(strategies, options = { maxRetries: constants_D
|
|||||||
// RestErrors are valid targets for the retry strategies.
|
// RestErrors are valid targets for the retry strategies.
|
||||||
// If none of the retry strategies can work with them, they will be thrown later in this policy.
|
// If none of the retry strategies can work with them, they will be thrown later in this policy.
|
||||||
// If the received error is not a RestError, it is immediately thrown.
|
// If the received error is not a RestError, it is immediately thrown.
|
||||||
if (!restError_isRestError(e)) {
|
responseError = e;
|
||||||
|
if (!e || responseError.name !== "RestError") {
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
responseError = e;
|
response = responseError.response;
|
||||||
response = e.response;
|
|
||||||
}
|
}
|
||||||
if (request.abortSignal?.aborted) {
|
if (request.abortSignal?.aborted) {
|
||||||
logger.error(`Retry ${retryCount}: Request aborted.`);
|
logger.error(`Retry ${retryCount}: Request aborted.`);
|
||||||
@@ -89461,15 +89375,16 @@ function setProxyAgentOnRequest(request, cachedAgents, proxyUrl) {
|
|||||||
if (request.tlsSettings) {
|
if (request.tlsSettings) {
|
||||||
log_logger.warning("TLS settings are not supported in combination with custom Proxy, certificates provided to the client will be ignored.");
|
log_logger.warning("TLS settings are not supported in combination with custom Proxy, certificates provided to the client will be ignored.");
|
||||||
}
|
}
|
||||||
|
const headers = request.headers.toJSON();
|
||||||
if (isInsecure) {
|
if (isInsecure) {
|
||||||
if (!cachedAgents.httpProxyAgent) {
|
if (!cachedAgents.httpProxyAgent) {
|
||||||
cachedAgents.httpProxyAgent = new http_proxy_agent_dist.HttpProxyAgent(proxyUrl);
|
cachedAgents.httpProxyAgent = new http_proxy_agent_dist.HttpProxyAgent(proxyUrl, { headers });
|
||||||
}
|
}
|
||||||
request.agent = cachedAgents.httpProxyAgent;
|
request.agent = cachedAgents.httpProxyAgent;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (!cachedAgents.httpsProxyAgent) {
|
if (!cachedAgents.httpsProxyAgent) {
|
||||||
cachedAgents.httpsProxyAgent = new dist.HttpsProxyAgent(proxyUrl);
|
cachedAgents.httpsProxyAgent = new dist.HttpsProxyAgent(proxyUrl, { headers });
|
||||||
}
|
}
|
||||||
request.agent = cachedAgents.httpsProxyAgent;
|
request.agent = cachedAgents.httpsProxyAgent;
|
||||||
}
|
}
|
||||||
@@ -89521,13 +89436,13 @@ function typeGuards_isBinaryBody(body) {
|
|||||||
(body instanceof Uint8Array ||
|
(body instanceof Uint8Array ||
|
||||||
typeGuards_isReadableStream(body) ||
|
typeGuards_isReadableStream(body) ||
|
||||||
typeof body === "function" ||
|
typeof body === "function" ||
|
||||||
(typeof Blob !== "undefined" && body instanceof Blob)));
|
body instanceof Blob));
|
||||||
}
|
}
|
||||||
function typeGuards_isReadableStream(x) {
|
function typeGuards_isReadableStream(x) {
|
||||||
return isNodeReadableStream(x) || isWebReadableStream(x);
|
return isNodeReadableStream(x) || isWebReadableStream(x);
|
||||||
}
|
}
|
||||||
function typeGuards_isBlob(x) {
|
function isBlob(x) {
|
||||||
return typeof Blob !== "undefined" && x instanceof Blob;
|
return typeof x.stream === "function";
|
||||||
}
|
}
|
||||||
//# sourceMappingURL=typeGuards.js.map
|
//# sourceMappingURL=typeGuards.js.map
|
||||||
// EXTERNAL MODULE: external "stream"
|
// EXTERNAL MODULE: external "stream"
|
||||||
@@ -89573,7 +89488,7 @@ function toStream(source) {
|
|||||||
if (source instanceof Uint8Array) {
|
if (source instanceof Uint8Array) {
|
||||||
return external_stream_.Readable.from(Buffer.from(source));
|
return external_stream_.Readable.from(Buffer.from(source));
|
||||||
}
|
}
|
||||||
else if (typeGuards_isBlob(source)) {
|
else if (isBlob(source)) {
|
||||||
return ensureNodeStream(source.stream());
|
return ensureNodeStream(source.stream());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -89623,7 +89538,7 @@ function getLength(source) {
|
|||||||
if (source instanceof Uint8Array) {
|
if (source instanceof Uint8Array) {
|
||||||
return source.byteLength;
|
return source.byteLength;
|
||||||
}
|
}
|
||||||
else if (typeGuards_isBlob(source)) {
|
else if (isBlob(source)) {
|
||||||
// if was created using createFile then -1 means we have an unknown size
|
// if was created using createFile then -1 means we have an unknown size
|
||||||
return source.size === -1 ? undefined : source.size;
|
return source.size === -1 ? undefined : source.size;
|
||||||
}
|
}
|
||||||
@@ -90152,14 +90067,9 @@ async function sendRequest_sendRequest(method, url, pipeline, options = {}, cust
|
|||||||
* @returns returns the content-type
|
* @returns returns the content-type
|
||||||
*/
|
*/
|
||||||
function getRequestContentType(options = {}) {
|
function getRequestContentType(options = {}) {
|
||||||
if (options.contentType) {
|
return (options.contentType ??
|
||||||
return options.contentType;
|
options.headers?.["content-type"] ??
|
||||||
}
|
getContentType(options.body));
|
||||||
const headerContentType = options.headers?.["content-type"];
|
|
||||||
if (typeof headerContentType === "string") {
|
|
||||||
return headerContentType;
|
|
||||||
}
|
|
||||||
return getContentType(options.body);
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Function to determine the content-type of a body
|
* Function to determine the content-type of a body
|
||||||
@@ -90174,9 +90084,6 @@ function getContentType(body) {
|
|||||||
if (ArrayBuffer.isView(body)) {
|
if (ArrayBuffer.isView(body)) {
|
||||||
return "application/octet-stream";
|
return "application/octet-stream";
|
||||||
}
|
}
|
||||||
if (isBlob(body) && body.type) {
|
|
||||||
return body.type;
|
|
||||||
}
|
|
||||||
if (typeof body === "string") {
|
if (typeof body === "string") {
|
||||||
try {
|
try {
|
||||||
JSON.parse(body);
|
JSON.parse(body);
|
||||||
@@ -90227,15 +90134,9 @@ function getRequestBody(body, contentType = "") {
|
|||||||
if (typeof FormData !== "undefined" && body instanceof FormData) {
|
if (typeof FormData !== "undefined" && body instanceof FormData) {
|
||||||
return { body };
|
return { body };
|
||||||
}
|
}
|
||||||
if (isBlob(body)) {
|
|
||||||
return { body };
|
|
||||||
}
|
|
||||||
if (isReadableStream(body)) {
|
if (isReadableStream(body)) {
|
||||||
return { body };
|
return { body };
|
||||||
}
|
}
|
||||||
if (typeof body === "function") {
|
|
||||||
return { body: body };
|
|
||||||
}
|
|
||||||
if (ArrayBuffer.isView(body)) {
|
if (ArrayBuffer.isView(body)) {
|
||||||
return { body: body instanceof Uint8Array ? body : JSON.stringify(body) };
|
return { body: body instanceof Uint8Array ? body : JSON.stringify(body) };
|
||||||
}
|
}
|
||||||
@@ -90425,6 +90326,8 @@ function statusCodeToNumber(statusCode) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//# sourceMappingURL=index.js.map
|
//# sourceMappingURL=index.js.map
|
||||||
;// CONCATENATED MODULE: ./node_modules/@azure/core-rest-pipeline/dist/esm/pipeline.js
|
;// CONCATENATED MODULE: ./node_modules/@azure/core-rest-pipeline/dist/esm/pipeline.js
|
||||||
// Copyright (c) Microsoft Corporation.
|
// Copyright (c) Microsoft Corporation.
|
||||||
@@ -90621,6 +90524,59 @@ function throttlingRetryPolicy(options = {}) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
//# sourceMappingURL=throttlingRetryPolicy.js.map
|
//# sourceMappingURL=throttlingRetryPolicy.js.map
|
||||||
|
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/policies/redirectPolicy.js
|
||||||
|
// Copyright (c) Microsoft Corporation.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
/**
|
||||||
|
* The programmatic identifier of the redirectPolicy.
|
||||||
|
*/
|
||||||
|
const redirectPolicyName = "redirectPolicy";
|
||||||
|
/**
|
||||||
|
* Methods that are allowed to follow redirects 301 and 302
|
||||||
|
*/
|
||||||
|
const allowedRedirect = ["GET", "HEAD"];
|
||||||
|
/**
|
||||||
|
* A policy to follow Location headers from the server in order
|
||||||
|
* to support server-side redirection.
|
||||||
|
* In the browser, this policy is not used.
|
||||||
|
* @param options - Options to control policy behavior.
|
||||||
|
*/
|
||||||
|
function redirectPolicy_redirectPolicy(options = {}) {
|
||||||
|
const { maxRetries = 20 } = options;
|
||||||
|
return {
|
||||||
|
name: redirectPolicyName,
|
||||||
|
async sendRequest(request, next) {
|
||||||
|
const response = await next(request);
|
||||||
|
return handleRedirect(next, response, maxRetries);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
async function handleRedirect(next, response, maxRetries, currentRetries = 0) {
|
||||||
|
const { request, status, headers } = response;
|
||||||
|
const locationHeader = headers.get("location");
|
||||||
|
if (locationHeader &&
|
||||||
|
(status === 300 ||
|
||||||
|
(status === 301 && allowedRedirect.includes(request.method)) ||
|
||||||
|
(status === 302 && allowedRedirect.includes(request.method)) ||
|
||||||
|
(status === 303 && request.method === "POST") ||
|
||||||
|
status === 307) &&
|
||||||
|
currentRetries < maxRetries) {
|
||||||
|
const url = new URL(locationHeader, request.url);
|
||||||
|
request.url = url.toString();
|
||||||
|
// POST request with Status code 303 should be converted into a
|
||||||
|
// redirected GET request if the redirect url is present in the location header
|
||||||
|
if (status === 303) {
|
||||||
|
request.method = "GET";
|
||||||
|
request.headers.delete("Content-Length");
|
||||||
|
delete request.body;
|
||||||
|
}
|
||||||
|
request.headers.delete("Authorization");
|
||||||
|
const res = await next(request);
|
||||||
|
return handleRedirect(next, res, maxRetries, currentRetries + 1);
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
//# sourceMappingURL=redirectPolicy.js.map
|
||||||
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/policies/tlsPolicy.js
|
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/policies/tlsPolicy.js
|
||||||
// Copyright (c) Microsoft Corporation.
|
// Copyright (c) Microsoft Corporation.
|
||||||
// Licensed under the MIT License.
|
// Licensed under the MIT License.
|
||||||
@@ -126852,19 +126808,6 @@ function getProxyFetch(destinationUrl) {
|
|||||||
function getApiBaseUrl() {
|
function getApiBaseUrl() {
|
||||||
return process.env['GITHUB_API_URL'] || 'https://api.github.com';
|
return process.env['GITHUB_API_URL'] || 'https://api.github.com';
|
||||||
}
|
}
|
||||||
function getUserAgentWithOrchestrationId(baseUserAgent) {
|
|
||||||
var _a;
|
|
||||||
const orchId = (_a = process.env['ACTIONS_ORCHESTRATION_ID']) === null || _a === void 0 ? void 0 : _a.trim();
|
|
||||||
if (orchId) {
|
|
||||||
const sanitizedId = orchId.replace(/[^a-z0-9_.-]/gi, '_');
|
|
||||||
const tag = `actions_orchestration_id/${sanitizedId}`;
|
|
||||||
if (baseUserAgent === null || baseUserAgent === void 0 ? void 0 : baseUserAgent.includes(tag))
|
|
||||||
return baseUserAgent;
|
|
||||||
const ua = baseUserAgent ? `${baseUserAgent} ` : '';
|
|
||||||
return `${ua}${tag}`;
|
|
||||||
}
|
|
||||||
return baseUserAgent;
|
|
||||||
}
|
|
||||||
//# sourceMappingURL=utils.js.map
|
//# sourceMappingURL=utils.js.map
|
||||||
;// CONCATENATED MODULE: ./node_modules/universal-user-agent/index.js
|
;// CONCATENATED MODULE: ./node_modules/universal-user-agent/index.js
|
||||||
function getUserAgent() {
|
function getUserAgent() {
|
||||||
@@ -130961,7 +130904,6 @@ const utils_defaults = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
const GitHub = Octokit.plugin(restEndpointMethods, paginateRest).defaults(utils_defaults);
|
const GitHub = Octokit.plugin(restEndpointMethods, paginateRest).defaults(utils_defaults);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convience function to correctly format Octokit Options to pass into the constructor.
|
* Convience function to correctly format Octokit Options to pass into the constructor.
|
||||||
*
|
*
|
||||||
@@ -130975,11 +130917,6 @@ function getOctokitOptions(token, options) {
|
|||||||
if (auth) {
|
if (auth) {
|
||||||
opts.auth = auth;
|
opts.auth = auth;
|
||||||
}
|
}
|
||||||
// Orchestration ID
|
|
||||||
const userAgent = getUserAgentWithOrchestrationId(opts.userAgent);
|
|
||||||
if (userAgent) {
|
|
||||||
opts.userAgent = userAgent;
|
|
||||||
}
|
|
||||||
return opts;
|
return opts;
|
||||||
}
|
}
|
||||||
//# sourceMappingURL=utils.js.map
|
//# sourceMappingURL=utils.js.map
|
||||||
@@ -131081,17 +131018,13 @@ function streamExtractExternal(url_1, directory_1) {
|
|||||||
mimeType === 'application/zip-compressed' ||
|
mimeType === 'application/zip-compressed' ||
|
||||||
urlEndsWithZip;
|
urlEndsWithZip;
|
||||||
// Extract filename from Content-Disposition header
|
// Extract filename from Content-Disposition header
|
||||||
// Prefer filename* (RFC 5987) which supports UTF-8 encoded filenames,
|
|
||||||
// fall back to filename which may contain ASCII-only replacements
|
|
||||||
const contentDisposition = response.message.headers['content-disposition'] || '';
|
const contentDisposition = response.message.headers['content-disposition'] || '';
|
||||||
let fileName = 'artifact';
|
let fileName = 'artifact';
|
||||||
const filenameStar = contentDisposition.match(/filename\*\s*=\s*UTF-8''([^;\r\n]*)/i);
|
const filenameMatch = contentDisposition.match(/filename\*?=['"]?(?:UTF-\d['"]*)?([^;\r\n"']*)['"]?/i);
|
||||||
const filenamePlain = contentDisposition.match(/(?<!\*)filename\s*=\s*['"]?([^;\r\n"']*)['"]?/i);
|
if (filenameMatch && filenameMatch[1]) {
|
||||||
const rawName = (filenameStar === null || filenameStar === void 0 ? void 0 : filenameStar[1]) || (filenamePlain === null || filenamePlain === void 0 ? void 0 : filenamePlain[1]);
|
|
||||||
if (rawName) {
|
|
||||||
// Sanitize fileName to prevent path traversal attacks
|
// Sanitize fileName to prevent path traversal attacks
|
||||||
// Use path.basename to extract only the filename component
|
// Use path.basename to extract only the filename component
|
||||||
fileName = external_path_.basename(decodeURIComponent(rawName.trim()));
|
fileName = external_path_.basename(decodeURIComponent(filenameMatch[1].trim()));
|
||||||
}
|
}
|
||||||
core_debug(`Content-Type: ${contentType}, mimeType: ${mimeType}, urlEndsWithZip: ${urlEndsWithZip}, isZip: ${isZip}, skipDecompress: ${skipDecompress}`);
|
core_debug(`Content-Type: ${contentType}, mimeType: ${mimeType}, urlEndsWithZip: ${urlEndsWithZip}, isZip: ${isZip}, skipDecompress: ${skipDecompress}`);
|
||||||
core_debug(`Content-Disposition: ${contentDisposition}, fileName: ${fileName}`);
|
core_debug(`Content-Disposition: ${contentDisposition}, fileName: ${fileName}`);
|
||||||
|
|||||||
Vendored
+87
-154
@@ -79219,7 +79219,7 @@ module.exports = index;
|
|||||||
/***/ 2822:
|
/***/ 2822:
|
||||||
/***/ ((module) => {
|
/***/ ((module) => {
|
||||||
|
|
||||||
module.exports = /*#__PURE__*/JSON.parse('{"name":"@actions/artifact","version":"6.3.1","preview":true,"description":"Actions artifact lib","keywords":["github","actions","artifact"],"homepage":"https://github.com/actions/toolkit/tree/main/packages/artifact","license":"MIT","type":"module","main":"lib/artifact.js","types":"lib/artifact.d.ts","exports":{".":{"types":"./lib/artifact.d.ts","import":"./lib/artifact.js"}},"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/artifact"},"scripts":{"audit-moderate":"npm install && npm audit --json --audit-level=moderate > audit.json","test":"cd ../../ && npm run test ./packages/artifact","bootstrap":"cd ../../ && npm run bootstrap","tsc-run":"tsc && cp src/internal/shared/package-version.cjs lib/internal/shared/","tsc":"npm run bootstrap && npm run tsc-run","gen:docs":"typedoc --plugin typedoc-plugin-markdown --out docs/generated src/artifact.ts --githubPages false --readme none"},"bugs":{"url":"https://github.com/actions/toolkit/issues"},"dependencies":{"@actions/core":"^3.0.1","@actions/github":"^9.1.1","@actions/http-client":"^4.0.1","@azure/storage-blob":"^12.31.0","@octokit/core":"^7.0.6","@octokit/plugin-request-log":"^6.0.0","@octokit/plugin-retry":"^8.1.0","@octokit/request":"^10.0.8","@octokit/request-error":"^7.1.0","@protobuf-ts/runtime":"^2.11.1","@protobuf-ts/runtime-rpc":"^2.11.1","archiver":"^7.0.1","jwt-decode":"^4.0.0","unzip-stream":"^0.3.1"},"devDependencies":{"@protobuf-ts/plugin":"^2.11.1","@types/archiver":"^7.0.0","@types/unzip-stream":"^0.3.4","typedoc":"^0.28.19","typedoc-plugin-markdown":"^4.11.0","typescript":"^5.9.3"},"overrides":{"uri-js":"npm:uri-js-replace@^1.0.1","node-fetch":"^3.3.2"}}');
|
module.exports = /*#__PURE__*/JSON.parse('{"name":"@actions/artifact","version":"6.2.0","preview":true,"description":"Actions artifact lib","keywords":["github","actions","artifact"],"homepage":"https://github.com/actions/toolkit/tree/main/packages/artifact","license":"MIT","type":"module","main":"lib/artifact.js","types":"lib/artifact.d.ts","exports":{".":{"types":"./lib/artifact.d.ts","import":"./lib/artifact.js"}},"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/artifact"},"scripts":{"audit-moderate":"npm install && npm audit --json --audit-level=moderate > audit.json","test":"cd ../../ && npm run test ./packages/artifact","bootstrap":"cd ../../ && npm run bootstrap","tsc-run":"tsc && cp src/internal/shared/package-version.cjs lib/internal/shared/","tsc":"npm run bootstrap && npm run tsc-run","gen:docs":"typedoc --plugin typedoc-plugin-markdown --out docs/generated src/artifact.ts --githubPages false --readme none"},"bugs":{"url":"https://github.com/actions/toolkit/issues"},"dependencies":{"@actions/core":"^3.0.0","@actions/github":"^9.0.0","@actions/http-client":"^4.0.0","@azure/storage-blob":"^12.30.0","@octokit/core":"^7.0.6","@octokit/plugin-request-log":"^6.0.0","@octokit/plugin-retry":"^8.0.0","@octokit/request":"^10.0.7","@octokit/request-error":"^7.1.0","@protobuf-ts/plugin":"^2.2.3-alpha.1","@protobuf-ts/runtime":"^2.9.4","archiver":"^7.0.1","jwt-decode":"^4.0.0","unzip-stream":"^0.3.1"},"devDependencies":{"@types/archiver":"^7.0.0","@types/unzip-stream":"^0.3.4","typedoc":"^0.28.16","typedoc-plugin-markdown":"^4.9.0","typescript":"^5.9.3"},"overrides":{"uri-js":"npm:uri-js-replace@^1.0.1","node-fetch":"^3.3.2"}}');
|
||||||
|
|
||||||
/***/ })
|
/***/ })
|
||||||
|
|
||||||
@@ -84265,7 +84265,7 @@ NetworkError.isNetworkErrorCode = (code) => {
|
|||||||
};
|
};
|
||||||
class UsageError extends Error {
|
class UsageError extends Error {
|
||||||
constructor() {
|
constructor() {
|
||||||
const message = `Artifact storage quota has been hit. Unable to upload any new artifacts.\nMore info on storage limits: https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions#calculating-minute-and-storage-spending`;
|
const message = `Artifact storage quota has been hit. Unable to upload any new artifacts. Usage is recalculated every 6-12 hours.\nMore info on storage limits: https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions#calculating-minute-and-storage-spending`;
|
||||||
super(message);
|
super(message);
|
||||||
this.name = 'UsageError';
|
this.name = 'UsageError';
|
||||||
}
|
}
|
||||||
@@ -84475,9 +84475,8 @@ var artifact_twirp_client_awaiter = (undefined && undefined.__awaiter) || functi
|
|||||||
class ArtifactHttpClient {
|
class ArtifactHttpClient {
|
||||||
constructor(userAgent, maxAttempts, baseRetryIntervalMilliseconds, retryMultiplier) {
|
constructor(userAgent, maxAttempts, baseRetryIntervalMilliseconds, retryMultiplier) {
|
||||||
this.maxAttempts = 5;
|
this.maxAttempts = 5;
|
||||||
this.baseRetryIntervalMilliseconds = 8000;
|
this.baseRetryIntervalMilliseconds = 3000;
|
||||||
this.retryMultiplier = 1.5;
|
this.retryMultiplier = 1.5;
|
||||||
this.retryTimeoutMilliseconds = 120000;
|
|
||||||
const token = getRuntimeToken();
|
const token = getRuntimeToken();
|
||||||
this.baseUrl = getResultsServiceUrl();
|
this.baseUrl = getResultsServiceUrl();
|
||||||
if (maxAttempts) {
|
if (maxAttempts) {
|
||||||
@@ -84516,16 +84515,11 @@ class ArtifactHttpClient {
|
|||||||
let attempt = 0;
|
let attempt = 0;
|
||||||
let errorMessage = '';
|
let errorMessage = '';
|
||||||
let rawBody = '';
|
let rawBody = '';
|
||||||
let totalRetryWaitMilliseconds = 0;
|
|
||||||
while (attempt < this.maxAttempts) {
|
while (attempt < this.maxAttempts) {
|
||||||
let isRetryable = false;
|
let isRetryable = false;
|
||||||
let retryAfterSeconds;
|
|
||||||
try {
|
try {
|
||||||
const response = yield operation();
|
const response = yield operation();
|
||||||
const statusCode = response.message.statusCode;
|
const statusCode = response.message.statusCode;
|
||||||
if (statusCode === HttpCodes.TooManyRequests) {
|
|
||||||
retryAfterSeconds = this.getRetryAfterSeconds(response);
|
|
||||||
}
|
|
||||||
rawBody = yield response.readBody();
|
rawBody = yield response.readBody();
|
||||||
core_debug(`[Response] - ${response.message.statusCode}`);
|
core_debug(`[Response] - ${response.message.statusCode}`);
|
||||||
core_debug(`Headers: ${JSON.stringify(response.message.headers, null, 2)}`);
|
core_debug(`Headers: ${JSON.stringify(response.message.headers, null, 2)}`);
|
||||||
@@ -84563,16 +84557,9 @@ class ArtifactHttpClient {
|
|||||||
if (attempt + 1 === this.maxAttempts) {
|
if (attempt + 1 === this.maxAttempts) {
|
||||||
throw new Error(`Failed to make request after ${this.maxAttempts} attempts: ${errorMessage}`);
|
throw new Error(`Failed to make request after ${this.maxAttempts} attempts: ${errorMessage}`);
|
||||||
}
|
}
|
||||||
const retryTimeMilliseconds = retryAfterSeconds !== undefined
|
const retryTimeMilliseconds = this.getExponentialRetryTimeMilliseconds(attempt);
|
||||||
? retryAfterSeconds * 1000
|
|
||||||
: this.getExponentialRetryTimeMilliseconds(attempt);
|
|
||||||
if (totalRetryWaitMilliseconds + retryTimeMilliseconds >
|
|
||||||
this.retryTimeoutMilliseconds) {
|
|
||||||
throw new Error(`Retry wait of ${retryTimeMilliseconds} ms would exceed the maximum total retry wait of ${this.retryTimeoutMilliseconds} ms: ${errorMessage}`);
|
|
||||||
}
|
|
||||||
info(`Attempt ${attempt + 1} of ${this.maxAttempts} failed with error: ${errorMessage}. Retrying request in ${retryTimeMilliseconds} ms...`);
|
info(`Attempt ${attempt + 1} of ${this.maxAttempts} failed with error: ${errorMessage}. Retrying request in ${retryTimeMilliseconds} ms...`);
|
||||||
yield this.sleep(retryTimeMilliseconds);
|
yield this.sleep(retryTimeMilliseconds);
|
||||||
totalRetryWaitMilliseconds += retryTimeMilliseconds;
|
|
||||||
attempt++;
|
attempt++;
|
||||||
}
|
}
|
||||||
throw new Error(`Request failed`);
|
throw new Error(`Request failed`);
|
||||||
@@ -84595,17 +84582,6 @@ class ArtifactHttpClient {
|
|||||||
];
|
];
|
||||||
return retryableStatusCodes.includes(statusCode);
|
return retryableStatusCodes.includes(statusCode);
|
||||||
}
|
}
|
||||||
// Only positive integer seconds are supported, not HTTP-date values.
|
|
||||||
getRetryAfterSeconds(response) {
|
|
||||||
var _a;
|
|
||||||
const header = response.message.headers['retry-after'];
|
|
||||||
const value = (_a = (Array.isArray(header) ? header[0] : header)) === null || _a === void 0 ? void 0 : _a.trim();
|
|
||||||
if (value === undefined || !/^\d+$/.test(value)) {
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
const parsed = parseInt(value, 10);
|
|
||||||
return !isNaN(parsed) && parsed > 0 ? parsed : undefined;
|
|
||||||
}
|
|
||||||
sleep(milliseconds) {
|
sleep(milliseconds) {
|
||||||
return artifact_twirp_client_awaiter(this, void 0, void 0, function* () {
|
return artifact_twirp_client_awaiter(this, void 0, void 0, function* () {
|
||||||
return new Promise(resolve => setTimeout(resolve, milliseconds));
|
return new Promise(resolve => setTimeout(resolve, milliseconds));
|
||||||
@@ -85620,13 +85596,13 @@ class Sanitizer {
|
|||||||
message: value.message,
|
message: value.message,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (key === "headers" && isObject(value)) {
|
if (key === "headers") {
|
||||||
return this.sanitizeHeaders(value);
|
return this.sanitizeHeaders(value);
|
||||||
}
|
}
|
||||||
else if (key === "url" && typeof value === "string") {
|
else if (key === "url") {
|
||||||
return this.sanitizeUrl(value);
|
return this.sanitizeUrl(value);
|
||||||
}
|
}
|
||||||
else if (key === "query" && isObject(value)) {
|
else if (key === "query") {
|
||||||
return this.sanitizeQuery(value);
|
return this.sanitizeQuery(value);
|
||||||
}
|
}
|
||||||
else if (key === "body") {
|
else if (key === "body") {
|
||||||
@@ -86197,68 +86173,6 @@ function logPolicy_logPolicy(options = {}) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
//# sourceMappingURL=logPolicy.js.map
|
//# sourceMappingURL=logPolicy.js.map
|
||||||
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/policies/redirectPolicy.js
|
|
||||||
// Copyright (c) Microsoft Corporation.
|
|
||||||
// Licensed under the MIT License.
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The programmatic identifier of the redirectPolicy.
|
|
||||||
*/
|
|
||||||
const redirectPolicyName = "redirectPolicy";
|
|
||||||
/**
|
|
||||||
* Methods that are allowed to follow redirects 301 and 302
|
|
||||||
*/
|
|
||||||
const allowedRedirect = ["GET", "HEAD"];
|
|
||||||
/**
|
|
||||||
* A policy to follow Location headers from the server in order
|
|
||||||
* to support server-side redirection.
|
|
||||||
* In the browser, this policy is not used.
|
|
||||||
* @param options - Options to control policy behavior.
|
|
||||||
*/
|
|
||||||
function redirectPolicy_redirectPolicy(options = {}) {
|
|
||||||
const { maxRetries = 20, allowCrossOriginRedirects = false } = options;
|
|
||||||
return {
|
|
||||||
name: redirectPolicyName,
|
|
||||||
async sendRequest(request, next) {
|
|
||||||
const response = await next(request);
|
|
||||||
return handleRedirect(next, response, maxRetries, allowCrossOriginRedirects);
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
async function handleRedirect(next, response, maxRetries, allowCrossOriginRedirects, currentRetries = 0) {
|
|
||||||
const { request, status, headers } = response;
|
|
||||||
const locationHeader = headers.get("location");
|
|
||||||
if (locationHeader &&
|
|
||||||
(status === 300 ||
|
|
||||||
(status === 301 && allowedRedirect.includes(request.method)) ||
|
|
||||||
(status === 302 && allowedRedirect.includes(request.method)) ||
|
|
||||||
(status === 303 && request.method === "POST") ||
|
|
||||||
status === 307) &&
|
|
||||||
currentRetries < maxRetries) {
|
|
||||||
const url = new URL(locationHeader, request.url);
|
|
||||||
// Only follow redirects to the same origin by default.
|
|
||||||
if (!allowCrossOriginRedirects) {
|
|
||||||
const originalUrl = new URL(request.url);
|
|
||||||
if (url.origin !== originalUrl.origin) {
|
|
||||||
log_logger.verbose(`Skipping cross-origin redirect from ${originalUrl.origin} to ${url.origin}.`);
|
|
||||||
return response;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
request.url = url.toString();
|
|
||||||
// POST request with Status code 303 should be converted into a
|
|
||||||
// redirected GET request if the redirect url is present in the location header
|
|
||||||
if (status === 303) {
|
|
||||||
request.method = "GET";
|
|
||||||
request.headers.delete("Content-Length");
|
|
||||||
delete request.body;
|
|
||||||
}
|
|
||||||
request.headers.delete("Authorization");
|
|
||||||
const res = await next(request);
|
|
||||||
return handleRedirect(next, res, maxRetries, allowCrossOriginRedirects, currentRetries + 1);
|
|
||||||
}
|
|
||||||
return response;
|
|
||||||
}
|
|
||||||
//# sourceMappingURL=redirectPolicy.js.map
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/util/userAgentPlatform.js
|
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/util/userAgentPlatform.js
|
||||||
// Copyright (c) Microsoft Corporation.
|
// Copyright (c) Microsoft Corporation.
|
||||||
// Licensed under the MIT License.
|
// Licensed under the MIT License.
|
||||||
@@ -86276,14 +86190,15 @@ function getHeaderName() {
|
|||||||
async function userAgentPlatform_setPlatformSpecificData(map) {
|
async function userAgentPlatform_setPlatformSpecificData(map) {
|
||||||
if (process && process.versions) {
|
if (process && process.versions) {
|
||||||
const osInfo = `${os.type()} ${os.release()}; ${os.arch()}`;
|
const osInfo = `${os.type()} ${os.release()}; ${os.arch()}`;
|
||||||
if (process.versions.bun) {
|
const versions = process.versions;
|
||||||
map.set("Bun", `${process.versions.bun} (${osInfo})`);
|
if (versions.bun) {
|
||||||
|
map.set("Bun", `${versions.bun} (${osInfo})`);
|
||||||
}
|
}
|
||||||
else if (process.versions.deno) {
|
else if (versions.deno) {
|
||||||
map.set("Deno", `${process.versions.deno} (${osInfo})`);
|
map.set("Deno", `${versions.deno} (${osInfo})`);
|
||||||
}
|
}
|
||||||
else if (process.versions.node) {
|
else if (versions.node) {
|
||||||
map.set("Node", `${process.versions.node} (${osInfo})`);
|
map.set("Node", `${versions.node} (${osInfo})`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -86590,7 +86505,7 @@ function isSystemError(err) {
|
|||||||
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/constants.js
|
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/constants.js
|
||||||
// Copyright (c) Microsoft Corporation.
|
// Copyright (c) Microsoft Corporation.
|
||||||
// Licensed under the MIT License.
|
// Licensed under the MIT License.
|
||||||
const constants_SDK_VERSION = "0.3.5";
|
const constants_SDK_VERSION = "0.3.3";
|
||||||
const constants_DEFAULT_RETRY_POLICY_COUNT = 3;
|
const constants_DEFAULT_RETRY_POLICY_COUNT = 3;
|
||||||
//# sourceMappingURL=constants.js.map
|
//# sourceMappingURL=constants.js.map
|
||||||
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/policies/retryPolicy.js
|
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/policies/retryPolicy.js
|
||||||
@@ -86600,7 +86515,6 @@ const constants_DEFAULT_RETRY_POLICY_COUNT = 3;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const retryPolicyLogger = createClientLogger("ts-http-runtime retryPolicy");
|
const retryPolicyLogger = createClientLogger("ts-http-runtime retryPolicy");
|
||||||
/**
|
/**
|
||||||
* The programmatic identifier of the retryPolicy.
|
* The programmatic identifier of the retryPolicy.
|
||||||
@@ -86631,11 +86545,11 @@ function retryPolicy_retryPolicy(strategies, options = { maxRetries: constants_D
|
|||||||
// RestErrors are valid targets for the retry strategies.
|
// RestErrors are valid targets for the retry strategies.
|
||||||
// If none of the retry strategies can work with them, they will be thrown later in this policy.
|
// If none of the retry strategies can work with them, they will be thrown later in this policy.
|
||||||
// If the received error is not a RestError, it is immediately thrown.
|
// If the received error is not a RestError, it is immediately thrown.
|
||||||
if (!restError_isRestError(e)) {
|
responseError = e;
|
||||||
|
if (!e || responseError.name !== "RestError") {
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
responseError = e;
|
response = responseError.response;
|
||||||
response = e.response;
|
|
||||||
}
|
}
|
||||||
if (request.abortSignal?.aborted) {
|
if (request.abortSignal?.aborted) {
|
||||||
logger.error(`Retry ${retryCount}: Request aborted.`);
|
logger.error(`Retry ${retryCount}: Request aborted.`);
|
||||||
@@ -87036,15 +86950,16 @@ function setProxyAgentOnRequest(request, cachedAgents, proxyUrl) {
|
|||||||
if (request.tlsSettings) {
|
if (request.tlsSettings) {
|
||||||
log_logger.warning("TLS settings are not supported in combination with custom Proxy, certificates provided to the client will be ignored.");
|
log_logger.warning("TLS settings are not supported in combination with custom Proxy, certificates provided to the client will be ignored.");
|
||||||
}
|
}
|
||||||
|
const headers = request.headers.toJSON();
|
||||||
if (isInsecure) {
|
if (isInsecure) {
|
||||||
if (!cachedAgents.httpProxyAgent) {
|
if (!cachedAgents.httpProxyAgent) {
|
||||||
cachedAgents.httpProxyAgent = new http_proxy_agent_dist.HttpProxyAgent(proxyUrl);
|
cachedAgents.httpProxyAgent = new http_proxy_agent_dist.HttpProxyAgent(proxyUrl, { headers });
|
||||||
}
|
}
|
||||||
request.agent = cachedAgents.httpProxyAgent;
|
request.agent = cachedAgents.httpProxyAgent;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (!cachedAgents.httpsProxyAgent) {
|
if (!cachedAgents.httpsProxyAgent) {
|
||||||
cachedAgents.httpsProxyAgent = new dist.HttpsProxyAgent(proxyUrl);
|
cachedAgents.httpsProxyAgent = new dist.HttpsProxyAgent(proxyUrl, { headers });
|
||||||
}
|
}
|
||||||
request.agent = cachedAgents.httpsProxyAgent;
|
request.agent = cachedAgents.httpsProxyAgent;
|
||||||
}
|
}
|
||||||
@@ -87096,13 +87011,13 @@ function typeGuards_isBinaryBody(body) {
|
|||||||
(body instanceof Uint8Array ||
|
(body instanceof Uint8Array ||
|
||||||
typeGuards_isReadableStream(body) ||
|
typeGuards_isReadableStream(body) ||
|
||||||
typeof body === "function" ||
|
typeof body === "function" ||
|
||||||
(typeof Blob !== "undefined" && body instanceof Blob)));
|
body instanceof Blob));
|
||||||
}
|
}
|
||||||
function typeGuards_isReadableStream(x) {
|
function typeGuards_isReadableStream(x) {
|
||||||
return isNodeReadableStream(x) || isWebReadableStream(x);
|
return isNodeReadableStream(x) || isWebReadableStream(x);
|
||||||
}
|
}
|
||||||
function typeGuards_isBlob(x) {
|
function isBlob(x) {
|
||||||
return typeof Blob !== "undefined" && x instanceof Blob;
|
return typeof x.stream === "function";
|
||||||
}
|
}
|
||||||
//# sourceMappingURL=typeGuards.js.map
|
//# sourceMappingURL=typeGuards.js.map
|
||||||
// EXTERNAL MODULE: external "stream"
|
// EXTERNAL MODULE: external "stream"
|
||||||
@@ -87148,7 +87063,7 @@ function toStream(source) {
|
|||||||
if (source instanceof Uint8Array) {
|
if (source instanceof Uint8Array) {
|
||||||
return external_stream_.Readable.from(Buffer.from(source));
|
return external_stream_.Readable.from(Buffer.from(source));
|
||||||
}
|
}
|
||||||
else if (typeGuards_isBlob(source)) {
|
else if (isBlob(source)) {
|
||||||
return ensureNodeStream(source.stream());
|
return ensureNodeStream(source.stream());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -87198,7 +87113,7 @@ function getLength(source) {
|
|||||||
if (source instanceof Uint8Array) {
|
if (source instanceof Uint8Array) {
|
||||||
return source.byteLength;
|
return source.byteLength;
|
||||||
}
|
}
|
||||||
else if (typeGuards_isBlob(source)) {
|
else if (isBlob(source)) {
|
||||||
// if was created using createFile then -1 means we have an unknown size
|
// if was created using createFile then -1 means we have an unknown size
|
||||||
return source.size === -1 ? undefined : source.size;
|
return source.size === -1 ? undefined : source.size;
|
||||||
}
|
}
|
||||||
@@ -87727,14 +87642,9 @@ async function sendRequest_sendRequest(method, url, pipeline, options = {}, cust
|
|||||||
* @returns returns the content-type
|
* @returns returns the content-type
|
||||||
*/
|
*/
|
||||||
function getRequestContentType(options = {}) {
|
function getRequestContentType(options = {}) {
|
||||||
if (options.contentType) {
|
return (options.contentType ??
|
||||||
return options.contentType;
|
options.headers?.["content-type"] ??
|
||||||
}
|
getContentType(options.body));
|
||||||
const headerContentType = options.headers?.["content-type"];
|
|
||||||
if (typeof headerContentType === "string") {
|
|
||||||
return headerContentType;
|
|
||||||
}
|
|
||||||
return getContentType(options.body);
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Function to determine the content-type of a body
|
* Function to determine the content-type of a body
|
||||||
@@ -87749,9 +87659,6 @@ function getContentType(body) {
|
|||||||
if (ArrayBuffer.isView(body)) {
|
if (ArrayBuffer.isView(body)) {
|
||||||
return "application/octet-stream";
|
return "application/octet-stream";
|
||||||
}
|
}
|
||||||
if (isBlob(body) && body.type) {
|
|
||||||
return body.type;
|
|
||||||
}
|
|
||||||
if (typeof body === "string") {
|
if (typeof body === "string") {
|
||||||
try {
|
try {
|
||||||
JSON.parse(body);
|
JSON.parse(body);
|
||||||
@@ -87802,15 +87709,9 @@ function getRequestBody(body, contentType = "") {
|
|||||||
if (typeof FormData !== "undefined" && body instanceof FormData) {
|
if (typeof FormData !== "undefined" && body instanceof FormData) {
|
||||||
return { body };
|
return { body };
|
||||||
}
|
}
|
||||||
if (isBlob(body)) {
|
|
||||||
return { body };
|
|
||||||
}
|
|
||||||
if (isReadableStream(body)) {
|
if (isReadableStream(body)) {
|
||||||
return { body };
|
return { body };
|
||||||
}
|
}
|
||||||
if (typeof body === "function") {
|
|
||||||
return { body: body };
|
|
||||||
}
|
|
||||||
if (ArrayBuffer.isView(body)) {
|
if (ArrayBuffer.isView(body)) {
|
||||||
return { body: body instanceof Uint8Array ? body : JSON.stringify(body) };
|
return { body: body instanceof Uint8Array ? body : JSON.stringify(body) };
|
||||||
}
|
}
|
||||||
@@ -88000,6 +87901,8 @@ function statusCodeToNumber(statusCode) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//# sourceMappingURL=index.js.map
|
//# sourceMappingURL=index.js.map
|
||||||
;// CONCATENATED MODULE: ./node_modules/@azure/core-rest-pipeline/dist/esm/pipeline.js
|
;// CONCATENATED MODULE: ./node_modules/@azure/core-rest-pipeline/dist/esm/pipeline.js
|
||||||
// Copyright (c) Microsoft Corporation.
|
// Copyright (c) Microsoft Corporation.
|
||||||
@@ -88196,6 +88099,59 @@ function throttlingRetryPolicy(options = {}) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
//# sourceMappingURL=throttlingRetryPolicy.js.map
|
//# sourceMappingURL=throttlingRetryPolicy.js.map
|
||||||
|
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/policies/redirectPolicy.js
|
||||||
|
// Copyright (c) Microsoft Corporation.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
/**
|
||||||
|
* The programmatic identifier of the redirectPolicy.
|
||||||
|
*/
|
||||||
|
const redirectPolicyName = "redirectPolicy";
|
||||||
|
/**
|
||||||
|
* Methods that are allowed to follow redirects 301 and 302
|
||||||
|
*/
|
||||||
|
const allowedRedirect = ["GET", "HEAD"];
|
||||||
|
/**
|
||||||
|
* A policy to follow Location headers from the server in order
|
||||||
|
* to support server-side redirection.
|
||||||
|
* In the browser, this policy is not used.
|
||||||
|
* @param options - Options to control policy behavior.
|
||||||
|
*/
|
||||||
|
function redirectPolicy_redirectPolicy(options = {}) {
|
||||||
|
const { maxRetries = 20 } = options;
|
||||||
|
return {
|
||||||
|
name: redirectPolicyName,
|
||||||
|
async sendRequest(request, next) {
|
||||||
|
const response = await next(request);
|
||||||
|
return handleRedirect(next, response, maxRetries);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
async function handleRedirect(next, response, maxRetries, currentRetries = 0) {
|
||||||
|
const { request, status, headers } = response;
|
||||||
|
const locationHeader = headers.get("location");
|
||||||
|
if (locationHeader &&
|
||||||
|
(status === 300 ||
|
||||||
|
(status === 301 && allowedRedirect.includes(request.method)) ||
|
||||||
|
(status === 302 && allowedRedirect.includes(request.method)) ||
|
||||||
|
(status === 303 && request.method === "POST") ||
|
||||||
|
status === 307) &&
|
||||||
|
currentRetries < maxRetries) {
|
||||||
|
const url = new URL(locationHeader, request.url);
|
||||||
|
request.url = url.toString();
|
||||||
|
// POST request with Status code 303 should be converted into a
|
||||||
|
// redirected GET request if the redirect url is present in the location header
|
||||||
|
if (status === 303) {
|
||||||
|
request.method = "GET";
|
||||||
|
request.headers.delete("Content-Length");
|
||||||
|
delete request.body;
|
||||||
|
}
|
||||||
|
request.headers.delete("Authorization");
|
||||||
|
const res = await next(request);
|
||||||
|
return handleRedirect(next, res, maxRetries, currentRetries + 1);
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
//# sourceMappingURL=redirectPolicy.js.map
|
||||||
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/policies/tlsPolicy.js
|
;// CONCATENATED MODULE: ./node_modules/@typespec/ts-http-runtime/dist/esm/policies/tlsPolicy.js
|
||||||
// Copyright (c) Microsoft Corporation.
|
// Copyright (c) Microsoft Corporation.
|
||||||
// Licensed under the MIT License.
|
// Licensed under the MIT License.
|
||||||
@@ -124429,19 +124385,6 @@ function getProxyFetch(destinationUrl) {
|
|||||||
function getApiBaseUrl() {
|
function getApiBaseUrl() {
|
||||||
return process.env['GITHUB_API_URL'] || 'https://api.github.com';
|
return process.env['GITHUB_API_URL'] || 'https://api.github.com';
|
||||||
}
|
}
|
||||||
function getUserAgentWithOrchestrationId(baseUserAgent) {
|
|
||||||
var _a;
|
|
||||||
const orchId = (_a = process.env['ACTIONS_ORCHESTRATION_ID']) === null || _a === void 0 ? void 0 : _a.trim();
|
|
||||||
if (orchId) {
|
|
||||||
const sanitizedId = orchId.replace(/[^a-z0-9_.-]/gi, '_');
|
|
||||||
const tag = `actions_orchestration_id/${sanitizedId}`;
|
|
||||||
if (baseUserAgent === null || baseUserAgent === void 0 ? void 0 : baseUserAgent.includes(tag))
|
|
||||||
return baseUserAgent;
|
|
||||||
const ua = baseUserAgent ? `${baseUserAgent} ` : '';
|
|
||||||
return `${ua}${tag}`;
|
|
||||||
}
|
|
||||||
return baseUserAgent;
|
|
||||||
}
|
|
||||||
//# sourceMappingURL=utils.js.map
|
//# sourceMappingURL=utils.js.map
|
||||||
;// CONCATENATED MODULE: ./node_modules/universal-user-agent/index.js
|
;// CONCATENATED MODULE: ./node_modules/universal-user-agent/index.js
|
||||||
function getUserAgent() {
|
function getUserAgent() {
|
||||||
@@ -128538,7 +128481,6 @@ const defaults = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
const GitHub = Octokit.plugin(restEndpointMethods, paginateRest).defaults(defaults);
|
const GitHub = Octokit.plugin(restEndpointMethods, paginateRest).defaults(defaults);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convience function to correctly format Octokit Options to pass into the constructor.
|
* Convience function to correctly format Octokit Options to pass into the constructor.
|
||||||
*
|
*
|
||||||
@@ -128552,11 +128494,6 @@ function getOctokitOptions(token, options) {
|
|||||||
if (auth) {
|
if (auth) {
|
||||||
opts.auth = auth;
|
opts.auth = auth;
|
||||||
}
|
}
|
||||||
// Orchestration ID
|
|
||||||
const userAgent = getUserAgentWithOrchestrationId(opts.userAgent);
|
|
||||||
if (userAgent) {
|
|
||||||
opts.userAgent = userAgent;
|
|
||||||
}
|
|
||||||
return opts;
|
return opts;
|
||||||
}
|
}
|
||||||
//# sourceMappingURL=utils.js.map
|
//# sourceMappingURL=utils.js.map
|
||||||
@@ -128658,17 +128595,13 @@ function streamExtractExternal(url_1, directory_1) {
|
|||||||
mimeType === 'application/zip-compressed' ||
|
mimeType === 'application/zip-compressed' ||
|
||||||
urlEndsWithZip;
|
urlEndsWithZip;
|
||||||
// Extract filename from Content-Disposition header
|
// Extract filename from Content-Disposition header
|
||||||
// Prefer filename* (RFC 5987) which supports UTF-8 encoded filenames,
|
|
||||||
// fall back to filename which may contain ASCII-only replacements
|
|
||||||
const contentDisposition = response.message.headers['content-disposition'] || '';
|
const contentDisposition = response.message.headers['content-disposition'] || '';
|
||||||
let fileName = 'artifact';
|
let fileName = 'artifact';
|
||||||
const filenameStar = contentDisposition.match(/filename\*\s*=\s*UTF-8''([^;\r\n]*)/i);
|
const filenameMatch = contentDisposition.match(/filename\*?=['"]?(?:UTF-\d['"]*)?([^;\r\n"']*)['"]?/i);
|
||||||
const filenamePlain = contentDisposition.match(/(?<!\*)filename\s*=\s*['"]?([^;\r\n"']*)['"]?/i);
|
if (filenameMatch && filenameMatch[1]) {
|
||||||
const rawName = (filenameStar === null || filenameStar === void 0 ? void 0 : filenameStar[1]) || (filenamePlain === null || filenamePlain === void 0 ? void 0 : filenamePlain[1]);
|
|
||||||
if (rawName) {
|
|
||||||
// Sanitize fileName to prevent path traversal attacks
|
// Sanitize fileName to prevent path traversal attacks
|
||||||
// Use path.basename to extract only the filename component
|
// Use path.basename to extract only the filename component
|
||||||
fileName = external_path_.basename(decodeURIComponent(rawName.trim()));
|
fileName = external_path_.basename(decodeURIComponent(filenameMatch[1].trim()));
|
||||||
}
|
}
|
||||||
core_debug(`Content-Type: ${contentType}, mimeType: ${mimeType}, urlEndsWithZip: ${urlEndsWithZip}, isZip: ${isZip}, skipDecompress: ${skipDecompress}`);
|
core_debug(`Content-Type: ${contentType}, mimeType: ${mimeType}, urlEndsWithZip: ${urlEndsWithZip}, isZip: ${isZip}, skipDecompress: ${skipDecompress}`);
|
||||||
core_debug(`Content-Disposition: ${contentDisposition}, fileName: ${fileName}`);
|
core_debug(`Content-Disposition: ${contentDisposition}, fileName: ${fileName}`);
|
||||||
|
|||||||
Generated
+108
-27
@@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name": "upload-artifact",
|
"name": "upload-artifact",
|
||||||
"version": "7.0.2",
|
"version": "7.0.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "upload-artifact",
|
"name": "upload-artifact",
|
||||||
"version": "7.0.2",
|
"version": "7.0.0",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/artifact": "^6.3.1",
|
"@actions/artifact": "^6.2.0",
|
||||||
"@actions/core": "^3.0.0",
|
"@actions/core": "^3.0.0",
|
||||||
"@actions/github": "^9.0.0",
|
"@actions/github": "^9.0.0",
|
||||||
"@actions/glob": "^0.6.1",
|
"@actions/glob": "^0.6.1",
|
||||||
@@ -38,31 +38,31 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@actions/artifact": {
|
"node_modules/@actions/artifact": {
|
||||||
"version": "6.3.1",
|
"version": "6.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/@actions/artifact/-/artifact-6.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/@actions/artifact/-/artifact-6.2.0.tgz",
|
||||||
"integrity": "sha512-DBXgdB9T4yj2KSe0tFg+MTi9T5se+16bdrFQh+3Y6Nq1lZ3gYQk1BjHoTof+7Zf36bEAlfVMf+8ifRKeyGJugQ==",
|
"integrity": "sha512-i9kmGy6WfuA6rby4fdD0UMKjT4MicFiKMsB5mUZ+1ggFW7+SzqvFsxLhIXxITkKUhTMVREXQfn/ZAN87EQLQDA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^3.0.1",
|
"@actions/core": "^3.0.0",
|
||||||
"@actions/github": "^9.1.1",
|
"@actions/github": "^9.0.0",
|
||||||
"@actions/http-client": "^4.0.1",
|
"@actions/http-client": "^4.0.0",
|
||||||
"@azure/storage-blob": "^12.31.0",
|
"@azure/storage-blob": "^12.30.0",
|
||||||
"@octokit/core": "^7.0.6",
|
"@octokit/core": "^7.0.6",
|
||||||
"@octokit/plugin-request-log": "^6.0.0",
|
"@octokit/plugin-request-log": "^6.0.0",
|
||||||
"@octokit/plugin-retry": "^8.1.0",
|
"@octokit/plugin-retry": "^8.0.0",
|
||||||
"@octokit/request": "^10.0.8",
|
"@octokit/request": "^10.0.7",
|
||||||
"@octokit/request-error": "^7.1.0",
|
"@octokit/request-error": "^7.1.0",
|
||||||
"@protobuf-ts/runtime": "^2.11.1",
|
"@protobuf-ts/plugin": "^2.2.3-alpha.1",
|
||||||
"@protobuf-ts/runtime-rpc": "^2.11.1",
|
"@protobuf-ts/runtime": "^2.9.4",
|
||||||
"archiver": "^7.0.1",
|
"archiver": "^7.0.1",
|
||||||
"jwt-decode": "^4.0.0",
|
"jwt-decode": "^4.0.0",
|
||||||
"unzip-stream": "^0.3.1"
|
"unzip-stream": "^0.3.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@actions/core": {
|
"node_modules/@actions/core": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@actions/core/-/core-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@actions/core/-/core-3.0.0.tgz",
|
||||||
"integrity": "sha512-a6d/Nwahm9fliVGRhdhofo40HjHQasUPusmc7vBfyky+7Z+P2A1J68zyFVaNcEclc/Se+eO595oAr5nwEIoIUA==",
|
"integrity": "sha512-zYt6cz+ivnTmiT/ksRVriMBOiuoUpDCJJlZ5KPl2/FRdvwU3f7MPh9qftvbkXJThragzUZieit2nyHUyw53Seg==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/exec": "^3.0.0",
|
"@actions/exec": "^3.0.0",
|
||||||
@@ -79,9 +79,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@actions/github": {
|
"node_modules/@actions/github": {
|
||||||
"version": "9.1.1",
|
"version": "9.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@actions/github/-/github-9.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@actions/github/-/github-9.0.0.tgz",
|
||||||
"integrity": "sha512-tL5JbYOBZHc0ngEnCsaDcryUizIUIlQyIMwy1Wkx93H5HzbBJ7TbiPx2PnFjBwZW0Vh05JmfFZhecE6gglYegA==",
|
"integrity": "sha512-yJ0RoswsAaKcvkmpCE4XxBRiy/whH2SdTBHWzs0gi4wkqTDhXMChjSdqBz/F4AeiDlP28rQqL33iHb+kjAMX6w==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/http-client": "^3.0.2",
|
"@actions/http-client": "^3.0.2",
|
||||||
@@ -142,9 +142,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@actions/http-client": {
|
"node_modules/@actions/http-client": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-4.0.0.tgz",
|
||||||
"integrity": "sha512-+Nvd1ImaOZBSoPbsUtEhv+1z99H12xzncCkz0a3RuehINE81FZSe2QTj3uvAPTcJX/SCzUQHQ0D1GrPMbrPitg==",
|
"integrity": "sha512-QuwPsgVMsD6qaPD57GLZi9sqzAZCtiJT8kVBCDpLtxhL5MydQ4gS+DrejtZZPdIYyB1e95uCK9Luyds7ybHI3g==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"tunnel": "^0.0.6",
|
"tunnel": "^0.0.6",
|
||||||
@@ -875,6 +875,36 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/@bufbuild/protobuf": {
|
||||||
|
"version": "2.11.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.11.0.tgz",
|
||||||
|
"integrity": "sha512-sBXGT13cpmPR5BMgHE6UEEfEaShh5Ror6rfN3yEK5si7QVrtZg8LEPQb0VVhiLRUslD2yLnXtnRzG035J/mZXQ==",
|
||||||
|
"license": "(Apache-2.0 AND BSD-3-Clause)"
|
||||||
|
},
|
||||||
|
"node_modules/@bufbuild/protoplugin": {
|
||||||
|
"version": "2.11.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@bufbuild/protoplugin/-/protoplugin-2.11.0.tgz",
|
||||||
|
"integrity": "sha512-lyZVNFUHArIOt4W0+dwYBe5GBwbKzbOy8ObaloEqsw9Mmiwv2O48TwddDoHN4itylC+BaEGqFdI1W8WQt2vWJQ==",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"dependencies": {
|
||||||
|
"@bufbuild/protobuf": "2.11.0",
|
||||||
|
"@typescript/vfs": "^1.6.2",
|
||||||
|
"typescript": "5.4.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@bufbuild/protoplugin/node_modules/typescript": {
|
||||||
|
"version": "5.4.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
|
||||||
|
"integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"bin": {
|
||||||
|
"tsc": "bin/tsc",
|
||||||
|
"tsserver": "bin/tsserver"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.17"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@cspotcode/source-map-support": {
|
"node_modules/@cspotcode/source-map-support": {
|
||||||
"version": "0.8.1",
|
"version": "0.8.1",
|
||||||
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
|
||||||
@@ -1935,6 +1965,46 @@
|
|||||||
"url": "https://opencollective.com/pkgr"
|
"url": "https://opencollective.com/pkgr"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@protobuf-ts/plugin": {
|
||||||
|
"version": "2.11.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@protobuf-ts/plugin/-/plugin-2.11.1.tgz",
|
||||||
|
"integrity": "sha512-HyuprDcw0bEEJqkOWe1rnXUP0gwYLij8YhPuZyZk6cJbIgc/Q0IFgoHQxOXNIXAcXM4Sbehh6kjVnCzasElw1A==",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"dependencies": {
|
||||||
|
"@bufbuild/protobuf": "^2.4.0",
|
||||||
|
"@bufbuild/protoplugin": "^2.4.0",
|
||||||
|
"@protobuf-ts/protoc": "^2.11.1",
|
||||||
|
"@protobuf-ts/runtime": "^2.11.1",
|
||||||
|
"@protobuf-ts/runtime-rpc": "^2.11.1",
|
||||||
|
"typescript": "^3.9"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"protoc-gen-dump": "bin/protoc-gen-dump",
|
||||||
|
"protoc-gen-ts": "bin/protoc-gen-ts"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@protobuf-ts/plugin/node_modules/typescript": {
|
||||||
|
"version": "3.9.10",
|
||||||
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz",
|
||||||
|
"integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"bin": {
|
||||||
|
"tsc": "bin/tsc",
|
||||||
|
"tsserver": "bin/tsserver"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=4.2.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@protobuf-ts/protoc": {
|
||||||
|
"version": "2.11.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@protobuf-ts/protoc/-/protoc-2.11.1.tgz",
|
||||||
|
"integrity": "sha512-mUZJaV0daGO6HUX90o/atzQ6A7bbN2RSuHtdwo8SSF2Qoe3zHwa4IHyCN1evftTeHfLmdz+45qo47sL+5P8nyg==",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"bin": {
|
||||||
|
"protoc": "protoc.js"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@protobuf-ts/runtime": {
|
"node_modules/@protobuf-ts/runtime": {
|
||||||
"version": "2.11.1",
|
"version": "2.11.1",
|
||||||
"resolved": "https://registry.npmjs.org/@protobuf-ts/runtime/-/runtime-2.11.1.tgz",
|
"resolved": "https://registry.npmjs.org/@protobuf-ts/runtime/-/runtime-2.11.1.tgz",
|
||||||
@@ -2394,10 +2464,22 @@
|
|||||||
"url": "https://opencollective.com/eslint"
|
"url": "https://opencollective.com/eslint"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@typescript/vfs": {
|
||||||
|
"version": "1.6.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.6.4.tgz",
|
||||||
|
"integrity": "sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"debug": "^4.4.3"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"typescript": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@typespec/ts-http-runtime": {
|
"node_modules/@typespec/ts-http-runtime": {
|
||||||
"version": "0.3.5",
|
"version": "0.3.3",
|
||||||
"resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.5.tgz",
|
"resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.3.tgz",
|
||||||
"integrity": "sha512-yURCknZhvywvQItHMMmFSo+fq5arCUIyz/CVk7jD89MSai7dkaX8ufjCWp3NttLojoTVbcE72ri+be/TnEbMHw==",
|
"integrity": "sha512-91fp6CAAJSRtH5ja95T1FHSKa8aPW9/Zw6cta81jlZTUw/+Vq8jM/AfF/14h2b71wwR84JUTW/3Y8QPhDAawFA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"http-proxy-agent": "^7.0.0",
|
"http-proxy-agent": "^7.0.0",
|
||||||
@@ -9064,7 +9146,6 @@
|
|||||||
"version": "5.9.3",
|
"version": "5.9.3",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
|
||||||
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
||||||
"dev": true,
|
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"bin": {
|
"bin": {
|
||||||
"tsc": "bin/tsc",
|
"tsc": "bin/tsc",
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "upload-artifact",
|
"name": "upload-artifact",
|
||||||
"version": "7.0.2",
|
"version": "7.0.0",
|
||||||
"description": "Upload an Actions Artifact in a workflow run",
|
"description": "Upload an Actions Artifact in a workflow run",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "dist/upload/index.js",
|
"main": "dist/upload/index.js",
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
"node": ">=24"
|
"node": ">=24"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/artifact": "^6.3.1",
|
"@actions/artifact": "^6.2.0",
|
||||||
"@actions/core": "^3.0.0",
|
"@actions/core": "^3.0.0",
|
||||||
"@actions/github": "^9.0.0",
|
"@actions/github": "^9.0.0",
|
||||||
"@actions/glob": "^0.6.1",
|
"@actions/glob": "^0.6.1",
|
||||||
|
|||||||
Reference in New Issue
Block a user