diff --git a/lib/datasource/jenkins-plugins/get.ts b/lib/datasource/jenkins-plugins/get.ts index fcc6e403f67be8aa5336ac67491cc66eace7eaec..3ebe7c804ed5c02bbacbc082ee503fa8457abe10 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<JenkinsCacheTypes>): 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 3e0eac3410fb03c95a048716323ecc7a80d8ace0..3d043e1e34f0f3acaaec5435c7986059c8a83326 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<void> { } function isDataStale(): boolean { - const minutesElapsed = Math.floor( - (new Date().getTime() - lastSync.getTime()) / (60 * 1000) - ); - return minutesElapsed >= 5; + return getElapsedMinutes(lastSync) >= 5; } let updateRubyGemsVersionsPromise: Promise<void> | undefined; diff --git a/lib/util/date.ts b/lib/util/date.ts new file mode 100644 index 0000000000000000000000000000000000000000..93d4f46f00a4af6b538b043d850491a94577acc3 --- /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 7dc8f17ad8e1dc8c675639c88ab2d8e69a0bd5c9..9a8eadd8747f6d5295af0ab74cf8befdfb71dd98 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