@docker/actions-toolkit 0.1.0-beta.1

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/lib/buildx.js ADDED
@@ -0,0 +1,259 @@
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
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.Buildx = void 0;
39
+ const fs_1 = __importDefault(require("fs"));
40
+ const path_1 = __importDefault(require("path"));
41
+ const core = __importStar(require("@actions/core"));
42
+ const exec = __importStar(require("@actions/exec"));
43
+ const sync_1 = require("csv-parse/sync");
44
+ const semver = __importStar(require("semver"));
45
+ const docker_1 = require("./docker");
46
+ class Buildx {
47
+ constructor(opts) {
48
+ var _a;
49
+ this.context = opts.context;
50
+ this.standalone = (_a = opts === null || opts === void 0 ? void 0 : opts.standalone) !== null && _a !== void 0 ? _a : !docker_1.Docker.isAvailable();
51
+ this.version = this.getVersion();
52
+ }
53
+ getCommand(args) {
54
+ return {
55
+ command: this.standalone ? 'buildx' : 'docker',
56
+ args: this.standalone ? args : ['buildx', ...args]
57
+ };
58
+ }
59
+ isAvailable() {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ const cmd = this.getCommand([]);
62
+ return yield exec
63
+ .getExecOutput(cmd.command, cmd.args, {
64
+ ignoreReturnCode: true,
65
+ silent: true
66
+ })
67
+ .then(res => {
68
+ if (res.stderr.length > 0 && res.exitCode != 0) {
69
+ return false;
70
+ }
71
+ return res.exitCode == 0;
72
+ })
73
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
74
+ .catch(error => {
75
+ return false;
76
+ });
77
+ });
78
+ }
79
+ printInspect(name) {
80
+ return __awaiter(this, void 0, void 0, function* () {
81
+ const cmd = this.getCommand(['inspect', name]);
82
+ yield exec.exec(cmd.command, cmd.args, {
83
+ failOnStdErr: false
84
+ });
85
+ });
86
+ }
87
+ getVersion() {
88
+ return __awaiter(this, void 0, void 0, function* () {
89
+ const cmd = this.getCommand(['version']);
90
+ return yield exec
91
+ .getExecOutput(cmd.command, cmd.args, {
92
+ ignoreReturnCode: true,
93
+ silent: true
94
+ })
95
+ .then(res => {
96
+ if (res.stderr.length > 0 && res.exitCode != 0) {
97
+ throw new Error(res.stderr.trim());
98
+ }
99
+ return Buildx.parseVersion(res.stdout.trim());
100
+ });
101
+ });
102
+ }
103
+ printVersion() {
104
+ return __awaiter(this, void 0, void 0, function* () {
105
+ const cmd = this.getCommand(['version']);
106
+ yield exec.exec(cmd.command, cmd.args, {
107
+ failOnStdErr: false
108
+ });
109
+ });
110
+ }
111
+ static parseVersion(stdout) {
112
+ const matches = /\sv?([0-9a-f]{7}|[0-9.]+)/.exec(stdout);
113
+ if (!matches) {
114
+ throw new Error(`Cannot parse buildx version`);
115
+ }
116
+ return matches[1];
117
+ }
118
+ versionSatisfies(range, version) {
119
+ return __awaiter(this, void 0, void 0, function* () {
120
+ const ver = version !== null && version !== void 0 ? version : (yield this.version);
121
+ return semver.satisfies(ver, range) || /^[0-9a-f]{7}$/.exec(ver) !== null;
122
+ });
123
+ }
124
+ getBuildImageIDFilePath() {
125
+ return path_1.default.join(this.context.tmpDir(), 'iidfile').split(path_1.default.sep).join(path_1.default.posix.sep);
126
+ }
127
+ getBuildMetadataFilePath() {
128
+ return path_1.default.join(this.context.tmpDir(), 'metadata-file').split(path_1.default.sep).join(path_1.default.posix.sep);
129
+ }
130
+ getBuildImageID() {
131
+ const iidFile = this.getBuildImageIDFilePath();
132
+ if (!fs_1.default.existsSync(iidFile)) {
133
+ return undefined;
134
+ }
135
+ return fs_1.default.readFileSync(iidFile, { encoding: 'utf-8' }).trim();
136
+ }
137
+ getBuildMetadata() {
138
+ const metadataFile = this.getBuildMetadataFilePath();
139
+ if (!fs_1.default.existsSync(metadataFile)) {
140
+ return undefined;
141
+ }
142
+ const content = fs_1.default.readFileSync(metadataFile, { encoding: 'utf-8' }).trim();
143
+ if (content === 'null') {
144
+ return undefined;
145
+ }
146
+ return content;
147
+ }
148
+ getDigest() {
149
+ const metadata = this.getBuildMetadata();
150
+ if (metadata === undefined) {
151
+ return undefined;
152
+ }
153
+ const metadataJSON = JSON.parse(metadata);
154
+ if (metadataJSON['containerimage.digest']) {
155
+ return metadataJSON['containerimage.digest'];
156
+ }
157
+ return undefined;
158
+ }
159
+ generateBuildSecretString(kvp) {
160
+ return this.generateBuildSecret(kvp, false);
161
+ }
162
+ generateBuildSecretFile(kvp) {
163
+ return this.generateBuildSecret(kvp, true);
164
+ }
165
+ generateBuildSecret(kvp, file) {
166
+ const delimiterIndex = kvp.indexOf('=');
167
+ const key = kvp.substring(0, delimiterIndex);
168
+ let value = kvp.substring(delimiterIndex + 1);
169
+ if (key.length == 0 || value.length == 0) {
170
+ throw new Error(`${kvp} is not a valid secret`);
171
+ }
172
+ if (file) {
173
+ if (!fs_1.default.existsSync(value)) {
174
+ throw new Error(`secret file ${value} not found`);
175
+ }
176
+ value = fs_1.default.readFileSync(value, { encoding: 'utf-8' });
177
+ }
178
+ const secretFile = this.context.tmpName({ tmpdir: this.context.tmpDir() });
179
+ fs_1.default.writeFileSync(secretFile, value);
180
+ return `id=${key},src=${secretFile}`;
181
+ }
182
+ getProvenanceInput(name) {
183
+ const input = core.getInput(name);
184
+ if (!input) {
185
+ // if input is not set returns empty string
186
+ return input;
187
+ }
188
+ const builderID = this.context.provenanceBuilderID;
189
+ try {
190
+ return core.getBooleanInput(name) ? `builder-id=${builderID}` : 'false';
191
+ }
192
+ catch (err) {
193
+ // not a valid boolean, so we assume it's a string
194
+ return this.getProvenanceAttrs(input);
195
+ }
196
+ }
197
+ getProvenanceAttrs(input) {
198
+ if (!input) {
199
+ return `builder-id=${this.context.provenanceBuilderID}`;
200
+ }
201
+ // parse attributes from input
202
+ const fields = (0, sync_1.parse)(input, {
203
+ relaxColumnCount: true,
204
+ skipEmptyLines: true
205
+ })[0];
206
+ // check if builder-id attribute exists in the input
207
+ for (const field of fields) {
208
+ const parts = field
209
+ .toString()
210
+ .split(/(?<=^[^=]+?)=/)
211
+ .map(item => item.trim());
212
+ if (parts[0] == 'builder-id') {
213
+ return input;
214
+ }
215
+ }
216
+ // if not add builder-id attribute
217
+ return `${input},builder-id=${this.context.provenanceBuilderID}`;
218
+ }
219
+ static hasLocalExporter(exporters) {
220
+ return Buildx.hasExporterType('local', exporters);
221
+ }
222
+ static hasTarExporter(exporters) {
223
+ return Buildx.hasExporterType('tar', exporters);
224
+ }
225
+ static hasDockerExporter(exporters, load) {
226
+ return load !== null && load !== void 0 ? load : Buildx.hasExporterType('docker', exporters);
227
+ }
228
+ static hasExporterType(name, exporters) {
229
+ const records = (0, sync_1.parse)(exporters.join(`\n`), {
230
+ delimiter: ',',
231
+ trim: true,
232
+ columns: false,
233
+ relaxColumnCount: true
234
+ });
235
+ for (const record of records) {
236
+ if (record.length == 1 && !record[0].startsWith('type=')) {
237
+ // Local if no type is defined
238
+ // https://github.com/docker/buildx/blob/d2bf42f8b4784d83fde17acb3ed84703ddc2156b/build/output.go#L29-L43
239
+ return name == 'local';
240
+ }
241
+ for (const [key, value] of record.map(chunk => chunk.split('=').map(item => item.trim()))) {
242
+ if (key == 'type' && value == name) {
243
+ return true;
244
+ }
245
+ }
246
+ }
247
+ return false;
248
+ }
249
+ static hasGitAuthTokenSecret(secrets) {
250
+ for (const secret of secrets) {
251
+ if (secret.startsWith('GIT_AUTH_TOKEN=')) {
252
+ return true;
253
+ }
254
+ }
255
+ return false;
256
+ }
257
+ }
258
+ exports.Buildx = Buildx;
259
+ //# sourceMappingURL=buildx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildx.js","sourceRoot":"","sources":["../src/buildx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import * as tmp from 'tmp';
2
+ export declare class Context {
3
+ gitRef: string;
4
+ buildGitContext: string;
5
+ provenanceBuilderID: string;
6
+ private readonly _tmpDir;
7
+ constructor();
8
+ tmpDir(): string;
9
+ tmpName(options?: tmp.TmpNameOptions): string;
10
+ }
package/lib/context.js ADDED
@@ -0,0 +1,57 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.Context = void 0;
30
+ const fs_1 = __importDefault(require("fs"));
31
+ const os_1 = __importDefault(require("os"));
32
+ const path_1 = __importDefault(require("path"));
33
+ const tmp = __importStar(require("tmp"));
34
+ const github = __importStar(require("@actions/github"));
35
+ const github_1 = require("./github");
36
+ class Context {
37
+ constructor() {
38
+ this._tmpDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'docker-actions-toolkit-')).split(path_1.default.sep).join(path_1.default.posix.sep);
39
+ this.gitRef = github.context.ref;
40
+ if (github.context.sha && this.gitRef && !this.gitRef.startsWith('refs/')) {
41
+ this.gitRef = `refs/heads/${github.context.ref}`;
42
+ }
43
+ if (github.context.sha && !this.gitRef.startsWith(`refs/pull/`)) {
44
+ this.gitRef = github.context.sha;
45
+ }
46
+ this.buildGitContext = `${github_1.GitHub.serverURL}/${github.context.repo.owner}/${github.context.repo.repo}.git#${this.gitRef}`;
47
+ this.provenanceBuilderID = `${github_1.GitHub.serverURL}/${github.context.repo.owner}/${github.context.repo.repo}/actions/runs/${github.context.runId}`;
48
+ }
49
+ tmpDir() {
50
+ return this._tmpDir;
51
+ }
52
+ tmpName(options) {
53
+ return tmp.tmpNameSync(options);
54
+ }
55
+ }
56
+ exports.Context = Context;
57
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,4CAAoB;AACpB,gDAAwB;AACxB,yCAA2B;AAC3B,wDAA0C;AAE1C,qCAAgC;AAEhC,MAAa,OAAO;IAOlB;QAFiB,YAAO,GAAG,YAAE,CAAC,WAAW,CAAC,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,cAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAGhI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;QACjC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YACzE,IAAI,CAAC,MAAM,GAAG,cAAc,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;SAClD;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;YAC/D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;SAClC;QACD,IAAI,CAAC,eAAe,GAAG,GAAG,eAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACzH,IAAI,CAAC,mBAAmB,GAAG,GAAG,eAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,iBAAiB,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACjJ,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEM,OAAO,CAAC,OAA4B;QACzC,OAAO,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;CACF;AA1BD,0BA0BC"}
@@ -0,0 +1,5 @@
1
+ export declare class Docker {
2
+ static isAvailable(): boolean;
3
+ static printVersion(standalone?: boolean): Promise<void>;
4
+ static printInfo(standalone?: boolean): Promise<void>;
5
+ }
package/lib/docker.js ADDED
@@ -0,0 +1,83 @@
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
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.Docker = void 0;
36
+ const exec = __importStar(require("@actions/exec"));
37
+ class Docker {
38
+ static isAvailable() {
39
+ let dockerAvailable = false;
40
+ exec
41
+ .getExecOutput('docker', undefined, {
42
+ ignoreReturnCode: true,
43
+ silent: true
44
+ })
45
+ .then(res => {
46
+ if (res.stderr.length > 0 && res.exitCode != 0) {
47
+ dockerAvailable = false;
48
+ }
49
+ else {
50
+ dockerAvailable = res.exitCode == 0;
51
+ }
52
+ })
53
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
54
+ .catch(error => {
55
+ dockerAvailable = false;
56
+ });
57
+ return dockerAvailable;
58
+ }
59
+ static printVersion(standalone) {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ const noDocker = standalone !== null && standalone !== void 0 ? standalone : !Docker.isAvailable();
62
+ if (noDocker) {
63
+ return;
64
+ }
65
+ yield exec.exec('docker', ['version'], {
66
+ failOnStdErr: false
67
+ });
68
+ });
69
+ }
70
+ static printInfo(standalone) {
71
+ return __awaiter(this, void 0, void 0, function* () {
72
+ const noDocker = standalone !== null && standalone !== void 0 ? standalone : !Docker.isAvailable();
73
+ if (noDocker) {
74
+ return;
75
+ }
76
+ yield exec.exec('docker', ['info'], {
77
+ failOnStdErr: false
78
+ });
79
+ });
80
+ }
81
+ }
82
+ exports.Docker = Docker;
83
+ //# sourceMappingURL=docker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker.js","sourceRoot":"","sources":["../src/docker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAsC;AAEtC,MAAa,MAAM;IACV,MAAM,CAAC,WAAW;QACvB,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI;aACD,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE;YAClC,gBAAgB,EAAE,IAAI;YACtB,MAAM,EAAE,IAAI;SACb,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,EAAE;YACV,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE;gBAC9C,eAAe,GAAG,KAAK,CAAC;aACzB;iBAAM;gBACL,eAAe,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;aACrC;QACH,CAAC,CAAC;YACF,6DAA6D;aAC5D,KAAK,CAAC,KAAK,CAAC,EAAE;YACb,eAAe,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC,CAAC;QACL,OAAO,eAAe,CAAC;IACzB,CAAC;IAEM,MAAM,CAAO,YAAY,CAAC,UAAoB;;YACnD,MAAM,QAAQ,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACrD,IAAI,QAAQ,EAAE;gBACZ,OAAO;aACR;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE;gBACrC,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;QACL,CAAC;KAAA;IAEM,MAAM,CAAO,SAAS,CAAC,UAAoB;;YAChD,MAAM,QAAQ,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACrD,IAAI,QAAQ,EAAE;gBACZ,OAAO;aACR;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;gBAClC,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;QACL,CAAC;KAAA;CACF;AAzCD,wBAyCC"}
package/lib/git.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export declare class Git {
2
+ static getRemoteSha(repo: string, ref: string): Promise<string>;
3
+ }
package/lib/git.js ADDED
@@ -0,0 +1,59 @@
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
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.Git = void 0;
36
+ const exec = __importStar(require("@actions/exec"));
37
+ class Git {
38
+ static getRemoteSha(repo, ref) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ return yield exec
41
+ .getExecOutput(`git`, ['ls-remote', repo, ref], {
42
+ ignoreReturnCode: true,
43
+ silent: true
44
+ })
45
+ .then(res => {
46
+ if (res.stderr.length > 0 && res.exitCode != 0) {
47
+ throw new Error(res.stderr);
48
+ }
49
+ const [rsha] = res.stdout.trim().split(/[\s\t]/);
50
+ if (rsha.length == 0) {
51
+ throw new Error(`Cannot find remote ref for ${repo}#${ref}`);
52
+ }
53
+ return rsha;
54
+ });
55
+ });
56
+ }
57
+ }
58
+ exports.Git = Git;
59
+ //# sourceMappingURL=git.js.map
package/lib/git.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAsC;AAEtC,MAAa,GAAG;IACP,MAAM,CAAO,YAAY,CAAC,IAAY,EAAE,GAAW;;YACxD,OAAO,MAAM,IAAI;iBACd,aAAa,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;gBAC9C,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,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;iBAC7B;gBACD,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACjD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;oBACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;iBAC9D;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;CACF;AAlBD,kBAkBC"}
@@ -0,0 +1,20 @@
1
+ import { GitHub as Octokit } from '@actions/github/lib/utils';
2
+ import { components as OctoOpenApiTypes } from '@octokit/openapi-types';
3
+ import { JwtPayload } from 'jwt-decode';
4
+ import { Context } from '@actions/github/lib/context';
5
+ export type GitHubRepo = OctoOpenApiTypes['schemas']['repository'];
6
+ export interface GitHubActionsRuntimeToken extends JwtPayload {
7
+ ac?: string;
8
+ }
9
+ export interface GitHubOpts {
10
+ token?: string;
11
+ }
12
+ export declare class GitHub {
13
+ static readonly serverURL: string;
14
+ readonly octokit: InstanceType<typeof Octokit>;
15
+ constructor(opts?: GitHubOpts);
16
+ get context(): Context;
17
+ get serverURL(): string;
18
+ get actionsRuntimeToken(): GitHubActionsRuntimeToken;
19
+ repoData(): Promise<GitHubRepo>;
20
+ }
package/lib/github.js ADDED
@@ -0,0 +1,52 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.GitHub = void 0;
30
+ const github = __importStar(require("@actions/github"));
31
+ const jwt_decode_1 = __importDefault(require("jwt-decode"));
32
+ class GitHub {
33
+ constructor(opts) {
34
+ this.octokit = github.getOctokit(`${opts === null || opts === void 0 ? void 0 : opts.token}`);
35
+ }
36
+ get context() {
37
+ return github.context;
38
+ }
39
+ get serverURL() {
40
+ return process.env.GITHUB_SERVER_URL || 'https://github.com';
41
+ }
42
+ get actionsRuntimeToken() {
43
+ const token = process.env['ACTIONS_RUNTIME_TOKEN'] || '';
44
+ return token ? (0, jwt_decode_1.default)(token) : {};
45
+ }
46
+ repoData() {
47
+ return this.octokit.rest.repos.get(Object.assign({}, github.context.repo)).then(response => response.data);
48
+ }
49
+ }
50
+ exports.GitHub = GitHub;
51
+ GitHub.serverURL = process.env.GITHUB_SERVER_URL || 'https://github.com';
52
+ //# sourceMappingURL=github.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wDAA0C;AAE1C,4DAAkD;AAalD,MAAa,MAAM;IAIjB,YAAY,IAAiB;QAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,oBAAoB,CAAC;IAC/D,CAAC;IAED,IAAI,mBAAmB;QACrB,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,EAAE,CAAC;IACnE,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;;AAvBH,wBAwBC;AAvBwB,gBAAS,GAAW,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,oBAAoB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { Context } from './context';
2
+ import { Buildx } from './buildx';
3
+ import { BuildKit } from './buildkit';
4
+ import { GitHub } from './github';
5
+ export { Builder, BuilderOpts, BuilderInfo, NodeInfo } from './builder';
6
+ export { BuildKit, BuildKitOpts } from './buildkit';
7
+ export { Buildx, BuildxOpts } from './buildx';
8
+ export { Context } from './context';
9
+ export { Docker } from './docker';
10
+ export { Git } from './git';
11
+ export { GitHub, GitHubRepo, GitHubActionsRuntimeToken } from './github';
12
+ export { Util } from './util';
13
+ export interface ToolkitOpts {
14
+ /**
15
+ * GitHub token to use for authentication.
16
+ * Uses `process.env.GITHUB_TOKEN` by default.
17
+ */
18
+ githubToken?: string;
19
+ }
20
+ export declare class Toolkit {
21
+ context: Context;
22
+ github: GitHub;
23
+ buildx: Buildx;
24
+ buildkit: BuildKit;
25
+ constructor(opts?: ToolkitOpts);
26
+ }
package/lib/toolkit.js ADDED
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Toolkit = exports.Util = exports.GitHub = exports.Git = exports.Docker = exports.Context = exports.Buildx = exports.BuildKit = exports.Builder = void 0;
4
+ const context_1 = require("./context");
5
+ const buildx_1 = require("./buildx");
6
+ const buildkit_1 = require("./buildkit");
7
+ const github_1 = require("./github");
8
+ var builder_1 = require("./builder");
9
+ Object.defineProperty(exports, "Builder", { enumerable: true, get: function () { return builder_1.Builder; } });
10
+ var buildkit_2 = require("./buildkit");
11
+ Object.defineProperty(exports, "BuildKit", { enumerable: true, get: function () { return buildkit_2.BuildKit; } });
12
+ var buildx_2 = require("./buildx");
13
+ Object.defineProperty(exports, "Buildx", { enumerable: true, get: function () { return buildx_2.Buildx; } });
14
+ var context_2 = require("./context");
15
+ Object.defineProperty(exports, "Context", { enumerable: true, get: function () { return context_2.Context; } });
16
+ var docker_1 = require("./docker");
17
+ Object.defineProperty(exports, "Docker", { enumerable: true, get: function () { return docker_1.Docker; } });
18
+ var git_1 = require("./git");
19
+ Object.defineProperty(exports, "Git", { enumerable: true, get: function () { return git_1.Git; } });
20
+ var github_2 = require("./github");
21
+ Object.defineProperty(exports, "GitHub", { enumerable: true, get: function () { return github_2.GitHub; } });
22
+ var util_1 = require("./util");
23
+ Object.defineProperty(exports, "Util", { enumerable: true, get: function () { return util_1.Util; } });
24
+ class Toolkit {
25
+ constructor(opts = {}) {
26
+ this.context = new context_1.Context();
27
+ this.github = new github_1.GitHub({ token: opts.githubToken });
28
+ this.buildx = new buildx_1.Buildx({ context: this.context });
29
+ this.buildkit = new buildkit_1.BuildKit({ context: this.context, buildx: this.buildx });
30
+ }
31
+ }
32
+ exports.Toolkit = Toolkit;
33
+ //# sourceMappingURL=toolkit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolkit.js","sourceRoot":"","sources":["../src/toolkit.ts"],"names":[],"mappings":";;;AAAA,uCAAkC;AAClC,qCAAgC;AAChC,yCAAoC;AACpC,qCAAgC;AAEhC,qCAAsE;AAA9D,kGAAA,OAAO,OAAA;AACf,uCAAkD;AAA1C,oGAAA,QAAQ,OAAA;AAChB,mCAA4C;AAApC,gGAAA,MAAM,OAAA;AACd,qCAAkC;AAA1B,kGAAA,OAAO,OAAA;AACf,mCAAgC;AAAxB,gGAAA,MAAM,OAAA;AACd,6BAA0B;AAAlB,0FAAA,GAAG,OAAA;AACX,mCAAuE;AAA/D,gGAAA,MAAM,OAAA;AACd,+BAA4B;AAApB,4FAAA,IAAI,OAAA;AAUZ,MAAa,OAAO;IAMlB,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,QAAQ,GAAG,IAAI,mBAAQ,CAAC,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAC;IAC7E,CAAC;CACF;AAZD,0BAYC"}
package/lib/util.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ export declare class Util {
2
+ static getInputList(name: string, ignoreComma?: boolean): string[];
3
+ static asyncForEach(array: any, callback: any): Promise<void>;
4
+ static isValidUrl(url: string): boolean;
5
+ }