@actions/artifact 5.0.3 → 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 -30
- 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 -57
- 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 -51
- 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 -30
- 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 -29
- 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 -36
- package/lib/internal/shared/artifact-twirp-client.js.map +1 -1
- package/lib/internal/shared/config.js +13 -27
- 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 -8
- package/lib/internal/shared/user-agent.js.map +1 -1
- package/lib/internal/shared/util.js +13 -45
- 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 -40
- package/lib/internal/upload/blob-upload.js.map +1 -1
- package/lib/internal/upload/path-and-artifact-name-validation.js +4 -9
- 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 -31
- 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 -50
- package/lib/internal/upload/upload-artifact.js.map +1 -1
- package/lib/internal/upload/upload-zip-specification.d.ts +0 -1
- package/lib/internal/upload/upload-zip-specification.js +13 -41
- package/lib/internal/upload/upload-zip-specification.js.map +1 -1
- package/lib/internal/upload/zip.d.ts +1 -2
- package/lib/internal/upload/zip.js +12 -40
- 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 errors_1 = require("../shared/errors");
|
|
25
|
-
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) {
|
|
26
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27
24
|
var _a;
|
|
28
|
-
const [retryOpts, requestOpts] =
|
|
25
|
+
const [retryOpts, requestOpts] = getRetryOptions(defaultGitHubOptions);
|
|
29
26
|
const opts = {
|
|
30
27
|
log: undefined,
|
|
31
|
-
userAgent:
|
|
28
|
+
userAgent: getUserAgentString(),
|
|
32
29
|
previews: undefined,
|
|
33
30
|
retry: retryOpts,
|
|
34
31
|
request: requestOpts
|
|
35
32
|
};
|
|
36
|
-
const github =
|
|
37
|
-
const getArtifactResp = yield
|
|
33
|
+
const github = getOctokit(token, opts, retry, requestLog);
|
|
34
|
+
const getArtifactResp = yield getArtifactPublic(artifactName, workflowRunId, repositoryOwner, repositoryName, token);
|
|
38
35
|
const deleteArtifactResp = yield github.rest.actions.deleteArtifact({
|
|
39
36
|
owner: repositoryOwner,
|
|
40
37
|
repo: repositoryName,
|
|
41
38
|
artifact_id: getArtifactResp.artifact.id
|
|
42
39
|
});
|
|
43
40
|
if (deleteArtifactResp.status !== 204) {
|
|
44
|
-
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']})`);
|
|
45
42
|
}
|
|
46
43
|
return {
|
|
47
44
|
id: getArtifactResp.artifact.id
|
|
48
45
|
};
|
|
49
46
|
});
|
|
50
47
|
}
|
|
51
|
-
|
|
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,11 +69,10 @@ 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
|
};
|
|
80
76
|
});
|
|
81
77
|
}
|
|
82
|
-
exports.deleteArtifactInternal = deleteArtifactInternal;
|
|
83
78
|
//# sourceMappingURL=delete-artifact.js.map
|
|
@@ -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":";;;;;;;;;AAAA,OAAO,EAAC,IAAI,EAAE,KAAK,EAAC,MAAM,eAAe,CAAA;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAC,QAAQ,IAAI,oBAAoB,EAAC,MAAM,2BAA2B,CAAA;AAC1E,OAAO,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAA;AAE3C,OAAO,EAAC,2BAA2B,EAAC,MAAM,oCAAoC,CAAA;AAC9E,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAGL,WAAW,EACZ,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAC,qBAAqB,EAAE,oBAAoB,EAAC,MAAM,qBAAqB,CAAA;AAE/E,MAAM,UAAgB,oBAAoB,CACxC,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,iBAAiB,CAC7C,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,KAAK,CACN,CAAA;QAED,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;YAClE,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE;SACzC,CAAC,CAAA;QAEF,IAAI,kBAAkB,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACtC,MAAM,IAAI,oBAAoB,CAC5B,qCAAqC,kBAAkB,CAAC,MAAM,KAAK,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,OAAO,0CAAG,qBAAqB,CAAC,GAAG,CAC3H,CAAA;QACH,CAAC;QAED,OAAO;YACL,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE;SAChC,CAAA;IACH,CAAC;CAAA;AAED,MAAM,UAAgB,sBAAsB,CAC1C,YAAY;;QAEZ,MAAM,cAAc,GAAG,2BAA2B,EAAE,CAAA;QAEpD,MAAM,EAAC,oBAAoB,EAAE,uBAAuB,EAAC,GACnD,sBAAsB,EAAE,CAAA;QAE1B,MAAM,OAAO,GAAyB;YACpC,oBAAoB;YACpB,uBAAuB;YACvB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAAC,KAAK,EAAE,YAAY,EAAC,CAAC;SACtD,CAAA;QAED,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAE3D,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,qBAAqB,CAC7B,gCAAgC,YAAY,EAAE,CAC/C,CAAA;QACH,CAAC;QAED,IAAI,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACnC,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAC/B,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,KAAK,CACH,yEAAyE,QAAQ,CAAC,UAAU,GAAG,CAChG,CAAA;QACH,CAAC;QAED,MAAM,GAAG,GAA0B;YACjC,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;YACnD,uBAAuB,EAAE,QAAQ,CAAC,uBAAuB;YACzD,IAAI,EAAE,QAAQ,CAAC,IAAI;SACpB,CAAA;QAED,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QACpD,IAAI,CAAC,aAAa,YAAY,UAAU,GAAG,CAAC,UAAU,WAAW,CAAC,CAAA;QAElE,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;SAC3B,CAAA;IACH,CAAC;CAAA"}
|
|
@@ -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,27 +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 (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -31,24 +7,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
31
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
8
|
});
|
|
33
9
|
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const config_1 = require("../shared/config");
|
|
48
|
-
const artifact_twirp_client_1 = require("../shared/artifact-twirp-client");
|
|
49
|
-
const generated_1 = require("../../generated");
|
|
50
|
-
const util_1 = require("../shared/util");
|
|
51
|
-
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';
|
|
52
23
|
const scrubQueryParameters = (url) => {
|
|
53
24
|
const parsed = new URL(url);
|
|
54
25
|
parsed.search = '';
|
|
@@ -57,7 +28,7 @@ const scrubQueryParameters = (url) => {
|
|
|
57
28
|
function exists(path) {
|
|
58
29
|
return __awaiter(this, void 0, void 0, function* () {
|
|
59
30
|
try {
|
|
60
|
-
yield
|
|
31
|
+
yield fs.access(path);
|
|
61
32
|
return true;
|
|
62
33
|
}
|
|
63
34
|
catch (error) {
|
|
@@ -87,9 +58,9 @@ function streamExtract(url, directory) {
|
|
|
87
58
|
throw new Error(`Artifact download failed after ${retryCount} retries.`);
|
|
88
59
|
});
|
|
89
60
|
}
|
|
90
|
-
function streamExtractExternal(url_1, directory_1) {
|
|
61
|
+
export function streamExtractExternal(url_1, directory_1) {
|
|
91
62
|
return __awaiter(this, arguments, void 0, function* (url, directory, opts = { timeout: 30 * 1000 }) {
|
|
92
|
-
const client = new httpClient.HttpClient(
|
|
63
|
+
const client = new httpClient.HttpClient(getUserAgentString());
|
|
93
64
|
const response = yield client.get(url);
|
|
94
65
|
if (response.message.statusCode !== 200) {
|
|
95
66
|
throw new Error(`Unexpected HTTP response from blob storage: ${response.message.statusCode} ${response.message.statusMessage}`);
|
|
@@ -116,7 +87,7 @@ function streamExtractExternal(url_1, directory_1) {
|
|
|
116
87
|
clearTimeout(timer);
|
|
117
88
|
reject(error);
|
|
118
89
|
})
|
|
119
|
-
.pipe(
|
|
90
|
+
.pipe(unzip.Extract({ path: directory }))
|
|
120
91
|
.on('close', () => {
|
|
121
92
|
clearTimeout(timer);
|
|
122
93
|
if (hashStream) {
|
|
@@ -132,8 +103,7 @@ function streamExtractExternal(url_1, directory_1) {
|
|
|
132
103
|
});
|
|
133
104
|
});
|
|
134
105
|
}
|
|
135
|
-
|
|
136
|
-
function downloadArtifactPublic(artifactId, repositoryOwner, repositoryName, token, options) {
|
|
106
|
+
export function downloadArtifactPublic(artifactId, repositoryOwner, repositoryName, token, options) {
|
|
137
107
|
return __awaiter(this, void 0, void 0, function* () {
|
|
138
108
|
const downloadPath = yield resolveOrCreateDirectory(options === null || options === void 0 ? void 0 : options.path);
|
|
139
109
|
const api = github.getOctokit(token);
|
|
@@ -174,21 +144,20 @@ function downloadArtifactPublic(artifactId, repositoryOwner, repositoryName, tok
|
|
|
174
144
|
return { downloadPath, digestMismatch };
|
|
175
145
|
});
|
|
176
146
|
}
|
|
177
|
-
|
|
178
|
-
function downloadArtifactInternal(artifactId, options) {
|
|
147
|
+
export function downloadArtifactInternal(artifactId, options) {
|
|
179
148
|
return __awaiter(this, void 0, void 0, function* () {
|
|
180
149
|
const downloadPath = yield resolveOrCreateDirectory(options === null || options === void 0 ? void 0 : options.path);
|
|
181
|
-
const artifactClient =
|
|
150
|
+
const artifactClient = internalArtifactTwirpClient();
|
|
182
151
|
let digestMismatch = false;
|
|
183
|
-
const { workflowRunBackendId, workflowJobRunBackendId } =
|
|
152
|
+
const { workflowRunBackendId, workflowJobRunBackendId } = getBackendIdsFromToken();
|
|
184
153
|
const listReq = {
|
|
185
154
|
workflowRunBackendId,
|
|
186
155
|
workflowJobRunBackendId,
|
|
187
|
-
idFilter:
|
|
156
|
+
idFilter: Int64Value.create({ value: artifactId.toString() })
|
|
188
157
|
};
|
|
189
158
|
const { artifacts } = yield artifactClient.ListArtifacts(listReq);
|
|
190
159
|
if (artifacts.length === 0) {
|
|
191
|
-
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.`);
|
|
192
161
|
}
|
|
193
162
|
if (artifacts.length > 1) {
|
|
194
163
|
core.warning('Multiple artifacts found, defaulting to first.');
|
|
@@ -218,12 +187,11 @@ function downloadArtifactInternal(artifactId, options) {
|
|
|
218
187
|
return { downloadPath, digestMismatch };
|
|
219
188
|
});
|
|
220
189
|
}
|
|
221
|
-
exports.downloadArtifactInternal = downloadArtifactInternal;
|
|
222
190
|
function resolveOrCreateDirectory() {
|
|
223
|
-
return __awaiter(this, arguments, void 0, function* (downloadPath =
|
|
191
|
+
return __awaiter(this, arguments, void 0, function* (downloadPath = getGitHubWorkspaceDir()) {
|
|
224
192
|
if (!(yield exists(downloadPath))) {
|
|
225
193
|
core.debug(`Artifact destination folder does not exist, creating: ${downloadPath}`);
|
|
226
|
-
yield
|
|
194
|
+
yield fs.mkdir(downloadPath, { recursive: true });
|
|
227
195
|
}
|
|
228
196
|
else {
|
|
229
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,27 +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 (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -31,31 +7,29 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
31
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
8
|
});
|
|
33
9
|
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const errors_1 = require("../shared/errors");
|
|
47
|
-
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) {
|
|
48
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
49
23
|
var _a;
|
|
50
|
-
const [retryOpts, requestOpts] =
|
|
24
|
+
const [retryOpts, requestOpts] = getRetryOptions(defaultGitHubOptions);
|
|
51
25
|
const opts = {
|
|
52
26
|
log: undefined,
|
|
53
|
-
userAgent:
|
|
27
|
+
userAgent: getUserAgentString(),
|
|
54
28
|
previews: undefined,
|
|
55
29
|
retry: retryOpts,
|
|
56
30
|
request: requestOpts
|
|
57
31
|
};
|
|
58
|
-
const github =
|
|
32
|
+
const github = getOctokit(token, opts, retry, requestLog);
|
|
59
33
|
const getArtifactResp = yield github.request('GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts{?name}', {
|
|
60
34
|
owner: repositoryOwner,
|
|
61
35
|
repo: repositoryName,
|
|
@@ -63,10 +37,10 @@ function getArtifactPublic(artifactName, workflowRunId, repositoryOwner, reposit
|
|
|
63
37
|
name: artifactName
|
|
64
38
|
});
|
|
65
39
|
if (getArtifactResp.status !== 200) {
|
|
66
|
-
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']})`);
|
|
67
41
|
}
|
|
68
42
|
if (getArtifactResp.data.artifacts.length === 0) {
|
|
69
|
-
throw new
|
|
43
|
+
throw new ArtifactNotFoundError(`Artifact not found for name: ${artifactName}
|
|
70
44
|
Please ensure that your artifact is not expired and the artifact was uploaded using a compatible version of toolkit/upload-artifact.
|
|
71
45
|
For more information, visit the GitHub Artifacts FAQ: https://github.com/actions/toolkit/blob/main/packages/artifact/docs/faq.md`);
|
|
72
46
|
}
|
|
@@ -88,20 +62,19 @@ function getArtifactPublic(artifactName, workflowRunId, repositoryOwner, reposit
|
|
|
88
62
|
};
|
|
89
63
|
});
|
|
90
64
|
}
|
|
91
|
-
|
|
92
|
-
function getArtifactInternal(artifactName) {
|
|
65
|
+
export function getArtifactInternal(artifactName) {
|
|
93
66
|
return __awaiter(this, void 0, void 0, function* () {
|
|
94
67
|
var _a;
|
|
95
|
-
const artifactClient =
|
|
96
|
-
const { workflowRunBackendId, workflowJobRunBackendId } =
|
|
68
|
+
const artifactClient = internalArtifactTwirpClient();
|
|
69
|
+
const { workflowRunBackendId, workflowJobRunBackendId } = getBackendIdsFromToken();
|
|
97
70
|
const req = {
|
|
98
71
|
workflowRunBackendId,
|
|
99
72
|
workflowJobRunBackendId,
|
|
100
|
-
nameFilter:
|
|
73
|
+
nameFilter: StringValue.create({ value: artifactName })
|
|
101
74
|
};
|
|
102
75
|
const res = yield artifactClient.ListArtifacts(req);
|
|
103
76
|
if (res.artifacts.length === 0) {
|
|
104
|
-
throw new
|
|
77
|
+
throw new ArtifactNotFoundError(`Artifact not found for name: ${artifactName}
|
|
105
78
|
Please ensure that your artifact is not expired and the artifact was uploaded using a compatible version of toolkit/upload-artifact.
|
|
106
79
|
For more information, visit the GitHub Artifacts FAQ: https://github.com/actions/toolkit/blob/main/packages/artifact/docs/faq.md`);
|
|
107
80
|
}
|
|
@@ -116,12 +89,11 @@ function getArtifactInternal(artifactName) {
|
|
|
116
89
|
id: Number(artifact.databaseId),
|
|
117
90
|
size: Number(artifact.size),
|
|
118
91
|
createdAt: artifact.createdAt
|
|
119
|
-
?
|
|
92
|
+
? Timestamp.toDate(artifact.createdAt)
|
|
120
93
|
: undefined,
|
|
121
94
|
digest: (_a = artifact.digest) === null || _a === void 0 ? void 0 : _a.value
|
|
122
95
|
}
|
|
123
96
|
};
|
|
124
97
|
});
|
|
125
98
|
}
|
|
126
|
-
exports.getArtifactInternal = getArtifactInternal;
|
|
127
99
|
//# sourceMappingURL=get-artifact.js.map
|
|
@@ -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":"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"}
|
|
@@ -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,35 +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 generated_1 = require("../../generated");
|
|
24
|
-
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();
|
|
25
22
|
const paginationCount = 100;
|
|
26
23
|
const maxNumberOfPages = Math.ceil(maximumArtifactCount / paginationCount);
|
|
27
|
-
function listArtifactsPublic(workflowRunId_1, repositoryOwner_1, repositoryName_1, token_1) {
|
|
24
|
+
export function listArtifactsPublic(workflowRunId_1, repositoryOwner_1, repositoryName_1, token_1) {
|
|
28
25
|
return __awaiter(this, arguments, void 0, function* (workflowRunId, repositoryOwner, repositoryName, token, latest = false) {
|
|
29
|
-
|
|
26
|
+
info(`Fetching artifact list for workflow run ${workflowRunId} in repository ${repositoryOwner}/${repositoryName}`);
|
|
30
27
|
let artifacts = [];
|
|
31
|
-
const [retryOpts, requestOpts] =
|
|
28
|
+
const [retryOpts, requestOpts] = getRetryOptions(defaultGitHubOptions);
|
|
32
29
|
const opts = {
|
|
33
30
|
log: undefined,
|
|
34
|
-
userAgent:
|
|
31
|
+
userAgent: getUserAgentString(),
|
|
35
32
|
previews: undefined,
|
|
36
33
|
retry: retryOpts,
|
|
37
34
|
request: requestOpts
|
|
38
35
|
};
|
|
39
|
-
const github =
|
|
36
|
+
const github = getOctokit(token, opts, retry, requestLog);
|
|
40
37
|
let currentPageNumber = 1;
|
|
41
38
|
const { data: listArtifactResponse } = yield github.request('GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts', {
|
|
42
39
|
owner: repositoryOwner,
|
|
@@ -48,7 +45,7 @@ function listArtifactsPublic(workflowRunId_1, repositoryOwner_1, repositoryName_
|
|
|
48
45
|
let numberOfPages = Math.ceil(listArtifactResponse.total_count / paginationCount);
|
|
49
46
|
const totalArtifactCount = listArtifactResponse.total_count;
|
|
50
47
|
if (totalArtifactCount > maximumArtifactCount) {
|
|
51
|
-
|
|
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`);
|
|
52
49
|
numberOfPages = maxNumberOfPages;
|
|
53
50
|
}
|
|
54
51
|
// Iterate over the first page
|
|
@@ -67,7 +64,7 @@ function listArtifactsPublic(workflowRunId_1, repositoryOwner_1, repositoryName_
|
|
|
67
64
|
currentPageNumber++;
|
|
68
65
|
// Iterate over any remaining pages
|
|
69
66
|
for (currentPageNumber; currentPageNumber <= numberOfPages; currentPageNumber++) {
|
|
70
|
-
|
|
67
|
+
debug(`Fetching page ${currentPageNumber} of artifact list`);
|
|
71
68
|
const { data: listArtifactResponse } = yield github.request('GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts', {
|
|
72
69
|
owner: repositoryOwner,
|
|
73
70
|
repo: repositoryName,
|
|
@@ -90,17 +87,16 @@ function listArtifactsPublic(workflowRunId_1, repositoryOwner_1, repositoryName_
|
|
|
90
87
|
if (latest) {
|
|
91
88
|
artifacts = filterLatest(artifacts);
|
|
92
89
|
}
|
|
93
|
-
|
|
90
|
+
info(`Found ${artifacts.length} artifact(s)`);
|
|
94
91
|
return {
|
|
95
92
|
artifacts
|
|
96
93
|
};
|
|
97
94
|
});
|
|
98
95
|
}
|
|
99
|
-
|
|
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,13 +117,12 @@ 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
|
};
|
|
128
124
|
});
|
|
129
125
|
}
|
|
130
|
-
exports.listArtifactsInternal = listArtifactsInternal;
|
|
131
126
|
/**
|
|
132
127
|
* Filters a list of artifacts to only include the latest artifact for each name
|
|
133
128
|
* @param artifacts The artifacts to filter
|