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