From 85be57f6feccdb9ba9a3c2d1d1df8101fa3d70d8 Mon Sep 17 00:00:00 2001 From: Sebastian Poxhofer <secustor@users.noreply.github.com> Date: Wed, 30 Sep 2020 10:02:02 +0200 Subject: [PATCH] feat(terraform): add releaseTimestamp to latest release (#7381) Co-authored-by: Michael Kriese <michael.kriese@visualon.de> --- .../terraform-module/__snapshots__/index.spec.ts.snap | 3 +++ lib/datasource/terraform-module/index.ts | 9 +++++++++ .../terraform-provider/__snapshots__/index.spec.ts.snap | 2 ++ lib/datasource/terraform-provider/index.ts | 9 +++++++++ 4 files changed, 23 insertions(+) diff --git a/lib/datasource/terraform-module/__snapshots__/index.spec.ts.snap b/lib/datasource/terraform-module/__snapshots__/index.spec.ts.snap index 03209036e8..e507610b57 100644 --- a/lib/datasource/terraform-module/__snapshots__/index.spec.ts.snap +++ b/lib/datasource/terraform-module/__snapshots__/index.spec.ts.snap @@ -72,6 +72,7 @@ Object { "version": "0.3.10", }, Object { + "releaseTimestamp": "2018-09-20T11:25:22.957584Z", "version": "0.4.0", }, ], @@ -201,6 +202,7 @@ Object { "version": "0.3.10", }, Object { + "releaseTimestamp": "2018-09-20T11:25:22.957584Z", "version": "0.4.0", }, ], @@ -281,6 +283,7 @@ Object { "version": "0.3.10", }, Object { + "releaseTimestamp": "2018-09-20T11:25:22.957584Z", "version": "0.4.0", }, ], diff --git a/lib/datasource/terraform-module/index.ts b/lib/datasource/terraform-module/index.ts index d096500a60..2ea7e3d3c0 100644 --- a/lib/datasource/terraform-module/index.ts +++ b/lib/datasource/terraform-module/index.ts @@ -43,6 +43,8 @@ interface TerraformRelease { provider: string; source?: string; versions: string[]; + version: string; + published_at: string; } export interface ServiceDiscoveryResult { @@ -132,6 +134,13 @@ export async function getReleases({ if (pkgUrl.startsWith('https://registry.terraform.io/')) { dep.homepage = `https://registry.terraform.io/modules/${repository}`; } + // set published date for latest release + const currentVersion = dep.releases.find((release) => { + return res.version === release.version; + }); + if (currentVersion) { + currentVersion.releaseTimestamp = res.published_at; + } logger.trace({ dep }, 'dep'); const cacheMinutes = 30; await packageCache.set(cacheNamespace, pkgUrl, dep, cacheMinutes); diff --git a/lib/datasource/terraform-provider/__snapshots__/index.spec.ts.snap b/lib/datasource/terraform-provider/__snapshots__/index.spec.ts.snap index 80bcd42a8b..ca752f7061 100644 --- a/lib/datasource/terraform-provider/__snapshots__/index.spec.ts.snap +++ b/lib/datasource/terraform-provider/__snapshots__/index.spec.ts.snap @@ -252,6 +252,7 @@ Object { "version": "1.36.1", }, Object { + "releaseTimestamp": "2019-11-26T08:22:56Z", "version": "1.37.0", }, ], @@ -483,6 +484,7 @@ Object { "version": "1.36.1", }, Object { + "releaseTimestamp": "2019-11-26T08:22:56Z", "version": "1.37.0", }, ], diff --git a/lib/datasource/terraform-provider/index.ts b/lib/datasource/terraform-provider/index.ts index 0016d9b8c0..26fc1aa7ba 100644 --- a/lib/datasource/terraform-provider/index.ts +++ b/lib/datasource/terraform-provider/index.ts @@ -20,6 +20,8 @@ interface TerraformProvider { provider: string; source?: string; versions: string[]; + version: string; + published_at: string; } interface TerraformProviderReleaseBackend { @@ -54,6 +56,13 @@ async function queryRegistry( dep.releases = res.versions.map((version) => ({ version, })); + // set published date for latest release + const currentVersion = dep.releases.find((release) => { + return res.version === release.version; + }); + if (currentVersion) { + currentVersion.releaseTimestamp = res.published_at; + } dep.homepage = `${registryURL}/providers/${repository}`; logger.trace({ dep }, 'dep'); return dep; -- GitLab