@docker/actions-toolkit 0.1.0-beta.4 → 0.1.0-beta.6
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 +5 -0
- package/lib/buildkit/config.d.ts +3 -3
- package/lib/buildkit/config.js +5 -5
- package/lib/buildkit/config.js.map +1 -1
- package/lib/buildx/buildx.d.ts +4 -2
- package/lib/buildx/buildx.js +50 -2
- package/lib/buildx/buildx.js.map +1 -1
- package/lib/buildx/inputs.d.ts +7 -7
- package/lib/buildx/inputs.js +11 -11
- package/lib/buildx/inputs.js.map +1 -1
- package/lib/buildx/install.d.ts +8 -3
- package/lib/buildx/install.js +84 -5
- package/lib/buildx/install.js.map +1 -1
- package/lib/dockerhub.d.ts +31 -0
- package/lib/dockerhub.js +156 -0
- package/lib/dockerhub.js.map +1 -0
- package/lib/github.d.ts +2 -1
- package/lib/github.js +49 -1
- package/lib/github.js.map +1 -1
- package/lib/toolkit.d.ts +2 -0
- package/lib/toolkit.js +2 -0
- package/lib/toolkit.js.map +1 -1
- package/lib/types/buildx.d.ts +20 -0
- package/lib/types/buildx.js +18 -0
- package/lib/types/buildx.js.map +1 -0
- package/lib/types/dockerhub.d.ts +104 -0
- package/lib/types/dockerhub.js +18 -0
- package/lib/types/dockerhub.js.map +1 -0
- package/lib/types/github.d.ts +4 -0
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
[](https://www.npmjs.com/package/@docker/actions-toolkit)
|
|
2
|
+
[](https://www.npmjs.com/package/@docker/actions-toolkit)
|
|
3
|
+
[](https://github.com/docker/actions-toolkit/actions?workflow=test)
|
|
4
|
+
[](https://codecov.io/gh/docker/actions-toolkit)
|
|
5
|
+
|
|
1
6
|
# Actions Toolkit
|
|
2
7
|
|
|
3
8
|
Toolkit for Docker (GitHub) Actions.
|
package/lib/buildkit/config.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ import { Context } from '../context';
|
|
|
17
17
|
export declare class Config {
|
|
18
18
|
private readonly context;
|
|
19
19
|
constructor(context: Context);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
private
|
|
20
|
+
resolveFromString(s: string): string;
|
|
21
|
+
resolveFromFile(s: string): string;
|
|
22
|
+
private resolve;
|
|
23
23
|
}
|
package/lib/buildkit/config.js
CHANGED
|
@@ -24,13 +24,13 @@ class Config {
|
|
|
24
24
|
constructor(context) {
|
|
25
25
|
this.context = context;
|
|
26
26
|
}
|
|
27
|
-
|
|
28
|
-
return this.
|
|
27
|
+
resolveFromString(s) {
|
|
28
|
+
return this.resolve(s, false);
|
|
29
29
|
}
|
|
30
|
-
|
|
31
|
-
return this.
|
|
30
|
+
resolveFromFile(s) {
|
|
31
|
+
return this.resolve(s, true);
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
resolve(s, file) {
|
|
34
34
|
if (file) {
|
|
35
35
|
if (!fs_1.default.existsSync(s)) {
|
|
36
36
|
throw new Error(`config file ${s} not found`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/buildkit/config.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;AAEH,4CAAoB;AAIpB,MAAa,MAAM;IAGjB,YAAY,OAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/buildkit/config.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;AAEH,4CAAoB;AAIpB,MAAa,MAAM;IAGjB,YAAY,OAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,iBAAiB,CAAC,CAAS;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAEM,eAAe,CAAC,CAAS;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEO,OAAO,CAAC,CAAS,EAAE,IAAa;QACtC,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;aAC/C;YACD,CAAC,GAAG,YAAE,CAAC,YAAY,CAAC,CAAC,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,CAAC,CAAC;SAC7C;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAC,CAAC,CAAC;QACzE,YAAE,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAChC,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AA1BD,wBA0BC"}
|
package/lib/buildx/buildx.d.ts
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { Context } from '../context';
|
|
17
17
|
import { Inputs } from './inputs';
|
|
18
|
-
import {
|
|
18
|
+
import { Cert } from '../types/buildx';
|
|
19
19
|
export interface BuildxOpts {
|
|
20
20
|
context: Context;
|
|
21
21
|
standalone?: boolean;
|
|
@@ -24,9 +24,10 @@ export declare class Buildx {
|
|
|
24
24
|
private readonly context;
|
|
25
25
|
private _version;
|
|
26
26
|
readonly inputs: Inputs;
|
|
27
|
-
readonly install: Install;
|
|
28
27
|
readonly standalone: boolean;
|
|
29
28
|
constructor(opts: BuildxOpts);
|
|
29
|
+
static get configDir(): string;
|
|
30
|
+
static get certsDir(): string;
|
|
30
31
|
getCommand(args: Array<string>): {
|
|
31
32
|
command: string;
|
|
32
33
|
args: string[];
|
|
@@ -37,4 +38,5 @@ export declare class Buildx {
|
|
|
37
38
|
printVersion(): Promise<void>;
|
|
38
39
|
static parseVersion(stdout: string): string;
|
|
39
40
|
versionSatisfies(range: string, version?: string): Promise<boolean>;
|
|
41
|
+
static resolveCertsDriverOpts(driver: string, endpoint: string, cert: Cert): Array<string>;
|
|
40
42
|
}
|
package/lib/buildx/buildx.js
CHANGED
|
@@ -46,21 +46,30 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
46
46
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
47
47
|
});
|
|
48
48
|
};
|
|
49
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
+
};
|
|
49
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
53
|
exports.Buildx = void 0;
|
|
54
|
+
const fs_1 = __importDefault(require("fs"));
|
|
55
|
+
const path_1 = __importDefault(require("path"));
|
|
51
56
|
const exec = __importStar(require("@actions/exec"));
|
|
52
57
|
const semver = __importStar(require("semver"));
|
|
53
58
|
const docker_1 = require("../docker");
|
|
54
59
|
const inputs_1 = require("./inputs");
|
|
55
|
-
const install_1 = require("./install");
|
|
56
60
|
class Buildx {
|
|
57
61
|
constructor(opts) {
|
|
58
62
|
var _a;
|
|
59
63
|
this.context = opts.context;
|
|
60
64
|
this.inputs = new inputs_1.Inputs(this.context);
|
|
61
|
-
this.install = new install_1.Install({ standalone: opts.standalone });
|
|
62
65
|
this.standalone = (_a = opts === null || opts === void 0 ? void 0 : opts.standalone) !== null && _a !== void 0 ? _a : !docker_1.Docker.isAvailable;
|
|
63
66
|
}
|
|
67
|
+
static get configDir() {
|
|
68
|
+
return process.env.BUILDX_CONFIG || path_1.default.join(docker_1.Docker.configDir, 'buildx');
|
|
69
|
+
}
|
|
70
|
+
static get certsDir() {
|
|
71
|
+
return path_1.default.join(Buildx.configDir, 'certs');
|
|
72
|
+
}
|
|
64
73
|
getCommand(args) {
|
|
65
74
|
return {
|
|
66
75
|
command: this.standalone ? 'buildx' : 'docker',
|
|
@@ -138,6 +147,45 @@ class Buildx {
|
|
|
138
147
|
return semver.satisfies(ver, range) || /^[0-9a-f]{7}$/.exec(ver) !== null;
|
|
139
148
|
});
|
|
140
149
|
}
|
|
150
|
+
static resolveCertsDriverOpts(driver, endpoint, cert) {
|
|
151
|
+
let url;
|
|
152
|
+
try {
|
|
153
|
+
url = new URL(endpoint);
|
|
154
|
+
}
|
|
155
|
+
catch (e) {
|
|
156
|
+
return [];
|
|
157
|
+
}
|
|
158
|
+
if (url.protocol != 'tcp:') {
|
|
159
|
+
return [];
|
|
160
|
+
}
|
|
161
|
+
const driverOpts = [];
|
|
162
|
+
if (Object.keys(cert).length == 0) {
|
|
163
|
+
return driverOpts;
|
|
164
|
+
}
|
|
165
|
+
let host = url.hostname;
|
|
166
|
+
if (url.port.length > 0) {
|
|
167
|
+
host += `-${url.port}`;
|
|
168
|
+
}
|
|
169
|
+
if (cert.cacert !== undefined) {
|
|
170
|
+
const cacertpath = path_1.default.join(Buildx.certsDir, `cacert_${host}.pem`);
|
|
171
|
+
fs_1.default.writeFileSync(cacertpath, cert.cacert);
|
|
172
|
+
driverOpts.push(`cacert=${cacertpath}`);
|
|
173
|
+
}
|
|
174
|
+
if (cert.cert !== undefined) {
|
|
175
|
+
const certpath = path_1.default.join(Buildx.certsDir, `cert_${host}.pem`);
|
|
176
|
+
fs_1.default.writeFileSync(certpath, cert.cert);
|
|
177
|
+
driverOpts.push(`cert=${certpath}`);
|
|
178
|
+
}
|
|
179
|
+
if (cert.key !== undefined) {
|
|
180
|
+
const keypath = path_1.default.join(Buildx.certsDir, `key_${host}.pem`);
|
|
181
|
+
fs_1.default.writeFileSync(keypath, cert.key);
|
|
182
|
+
driverOpts.push(`key=${keypath}`);
|
|
183
|
+
}
|
|
184
|
+
if (driver != 'remote') {
|
|
185
|
+
return [];
|
|
186
|
+
}
|
|
187
|
+
return driverOpts;
|
|
188
|
+
}
|
|
141
189
|
}
|
|
142
190
|
exports.Buildx = Buildx;
|
|
143
191
|
//# sourceMappingURL=buildx.js.map
|
package/lib/buildx/buildx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildx.js","sourceRoot":"","sources":["../../src/buildx/buildx.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG
|
|
1
|
+
{"version":3,"file":"buildx.js","sourceRoot":"","sources":["../../src/buildx/buildx.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,4CAAoB;AACpB,gDAAwB;AACxB,oDAAsC;AACtC,+CAAiC;AAEjC,sCAAiC;AAEjC,qCAAgC;AAShC,MAAa,MAAM;IAOjB,YAAY,IAAgB;;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,mCAAI,CAAC,eAAM,CAAC,WAAW,CAAC;IAC5D,CAAC;IAED,MAAM,KAAK,SAAS;QAClB,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,cAAI,CAAC,IAAI,CAAC,eAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,KAAK,QAAQ;QACjB,OAAO,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAEM,UAAU,CAAC,IAAmB;QACnC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;YAC9C,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;SACnD,CAAC;IACJ,CAAC;IAEY,WAAW;;YACtB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAChC,OAAO,MAAM,IAAI;iBACd,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE;gBACpC,gBAAgB,EAAE,IAAI;gBACtB,MAAM,EAAE,IAAI;aACb,CAAC;iBACD,IAAI,CAAC,GAAG,CAAC,EAAE;gBACV,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE;oBAC9C,OAAO,KAAK,CAAC;iBACd;gBACD,OAAO,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC;gBACF,6DAA6D;iBAC5D,KAAK,CAAC,KAAK,CAAC,EAAE;gBACb,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAEY,YAAY,CAAC,IAAY;;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;YAC/C,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE;gBACrC,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;QACL,CAAC;KAAA;IAED,IAAI,OAAO;QACT,OAAO,CAAC,GAAS,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACzC,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI;qBACvB,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE;oBACpC,gBAAgB,EAAE,IAAI;oBACtB,MAAM,EAAE,IAAI;iBACb,CAAC;qBACD,IAAI,CAAC,GAAG,CAAC,EAAE;oBACV,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE;wBAC9C,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;qBACpC;oBACD,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChD,CAAC,CAAC,CAAC;aACN;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC,CAAA,CAAC,EAAE,CAAC;IACP,CAAC;IAEY,YAAY;;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACzC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE;gBACrC,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;QACL,CAAC;KAAA;IAEM,MAAM,CAAC,YAAY,CAAC,MAAc;QACvC,MAAM,OAAO,GAAG,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAChD;QACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAEY,gBAAgB,CAAC,KAAa,EAAE,OAAgB;;YAC3D,MAAM,GAAG,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,EAAE;gBACR,OAAO,KAAK,CAAC;aACd;YACD,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;QAC5E,CAAC;KAAA;IAEM,MAAM,CAAC,sBAAsB,CAAC,MAAc,EAAE,QAAgB,EAAE,IAAU;QAC/E,IAAI,GAAQ,CAAC;QACb,IAAI;YACF,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;SACzB;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,EAAE,CAAC;SACX;QACD,IAAI,GAAG,CAAC,QAAQ,IAAI,MAAM,EAAE;YAC1B,OAAO,EAAE,CAAC;SACX;QACD,MAAM,UAAU,GAAkB,EAAE,CAAC;QACrC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;YACjC,OAAO,UAAU,CAAC;SACnB;QACD,IAAI,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;QACxB,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,MAAM,CAAC,CAAC;YACpE,YAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,UAAU,CAAC,IAAI,CAAC,UAAU,UAAU,EAAE,CAAC,CAAC;SACzC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;YAC3B,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,IAAI,MAAM,CAAC,CAAC;YAChE,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,UAAU,CAAC,IAAI,CAAC,QAAQ,QAAQ,EAAE,CAAC,CAAC;SACrC;QACD,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;YAC1B,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC;YAC9D,YAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,UAAU,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;SACnC;QACD,IAAI,MAAM,IAAI,QAAQ,EAAE;YACtB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AAvID,wBAuIC"}
|
package/lib/buildx/inputs.d.ts
CHANGED
|
@@ -19,14 +19,14 @@ export declare class Inputs {
|
|
|
19
19
|
constructor(context: Context);
|
|
20
20
|
getBuildImageIDFilePath(): string;
|
|
21
21
|
getBuildMetadataFilePath(): string;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
resolveBuildImageID(): string | undefined;
|
|
23
|
+
resolveBuildMetadata(): string | undefined;
|
|
24
|
+
resolveDigest(): string | undefined;
|
|
25
|
+
resolveBuildSecretString(kvp: string): string;
|
|
26
|
+
resolveBuildSecretFile(kvp: string): string;
|
|
27
|
+
resolveBuildSecret(kvp: string, file: boolean): string;
|
|
28
28
|
getProvenanceInput(name: string): string;
|
|
29
|
-
|
|
29
|
+
resolveProvenanceAttrs(input: string): string;
|
|
30
30
|
static hasLocalExporter(exporters: string[]): boolean;
|
|
31
31
|
static hasTarExporter(exporters: string[]): boolean;
|
|
32
32
|
static hasDockerExporter(exporters: string[], load?: boolean): boolean;
|
package/lib/buildx/inputs.js
CHANGED
|
@@ -56,14 +56,14 @@ class Inputs {
|
|
|
56
56
|
getBuildMetadataFilePath() {
|
|
57
57
|
return path_1.default.join(this.context.tmpDir(), 'metadata-file').split(path_1.default.sep).join(path_1.default.posix.sep);
|
|
58
58
|
}
|
|
59
|
-
|
|
59
|
+
resolveBuildImageID() {
|
|
60
60
|
const iidFile = this.getBuildImageIDFilePath();
|
|
61
61
|
if (!fs_1.default.existsSync(iidFile)) {
|
|
62
62
|
return undefined;
|
|
63
63
|
}
|
|
64
64
|
return fs_1.default.readFileSync(iidFile, { encoding: 'utf-8' }).trim();
|
|
65
65
|
}
|
|
66
|
-
|
|
66
|
+
resolveBuildMetadata() {
|
|
67
67
|
const metadataFile = this.getBuildMetadataFilePath();
|
|
68
68
|
if (!fs_1.default.existsSync(metadataFile)) {
|
|
69
69
|
return undefined;
|
|
@@ -74,8 +74,8 @@ class Inputs {
|
|
|
74
74
|
}
|
|
75
75
|
return content;
|
|
76
76
|
}
|
|
77
|
-
|
|
78
|
-
const metadata = this.
|
|
77
|
+
resolveDigest() {
|
|
78
|
+
const metadata = this.resolveBuildMetadata();
|
|
79
79
|
if (metadata === undefined) {
|
|
80
80
|
return undefined;
|
|
81
81
|
}
|
|
@@ -85,13 +85,13 @@ class Inputs {
|
|
|
85
85
|
}
|
|
86
86
|
return undefined;
|
|
87
87
|
}
|
|
88
|
-
|
|
89
|
-
return this.
|
|
88
|
+
resolveBuildSecretString(kvp) {
|
|
89
|
+
return this.resolveBuildSecret(kvp, false);
|
|
90
90
|
}
|
|
91
|
-
|
|
92
|
-
return this.
|
|
91
|
+
resolveBuildSecretFile(kvp) {
|
|
92
|
+
return this.resolveBuildSecret(kvp, true);
|
|
93
93
|
}
|
|
94
|
-
|
|
94
|
+
resolveBuildSecret(kvp, file) {
|
|
95
95
|
const delimiterIndex = kvp.indexOf('=');
|
|
96
96
|
const key = kvp.substring(0, delimiterIndex);
|
|
97
97
|
let value = kvp.substring(delimiterIndex + 1);
|
|
@@ -120,10 +120,10 @@ class Inputs {
|
|
|
120
120
|
}
|
|
121
121
|
catch (err) {
|
|
122
122
|
// not a valid boolean, so we assume it's a string
|
|
123
|
-
return this.
|
|
123
|
+
return this.resolveProvenanceAttrs(input);
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
|
|
126
|
+
resolveProvenanceAttrs(input) {
|
|
127
127
|
if (!input) {
|
|
128
128
|
return `builder-id=${this.context.provenanceBuilderID}`;
|
|
129
129
|
}
|
package/lib/buildx/inputs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/buildx/inputs.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,4CAAoB;AACpB,gDAAwB;AACxB,oDAAsC;AACtC,yCAAqC;AAIrC,MAAa,MAAM;IAGjB,YAAY,OAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,uBAAuB;QAC5B,OAAO,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,cAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1F,CAAC;IAEM,wBAAwB;QAC7B,OAAO,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,KAAK,CAAC,cAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChG,CAAC;IAEM,
|
|
1
|
+
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/buildx/inputs.ts"],"names":[],"mappings":"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"}
|
package/lib/buildx/install.d.ts
CHANGED
|
@@ -13,17 +13,22 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import { Context } from '../context';
|
|
16
17
|
import { GitHubRelease } from '../types/github';
|
|
17
18
|
export interface InstallOpts {
|
|
19
|
+
context?: Context;
|
|
18
20
|
standalone?: boolean;
|
|
19
21
|
}
|
|
20
22
|
export declare class Install {
|
|
21
|
-
private readonly
|
|
23
|
+
private readonly context;
|
|
24
|
+
private readonly standalone;
|
|
22
25
|
constructor(opts?: InstallOpts);
|
|
23
|
-
|
|
26
|
+
download(version: string, dest: string): Promise<string>;
|
|
27
|
+
build(gitContext: string, dest: string): Promise<string>;
|
|
28
|
+
private buildCommand;
|
|
24
29
|
private setStandalone;
|
|
25
30
|
private setPlugin;
|
|
26
|
-
private
|
|
31
|
+
private fetchBinary;
|
|
27
32
|
private platform;
|
|
28
33
|
private filename;
|
|
29
34
|
static getRelease(version: string): Promise<GitHubRelease>;
|
package/lib/buildx/install.js
CHANGED
|
@@ -55,15 +55,22 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
55
55
|
const os_1 = __importDefault(require("os"));
|
|
56
56
|
const path_1 = __importDefault(require("path"));
|
|
57
57
|
const core = __importStar(require("@actions/core"));
|
|
58
|
+
const exec = __importStar(require("@actions/exec"));
|
|
58
59
|
const httpm = __importStar(require("@actions/http-client"));
|
|
59
60
|
const tc = __importStar(require("@actions/tool-cache"));
|
|
60
61
|
const semver = __importStar(require("semver"));
|
|
61
62
|
const util = __importStar(require("util"));
|
|
63
|
+
const buildx_1 = require("./buildx");
|
|
64
|
+
const context_1 = require("../context");
|
|
65
|
+
const docker_1 = require("../docker");
|
|
66
|
+
const git_1 = require("../git");
|
|
62
67
|
class Install {
|
|
63
68
|
constructor(opts) {
|
|
64
|
-
|
|
69
|
+
var _a;
|
|
70
|
+
this.context = (opts === null || opts === void 0 ? void 0 : opts.context) || new context_1.Context();
|
|
71
|
+
this.standalone = (_a = opts === null || opts === void 0 ? void 0 : opts.standalone) !== null && _a !== void 0 ? _a : !docker_1.Docker.isAvailable;
|
|
65
72
|
}
|
|
66
|
-
|
|
73
|
+
download(version, dest) {
|
|
67
74
|
return __awaiter(this, void 0, void 0, function* () {
|
|
68
75
|
const release = yield Install.getRelease(version);
|
|
69
76
|
const fversion = release.tag_name.replace(/^v+|v+$/g, '');
|
|
@@ -74,14 +81,86 @@ class Install {
|
|
|
74
81
|
if (!semver.valid(c)) {
|
|
75
82
|
throw new Error(`Invalid Buildx version "${fversion}".`);
|
|
76
83
|
}
|
|
77
|
-
toolPath = yield this.
|
|
84
|
+
toolPath = yield this.fetchBinary(fversion);
|
|
78
85
|
}
|
|
79
|
-
if (this.
|
|
86
|
+
if (this.standalone) {
|
|
80
87
|
return this.setStandalone(toolPath, dest);
|
|
81
88
|
}
|
|
82
89
|
return this.setPlugin(toolPath, dest);
|
|
83
90
|
});
|
|
84
91
|
}
|
|
92
|
+
build(gitContext, dest) {
|
|
93
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
94
|
+
// eslint-disable-next-line prefer-const
|
|
95
|
+
let [repo, ref] = gitContext.split('#');
|
|
96
|
+
if (ref.length == 0) {
|
|
97
|
+
ref = 'master';
|
|
98
|
+
}
|
|
99
|
+
let vspec;
|
|
100
|
+
// TODO: include full ref as fingerprint. Use commit sha as best-effort in the meantime.
|
|
101
|
+
if (ref.match(/^[0-9a-fA-F]{40}$/)) {
|
|
102
|
+
vspec = ref;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
vspec = yield git_1.Git.getRemoteSha(repo, ref);
|
|
106
|
+
}
|
|
107
|
+
core.debug(`Tool version spec ${vspec}`);
|
|
108
|
+
let toolPath;
|
|
109
|
+
toolPath = tc.find('buildx', vspec);
|
|
110
|
+
if (!toolPath) {
|
|
111
|
+
const outputDir = path_1.default.join(this.context.tmpDir(), 'build-cache').split(path_1.default.sep).join(path_1.default.posix.sep);
|
|
112
|
+
const buildCmd = yield this.buildCommand(gitContext, outputDir);
|
|
113
|
+
toolPath = yield exec
|
|
114
|
+
.getExecOutput(buildCmd.command, buildCmd.args, {
|
|
115
|
+
ignoreReturnCode: true
|
|
116
|
+
})
|
|
117
|
+
.then(res => {
|
|
118
|
+
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
119
|
+
core.warning(res.stderr.trim());
|
|
120
|
+
}
|
|
121
|
+
return tc.cacheFile(`${outputDir}/buildx`, os_1.default.platform() == 'win32' ? 'docker-buildx.exe' : 'docker-buildx', 'buildx', vspec);
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
if (this.standalone) {
|
|
125
|
+
return this.setStandalone(toolPath, dest);
|
|
126
|
+
}
|
|
127
|
+
return this.setPlugin(toolPath, dest);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
buildCommand(gitContext, outputDir) {
|
|
131
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
132
|
+
const buildxStandaloneFound = yield new buildx_1.Buildx({ context: this.context, standalone: true }).isAvailable();
|
|
133
|
+
const buildxPluginFound = yield new buildx_1.Buildx({ context: this.context, standalone: false }).isAvailable();
|
|
134
|
+
let buildStandalone = false;
|
|
135
|
+
if (this.standalone && buildxStandaloneFound) {
|
|
136
|
+
core.debug(`Buildx standalone found, build with it`);
|
|
137
|
+
buildStandalone = true;
|
|
138
|
+
}
|
|
139
|
+
else if (!this.standalone && buildxPluginFound) {
|
|
140
|
+
core.debug(`Buildx plugin found, build with it`);
|
|
141
|
+
buildStandalone = false;
|
|
142
|
+
}
|
|
143
|
+
else if (buildxStandaloneFound) {
|
|
144
|
+
core.debug(`Buildx plugin not found, but standalone found so trying to build with it`);
|
|
145
|
+
buildStandalone = true;
|
|
146
|
+
}
|
|
147
|
+
else if (buildxPluginFound) {
|
|
148
|
+
core.debug(`Buildx standalone not found, but plugin found so trying to build with it`);
|
|
149
|
+
buildStandalone = false;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
throw new Error(`Neither buildx standalone or plugin have been found to build from ref ${gitContext}`);
|
|
153
|
+
}
|
|
154
|
+
//prettier-ignore
|
|
155
|
+
return new buildx_1.Buildx({ context: this.context, standalone: buildStandalone }).getCommand([
|
|
156
|
+
'build',
|
|
157
|
+
'--target', 'binaries',
|
|
158
|
+
'--build-arg', 'BUILDKIT_CONTEXT_KEEP_GIT_DIR=1',
|
|
159
|
+
'--output', `type=local,dest=${outputDir}`,
|
|
160
|
+
gitContext
|
|
161
|
+
]);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
85
164
|
setStandalone(toolPath, dest) {
|
|
86
165
|
return __awaiter(this, void 0, void 0, function* () {
|
|
87
166
|
const toolBinPath = path_1.default.join(toolPath, os_1.default.platform() == 'win32' ? 'docker-buildx.exe' : 'docker-buildx');
|
|
@@ -111,7 +190,7 @@ class Install {
|
|
|
111
190
|
return pluginPath;
|
|
112
191
|
});
|
|
113
192
|
}
|
|
114
|
-
|
|
193
|
+
fetchBinary(version) {
|
|
115
194
|
return __awaiter(this, void 0, void 0, function* () {
|
|
116
195
|
const targetFile = os_1.default.platform() == 'win32' ? 'docker-buildx.exe' : 'docker-buildx';
|
|
117
196
|
const downloadURL = util.format('https://github.com/docker/buildx/releases/download/v%s/%s', version, this.filename(version));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/buildx/install.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,4CAAoB;AACpB,4CAAoB;AACpB,gDAAwB;AACxB,oDAAsC;AACtC,4DAA8C;AAC9C,wDAA0C;AAC1C,+CAAiC;AACjC,2CAA6B;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/buildx/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023 actions-toolkit authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { RepositoryRequest, RepositoryResponse, RepositoryTagsRequest, RepositoryTagsResponse, TokenRequest, UpdateRepoDescriptionRequest } from './types/dockerhub';
|
|
17
|
+
export interface DockerHubOpts {
|
|
18
|
+
credentials: TokenRequest;
|
|
19
|
+
}
|
|
20
|
+
export declare class DockerHub {
|
|
21
|
+
private readonly opts;
|
|
22
|
+
private readonly httpc;
|
|
23
|
+
private constructor();
|
|
24
|
+
static build(opts: DockerHubOpts): Promise<DockerHub>;
|
|
25
|
+
getRepositoryTags(req: RepositoryTagsRequest): Promise<RepositoryTagsResponse>;
|
|
26
|
+
getRepositoryAllTags(req: RepositoryTagsRequest): Promise<RepositoryTagsResponse>;
|
|
27
|
+
getRepository(req: RepositoryRequest): Promise<RepositoryResponse>;
|
|
28
|
+
updateRepoDescription(req: UpdateRepoDescriptionRequest): Promise<RepositoryResponse>;
|
|
29
|
+
private static login;
|
|
30
|
+
private static handleResponse;
|
|
31
|
+
}
|
package/lib/dockerhub.js
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2023 actions-toolkit authors
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
+
}
|
|
23
|
+
Object.defineProperty(o, k2, desc);
|
|
24
|
+
}) : (function(o, m, k, k2) {
|
|
25
|
+
if (k2 === undefined) k2 = k;
|
|
26
|
+
o[k2] = m[k];
|
|
27
|
+
}));
|
|
28
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
+
}) : function(o, v) {
|
|
31
|
+
o["default"] = v;
|
|
32
|
+
});
|
|
33
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
41
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
42
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
43
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
44
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
45
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
46
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.DockerHub = void 0;
|
|
51
|
+
const core = __importStar(require("@actions/core"));
|
|
52
|
+
const httpm = __importStar(require("@actions/http-client"));
|
|
53
|
+
const http_client_1 = require("@actions/http-client");
|
|
54
|
+
const apiBaseURL = 'https://hub.docker.com';
|
|
55
|
+
const loginURL = `${apiBaseURL}/v2/users/login?refresh_token=true`;
|
|
56
|
+
const repositoriesURL = `${apiBaseURL}/v2/repositories/`;
|
|
57
|
+
class DockerHub {
|
|
58
|
+
constructor(opts, httpc) {
|
|
59
|
+
this.opts = opts;
|
|
60
|
+
this.httpc = httpc;
|
|
61
|
+
}
|
|
62
|
+
static build(opts) {
|
|
63
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
return new DockerHub(opts, new httpm.HttpClient('docker-actions-toolkit', [], {
|
|
65
|
+
headers: {
|
|
66
|
+
Authorization: `JWT ${yield DockerHub.login(opts.credentials)}`,
|
|
67
|
+
'Content-Type': 'application/json'
|
|
68
|
+
}
|
|
69
|
+
}));
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
getRepositoryTags(req) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
const url = new URL(`${repositoriesURL}${req.namespace}/${req.name}/tags`);
|
|
75
|
+
if (req.page) {
|
|
76
|
+
url.searchParams.append('page', req.page.toString());
|
|
77
|
+
}
|
|
78
|
+
if (req.page_size) {
|
|
79
|
+
url.searchParams.append('page_size', req.page_size.toString());
|
|
80
|
+
}
|
|
81
|
+
const resp = yield this.httpc.get(url.toString());
|
|
82
|
+
return JSON.parse(yield DockerHub.handleResponse(resp));
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
getRepositoryAllTags(req) {
|
|
86
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
87
|
+
const tags = yield this.getRepositoryTags(req);
|
|
88
|
+
while (tags.next) {
|
|
89
|
+
const nextURL = new URL(tags.next);
|
|
90
|
+
const pageNumber = Number(nextURL.searchParams.get('page'));
|
|
91
|
+
const pageSize = Number(nextURL.searchParams.get('page_size')) || undefined;
|
|
92
|
+
const nextTags = yield this.getRepositoryTags({
|
|
93
|
+
namespace: req.namespace,
|
|
94
|
+
name: req.name,
|
|
95
|
+
page: pageNumber,
|
|
96
|
+
page_size: pageSize || req.page_size
|
|
97
|
+
});
|
|
98
|
+
tags.results.push(...nextTags.results);
|
|
99
|
+
tags.next = nextTags.next;
|
|
100
|
+
}
|
|
101
|
+
return tags;
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
getRepository(req) {
|
|
105
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
106
|
+
const resp = yield this.httpc.get(`${repositoriesURL}${req.namespace}/${req.name}`);
|
|
107
|
+
return JSON.parse(yield DockerHub.handleResponse(resp));
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
updateRepoDescription(req) {
|
|
111
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
+
const body = {
|
|
113
|
+
full_description: req.full_description
|
|
114
|
+
};
|
|
115
|
+
if (req.description) {
|
|
116
|
+
body['description'] = req.description;
|
|
117
|
+
}
|
|
118
|
+
const resp = yield this.httpc.patch(`${repositoriesURL}${req.namespace}/${req.name}`, JSON.stringify(body));
|
|
119
|
+
return JSON.parse(yield DockerHub.handleResponse(resp));
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
static login(req) {
|
|
123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
const http = new httpm.HttpClient('docker-actions-toolkit', [], {
|
|
125
|
+
headers: {
|
|
126
|
+
'Content-Type': 'application/json'
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
const resp = yield http.post(loginURL, JSON.stringify(req));
|
|
130
|
+
const tokenResp = JSON.parse(yield DockerHub.handleResponse(resp));
|
|
131
|
+
core.setSecret(`${tokenResp.token}`);
|
|
132
|
+
return `${tokenResp.token}`;
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
static handleResponse(resp) {
|
|
136
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
137
|
+
const body = yield resp.readBody();
|
|
138
|
+
resp.message.statusCode = resp.message.statusCode || http_client_1.HttpCodes.InternalServerError;
|
|
139
|
+
if (resp.message.statusCode < 200 || resp.message.statusCode >= 300) {
|
|
140
|
+
if (resp.message.statusCode == http_client_1.HttpCodes.Unauthorized) {
|
|
141
|
+
throw new Error(`Docker Hub API: operation not permitted`);
|
|
142
|
+
}
|
|
143
|
+
const errResp = JSON.parse(body);
|
|
144
|
+
for (const k of ['message', 'detail', 'error']) {
|
|
145
|
+
if (errResp[k]) {
|
|
146
|
+
throw new Error(`Docker Hub API: bad status code ${resp.message.statusCode}: ${errResp[k]}`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
throw new Error(`Docker Hub API: bad status code ${resp.message.statusCode}`);
|
|
150
|
+
}
|
|
151
|
+
return body;
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
exports.DockerHub = DockerHub;
|
|
156
|
+
//# sourceMappingURL=dockerhub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dockerhub.js","sourceRoot":"","sources":["../src/dockerhub.ts"],"names":[],"mappings":"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"}
|
package/lib/github.d.ts
CHANGED
|
@@ -26,5 +26,6 @@ export declare class GitHub {
|
|
|
26
26
|
static get context(): Context;
|
|
27
27
|
static get serverURL(): string;
|
|
28
28
|
static get apiURL(): string;
|
|
29
|
-
static get actionsRuntimeToken(): GitHubActionsRuntimeToken;
|
|
29
|
+
static get actionsRuntimeToken(): GitHubActionsRuntimeToken | undefined;
|
|
30
|
+
static printActionsRuntimeTokenACs(): Promise<void>;
|
|
30
31
|
}
|
package/lib/github.js
CHANGED
|
@@ -37,11 +37,21 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
37
37
|
__setModuleDefault(result, mod);
|
|
38
38
|
return result;
|
|
39
39
|
};
|
|
40
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
41
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
42
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
43
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
44
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
45
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
46
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
47
|
+
});
|
|
48
|
+
};
|
|
40
49
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
41
50
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
42
51
|
};
|
|
43
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
53
|
exports.GitHub = void 0;
|
|
54
|
+
const core = __importStar(require("@actions/core"));
|
|
45
55
|
const github = __importStar(require("@actions/github"));
|
|
46
56
|
const jwt_decode_1 = __importDefault(require("jwt-decode"));
|
|
47
57
|
class GitHub {
|
|
@@ -62,7 +72,45 @@ class GitHub {
|
|
|
62
72
|
}
|
|
63
73
|
static get actionsRuntimeToken() {
|
|
64
74
|
const token = process.env['ACTIONS_RUNTIME_TOKEN'] || '';
|
|
65
|
-
return token ? (0, jwt_decode_1.default)(token) :
|
|
75
|
+
return token ? (0, jwt_decode_1.default)(token) : undefined;
|
|
76
|
+
}
|
|
77
|
+
static printActionsRuntimeTokenACs() {
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
let jwt;
|
|
80
|
+
try {
|
|
81
|
+
jwt = GitHub.actionsRuntimeToken;
|
|
82
|
+
}
|
|
83
|
+
catch (e) {
|
|
84
|
+
core.warning(`Cannot parse Actions Runtime Token: ${e.message}`);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (!jwt) {
|
|
88
|
+
core.warning(`ACTIONS_RUNTIME_TOKEN not set`);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
92
|
+
JSON.parse(`${jwt.ac}`).forEach(ac => {
|
|
93
|
+
let permission;
|
|
94
|
+
switch (ac.Permission) {
|
|
95
|
+
case 1:
|
|
96
|
+
permission = 'read';
|
|
97
|
+
break;
|
|
98
|
+
case 2:
|
|
99
|
+
permission = 'write';
|
|
100
|
+
break;
|
|
101
|
+
case 3:
|
|
102
|
+
permission = 'read/write';
|
|
103
|
+
break;
|
|
104
|
+
default:
|
|
105
|
+
permission = `unimplemented (${ac.Permission})`;
|
|
106
|
+
}
|
|
107
|
+
core.info(`${ac.Scope}: ${permission}`);
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
catch (e) {
|
|
111
|
+
core.warning(`Cannot parse Actions Runtime Token Access Controls: ${e.message}`);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
66
114
|
}
|
|
67
115
|
}
|
|
68
116
|
exports.GitHub = GitHub;
|
package/lib/github.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGH,oDAAsC;AACtC,wDAA0C;AAE1C,4DAAoC;AAQpC,MAAa,MAAM;IAGjB,YAAY,IAAiB;QAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,mBAAK,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAkB,CAAC,CAAC;IAC7G,CAAC;IAED,MAAM,KAAK,OAAO;QAChB,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,MAAM,KAAK,SAAS;QAClB,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,oBAAoB,CAAC;IAC/D,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,wBAAwB,CAAC;IAChE,CAAC;IAED,MAAM,KAAK,mBAAmB;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAA,oBAAU,EAA4B,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,CAAC;IAEM,MAAM,CAAO,2BAA2B;;YAC7C,IAAI,GAA0C,CAAC;YAC/C,IAAI;gBACF,GAAG,GAAG,MAAM,CAAC,mBAAmB,CAAC;aAClC;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjE,OAAO;aACR;YACD,IAAI,CAAC,GAAG,EAAE;gBACR,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;gBAC9C,OAAO;aACR;YACD,IAAI;gBACkC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACvE,IAAI,UAAkB,CAAC;oBACvB,QAAQ,EAAE,CAAC,UAAU,EAAE;wBACrB,KAAK,CAAC;4BACJ,UAAU,GAAG,MAAM,CAAC;4BACpB,MAAM;wBACR,KAAK,CAAC;4BACJ,UAAU,GAAG,OAAO,CAAC;4BACrB,MAAM;wBACR,KAAK,CAAC;4BACJ,UAAU,GAAG,YAAY,CAAC;4BAC1B,MAAM;wBACR;4BACE,UAAU,GAAG,kBAAkB,EAAE,CAAC,UAAU,GAAG,CAAC;qBACnD;oBACD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAC;aACJ;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;aAClF;QACH,CAAC;KAAA;CACF;AA9DD,wBA8DC"}
|
package/lib/toolkit.d.ts
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { Context } from './context';
|
|
17
17
|
import { Buildx } from './buildx/buildx';
|
|
18
|
+
import { Install } from './buildx/install';
|
|
18
19
|
import { BuildKit } from './buildkit/buildkit';
|
|
19
20
|
import { GitHub } from './github';
|
|
20
21
|
export interface ToolkitOpts {
|
|
@@ -28,6 +29,7 @@ export declare class Toolkit {
|
|
|
28
29
|
context: Context;
|
|
29
30
|
github: GitHub;
|
|
30
31
|
buildx: Buildx;
|
|
32
|
+
buildxInstall: Install;
|
|
31
33
|
buildkit: BuildKit;
|
|
32
34
|
constructor(opts?: ToolkitOpts);
|
|
33
35
|
}
|
package/lib/toolkit.js
CHANGED
|
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.Toolkit = void 0;
|
|
19
19
|
const context_1 = require("./context");
|
|
20
20
|
const buildx_1 = require("./buildx/buildx");
|
|
21
|
+
const install_1 = require("./buildx/install");
|
|
21
22
|
const buildkit_1 = require("./buildkit/buildkit");
|
|
22
23
|
const github_1 = require("./github");
|
|
23
24
|
class Toolkit {
|
|
@@ -25,6 +26,7 @@ class Toolkit {
|
|
|
25
26
|
this.context = new context_1.Context();
|
|
26
27
|
this.github = new github_1.GitHub({ token: opts.githubToken });
|
|
27
28
|
this.buildx = new buildx_1.Buildx({ context: this.context });
|
|
29
|
+
this.buildxInstall = new install_1.Install({ context: this.context, standalone: this.buildx.standalone });
|
|
28
30
|
this.buildkit = new buildkit_1.BuildKit({ context: this.context, buildx: this.buildx });
|
|
29
31
|
}
|
|
30
32
|
}
|
package/lib/toolkit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolkit.js","sourceRoot":"","sources":["../src/toolkit.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,uCAAkC;AAClC,4CAAuC;AACvC,kDAA6C;AAC7C,qCAAgC;AAUhC,MAAa,OAAO;
|
|
1
|
+
{"version":3,"file":"toolkit.js","sourceRoot":"","sources":["../src/toolkit.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,uCAAkC;AAClC,4CAAuC;AACvC,8CAAyC;AACzC,kDAA6C;AAC7C,qCAAgC;AAUhC,MAAa,OAAO;IAOlB,YAAY,OAAoB,EAAE;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAC,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,IAAI,iBAAO,CAAC,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAC,CAAC,CAAC;QAC9F,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAC;IAC7E,CAAC;CACF;AAdD,0BAcC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023 actions-toolkit authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export interface Cert {
|
|
17
|
+
cacert?: string;
|
|
18
|
+
cert?: string;
|
|
19
|
+
key?: string;
|
|
20
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2023 actions-toolkit authors
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
//# sourceMappingURL=buildx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildx.js","sourceRoot":"","sources":["../../src/types/buildx.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023 actions-toolkit authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export interface TokenRequest {
|
|
17
|
+
username: string;
|
|
18
|
+
password: string;
|
|
19
|
+
}
|
|
20
|
+
export interface TokenResponse {
|
|
21
|
+
token: string;
|
|
22
|
+
detail: string;
|
|
23
|
+
}
|
|
24
|
+
export interface RepositoryRequest {
|
|
25
|
+
namespace: string;
|
|
26
|
+
name: string;
|
|
27
|
+
}
|
|
28
|
+
export interface RepositoryResponse {
|
|
29
|
+
user: string;
|
|
30
|
+
name: string;
|
|
31
|
+
namespace: string;
|
|
32
|
+
repository_type: string;
|
|
33
|
+
status: number;
|
|
34
|
+
status_description: string;
|
|
35
|
+
description: string;
|
|
36
|
+
is_private: boolean;
|
|
37
|
+
is_automated: boolean;
|
|
38
|
+
can_edit: boolean;
|
|
39
|
+
star_count: number;
|
|
40
|
+
pull_count: number;
|
|
41
|
+
last_updated: string;
|
|
42
|
+
date_registered: string;
|
|
43
|
+
collaborator_count: number;
|
|
44
|
+
affiliation: string;
|
|
45
|
+
hub_user: string;
|
|
46
|
+
has_starred: boolean;
|
|
47
|
+
full_description: string;
|
|
48
|
+
permissions: {
|
|
49
|
+
read: boolean;
|
|
50
|
+
write: boolean;
|
|
51
|
+
admin: boolean;
|
|
52
|
+
};
|
|
53
|
+
media_types: Array<string>;
|
|
54
|
+
content_types: Array<string>;
|
|
55
|
+
}
|
|
56
|
+
export interface RepositoryTagsRequest {
|
|
57
|
+
namespace: string;
|
|
58
|
+
name: string;
|
|
59
|
+
page?: number;
|
|
60
|
+
page_size?: number;
|
|
61
|
+
}
|
|
62
|
+
export interface RepositoryTagsResponse {
|
|
63
|
+
count: number;
|
|
64
|
+
next?: string;
|
|
65
|
+
previous?: string;
|
|
66
|
+
results: Array<RepositoryTagsResult>;
|
|
67
|
+
}
|
|
68
|
+
export interface RepositoryTagsResult {
|
|
69
|
+
creator: number;
|
|
70
|
+
id: number;
|
|
71
|
+
images: Array<RepositoryTagsResultImage>;
|
|
72
|
+
last_updated: Date;
|
|
73
|
+
last_updater: number;
|
|
74
|
+
last_updater_username: string;
|
|
75
|
+
name: string;
|
|
76
|
+
repository: number;
|
|
77
|
+
full_size: number;
|
|
78
|
+
v2: boolean;
|
|
79
|
+
tag_status: string;
|
|
80
|
+
tag_last_pulled: Date;
|
|
81
|
+
tag_last_pushed: Date;
|
|
82
|
+
media_type: string;
|
|
83
|
+
content_type: string;
|
|
84
|
+
digest: string;
|
|
85
|
+
}
|
|
86
|
+
export interface RepositoryTagsResultImage {
|
|
87
|
+
architecture: string;
|
|
88
|
+
features: string;
|
|
89
|
+
variant?: string;
|
|
90
|
+
digest: string;
|
|
91
|
+
os: string;
|
|
92
|
+
os_features: string;
|
|
93
|
+
os_version?: string;
|
|
94
|
+
size: number;
|
|
95
|
+
status: string;
|
|
96
|
+
last_pulled: Date;
|
|
97
|
+
last_pushed: Date;
|
|
98
|
+
}
|
|
99
|
+
export interface UpdateRepoDescriptionRequest {
|
|
100
|
+
name: string;
|
|
101
|
+
namespace: string;
|
|
102
|
+
description?: string;
|
|
103
|
+
full_description: string;
|
|
104
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2023 actions-toolkit authors
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
//# sourceMappingURL=dockerhub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dockerhub.js","sourceRoot":"","sources":["../../src/types/dockerhub.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG"}
|
package/lib/types/github.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docker/actions-toolkit",
|
|
3
|
+
"version": "0.1.0-beta.6",
|
|
3
4
|
"description": "Toolkit for Docker (GitHub) Actions",
|
|
4
5
|
"scripts": {
|
|
5
6
|
"build": "tsc",
|
|
@@ -46,7 +47,7 @@
|
|
|
46
47
|
"@actions/github": "^5.1.1",
|
|
47
48
|
"@actions/http-client": "^2.0.1",
|
|
48
49
|
"@actions/tool-cache": "^2.0.1",
|
|
49
|
-
"csv-parse": "^5.3.
|
|
50
|
+
"csv-parse": "^5.3.5",
|
|
50
51
|
"jwt-decode": "^3.1.2",
|
|
51
52
|
"semver": "^7.3.8",
|
|
52
53
|
"tmp": "^0.2.1"
|
|
@@ -71,6 +72,5 @@
|
|
|
71
72
|
"ts-jest": "^27.1.5",
|
|
72
73
|
"ts-node": "^10.9.1",
|
|
73
74
|
"typescript": "^4.9.4"
|
|
74
|
-
}
|
|
75
|
-
"version": "0.1.0-beta.4"
|
|
75
|
+
}
|
|
76
76
|
}
|