@actions/artifact 5.0.2 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/lib/artifact.d.ts +4 -4
- package/lib/artifact.js +6 -22
- package/lib/artifact.js.map +1 -1
- package/lib/generated/google/protobuf/timestamp.js +21 -24
- package/lib/generated/google/protobuf/timestamp.js.map +1 -1
- package/lib/generated/google/protobuf/wrappers.js +74 -77
- package/lib/generated/google/protobuf/wrappers.js.map +1 -1
- package/lib/generated/index.d.ts +4 -4
- package/lib/generated/index.js +4 -20
- package/lib/generated/index.js.map +1 -1
- package/lib/generated/results/api/v1/artifact.d.ts +3 -3
- package/lib/generated/results/api/v1/artifact.js +168 -171
- package/lib/generated/results/api/v1/artifact.js.map +1 -1
- package/lib/generated/results/api/v1/artifact.twirp-client.d.ts +1 -1
- package/lib/generated/results/api/v1/artifact.twirp-client.js +23 -28
- package/lib/generated/results/api/v1/artifact.twirp-client.js.map +1 -1
- package/lib/internal/client.d.ts +1 -1
- package/lib/internal/client.js +33 -37
- package/lib/internal/client.js.map +1 -1
- package/lib/internal/delete/delete-artifact.d.ts +1 -1
- package/lib/internal/delete/delete-artifact.js +25 -29
- package/lib/internal/delete/delete-artifact.js.map +1 -1
- package/lib/internal/download/download-artifact.d.ts +1 -1
- package/lib/internal/download/download-artifact.js +25 -66
- package/lib/internal/download/download-artifact.js.map +1 -1
- package/lib/internal/find/get-artifact.d.ts +1 -1
- package/lib/internal/find/get-artifact.js +23 -60
- package/lib/internal/find/get-artifact.js.map +1 -1
- package/lib/internal/find/list-artifacts.d.ts +1 -1
- package/lib/internal/find/list-artifacts.js +25 -29
- package/lib/internal/find/list-artifacts.js.map +1 -1
- package/lib/internal/find/retry-options.d.ts +1 -1
- package/lib/internal/find/retry-options.js +2 -38
- package/lib/internal/find/retry-options.js.map +1 -1
- package/lib/internal/shared/artifact-twirp-client.d.ts +1 -1
- package/lib/internal/shared/artifact-twirp-client.js +32 -35
- package/lib/internal/shared/artifact-twirp-client.js.map +1 -1
- package/lib/internal/shared/config.js +13 -26
- package/lib/internal/shared/config.js.map +1 -1
- package/lib/internal/shared/errors.js +6 -15
- package/lib/internal/shared/errors.js.map +1 -1
- package/lib/internal/shared/interfaces.js +1 -2
- package/lib/internal/shared/package-version.cjs +7 -0
- package/lib/internal/shared/user-agent.js +3 -7
- package/lib/internal/shared/user-agent.js.map +1 -1
- package/lib/internal/shared/util.js +13 -54
- package/lib/internal/shared/util.js.map +1 -1
- package/lib/internal/upload/blob-upload.d.ts +1 -1
- package/lib/internal/upload/blob-upload.js +13 -49
- package/lib/internal/upload/blob-upload.js.map +1 -1
- package/lib/internal/upload/path-and-artifact-name-validation.js +4 -8
- package/lib/internal/upload/path-and-artifact-name-validation.js.map +1 -1
- package/lib/internal/upload/retention.d.ts +1 -1
- package/lib/internal/upload/retention.js +4 -40
- package/lib/internal/upload/retention.js.map +1 -1
- package/lib/internal/upload/upload-artifact.d.ts +1 -1
- package/lib/internal/upload/upload-artifact.js +23 -59
- package/lib/internal/upload/upload-artifact.js.map +1 -1
- package/lib/internal/upload/upload-zip-specification.js +13 -50
- package/lib/internal/upload/upload-zip-specification.js.map +1 -1
- package/lib/internal/upload/zip.d.ts +1 -1
- package/lib/internal/upload/zip.js +12 -50
- package/lib/internal/upload/zip.js.map +1 -1
- package/package.json +24 -16
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,64 +7,61 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const get_artifact_1 = require("../find/get-artifact");
|
|
25
|
-
const errors_1 = require("../shared/errors");
|
|
26
|
-
function deleteArtifactPublic(artifactName, workflowRunId, repositoryOwner, repositoryName, token) {
|
|
10
|
+
import { info, debug } from '@actions/core';
|
|
11
|
+
import { getOctokit } from '@actions/github';
|
|
12
|
+
import { getUserAgentString } from '../shared/user-agent.js';
|
|
13
|
+
import { getRetryOptions } from '../find/retry-options.js';
|
|
14
|
+
import { defaults as defaultGitHubOptions } from '@actions/github/lib/utils';
|
|
15
|
+
import { requestLog } from '@octokit/plugin-request-log';
|
|
16
|
+
import { retry } from '@octokit/plugin-retry';
|
|
17
|
+
import { internalArtifactTwirpClient } from '../shared/artifact-twirp-client.js';
|
|
18
|
+
import { getBackendIdsFromToken } from '../shared/util.js';
|
|
19
|
+
import { StringValue } from '../../generated/index.js';
|
|
20
|
+
import { getArtifactPublic } from '../find/get-artifact.js';
|
|
21
|
+
import { ArtifactNotFoundError, InvalidResponseError } from '../shared/errors.js';
|
|
22
|
+
export function deleteArtifactPublic(artifactName, workflowRunId, repositoryOwner, repositoryName, token) {
|
|
27
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28
24
|
var _a;
|
|
29
|
-
const [retryOpts, requestOpts] =
|
|
25
|
+
const [retryOpts, requestOpts] = getRetryOptions(defaultGitHubOptions);
|
|
30
26
|
const opts = {
|
|
31
27
|
log: undefined,
|
|
32
|
-
userAgent:
|
|
28
|
+
userAgent: getUserAgentString(),
|
|
33
29
|
previews: undefined,
|
|
34
30
|
retry: retryOpts,
|
|
35
31
|
request: requestOpts
|
|
36
32
|
};
|
|
37
|
-
const github =
|
|
38
|
-
const getArtifactResp = yield
|
|
33
|
+
const github = getOctokit(token, opts, retry, requestLog);
|
|
34
|
+
const getArtifactResp = yield getArtifactPublic(artifactName, workflowRunId, repositoryOwner, repositoryName, token);
|
|
39
35
|
const deleteArtifactResp = yield github.rest.actions.deleteArtifact({
|
|
40
36
|
owner: repositoryOwner,
|
|
41
37
|
repo: repositoryName,
|
|
42
38
|
artifact_id: getArtifactResp.artifact.id
|
|
43
39
|
});
|
|
44
40
|
if (deleteArtifactResp.status !== 204) {
|
|
45
|
-
throw new
|
|
41
|
+
throw new InvalidResponseError(`Invalid response from GitHub API: ${deleteArtifactResp.status} (${(_a = deleteArtifactResp === null || deleteArtifactResp === void 0 ? void 0 : deleteArtifactResp.headers) === null || _a === void 0 ? void 0 : _a['x-github-request-id']})`);
|
|
46
42
|
}
|
|
47
43
|
return {
|
|
48
44
|
id: getArtifactResp.artifact.id
|
|
49
45
|
};
|
|
50
46
|
});
|
|
51
47
|
}
|
|
52
|
-
function deleteArtifactInternal(artifactName) {
|
|
48
|
+
export function deleteArtifactInternal(artifactName) {
|
|
53
49
|
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
-
const artifactClient =
|
|
55
|
-
const { workflowRunBackendId, workflowJobRunBackendId } =
|
|
50
|
+
const artifactClient = internalArtifactTwirpClient();
|
|
51
|
+
const { workflowRunBackendId, workflowJobRunBackendId } = getBackendIdsFromToken();
|
|
56
52
|
const listReq = {
|
|
57
53
|
workflowRunBackendId,
|
|
58
54
|
workflowJobRunBackendId,
|
|
59
|
-
nameFilter:
|
|
55
|
+
nameFilter: StringValue.create({ value: artifactName })
|
|
60
56
|
};
|
|
61
57
|
const listRes = yield artifactClient.ListArtifacts(listReq);
|
|
62
58
|
if (listRes.artifacts.length === 0) {
|
|
63
|
-
throw new
|
|
59
|
+
throw new ArtifactNotFoundError(`Artifact not found for name: ${artifactName}`);
|
|
64
60
|
}
|
|
65
61
|
let artifact = listRes.artifacts[0];
|
|
66
62
|
if (listRes.artifacts.length > 1) {
|
|
67
63
|
artifact = listRes.artifacts.sort((a, b) => Number(b.databaseId) - Number(a.databaseId))[0];
|
|
68
|
-
|
|
64
|
+
debug(`More than one artifact found for a single name, returning newest (id: ${artifact.databaseId})`);
|
|
69
65
|
}
|
|
70
66
|
const req = {
|
|
71
67
|
workflowRunBackendId: artifact.workflowRunBackendId,
|
|
@@ -73,7 +69,7 @@ function deleteArtifactInternal(artifactName) {
|
|
|
73
69
|
name: artifact.name
|
|
74
70
|
};
|
|
75
71
|
const res = yield artifactClient.DeleteArtifact(req);
|
|
76
|
-
|
|
72
|
+
info(`Artifact '${artifactName}' (ID: ${res.artifactId}) deleted`);
|
|
77
73
|
return {
|
|
78
74
|
id: Number(res.artifactId)
|
|
79
75
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-artifact.js","sourceRoot":"","sources":["../../../src/internal/delete/delete-artifact.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delete-artifact.js","sourceRoot":"","sources":["../../../src/internal/delete/delete-artifact.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DownloadArtifactOptions, DownloadArtifactResponse, StreamExtractResponse } from '../shared/interfaces';
|
|
1
|
+
import { DownloadArtifactOptions, DownloadArtifactResponse, StreamExtractResponse } from '../shared/interfaces.js';
|
|
2
2
|
export declare function streamExtractExternal(url: string, directory: string, opts?: {
|
|
3
3
|
timeout: number;
|
|
4
4
|
}): Promise<StreamExtractResponse>;
|
|
@@ -1,37 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -41,26 +7,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
41
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
8
|
});
|
|
43
9
|
};
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const unzip_stream_1 = __importDefault(require("unzip-stream"));
|
|
58
|
-
const user_agent_1 = require("../shared/user-agent");
|
|
59
|
-
const config_1 = require("../shared/config");
|
|
60
|
-
const artifact_twirp_client_1 = require("../shared/artifact-twirp-client");
|
|
61
|
-
const generated_1 = require("../../generated");
|
|
62
|
-
const util_1 = require("../shared/util");
|
|
63
|
-
const errors_1 = require("../shared/errors");
|
|
10
|
+
import fs from 'fs/promises';
|
|
11
|
+
import * as crypto from 'crypto';
|
|
12
|
+
import * as stream from 'stream';
|
|
13
|
+
import * as github from '@actions/github';
|
|
14
|
+
import * as core from '@actions/core';
|
|
15
|
+
import * as httpClient from '@actions/http-client';
|
|
16
|
+
import unzip from 'unzip-stream';
|
|
17
|
+
import { getUserAgentString } from '../shared/user-agent.js';
|
|
18
|
+
import { getGitHubWorkspaceDir } from '../shared/config.js';
|
|
19
|
+
import { internalArtifactTwirpClient } from '../shared/artifact-twirp-client.js';
|
|
20
|
+
import { Int64Value } from '../../generated/index.js';
|
|
21
|
+
import { getBackendIdsFromToken } from '../shared/util.js';
|
|
22
|
+
import { ArtifactNotFoundError } from '../shared/errors.js';
|
|
64
23
|
const scrubQueryParameters = (url) => {
|
|
65
24
|
const parsed = new URL(url);
|
|
66
25
|
parsed.search = '';
|
|
@@ -69,7 +28,7 @@ const scrubQueryParameters = (url) => {
|
|
|
69
28
|
function exists(path) {
|
|
70
29
|
return __awaiter(this, void 0, void 0, function* () {
|
|
71
30
|
try {
|
|
72
|
-
yield
|
|
31
|
+
yield fs.access(path);
|
|
73
32
|
return true;
|
|
74
33
|
}
|
|
75
34
|
catch (error) {
|
|
@@ -99,9 +58,9 @@ function streamExtract(url, directory) {
|
|
|
99
58
|
throw new Error(`Artifact download failed after ${retryCount} retries.`);
|
|
100
59
|
});
|
|
101
60
|
}
|
|
102
|
-
function streamExtractExternal(url_1, directory_1) {
|
|
61
|
+
export function streamExtractExternal(url_1, directory_1) {
|
|
103
62
|
return __awaiter(this, arguments, void 0, function* (url, directory, opts = { timeout: 30 * 1000 }) {
|
|
104
|
-
const client = new httpClient.HttpClient(
|
|
63
|
+
const client = new httpClient.HttpClient(getUserAgentString());
|
|
105
64
|
const response = yield client.get(url);
|
|
106
65
|
if (response.message.statusCode !== 200) {
|
|
107
66
|
throw new Error(`Unexpected HTTP response from blob storage: ${response.message.statusCode} ${response.message.statusMessage}`);
|
|
@@ -128,7 +87,7 @@ function streamExtractExternal(url_1, directory_1) {
|
|
|
128
87
|
clearTimeout(timer);
|
|
129
88
|
reject(error);
|
|
130
89
|
})
|
|
131
|
-
.pipe(
|
|
90
|
+
.pipe(unzip.Extract({ path: directory }))
|
|
132
91
|
.on('close', () => {
|
|
133
92
|
clearTimeout(timer);
|
|
134
93
|
if (hashStream) {
|
|
@@ -144,7 +103,7 @@ function streamExtractExternal(url_1, directory_1) {
|
|
|
144
103
|
});
|
|
145
104
|
});
|
|
146
105
|
}
|
|
147
|
-
function downloadArtifactPublic(artifactId, repositoryOwner, repositoryName, token, options) {
|
|
106
|
+
export function downloadArtifactPublic(artifactId, repositoryOwner, repositoryName, token, options) {
|
|
148
107
|
return __awaiter(this, void 0, void 0, function* () {
|
|
149
108
|
const downloadPath = yield resolveOrCreateDirectory(options === null || options === void 0 ? void 0 : options.path);
|
|
150
109
|
const api = github.getOctokit(token);
|
|
@@ -185,20 +144,20 @@ function downloadArtifactPublic(artifactId, repositoryOwner, repositoryName, tok
|
|
|
185
144
|
return { downloadPath, digestMismatch };
|
|
186
145
|
});
|
|
187
146
|
}
|
|
188
|
-
function downloadArtifactInternal(artifactId, options) {
|
|
147
|
+
export function downloadArtifactInternal(artifactId, options) {
|
|
189
148
|
return __awaiter(this, void 0, void 0, function* () {
|
|
190
149
|
const downloadPath = yield resolveOrCreateDirectory(options === null || options === void 0 ? void 0 : options.path);
|
|
191
|
-
const artifactClient =
|
|
150
|
+
const artifactClient = internalArtifactTwirpClient();
|
|
192
151
|
let digestMismatch = false;
|
|
193
|
-
const { workflowRunBackendId, workflowJobRunBackendId } =
|
|
152
|
+
const { workflowRunBackendId, workflowJobRunBackendId } = getBackendIdsFromToken();
|
|
194
153
|
const listReq = {
|
|
195
154
|
workflowRunBackendId,
|
|
196
155
|
workflowJobRunBackendId,
|
|
197
|
-
idFilter:
|
|
156
|
+
idFilter: Int64Value.create({ value: artifactId.toString() })
|
|
198
157
|
};
|
|
199
158
|
const { artifacts } = yield artifactClient.ListArtifacts(listReq);
|
|
200
159
|
if (artifacts.length === 0) {
|
|
201
|
-
throw new
|
|
160
|
+
throw new ArtifactNotFoundError(`No artifacts found for ID: ${artifactId}\nAre you trying to download from a different run? Try specifying a github-token with \`actions:read\` scope.`);
|
|
202
161
|
}
|
|
203
162
|
if (artifacts.length > 1) {
|
|
204
163
|
core.warning('Multiple artifacts found, defaulting to first.');
|
|
@@ -229,10 +188,10 @@ function downloadArtifactInternal(artifactId, options) {
|
|
|
229
188
|
});
|
|
230
189
|
}
|
|
231
190
|
function resolveOrCreateDirectory() {
|
|
232
|
-
return __awaiter(this, arguments, void 0, function* (downloadPath =
|
|
191
|
+
return __awaiter(this, arguments, void 0, function* (downloadPath = getGitHubWorkspaceDir()) {
|
|
233
192
|
if (!(yield exists(downloadPath))) {
|
|
234
193
|
core.debug(`Artifact destination folder does not exist, creating: ${downloadPath}`);
|
|
235
|
-
yield
|
|
194
|
+
yield fs.mkdir(downloadPath, { recursive: true });
|
|
236
195
|
}
|
|
237
196
|
else {
|
|
238
197
|
core.debug(`Artifact destination folder already exists: ${downloadPath}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-artifact.js","sourceRoot":"","sources":["../../../src/internal/download/download-artifact.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"download-artifact.js","sourceRoot":"","sources":["../../../src/internal/download/download-artifact.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { GetArtifactResponse } from '../shared/interfaces';
|
|
1
|
+
import { GetArtifactResponse } from '../shared/interfaces.js';
|
|
2
2
|
export declare function getArtifactPublic(artifactName: string, workflowRunId: number, repositoryOwner: string, repositoryName: string, token: string): Promise<GetArtifactResponse>;
|
|
3
3
|
export declare function getArtifactInternal(artifactName: string): Promise<GetArtifactResponse>;
|
|
@@ -1,37 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -41,32 +7,29 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
41
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
8
|
});
|
|
43
9
|
};
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const generated_1 = require("../../generated");
|
|
57
|
-
const errors_1 = require("../shared/errors");
|
|
58
|
-
function getArtifactPublic(artifactName, workflowRunId, repositoryOwner, repositoryName, token) {
|
|
10
|
+
import { getOctokit } from '@actions/github';
|
|
11
|
+
import { retry } from '@octokit/plugin-retry';
|
|
12
|
+
import * as core from '@actions/core';
|
|
13
|
+
import { defaults as defaultGitHubOptions } from '@actions/github/lib/utils';
|
|
14
|
+
import { getRetryOptions } from './retry-options.js';
|
|
15
|
+
import { requestLog } from '@octokit/plugin-request-log';
|
|
16
|
+
import { getBackendIdsFromToken } from '../shared/util.js';
|
|
17
|
+
import { getUserAgentString } from '../shared/user-agent.js';
|
|
18
|
+
import { internalArtifactTwirpClient } from '../shared/artifact-twirp-client.js';
|
|
19
|
+
import { StringValue, Timestamp } from '../../generated/index.js';
|
|
20
|
+
import { ArtifactNotFoundError, InvalidResponseError } from '../shared/errors.js';
|
|
21
|
+
export function getArtifactPublic(artifactName, workflowRunId, repositoryOwner, repositoryName, token) {
|
|
59
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
23
|
var _a;
|
|
61
|
-
const [retryOpts, requestOpts] =
|
|
24
|
+
const [retryOpts, requestOpts] = getRetryOptions(defaultGitHubOptions);
|
|
62
25
|
const opts = {
|
|
63
26
|
log: undefined,
|
|
64
|
-
userAgent:
|
|
27
|
+
userAgent: getUserAgentString(),
|
|
65
28
|
previews: undefined,
|
|
66
29
|
retry: retryOpts,
|
|
67
30
|
request: requestOpts
|
|
68
31
|
};
|
|
69
|
-
const github =
|
|
32
|
+
const github = getOctokit(token, opts, retry, requestLog);
|
|
70
33
|
const getArtifactResp = yield github.request('GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts{?name}', {
|
|
71
34
|
owner: repositoryOwner,
|
|
72
35
|
repo: repositoryName,
|
|
@@ -74,10 +37,10 @@ function getArtifactPublic(artifactName, workflowRunId, repositoryOwner, reposit
|
|
|
74
37
|
name: artifactName
|
|
75
38
|
});
|
|
76
39
|
if (getArtifactResp.status !== 200) {
|
|
77
|
-
throw new
|
|
40
|
+
throw new InvalidResponseError(`Invalid response from GitHub API: ${getArtifactResp.status} (${(_a = getArtifactResp === null || getArtifactResp === void 0 ? void 0 : getArtifactResp.headers) === null || _a === void 0 ? void 0 : _a['x-github-request-id']})`);
|
|
78
41
|
}
|
|
79
42
|
if (getArtifactResp.data.artifacts.length === 0) {
|
|
80
|
-
throw new
|
|
43
|
+
throw new ArtifactNotFoundError(`Artifact not found for name: ${artifactName}
|
|
81
44
|
Please ensure that your artifact is not expired and the artifact was uploaded using a compatible version of toolkit/upload-artifact.
|
|
82
45
|
For more information, visit the GitHub Artifacts FAQ: https://github.com/actions/toolkit/blob/main/packages/artifact/docs/faq.md`);
|
|
83
46
|
}
|
|
@@ -99,19 +62,19 @@ function getArtifactPublic(artifactName, workflowRunId, repositoryOwner, reposit
|
|
|
99
62
|
};
|
|
100
63
|
});
|
|
101
64
|
}
|
|
102
|
-
function getArtifactInternal(artifactName) {
|
|
65
|
+
export function getArtifactInternal(artifactName) {
|
|
103
66
|
return __awaiter(this, void 0, void 0, function* () {
|
|
104
67
|
var _a;
|
|
105
|
-
const artifactClient =
|
|
106
|
-
const { workflowRunBackendId, workflowJobRunBackendId } =
|
|
68
|
+
const artifactClient = internalArtifactTwirpClient();
|
|
69
|
+
const { workflowRunBackendId, workflowJobRunBackendId } = getBackendIdsFromToken();
|
|
107
70
|
const req = {
|
|
108
71
|
workflowRunBackendId,
|
|
109
72
|
workflowJobRunBackendId,
|
|
110
|
-
nameFilter:
|
|
73
|
+
nameFilter: StringValue.create({ value: artifactName })
|
|
111
74
|
};
|
|
112
75
|
const res = yield artifactClient.ListArtifacts(req);
|
|
113
76
|
if (res.artifacts.length === 0) {
|
|
114
|
-
throw new
|
|
77
|
+
throw new ArtifactNotFoundError(`Artifact not found for name: ${artifactName}
|
|
115
78
|
Please ensure that your artifact is not expired and the artifact was uploaded using a compatible version of toolkit/upload-artifact.
|
|
116
79
|
For more information, visit the GitHub Artifacts FAQ: https://github.com/actions/toolkit/blob/main/packages/artifact/docs/faq.md`);
|
|
117
80
|
}
|
|
@@ -126,7 +89,7 @@ function getArtifactInternal(artifactName) {
|
|
|
126
89
|
id: Number(artifact.databaseId),
|
|
127
90
|
size: Number(artifact.size),
|
|
128
91
|
createdAt: artifact.createdAt
|
|
129
|
-
?
|
|
92
|
+
? Timestamp.toDate(artifact.createdAt)
|
|
130
93
|
: undefined,
|
|
131
94
|
digest: (_a = artifact.digest) === null || _a === void 0 ? void 0 : _a.value
|
|
132
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-artifact.js","sourceRoot":"","sources":["../../../src/internal/find/get-artifact.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-artifact.js","sourceRoot":"","sources":["../../../src/internal/find/get-artifact.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAA;AAC3C,OAAO,KAAK,IAAI,MAAM,eAAe,CAAA;AAErC,OAAO,EAAC,QAAQ,IAAI,oBAAoB,EAAC,MAAM,2BAA2B,CAAA;AAC1E,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAA;AAEtD,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAC,2BAA2B,EAAC,MAAM,oCAAoC,CAAA;AAC9E,OAAO,EAEL,WAAW,EACX,SAAS,EACV,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAC,qBAAqB,EAAE,oBAAoB,EAAC,MAAM,qBAAqB,CAAA;AAE/E,MAAM,UAAgB,iBAAiB,CACrC,YAAoB,EACpB,aAAqB,EACrB,eAAuB,EACvB,cAAsB,EACtB,KAAa;;;QAEb,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,eAAe,CAAC,oBAAoB,CAAC,CAAA;QAEtE,MAAM,IAAI,GAAmB;YAC3B,GAAG,EAAE,SAAS;YACd,SAAS,EAAE,kBAAkB,EAAE;YAC/B,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,WAAW;SACrB,CAAA;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAA;QAEzD,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,OAAO,CAC1C,kEAAkE,EAClE;YACE,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,YAAY;SACnB,CACF,CAAA;QAED,IAAI,eAAe,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACnC,MAAM,IAAI,oBAAoB,CAC5B,qCAAqC,eAAe,CAAC,MAAM,KAAK,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,0CAAG,qBAAqB,CAAC,GAAG,CACrH,CAAA;QACH,CAAC;QAED,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,qBAAqB,CAC7B,gCAAgC,YAAY;;yIAEuF,CACpI,CAAA;QACH,CAAC;QAED,IAAI,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAChD,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YACxE,IAAI,CAAC,KAAK,CACR,yEAAyE,QAAQ,CAAC,EAAE,GAAG,CACxF,CAAA;QACH,CAAC;QAED,OAAO;YACL,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,IAAI,EAAE,QAAQ,CAAC,aAAa;gBAC5B,SAAS,EAAE,QAAQ,CAAC,UAAU;oBAC5B,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAC/B,CAAC,CAAC,SAAS;gBACb,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB;SACF,CAAA;IACH,CAAC;CAAA;AAED,MAAM,UAAgB,mBAAmB,CACvC,YAAoB;;;QAEpB,MAAM,cAAc,GAAG,2BAA2B,EAAE,CAAA;QAEpD,MAAM,EAAC,oBAAoB,EAAE,uBAAuB,EAAC,GACnD,sBAAsB,EAAE,CAAA;QAE1B,MAAM,GAAG,GAAyB;YAChC,oBAAoB;YACpB,uBAAuB;YACvB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAAC,KAAK,EAAE,YAAY,EAAC,CAAC;SACtD,CAAA;QAED,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAEnD,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,qBAAqB,CAC7B,gCAAgC,YAAY;;yIAEuF,CACpI,CAAA;QACH,CAAC;QAED,IAAI,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAC3B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CACtD,CAAC,CAAC,CAAC,CAAA;YAEJ,IAAI,CAAC,KAAK,CACR,yEAAyE,QAAQ,CAAC,UAAU,GAAG,CAChG,CAAA;QACH,CAAC;QAED,OAAO;YACL,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAC/B,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC3B,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;oBACtC,CAAC,CAAC,SAAS;gBACb,MAAM,EAAE,MAAA,QAAQ,CAAC,MAAM,0CAAE,KAAK;aAC/B;SACF,CAAA;IACH,CAAC;CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ListArtifactsResponse } from '../shared/interfaces';
|
|
1
|
+
import { ListArtifactsResponse } from '../shared/interfaces.js';
|
|
2
2
|
export declare function listArtifactsPublic(workflowRunId: number, repositoryOwner: string, repositoryName: string, token: string, latest?: boolean): Promise<ListArtifactsResponse>;
|
|
3
3
|
export declare function listArtifactsInternal(latest?: boolean): Promise<ListArtifactsResponse>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,36 +7,33 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
const config_1 = require("../shared/config");
|
|
24
|
-
const generated_1 = require("../../generated");
|
|
25
|
-
const maximumArtifactCount = (0, config_1.getMaxArtifactListCount)();
|
|
10
|
+
import { info, warning, debug } from '@actions/core';
|
|
11
|
+
import { getOctokit } from '@actions/github';
|
|
12
|
+
import { getUserAgentString } from '../shared/user-agent.js';
|
|
13
|
+
import { getRetryOptions } from './retry-options.js';
|
|
14
|
+
import { defaults as defaultGitHubOptions } from '@actions/github/lib/utils';
|
|
15
|
+
import { requestLog } from '@octokit/plugin-request-log';
|
|
16
|
+
import { retry } from '@octokit/plugin-retry';
|
|
17
|
+
import { internalArtifactTwirpClient } from '../shared/artifact-twirp-client.js';
|
|
18
|
+
import { getBackendIdsFromToken } from '../shared/util.js';
|
|
19
|
+
import { getMaxArtifactListCount } from '../shared/config.js';
|
|
20
|
+
import { Timestamp } from '../../generated/index.js';
|
|
21
|
+
const maximumArtifactCount = getMaxArtifactListCount();
|
|
26
22
|
const paginationCount = 100;
|
|
27
23
|
const maxNumberOfPages = Math.ceil(maximumArtifactCount / paginationCount);
|
|
28
|
-
function listArtifactsPublic(workflowRunId_1, repositoryOwner_1, repositoryName_1, token_1) {
|
|
24
|
+
export function listArtifactsPublic(workflowRunId_1, repositoryOwner_1, repositoryName_1, token_1) {
|
|
29
25
|
return __awaiter(this, arguments, void 0, function* (workflowRunId, repositoryOwner, repositoryName, token, latest = false) {
|
|
30
|
-
|
|
26
|
+
info(`Fetching artifact list for workflow run ${workflowRunId} in repository ${repositoryOwner}/${repositoryName}`);
|
|
31
27
|
let artifacts = [];
|
|
32
|
-
const [retryOpts, requestOpts] =
|
|
28
|
+
const [retryOpts, requestOpts] = getRetryOptions(defaultGitHubOptions);
|
|
33
29
|
const opts = {
|
|
34
30
|
log: undefined,
|
|
35
|
-
userAgent:
|
|
31
|
+
userAgent: getUserAgentString(),
|
|
36
32
|
previews: undefined,
|
|
37
33
|
retry: retryOpts,
|
|
38
34
|
request: requestOpts
|
|
39
35
|
};
|
|
40
|
-
const github =
|
|
36
|
+
const github = getOctokit(token, opts, retry, requestLog);
|
|
41
37
|
let currentPageNumber = 1;
|
|
42
38
|
const { data: listArtifactResponse } = yield github.request('GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts', {
|
|
43
39
|
owner: repositoryOwner,
|
|
@@ -49,7 +45,7 @@ function listArtifactsPublic(workflowRunId_1, repositoryOwner_1, repositoryName_
|
|
|
49
45
|
let numberOfPages = Math.ceil(listArtifactResponse.total_count / paginationCount);
|
|
50
46
|
const totalArtifactCount = listArtifactResponse.total_count;
|
|
51
47
|
if (totalArtifactCount > maximumArtifactCount) {
|
|
52
|
-
|
|
48
|
+
warning(`Workflow run ${workflowRunId} has ${totalArtifactCount} artifacts, exceeding the limit of ${maximumArtifactCount}. Results will be incomplete as only the first ${maximumArtifactCount} artifacts will be returned`);
|
|
53
49
|
numberOfPages = maxNumberOfPages;
|
|
54
50
|
}
|
|
55
51
|
// Iterate over the first page
|
|
@@ -68,7 +64,7 @@ function listArtifactsPublic(workflowRunId_1, repositoryOwner_1, repositoryName_
|
|
|
68
64
|
currentPageNumber++;
|
|
69
65
|
// Iterate over any remaining pages
|
|
70
66
|
for (currentPageNumber; currentPageNumber <= numberOfPages; currentPageNumber++) {
|
|
71
|
-
|
|
67
|
+
debug(`Fetching page ${currentPageNumber} of artifact list`);
|
|
72
68
|
const { data: listArtifactResponse } = yield github.request('GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts', {
|
|
73
69
|
owner: repositoryOwner,
|
|
74
70
|
repo: repositoryName,
|
|
@@ -91,16 +87,16 @@ function listArtifactsPublic(workflowRunId_1, repositoryOwner_1, repositoryName_
|
|
|
91
87
|
if (latest) {
|
|
92
88
|
artifacts = filterLatest(artifacts);
|
|
93
89
|
}
|
|
94
|
-
|
|
90
|
+
info(`Found ${artifacts.length} artifact(s)`);
|
|
95
91
|
return {
|
|
96
92
|
artifacts
|
|
97
93
|
};
|
|
98
94
|
});
|
|
99
95
|
}
|
|
100
|
-
function listArtifactsInternal() {
|
|
96
|
+
export function listArtifactsInternal() {
|
|
101
97
|
return __awaiter(this, arguments, void 0, function* (latest = false) {
|
|
102
|
-
const artifactClient =
|
|
103
|
-
const { workflowRunBackendId, workflowJobRunBackendId } =
|
|
98
|
+
const artifactClient = internalArtifactTwirpClient();
|
|
99
|
+
const { workflowRunBackendId, workflowJobRunBackendId } = getBackendIdsFromToken();
|
|
104
100
|
const req = {
|
|
105
101
|
workflowRunBackendId,
|
|
106
102
|
workflowJobRunBackendId
|
|
@@ -113,7 +109,7 @@ function listArtifactsInternal() {
|
|
|
113
109
|
id: Number(artifact.databaseId),
|
|
114
110
|
size: Number(artifact.size),
|
|
115
111
|
createdAt: artifact.createdAt
|
|
116
|
-
?
|
|
112
|
+
? Timestamp.toDate(artifact.createdAt)
|
|
117
113
|
: undefined,
|
|
118
114
|
digest: (_a = artifact.digest) === null || _a === void 0 ? void 0 : _a.value
|
|
119
115
|
});
|
|
@@ -121,7 +117,7 @@ function listArtifactsInternal() {
|
|
|
121
117
|
if (latest) {
|
|
122
118
|
artifacts = filterLatest(artifacts);
|
|
123
119
|
}
|
|
124
|
-
|
|
120
|
+
info(`Found ${artifacts.length} artifact(s)`);
|
|
125
121
|
return {
|
|
126
122
|
artifacts
|
|
127
123
|
};
|