@hed-hog/cli 0.0.66 → 0.0.67

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/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hed-hog/cli",
3
- "version": "0.0.66",
3
+ "version": "0.0.67",
4
4
  "description": "HedHog CLI tool",
5
5
  "author": "HedHog",
6
6
  "private": false,
@@ -278,6 +278,7 @@ jobs:
278
278
  run: |
279
279
  set -eu
280
280
  REGISTRY_NAME="${REGISTRY##*/}"
281
+ DIGEST_REGEX='^sha256:[a-f0-9]{64}$'
281
282
 
282
283
  cleanup_repository() {
283
284
  REPOSITORY="$1"
@@ -291,14 +292,31 @@ jobs:
291
292
  return 0
292
293
  fi
293
294
 
294
- CURRENT_DIGEST="$(printf '%s\n' "${TAG_ROWS}" | awk -v target="${{ github.sha }}" '$1 == target { print $2; exit }')"
295
+ CURRENT_DIGEST="$(printf '%s\n' "${TAG_ROWS}" | awk -v target="${{ github.sha }}" -v regex="${DIGEST_REGEX}" '
296
+ $1 == target {
297
+ for (i = 1; i <= NF; i++) {
298
+ if ($i ~ regex) {
299
+ print $i;
300
+ exit;
301
+ }
302
+ }
303
+ }
304
+ ')"
295
305
 
296
306
  if [ -z "${CURRENT_DIGEST}" ]; then
297
307
  echo "::error::Unable to determine current manifest digest for ${REPOSITORY}:${{ github.sha }}"
298
308
  exit 1
299
309
  fi
300
310
 
301
- OLD_DIGESTS="$(printf '%s\n' "${TAG_ROWS}" | awk -v keep="${CURRENT_DIGEST}" 'NF >= 2 && $2 != keep { print $2 }' | sort -u)"
311
+ OLD_DIGESTS="$(printf '%s\n' "${TAG_ROWS}" | awk -v keep="${CURRENT_DIGEST}" -v regex="${DIGEST_REGEX}" '
312
+ {
313
+ for (i = 1; i <= NF; i++) {
314
+ if ($i ~ regex && $i != keep) {
315
+ print $i;
316
+ }
317
+ }
318
+ }
319
+ ' | sort -u)"
302
320
 
303
321
  if [ -z "${OLD_DIGESTS}" ]; then
304
322
  echo "No old manifests to delete for ${REPOSITORY}."
@@ -312,6 +330,11 @@ jobs:
312
330
  if [ -z "${DIGEST}" ]; then
313
331
  continue
314
332
  fi
333
+
334
+ if ! printf '%s\n' "${DIGEST}" | grep -Eq "${DIGEST_REGEX}"; then
335
+ echo "Skipping invalid digest candidate: ${DIGEST}"
336
+ continue
337
+ fi
315
338
 
316
339
  doctl registry repository delete-manifest "${REPOSITORY}" "${DIGEST}" --registry "${REGISTRY_NAME}" --force
317
340
  done
@@ -454,6 +477,7 @@ jobs:
454
477
  set -eu
455
478
  REGISTRY_NAME="${REGISTRY##*/}"
456
479
  REPOSITORY="<%= config.appName %>-admin"
480
+ DIGEST_REGEX='^sha256:[a-f0-9]{64}$'
457
481
 
458
482
  echo "Inspecting repository ${REPOSITORY} in registry ${REGISTRY_NAME}"
459
483
 
@@ -464,14 +488,31 @@ jobs:
464
488
  exit 0
465
489
  fi
466
490
 
467
- CURRENT_DIGEST="$(printf '%s\n' "${TAG_ROWS}" | awk -v target="${{ github.sha }}" '$1 == target { print $2; exit }')"
491
+ CURRENT_DIGEST="$(printf '%s\n' "${TAG_ROWS}" | awk -v target="${{ github.sha }}" -v regex="${DIGEST_REGEX}" '
492
+ $1 == target {
493
+ for (i = 1; i <= NF; i++) {
494
+ if ($i ~ regex) {
495
+ print $i;
496
+ exit;
497
+ }
498
+ }
499
+ }
500
+ ')"
468
501
 
469
502
  if [ -z "${CURRENT_DIGEST}" ]; then
470
503
  echo "::error::Unable to determine current manifest digest for ${REPOSITORY}:${{ github.sha }}"
471
504
  exit 1
472
505
  fi
473
506
 
474
- OLD_DIGESTS="$(printf '%s\n' "${TAG_ROWS}" | awk -v keep="${CURRENT_DIGEST}" 'NF >= 2 && $2 != keep { print $2 }' | sort -u)"
507
+ OLD_DIGESTS="$(printf '%s\n' "${TAG_ROWS}" | awk -v keep="${CURRENT_DIGEST}" -v regex="${DIGEST_REGEX}" '
508
+ {
509
+ for (i = 1; i <= NF; i++) {
510
+ if ($i ~ regex && $i != keep) {
511
+ print $i;
512
+ }
513
+ }
514
+ }
515
+ ' | sort -u)"
475
516
 
476
517
  if [ -z "${OLD_DIGESTS}" ]; then
477
518
  echo "No old manifests to delete for ${REPOSITORY}."
@@ -485,6 +526,11 @@ jobs:
485
526
  if [ -z "${DIGEST}" ]; then
486
527
  continue
487
528
  fi
529
+
530
+ if ! printf '%s\n' "${DIGEST}" | grep -Eq "${DIGEST_REGEX}"; then
531
+ echo "Skipping invalid digest candidate: ${DIGEST}"
532
+ continue
533
+ fi
488
534
 
489
535
  doctl registry repository delete-manifest "${REPOSITORY}" "${DIGEST}" --registry "${REGISTRY_NAME}" --force
490
536
  done