@docker/actions-toolkit 0.49.0 → 0.51.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.
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import { Buildx } from './buildx';
17
17
  import { ExecOptions } from '@actions/exec';
18
- import { BakeDefinition } from '../types/buildx/bake';
18
+ import { BakeDefinition, ExportEntry } from '../types/buildx/bake';
19
19
  import { BuildMetadata } from '../types/buildx/build';
20
20
  import { VertexWarning } from '../types/buildkit/client';
21
21
  export interface BakeOpts {
@@ -45,8 +45,15 @@ export declare class Bake {
45
45
  resolveWarnings(metadata?: BuildMetadata): Array<VertexWarning> | undefined;
46
46
  getDefinition(cmdOpts: BakeCmdOpts, execOptions?: ExecOptions): Promise<BakeDefinition>;
47
47
  static parseDefinition(dt: string): BakeDefinition;
48
+ private static parseAttestEntry;
49
+ private static parseCacheEntry;
50
+ private static parseExportEntry;
51
+ private static parseSecretEntry;
52
+ private static parseSSHEntry;
48
53
  static hasLocalExporter(def: BakeDefinition): boolean;
49
54
  static hasTarExporter(def: BakeDefinition): boolean;
50
55
  static hasDockerExporter(def: BakeDefinition, load?: boolean): boolean;
56
+ static hasExporterType(name: string, exporters: Array<ExportEntry>): boolean;
51
57
  private static exporters;
58
+ static hasGitAuthTokenSecret(def: BakeDefinition): boolean;
52
59
  }
@@ -30,7 +30,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
30
30
  exports.Bake = void 0;
31
31
  const fs_1 = __importDefault(require("fs"));
32
32
  const path_1 = __importDefault(require("path"));
33
- const build_1 = require("./build");
33
+ const sync_1 = require("csv-parse/sync");
34
34
  const buildx_1 = require("./buildx");
35
35
  const context_1 = require("../context");
36
36
  const exec_1 = require("../exec");
@@ -154,27 +154,221 @@ class Bake {
154
154
  });
155
155
  }
156
156
  static parseDefinition(dt) {
157
- return JSON.parse(dt);
157
+ const definition = JSON.parse(dt);
158
+ // convert to composable attributes: https://github.com/docker/buildx/pull/2758
159
+ for (const name in definition.target) {
160
+ const target = definition.target[name];
161
+ if (target['attest'] && Array.isArray(target['attest'])) {
162
+ target['attest'] = target['attest'].map((item) => {
163
+ return Bake.parseAttestEntry(item);
164
+ });
165
+ }
166
+ if (target['cache-from'] && Array.isArray(target['cache-from'])) {
167
+ target['cache-from'] = target['cache-from'].map((item) => {
168
+ return Bake.parseCacheEntry(item);
169
+ });
170
+ }
171
+ if (target['cache-to'] && Array.isArray(target['cache-to'])) {
172
+ target['cache-to'] = target['cache-to'].map((item) => {
173
+ return Bake.parseCacheEntry(item);
174
+ });
175
+ }
176
+ if (target['output'] && Array.isArray(target['output'])) {
177
+ target['output'] = target['output'].map((item) => {
178
+ return Bake.parseExportEntry(item);
179
+ });
180
+ }
181
+ if (target['secret'] && Array.isArray(target['secret'])) {
182
+ target['secret'] = target['secret'].map((item) => {
183
+ return Bake.parseSecretEntry(item);
184
+ });
185
+ }
186
+ if (target['ssh'] && Array.isArray(target['ssh'])) {
187
+ target['ssh'] = target['ssh'].map((item) => {
188
+ return Bake.parseSSHEntry(item);
189
+ });
190
+ }
191
+ }
192
+ return definition;
193
+ }
194
+ static parseAttestEntry(item) {
195
+ if (typeof item !== 'string') {
196
+ return item;
197
+ }
198
+ const attestEntry = { type: '' };
199
+ const fields = (0, sync_1.parse)(item, {
200
+ relaxColumnCount: true,
201
+ skipEmptyLines: true
202
+ })[0];
203
+ for (const field of fields) {
204
+ const [key, value] = field
205
+ .toString()
206
+ .split(/(?<=^[^=]+?)=/)
207
+ .map((item) => item.trim());
208
+ switch (key) {
209
+ case 'type':
210
+ attestEntry.type = value;
211
+ break;
212
+ default:
213
+ attestEntry[key] = value;
214
+ }
215
+ }
216
+ return attestEntry;
217
+ }
218
+ static parseCacheEntry(item) {
219
+ if (typeof item !== 'string') {
220
+ return item;
221
+ }
222
+ const cacheEntry = { type: '' };
223
+ const fields = (0, sync_1.parse)(item, {
224
+ relaxColumnCount: true,
225
+ skipEmptyLines: true
226
+ })[0];
227
+ if (fields.length === 1 && !fields[0].includes('=')) {
228
+ cacheEntry.type = 'registry';
229
+ cacheEntry.ref = fields[0];
230
+ return cacheEntry;
231
+ }
232
+ for (const field of fields) {
233
+ const [key, value] = field
234
+ .toString()
235
+ .split(/(?<=^[^=]+?)=/)
236
+ .map((item) => item.trim());
237
+ switch (key) {
238
+ case 'type':
239
+ cacheEntry.type = value;
240
+ break;
241
+ default:
242
+ cacheEntry[key] = value;
243
+ }
244
+ }
245
+ return cacheEntry;
246
+ }
247
+ static parseExportEntry(item) {
248
+ if (typeof item !== 'string') {
249
+ return item;
250
+ }
251
+ const exportEntry = { type: '' };
252
+ const fields = (0, sync_1.parse)(item, {
253
+ relaxColumnCount: true,
254
+ skipEmptyLines: true
255
+ })[0];
256
+ if (fields.length === 1 && fields[0] === item && !item.startsWith('type=')) {
257
+ if (item !== '-') {
258
+ exportEntry.type = 'local';
259
+ exportEntry.dest = item;
260
+ return exportEntry;
261
+ }
262
+ exportEntry.type = 'tar';
263
+ exportEntry.dest = item;
264
+ return exportEntry;
265
+ }
266
+ for (const field of fields) {
267
+ const [key, value] = field
268
+ .toString()
269
+ .split(/(?<=^[^=]+?)=/)
270
+ .map((item) => item.trim());
271
+ switch (key) {
272
+ case 'type':
273
+ exportEntry.type = value;
274
+ break;
275
+ default:
276
+ exportEntry[key] = value;
277
+ }
278
+ }
279
+ return exportEntry;
280
+ }
281
+ static parseSecretEntry(item) {
282
+ if (typeof item !== 'string') {
283
+ return item;
284
+ }
285
+ const secretEntry = {};
286
+ const fields = (0, sync_1.parse)(item, {
287
+ relaxColumnCount: true,
288
+ skipEmptyLines: true
289
+ })[0];
290
+ let typ = '';
291
+ for (const field of fields) {
292
+ const [key, value] = field
293
+ .toString()
294
+ .split(/(?<=^[^=]+?)=/)
295
+ .map((item) => item.trim());
296
+ switch (key) {
297
+ case 'type':
298
+ typ = value;
299
+ break;
300
+ case 'id':
301
+ secretEntry.id = value;
302
+ break;
303
+ case 'source':
304
+ case 'src':
305
+ secretEntry.src = value;
306
+ break;
307
+ case 'env':
308
+ secretEntry.env = value;
309
+ break;
310
+ }
311
+ }
312
+ if (typ === 'env' && !secretEntry.env) {
313
+ secretEntry.env = secretEntry.src;
314
+ secretEntry.src = undefined;
315
+ }
316
+ return secretEntry;
317
+ }
318
+ static parseSSHEntry(item) {
319
+ if (typeof item !== 'string') {
320
+ return item;
321
+ }
322
+ const sshEntry = {};
323
+ const [key, value] = item.split('=', 2);
324
+ sshEntry.id = key;
325
+ if (value) {
326
+ sshEntry.paths = value.split(',');
327
+ }
328
+ return sshEntry;
158
329
  }
159
330
  static hasLocalExporter(def) {
160
- return build_1.Build.hasExporterType('local', Bake.exporters(def));
331
+ return Bake.hasExporterType('local', Bake.exporters(def));
161
332
  }
162
333
  static hasTarExporter(def) {
163
- return build_1.Build.hasExporterType('tar', Bake.exporters(def));
334
+ return Bake.hasExporterType('tar', Bake.exporters(def));
164
335
  }
165
336
  static hasDockerExporter(def, load) {
166
- return load || build_1.Build.hasExporterType('docker', Bake.exporters(def));
337
+ return load || Bake.hasExporterType('docker', Bake.exporters(def));
338
+ }
339
+ static hasExporterType(name, exporters) {
340
+ for (const exporter of exporters) {
341
+ if (exporter.type == name) {
342
+ return true;
343
+ }
344
+ }
345
+ return false;
167
346
  }
168
347
  static exporters(def) {
169
348
  const exporters = new Array();
170
349
  for (const key in def.target) {
171
350
  const target = def.target[key];
172
351
  if (target.output) {
173
- exporters.push(...target.output);
352
+ for (const output of target.output) {
353
+ exporters.push(Bake.parseExportEntry(output));
354
+ }
174
355
  }
175
356
  }
176
357
  return exporters;
177
358
  }
359
+ static hasGitAuthTokenSecret(def) {
360
+ for (const key in def.target) {
361
+ const target = def.target[key];
362
+ if (target.secret) {
363
+ for (const secret of target.secret) {
364
+ if (Bake.parseSecretEntry(secret).id === 'GIT_AUTH_TOKEN') {
365
+ return true;
366
+ }
367
+ }
368
+ }
369
+ }
370
+ return false;
371
+ }
178
372
  }
179
373
  exports.Bake = Bake;
180
374
  //# sourceMappingURL=bake.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bake.js","sourceRoot":"","sources":["../../src/buildx/bake.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bake.js","sourceRoot":"","sources":["../../src/buildx/bake.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;AAEH,4CAAoB;AACpB,gDAAwB;AACxB,yCAAqC;AAErC,qCAAgC;AAChC,wCAAmC;AACnC,kCAA6B;AAC7B,kCAA6B;AA2B7B,MAAa,IAAI;IAIf,YAAY,IAAe;QACzB,IAAI,CAAC,MAAM,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,KAAI,IAAI,eAAM,EAAE,CAAC;QAC3C,IAAI,CAAC,gBAAgB,GAAG,iBAAiB,WAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC;IAC9E,CAAC;IAEM,mBAAmB;QACxB,OAAO,cAAI,CAAC,IAAI,CAAC,iBAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5D,CAAC;IAEM,eAAe;QACpB,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAChD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,YAAY,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1E,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAsB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAEM,WAAW,CAAC,QAAwB;QACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,KAAK,EAAU,CAAC;QACjC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,kBAAkB,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5C,CAAC;IAEM,eAAe,CAAC,QAAwB;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,IAAI,uBAAuB,IAAI,QAAQ,EAAE,CAAC;YACxC,OAAO,QAAQ,CAAC,uBAAuB,CAAyB,CAAC;QACnE,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEY,aAAa,CAAC,OAAoB,EAAE,WAAyB;;YACxE,WAAW,GAAG,WAAW,IAAI,EAAC,gBAAgB,EAAE,IAAI,EAAC,CAAC;YACtD,WAAW,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACpC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxB,WAAW,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE;oBAC/C,0BAA0B,EAAE,OAAO,CAAC,WAAW;iBAChD,CAEA,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;YAEtB,IAAI,SAA6B,CAAC;YAClC,MAAM,KAAK,GAAkB,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAC3D,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBAC3D,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBACvB,SAAS;oBACX,CAAC;oBACD,IAAI,CAAC,WAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC7B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACnB,SAAS;oBACX,CAAC;oBACD,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;oBACpE,CAAC;oBACD,SAAS,GAAG,MAAM,CAAC;gBACrB,CAAC;YACH,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;oBACzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBAClC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtB,CAAC;YACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YAChD,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtB,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAChG,OAAO,MAAM,WAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;;gBACvF,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;oBAC/C,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAA,MAAA,MAAA,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,0CAAG,CAAC,CAAC,0CAAE,IAAI,EAAE,mCAAI,eAAe,EAAE,CAAC,CAAC;gBACpH,CAAC;gBACD,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAEM,MAAM,CAAC,eAAe,CAAC,EAAU;QACtC,MAAM,UAAU,GAAmB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAElD,+EAA+E;QAC/E,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACxD,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAA0B,EAAe,EAAE;oBAClF,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;gBAChE,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,IAAyB,EAAc,EAAE;oBACxF,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBAC5D,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,IAAyB,EAAc,EAAE;oBACpF,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACxD,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAA0B,EAAe,EAAE;oBAClF,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACxD,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAA0B,EAAe,EAAE;oBAClF,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAClD,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAuB,EAAY,EAAE;oBACtE,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAClC,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,IAA0B;QACxD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAgB,EAAC,IAAI,EAAE,EAAE,EAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAA,YAAK,EAAC,IAAI,EAAE;YACzB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC,CAAC,CAAC,CAAC;QAEN,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK;iBACvB,QAAQ,EAAE;iBACV,KAAK,CAAC,eAAe,CAAC;iBACtB,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACtC,QAAQ,GAAG,EAAE,CAAC;gBACZ,KAAK,MAAM;oBACT,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC;oBACzB,MAAM;gBACR;oBACE,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,IAAyB;QACtD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAe,EAAC,IAAI,EAAE,EAAE,EAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAA,YAAK,EAAC,IAAI,EAAE;YACzB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC,CAAC,CAAC,CAAC;QAEN,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACpD,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC;YAC7B,UAAU,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK;iBACvB,QAAQ,EAAE;iBACV,KAAK,CAAC,eAAe,CAAC;iBACtB,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACtC,QAAQ,GAAG,EAAE,CAAC;gBACZ,KAAK,MAAM;oBACT,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC;oBACxB,MAAM;gBACR;oBACE,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,IAA0B;QACxD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAgB,EAAC,IAAI,EAAE,EAAE,EAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAA,YAAK,EAAC,IAAI,EAAE;YACzB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC,CAAC,CAAC,CAAC;QAEN,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3E,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjB,WAAW,CAAC,IAAI,GAAG,OAAO,CAAC;gBAC3B,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;gBACxB,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC;YACzB,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;YACxB,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK;iBACvB,QAAQ,EAAE;iBACV,KAAK,CAAC,eAAe,CAAC;iBACtB,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACtC,QAAQ,GAAG,EAAE,CAAC;gBACZ,KAAK,MAAM;oBACT,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC;oBACzB,MAAM;gBACR;oBACE,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,IAA0B;QACxD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAgB,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAA,YAAK,EAAC,IAAI,EAAE;YACzB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC,CAAC,CAAC,CAAC;QAEN,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK;iBACvB,QAAQ,EAAE;iBACV,KAAK,CAAC,eAAe,CAAC;iBACtB,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACtC,QAAQ,GAAG,EAAE,CAAC;gBACZ,KAAK,MAAM;oBACT,GAAG,GAAG,KAAK,CAAC;oBACZ,MAAM;gBACR,KAAK,IAAI;oBACP,WAAW,CAAC,EAAE,GAAG,KAAK,CAAC;oBACvB,MAAM;gBACR,KAAK,QAAQ,CAAC;gBACd,KAAK,KAAK;oBACR,WAAW,CAAC,GAAG,GAAG,KAAK,CAAC;oBACxB,MAAM;gBACR,KAAK,KAAK;oBACR,WAAW,CAAC,GAAG,GAAG,KAAK,CAAC;oBACxB,MAAM;YACV,CAAC;QACH,CAAC;QACD,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;YACtC,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;YAClC,WAAW,CAAC,GAAG,GAAG,SAAS,CAAC;QAC9B,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,IAAuB;QAClD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACxC,QAAQ,CAAC,EAAE,GAAG,GAAG,CAAC;QAClB,IAAI,KAAK,EAAE,CAAC;YACV,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,GAAmB;QAChD,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,GAAmB;QAC9C,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,GAAmB,EAAE,IAAc;QACjE,OAAO,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,IAAY,EAAE,SAA6B;QACvE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,GAAmB;QAC1C,MAAM,SAAS,GAAG,IAAI,KAAK,EAAe,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBACnC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,GAAmB;QACrD,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBACnC,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,gBAAgB,EAAE,CAAC;wBAC1D,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AArXD,oBAqXC"}
package/lib/context.d.ts CHANGED
@@ -20,6 +20,6 @@ export declare class Context {
20
20
  static tmpDir(): string;
21
21
  static tmpName(options?: tmp.TmpNameOptions): string;
22
22
  static gitRef(): string;
23
+ static parseGitRef(ref: string, sha: string): string;
23
24
  static gitContext(): string;
24
- static provenanceBuilderID(): string;
25
25
  }
package/lib/context.js CHANGED
@@ -60,24 +60,24 @@ class Context {
60
60
  return tmp.tmpNameSync(options);
61
61
  }
62
62
  static gitRef() {
63
- let gitRef = github.context.ref;
64
- if (github.context.sha && gitRef && !gitRef.startsWith('refs/')) {
65
- gitRef = `refs/heads/${github.context.ref}`;
63
+ return Context.parseGitRef(github.context.ref, github.context.sha);
64
+ }
65
+ static parseGitRef(ref, sha) {
66
+ const setPullRequestHeadRef = !!(process.env.DOCKER_DEFAULT_GIT_CONTEXT_PR_HEAD_REF && process.env.DOCKER_DEFAULT_GIT_CONTEXT_PR_HEAD_REF === 'true');
67
+ if (sha && ref && !ref.startsWith('refs/')) {
68
+ ref = `refs/heads/${ref}`;
66
69
  }
67
- if (github.context.sha && !gitRef.startsWith(`refs/pull/`)) {
68
- gitRef = github.context.sha;
70
+ if (sha && !ref.startsWith(`refs/pull/`)) {
71
+ ref = sha;
69
72
  }
70
- else if (gitRef.startsWith(`refs/pull/`)) {
71
- gitRef = gitRef.replace(/\/merge$/g, '/head');
73
+ else if (ref.startsWith(`refs/pull/`) && setPullRequestHeadRef) {
74
+ ref = ref.replace(/\/merge$/g, '/head');
72
75
  }
73
- return gitRef;
76
+ return ref;
74
77
  }
75
78
  static gitContext() {
76
79
  return `${github_1.GitHub.serverURL}/${github.context.repo.owner}/${github.context.repo.repo}.git#${Context.gitRef()}`;
77
80
  }
78
- static provenanceBuilderID() {
79
- return `${github_1.GitHub.serverURL}/${github.context.repo.owner}/${github.context.repo.repo}/actions/runs/${github.context.runId}`;
80
- }
81
81
  }
82
82
  exports.Context = Context;
83
83
  Context._tmpDir = fs_1.default.mkdtempSync(path_1.default.join(Context.ensureDirExists(process.env.RUNNER_TEMP || os_1.default.tmpdir()), 'docker-actions-toolkit-'));
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,4CAAoB;AACpB,4CAAoB;AACpB,gDAAwB;AACxB,yCAA2B;AAC3B,wDAA0C;AAE1C,qCAAgC;AAEhC,MAAa,OAAO;IAGV,MAAM,CAAC,eAAe,CAAC,GAAW;QACxC,YAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;QACrC,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,MAAM,CAAC,MAAM;QAClB,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,OAA4B;QAChD,OAAO,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAEM,MAAM,CAAC,MAAM;QAClB,IAAI,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;QAChC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAChE,MAAM,GAAG,cAAc,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAC9C,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;QAC9B,CAAC;aAAM,IAAI,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,UAAU;QACtB,OAAO,GAAG,eAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAChH,CAAC;IAEM,MAAM,CAAC,mBAAmB;QAC/B,OAAO,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;IAC7H,CAAC;;AAnCH,0BAoCC;AAnCyB,eAAO,GAAG,YAAE,CAAC,WAAW,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,YAAE,CAAC,MAAM,EAAE,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,4CAAoB;AACpB,4CAAoB;AACpB,gDAAwB;AACxB,yCAA2B;AAC3B,wDAA0C;AAE1C,qCAAgC;AAEhC,MAAa,OAAO;IAGV,MAAM,CAAC,eAAe,CAAC,GAAW;QACxC,YAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;QACrC,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,MAAM,CAAC,MAAM;QAClB,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,OAA4B;QAChD,OAAO,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAEM,MAAM,CAAC,MAAM;QAClB,OAAO,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,GAAW,EAAE,GAAW;QAChD,MAAM,qBAAqB,GAAY,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,sCAAsC,IAAI,OAAO,CAAC,GAAG,CAAC,sCAAsC,KAAK,MAAM,CAAC,CAAC;QAC/J,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,GAAG,GAAG,cAAc,GAAG,EAAE,CAAC;QAC5B,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACzC,GAAG,GAAG,GAAG,CAAC;QACZ,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,qBAAqB,EAAE,CAAC;YACjE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,MAAM,CAAC,UAAU;QACtB,OAAO,GAAG,eAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAChH,CAAC;;AAnCH,0BAoCC;AAnCyB,eAAO,GAAG,YAAE,CAAC,WAAW,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,YAAE,CAAC,MAAM,EAAE,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC"}
@@ -24,9 +24,9 @@ export interface Group {
24
24
  export interface Target {
25
25
  description?: string;
26
26
  args?: Record<string, string>;
27
- attest?: Array<string>;
28
- 'cache-from'?: Array<string>;
29
- 'cache-to'?: Array<string>;
27
+ attest?: Array<AttestEntry> | Array<string>;
28
+ 'cache-from'?: Array<CacheEntry> | Array<string>;
29
+ 'cache-to'?: Array<CacheEntry> | Array<string>;
30
30
  call?: string;
31
31
  context: string;
32
32
  contexts?: Record<string, string>;
@@ -36,13 +36,34 @@ export interface Target {
36
36
  labels?: Record<string, string>;
37
37
  'no-cache'?: boolean;
38
38
  'no-cache-filter'?: Array<string>;
39
- output?: Array<string>;
39
+ output?: Array<ExportEntry> | Array<string>;
40
40
  platforms?: Array<string>;
41
41
  pull?: boolean;
42
- secret?: Array<string>;
42
+ secret?: Array<SecretEntry> | Array<string>;
43
43
  'shm-size'?: string;
44
- ssh?: Array<string>;
44
+ ssh?: Array<SSHEntry> | Array<string>;
45
45
  tags?: Array<string>;
46
46
  target?: string;
47
47
  ulimits?: Array<string>;
48
48
  }
49
+ export interface AttestEntry {
50
+ type: string;
51
+ [key: string]: string;
52
+ }
53
+ export interface CacheEntry {
54
+ type: string;
55
+ [key: string]: string;
56
+ }
57
+ export interface ExportEntry {
58
+ type: string;
59
+ [key: string]: string;
60
+ }
61
+ export interface SecretEntry {
62
+ id?: string;
63
+ src?: string;
64
+ env?: string;
65
+ }
66
+ export interface SSHEntry {
67
+ id?: string;
68
+ paths?: Array<string>;
69
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docker/actions-toolkit",
3
- "version": "0.49.0",
3
+ "version": "0.51.0",
4
4
  "description": "Toolkit for Docker (GitHub) Actions",
5
5
  "scripts": {
6
6
  "build": "tsc",
@@ -45,7 +45,7 @@
45
45
  "registry": "https://registry.npmjs.org/"
46
46
  },
47
47
  "dependencies": {
48
- "@actions/artifact": "^2.1.11",
48
+ "@actions/artifact": "^2.2.1",
49
49
  "@actions/cache": "^3.3.0",
50
50
  "@actions/core": "^1.11.1",
51
51
  "@actions/exec": "^1.1.1",