From fb0dad1e425738564d59ffa3fe2a43622eeaad1b Mon Sep 17 00:00:00 2001
From: Michael Kriese <michael.kriese@visualon.de>
Date: Thu, 14 Jul 2022 21:27:31 +0200
Subject: [PATCH] refactor(datasource/docker): types cleanup (#16578)

---
 lib/modules/datasource/docker/index.ts |  3 +--
 lib/modules/datasource/docker/types.ts | 17 +++++++++++++++--
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/lib/modules/datasource/docker/index.ts b/lib/modules/datasource/docker/index.ts
index 6c539394ad..c7f7828315 100644
--- a/lib/modules/datasource/docker/index.ts
+++ b/lib/modules/datasource/docker/index.ts
@@ -515,8 +515,7 @@ export class DockerDatasource extends Datasource {
       manifest.mediaType === MediaType.ociManifestIndexV1 ||
       (!manifest.mediaType && hasKey('manifests', manifest))
     ) {
-      const imageList = manifest;
-      if (imageList.manifests.length) {
+      if (manifest.manifests.length) {
         logger.trace(
           { registry, dockerRepository, tag },
           'Found manifest index, using first image'
diff --git a/lib/modules/datasource/docker/types.ts b/lib/modules/datasource/docker/types.ts
index a3e1350a42..4e390ea27e 100644
--- a/lib/modules/datasource/docker/types.ts
+++ b/lib/modules/datasource/docker/types.ts
@@ -24,7 +24,7 @@ export interface MediaObject {
 export interface ImageListImage extends MediaObject {
   readonly mediaType: MediaType.manifestV1 | MediaType.manifestV2;
 
-  readonly platform: Record<string, unknown>;
+  readonly platform: OciPlatform;
 }
 
 /**
@@ -48,6 +48,19 @@ export interface Image extends MediaObject {
   readonly config: MediaObject;
 }
 
+/**
+ * OCI platform properties
+ * https://github.com/opencontainers/image-spec/blob/main/image-index.md
+ */
+export interface OciPlatform {
+  architecture?: string;
+  features?: string[];
+  os?: string;
+  'os.features'?: string[];
+  'os.version'?: string;
+  variant?: string;
+}
+
 /**
  * OCI content descriptor
  * https://github.com/opencontainers/image-spec/blob/main/descriptor.md
@@ -75,7 +88,7 @@ export interface OciImage {
 
 export interface OciImageListManifest extends OciDescriptor {
   readonly mediaType?: MediaType.ociManifestV1 | MediaType.ociManifestIndexV1;
-  readonly platform: Record<string, unknown>;
+  readonly platform: OciPlatform;
 }
 
 /**
-- 
GitLab