diff --git a/lib/datasource/jenkins-plugins/get.ts b/lib/datasource/jenkins-plugins/get.ts index fcc6e403f67be8..3ebe7c804ed5c0 100644 --- a/lib/datasource/jenkins-plugins/get.ts +++ b/lib/datasource/jenkins-plugins/get.ts @@ -1,6 +1,7 @@ import { logger } from '../../logger'; import { ExternalHostError } from '../../types/errors/external-host-error'; import { clone } from '../../util/clone'; +import { getElapsedMinutes } from '../../util/date'; import { Http } from '../../util/http'; import type { GetReleasesConfig, Release, ReleaseResult } from '../types'; import { id } from './common'; @@ -43,10 +44,7 @@ interface JenkinsPluginsVersionsResponse { } function hasCacheExpired(cache: JenkinsCache): boolean { - const minutesElapsed = Math.floor( - (new Date().getTime() - cache.lastSync.getTime()) / (60 * 1000) - ); - return minutesElapsed >= cache.cacheTimeMin; + return getElapsedMinutes(cache.lastSync) >= cache.cacheTimeMin; } async function updateJenkinsCache( diff --git a/lib/datasource/rubygems/get-rubygems-org.ts b/lib/datasource/rubygems/get-rubygems-org.ts index 3e0eac3410fb03..3d043e1e34f0f3 100644 --- a/lib/datasource/rubygems/get-rubygems-org.ts +++ b/lib/datasource/rubygems/get-rubygems-org.ts @@ -1,5 +1,6 @@ import { logger } from '../../logger'; import { ExternalHostError } from '../../types/errors/external-host-error'; +import { getElapsedMinutes } from '../../util/date'; import { Http } from '../../util/http'; import type { ReleaseResult } from '../types'; import { id } from './common'; @@ -88,10 +89,7 @@ async function updateRubyGemsVersions(): Promise { } function isDataStale(): boolean { - const minutesElapsed = Math.floor( - (new Date().getTime() - lastSync.getTime()) / (60 * 1000) - ); - return minutesElapsed >= 5; + return getElapsedMinutes(lastSync) >= 5; } let updateRubyGemsVersionsPromise: Promise | undefined; diff --git a/lib/util/date.ts b/lib/util/date.ts new file mode 100644 index 00000000000000..93d4f46f00a4af --- /dev/null +++ b/lib/util/date.ts @@ -0,0 +1,12 @@ +const ONE_MINUTE_MS = 60 * 1000; +const ONE_DAY_MS = 24 * 60 * ONE_MINUTE_MS; + +export function getElapsedDays(timestamp: string): number { + return Math.floor( + (new Date().getTime() - new Date(timestamp).getTime()) / ONE_DAY_MS + ); +} + +export function getElapsedMinutes(date: Date): number { + return Math.floor((new Date().getTime() - date.getTime()) / ONE_MINUTE_MS); +} diff --git a/lib/workers/branch/index.ts b/lib/workers/branch/index.ts index 7dc8f17ad8e1dc..9a8eadd8747f6d 100644 --- a/lib/workers/branch/index.ts +++ b/lib/workers/branch/index.ts @@ -18,6 +18,7 @@ import { getAdditionalFiles } from '../../manager/npm/post-update'; import { Pr, platform } from '../../platform'; import { BranchStatus, PrState } from '../../types'; import { ExternalHostError } from '../../types/errors/external-host-error'; +import { getElapsedDays } from '../../util/date'; import { emojify } from '../../util/emoji'; import { checkoutBranch, @@ -213,14 +214,9 @@ export async function processBranch( // both a stabilityDays setting and a releaseTimestamp config.stabilityStatus = BranchStatus.green; // Default to 'success' but set 'pending' if any update is pending - const oneDay = 24 * 60 * 60 * 1000; for (const upgrade of config.upgrades) { if (upgrade.stabilityDays && upgrade.releaseTimestamp) { - const daysElapsed = Math.floor( - (new Date().getTime() - - new Date(upgrade.releaseTimestamp).getTime()) / - oneDay - ); + const daysElapsed = getElapsedDays(upgrade.releaseTimestamp); if ( !dependencyDashboardCheck && daysElapsed < upgrade.stabilityDays