renovate 42.66.10 → 42.66.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,6 +10,17 @@ const memCache = tslib_1.__importStar(require("../../../util/cache/memory"));
10
10
  const repository_1 = require("../../../util/cache/repository");
11
11
  const url_1 = require("../../../util/url");
12
12
  const utils_1 = require("./utils");
13
+ /* v8 ignore next */
14
+ function migrateBitbucketServerCache(platform) {
15
+ if (!(0, is_1.isPlainObject)(platform)) {
16
+ return;
17
+ }
18
+ if (!(0, is_1.isPlainObject)(platform.bitbucketServer)) {
19
+ return;
20
+ }
21
+ platform['bitbucket-server'] = platform.bitbucketServer;
22
+ delete platform.bitbucketServer;
23
+ }
13
24
  class BbsPrCache {
14
25
  projectKey;
15
26
  repo;
@@ -24,8 +35,9 @@ class BbsPrCache {
24
35
  this.author = author;
25
36
  const repoCache = (0, repository_1.getCache)();
26
37
  repoCache.platform ??= {};
27
- repoCache.platform.bitbucketServer ??= {};
28
- let pullRequestCache = repoCache.platform.bitbucketServer
38
+ migrateBitbucketServerCache(repoCache.platform);
39
+ repoCache.platform['bitbucket-server'] ??= {};
40
+ let pullRequestCache = repoCache.platform['bitbucket-server']
29
41
  .pullRequestsCache;
30
42
  if ((0, is_1.isNullOrUndefined)(pullRequestCache) ||
31
43
  pullRequestCache.author !== author) {
@@ -35,7 +47,7 @@ class BbsPrCache {
35
47
  author,
36
48
  };
37
49
  }
38
- repoCache.platform.bitbucketServer.pullRequestsCache = pullRequestCache;
50
+ repoCache.platform['bitbucket-server'].pullRequestsCache = pullRequestCache;
39
51
  this.cache = pullRequestCache;
40
52
  this.updateItems();
41
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pr-cache.js","sourceRoot":"","sources":["../../../../lib/modules/platform/bitbucket-server/pr-cache.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNullOrUndefined, isString } from '@sindresorhus/is';\nimport { dequal } from 'dequal';\nimport { DateTime } from 'luxon';\nimport { logger } from '../../../logger';\nimport * as memCache from '../../../util/cache/memory';\nimport { getCache } from '../../../util/cache/repository';\nimport type { BitbucketServerHttp } from '../../../util/http/bitbucket-server';\nimport { getQueryString } from '../../../util/url';\nimport type { BbsPr, BbsPrCacheData, BbsRestPr } from './types';\nimport { prInfo } from './utils';\n\nexport class BbsPrCache {\n private cache: BbsPrCacheData;\n private items: BbsPr[] = [];\n\n private constructor(\n private projectKey: string,\n private repo: string,\n private readonly ignorePrAuthor: boolean,\n private author: string | null,\n ) {\n const repoCache = getCache();\n repoCache.platform ??= {};\n repoCache.platform.bitbucketServer ??= {};\n let pullRequestCache = repoCache.platform.bitbucketServer\n .pullRequestsCache as BbsPrCacheData;\n if (\n isNullOrUndefined(pullRequestCache) ||\n pullRequestCache.author !== author\n ) {\n pullRequestCache = {\n items: {},\n updatedDate: null,\n author,\n };\n }\n repoCache.platform.bitbucketServer.pullRequestsCache = pullRequestCache;\n this.cache = pullRequestCache;\n this.updateItems();\n }\n\n private static async init(\n http: BitbucketServerHttp,\n projectKey: string,\n repo: string,\n ignorePrAuthor: boolean,\n author: string | null,\n ): Promise<BbsPrCache> {\n const res = new BbsPrCache(projectKey, repo, ignorePrAuthor, author);\n const isSynced = memCache.get<true | undefined>('bbs-pr-cache-synced');\n\n if (!isSynced) {\n await res.sync(http);\n memCache.set('bbs-pr-cache-synced', true);\n }\n\n return res;\n }\n\n private getPrs(): BbsPr[] {\n return this.items;\n }\n\n static async getPrs(\n http: BitbucketServerHttp,\n projectKey: string,\n repo: string,\n ignorePrAuthor: boolean,\n author: string,\n ): Promise<BbsPr[]> {\n const prCache = await BbsPrCache.init(\n http,\n projectKey,\n repo,\n ignorePrAuthor,\n author,\n );\n return prCache.getPrs();\n }\n\n private setPr(item: BbsPr): void {\n this.cache.items[item.number] = item;\n this.updateItems();\n }\n\n static async setPr(\n http: BitbucketServerHttp,\n projectKey: string,\n repo: string,\n ignorePrAuthor: boolean,\n author: string,\n item: BbsPr,\n ): Promise<void> {\n const prCache = await BbsPrCache.init(\n http,\n projectKey,\n repo,\n ignorePrAuthor,\n author,\n );\n prCache.setPr(item);\n }\n\n private reconcile(rawItems: BbsRestPr[]): boolean {\n logger.debug('reconciled');\n const { items } = this.cache;\n let { updatedDate } = this.cache;\n const cacheTime = updatedDate ? DateTime.fromMillis(updatedDate) : null;\n\n let needNextPage = true;\n\n for (const rawItem of rawItems) {\n const id = rawItem.id;\n\n const newItem = prInfo(rawItem);\n\n const oldItem = items[id];\n if (dequal(oldItem, newItem)) {\n needNextPage = false;\n continue;\n }\n\n items[id] = newItem;\n\n const itemTime = DateTime.fromMillis(rawItem.updatedDate);\n if (!cacheTime || itemTime > cacheTime) {\n updatedDate = rawItem.updatedDate;\n }\n }\n\n this.cache.updatedDate = updatedDate;\n\n return needNextPage;\n }\n\n private async sync(http: BitbucketServerHttp): Promise<BbsPrCache> {\n const searchParams: Record<string, string> = {\n state: 'ALL',\n limit: this.items.length ? '20' : '100',\n };\n if (!this.ignorePrAuthor && isString(this.author)) {\n searchParams['role.1'] = 'AUTHOR';\n searchParams['username.1'] = this.author;\n }\n let query: string | null = getQueryString(searchParams);\n\n while (query) {\n const res = await http.getJsonUnchecked<{\n nextPageStart: string;\n values: BbsRestPr[];\n }>(\n `./rest/api/1.0/projects/${this.projectKey}/repos/${this.repo}/pull-requests?${query}`,\n {\n memCache: false,\n },\n );\n\n const needNextPage = this.reconcile(res.body.values);\n if (!needNextPage) {\n break;\n }\n\n if (res.body.nextPageStart) {\n searchParams.start = res.body.nextPageStart.toString();\n } else {\n query = null;\n }\n }\n\n this.updateItems();\n\n return this;\n }\n\n /**\n * Ensure the pr cache starts with the most recent PRs.\n * JavaScript ensures that the cache is sorted by PR number.\n */\n private updateItems(): void {\n this.items = Object.values(this.cache.items).reverse();\n }\n}\n"]}
1
+ {"version":3,"file":"pr-cache.js","sourceRoot":"","sources":["../../../../lib/modules/platform/bitbucket-server/pr-cache.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNullOrUndefined, isPlainObject, isString } from '@sindresorhus/is';\nimport { dequal } from 'dequal';\nimport { DateTime } from 'luxon';\nimport { logger } from '../../../logger';\nimport * as memCache from '../../../util/cache/memory';\nimport { getCache } from '../../../util/cache/repository';\nimport type { BitbucketServerHttp } from '../../../util/http/bitbucket-server';\nimport { getQueryString } from '../../../util/url';\nimport type { BbsPr, BbsPrCacheData, BbsRestPr } from './types';\nimport { prInfo } from './utils';\n\n/* v8 ignore next */\nfunction migrateBitbucketServerCache(platform: unknown): void {\n if (!isPlainObject(platform)) {\n return;\n }\n\n if (!isPlainObject(platform.bitbucketServer)) {\n return;\n }\n\n platform['bitbucket-server'] = platform.bitbucketServer;\n delete platform.bitbucketServer;\n}\n\nexport class BbsPrCache {\n private cache: BbsPrCacheData;\n private items: BbsPr[] = [];\n\n private constructor(\n private projectKey: string,\n private repo: string,\n private readonly ignorePrAuthor: boolean,\n private author: string | null,\n ) {\n const repoCache = getCache();\n repoCache.platform ??= {};\n migrateBitbucketServerCache(repoCache.platform);\n repoCache.platform['bitbucket-server'] ??= {};\n let pullRequestCache = repoCache.platform['bitbucket-server']\n .pullRequestsCache as BbsPrCacheData;\n if (\n isNullOrUndefined(pullRequestCache) ||\n pullRequestCache.author !== author\n ) {\n pullRequestCache = {\n items: {},\n updatedDate: null,\n author,\n };\n }\n repoCache.platform['bitbucket-server'].pullRequestsCache = pullRequestCache;\n this.cache = pullRequestCache;\n this.updateItems();\n }\n\n private static async init(\n http: BitbucketServerHttp,\n projectKey: string,\n repo: string,\n ignorePrAuthor: boolean,\n author: string | null,\n ): Promise<BbsPrCache> {\n const res = new BbsPrCache(projectKey, repo, ignorePrAuthor, author);\n const isSynced = memCache.get<true | undefined>('bbs-pr-cache-synced');\n\n if (!isSynced) {\n await res.sync(http);\n memCache.set('bbs-pr-cache-synced', true);\n }\n\n return res;\n }\n\n private getPrs(): BbsPr[] {\n return this.items;\n }\n\n static async getPrs(\n http: BitbucketServerHttp,\n projectKey: string,\n repo: string,\n ignorePrAuthor: boolean,\n author: string,\n ): Promise<BbsPr[]> {\n const prCache = await BbsPrCache.init(\n http,\n projectKey,\n repo,\n ignorePrAuthor,\n author,\n );\n return prCache.getPrs();\n }\n\n private setPr(item: BbsPr): void {\n this.cache.items[item.number] = item;\n this.updateItems();\n }\n\n static async setPr(\n http: BitbucketServerHttp,\n projectKey: string,\n repo: string,\n ignorePrAuthor: boolean,\n author: string,\n item: BbsPr,\n ): Promise<void> {\n const prCache = await BbsPrCache.init(\n http,\n projectKey,\n repo,\n ignorePrAuthor,\n author,\n );\n prCache.setPr(item);\n }\n\n private reconcile(rawItems: BbsRestPr[]): boolean {\n logger.debug('reconciled');\n const { items } = this.cache;\n let { updatedDate } = this.cache;\n const cacheTime = updatedDate ? DateTime.fromMillis(updatedDate) : null;\n\n let needNextPage = true;\n\n for (const rawItem of rawItems) {\n const id = rawItem.id;\n\n const newItem = prInfo(rawItem);\n\n const oldItem = items[id];\n if (dequal(oldItem, newItem)) {\n needNextPage = false;\n continue;\n }\n\n items[id] = newItem;\n\n const itemTime = DateTime.fromMillis(rawItem.updatedDate);\n if (!cacheTime || itemTime > cacheTime) {\n updatedDate = rawItem.updatedDate;\n }\n }\n\n this.cache.updatedDate = updatedDate;\n\n return needNextPage;\n }\n\n private async sync(http: BitbucketServerHttp): Promise<BbsPrCache> {\n const searchParams: Record<string, string> = {\n state: 'ALL',\n limit: this.items.length ? '20' : '100',\n };\n if (!this.ignorePrAuthor && isString(this.author)) {\n searchParams['role.1'] = 'AUTHOR';\n searchParams['username.1'] = this.author;\n }\n let query: string | null = getQueryString(searchParams);\n\n while (query) {\n const res = await http.getJsonUnchecked<{\n nextPageStart: string;\n values: BbsRestPr[];\n }>(\n `./rest/api/1.0/projects/${this.projectKey}/repos/${this.repo}/pull-requests?${query}`,\n {\n memCache: false,\n },\n );\n\n const needNextPage = this.reconcile(res.body.values);\n if (!needNextPage) {\n break;\n }\n\n if (res.body.nextPageStart) {\n searchParams.start = res.body.nextPageStart.toString();\n } else {\n query = null;\n }\n }\n\n this.updateItems();\n\n return this;\n }\n\n /**\n * Ensure the pr cache starts with the most recent PRs.\n * JavaScript ensures that the cache is sorted by PR number.\n */\n private updateItems(): void {\n this.items = Object.values(this.cache.items).reverse();\n }\n}\n"]}
@@ -144,7 +144,7 @@ export interface RepoCacheData {
144
144
  gitlab?: {
145
145
  pullRequestsCache?: unknown;
146
146
  };
147
- bitbucketServer?: {
147
+ 'bitbucket-server'?: {
148
148
  pullRequestsCache?: unknown;
149
149
  };
150
150
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/util/cache/repository/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n RepositoryCacheConfig,\n RepositoryCacheType,\n UpdateType,\n} from '../../../config/types';\nimport type { PackageFile } from '../../../modules/manager/types';\nimport type { RepoInitConfig } from '../../../workers/repository/init/types';\nimport type { ExtractResult } from '../../../workers/repository/process/extract-update';\nimport type { PrBlockedBy } from '../../../workers/types';\n\nexport interface BaseBranchCache {\n revision?: number;\n sha: string; // branch commit sha\n configHash: string; // object hash of config\n extractionFingerprints: Record<string, string | undefined>; // matching manager fingerprints\n packageFiles: Record<string, PackageFile[]>; // extract result\n}\n\nexport interface BranchUpgradeCache {\n currentDigest?: string;\n currentValue?: string;\n datasource?: string;\n depName?: string;\n depType?: string;\n displayPending?: unknown;\n fixedVersion?: string;\n currentVersion?: string;\n packageName?: string;\n newDigest?: string;\n newValue?: string;\n newVersion?: string;\n sourceUrl?: string;\n packageFile?: string;\n remediationNotPossible?: unknown;\n updateType?: UpdateType;\n}\n\nexport interface OnboardingBranchCache {\n defaultBranchSha: string;\n onboardingBranchSha: string;\n isConflicted: boolean;\n isModified: boolean;\n configFileName?: string;\n configFileParsed?: string;\n}\n\nexport interface ReconfigureBranchCache {\n reconfigureBranchSha: string;\n isConfigValid: boolean;\n extractResult?: ExtractResult;\n}\n\nexport interface PrCache {\n /**\n * Fingerprint of the PR body\n */\n fingerprint?: string; // Defunct\n bodyFingerprint: string; // Actively used\n /**\n * last PR modified ISO timestamp\n */\n lastEdited: string;\n}\n\nexport interface BranchCache {\n /**\n * Whether this branch has automerge enabled\n */\n automerge?: boolean;\n /**\n * Name of base branch\n */\n baseBranch?: string;\n /**\n * The base branch's most recent commit SHA\n */\n baseBranchSha?: string | null;\n /**\n * Hash of the manager fingerprints and the filtered update branch config\n */\n branchFingerprint?: string; // Defunct\n commitFingerprint?: string; // Actively used\n /**\n * Branch name\n */\n branchName: string;\n /**\n * Whether the update branch is behind base branch\n */\n isBehindBase?: boolean;\n /**\n * Whether the update branch is in conflict with base branch\n */\n isConflicted?: boolean;\n /**\n * Whether a person not listed in gitIgnoredAuthors updated the branch.\n */\n isModified?: boolean;\n /**\n *\n */\n pristine?: boolean;\n /**\n * Pr number of PR created from this branch\n */\n prNo: number | null;\n /**\n * The branch's most recent commit SHA\n */\n sha?: string | null;\n /**\n * Details on the dependency upgrades that have been applied in this branch\n */\n upgrades: BranchUpgradeCache[];\n /**\n * Object that has PR info\n */\n prCache?: PrCache | null;\n\n /**\n * Dependency dashboard information\n */\n prBlockedBy?: PrBlockedBy;\n prTitle?: string;\n result?: string;\n}\n\nexport interface RepoCacheData {\n configFileName?: string;\n httpCache?: Record<string, unknown>;\n httpCacheHead?: Record<string, unknown>;\n semanticCommits?: 'enabled' | 'disabled';\n branches?: BranchCache[];\n init?: RepoInitConfig;\n scan?: Record<string, BaseBranchCache>;\n lastPlatformAutomergeFailure?: string;\n platform?: {\n forgejo?: {\n pullRequestsCache?: unknown;\n orgs?: Record<string, boolean>;\n };\n gitea?: {\n pullRequestsCache?: unknown;\n };\n github?: {\n /**\n * To avoid circular dependency problem, we use `unknown` type here.\n */\n pullRequestsCache?: unknown;\n graphqlPageCache?: unknown;\n issuesCache?: Record<number, unknown>;\n };\n bitbucket?: {\n pullRequestsCache?: unknown;\n };\n gitlab?: {\n pullRequestsCache?: unknown;\n };\n bitbucketServer?: {\n pullRequestsCache?: unknown;\n };\n };\n prComments?: Record<number, Record<string, string>>;\n onboardingBranchCache?: OnboardingBranchCache;\n reconfigureBranchCache?: ReconfigureBranchCache;\n}\n\nexport interface RepoCache {\n load(): Promise<void>;\n save(): Promise<void>;\n getData(): RepoCacheData;\n isModified(): boolean | undefined;\n}\n\nexport interface RepoCacheConfig {\n repository?: string;\n repositoryCache?: RepositoryCacheConfig;\n repositoryCacheType?: RepositoryCacheType;\n repoFingerprint: string;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/util/cache/repository/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n RepositoryCacheConfig,\n RepositoryCacheType,\n UpdateType,\n} from '../../../config/types';\nimport type { PackageFile } from '../../../modules/manager/types';\nimport type { RepoInitConfig } from '../../../workers/repository/init/types';\nimport type { ExtractResult } from '../../../workers/repository/process/extract-update';\nimport type { PrBlockedBy } from '../../../workers/types';\n\nexport interface BaseBranchCache {\n revision?: number;\n sha: string; // branch commit sha\n configHash: string; // object hash of config\n extractionFingerprints: Record<string, string | undefined>; // matching manager fingerprints\n packageFiles: Record<string, PackageFile[]>; // extract result\n}\n\nexport interface BranchUpgradeCache {\n currentDigest?: string;\n currentValue?: string;\n datasource?: string;\n depName?: string;\n depType?: string;\n displayPending?: unknown;\n fixedVersion?: string;\n currentVersion?: string;\n packageName?: string;\n newDigest?: string;\n newValue?: string;\n newVersion?: string;\n sourceUrl?: string;\n packageFile?: string;\n remediationNotPossible?: unknown;\n updateType?: UpdateType;\n}\n\nexport interface OnboardingBranchCache {\n defaultBranchSha: string;\n onboardingBranchSha: string;\n isConflicted: boolean;\n isModified: boolean;\n configFileName?: string;\n configFileParsed?: string;\n}\n\nexport interface ReconfigureBranchCache {\n reconfigureBranchSha: string;\n isConfigValid: boolean;\n extractResult?: ExtractResult;\n}\n\nexport interface PrCache {\n /**\n * Fingerprint of the PR body\n */\n fingerprint?: string; // Defunct\n bodyFingerprint: string; // Actively used\n /**\n * last PR modified ISO timestamp\n */\n lastEdited: string;\n}\n\nexport interface BranchCache {\n /**\n * Whether this branch has automerge enabled\n */\n automerge?: boolean;\n /**\n * Name of base branch\n */\n baseBranch?: string;\n /**\n * The base branch's most recent commit SHA\n */\n baseBranchSha?: string | null;\n /**\n * Hash of the manager fingerprints and the filtered update branch config\n */\n branchFingerprint?: string; // Defunct\n commitFingerprint?: string; // Actively used\n /**\n * Branch name\n */\n branchName: string;\n /**\n * Whether the update branch is behind base branch\n */\n isBehindBase?: boolean;\n /**\n * Whether the update branch is in conflict with base branch\n */\n isConflicted?: boolean;\n /**\n * Whether a person not listed in gitIgnoredAuthors updated the branch.\n */\n isModified?: boolean;\n /**\n *\n */\n pristine?: boolean;\n /**\n * Pr number of PR created from this branch\n */\n prNo: number | null;\n /**\n * The branch's most recent commit SHA\n */\n sha?: string | null;\n /**\n * Details on the dependency upgrades that have been applied in this branch\n */\n upgrades: BranchUpgradeCache[];\n /**\n * Object that has PR info\n */\n prCache?: PrCache | null;\n\n /**\n * Dependency dashboard information\n */\n prBlockedBy?: PrBlockedBy;\n prTitle?: string;\n result?: string;\n}\n\nexport interface RepoCacheData {\n configFileName?: string;\n httpCache?: Record<string, unknown>;\n httpCacheHead?: Record<string, unknown>;\n semanticCommits?: 'enabled' | 'disabled';\n branches?: BranchCache[];\n init?: RepoInitConfig;\n scan?: Record<string, BaseBranchCache>;\n lastPlatformAutomergeFailure?: string;\n platform?: {\n forgejo?: {\n pullRequestsCache?: unknown;\n orgs?: Record<string, boolean>;\n };\n gitea?: {\n pullRequestsCache?: unknown;\n };\n github?: {\n /**\n * To avoid circular dependency problem, we use `unknown` type here.\n */\n pullRequestsCache?: unknown;\n graphqlPageCache?: unknown;\n issuesCache?: Record<number, unknown>;\n };\n bitbucket?: {\n pullRequestsCache?: unknown;\n };\n gitlab?: {\n pullRequestsCache?: unknown;\n };\n 'bitbucket-server'?: {\n pullRequestsCache?: unknown;\n };\n };\n prComments?: Record<number, Record<string, string>>;\n onboardingBranchCache?: OnboardingBranchCache;\n reconfigureBranchCache?: ReconfigureBranchCache;\n}\n\nexport interface RepoCache {\n load(): Promise<void>;\n save(): Promise<void>;\n getData(): RepoCacheData;\n isModified(): boolean | undefined;\n}\n\nexport interface RepoCacheConfig {\n repository?: string;\n repositoryCache?: RepositoryCacheConfig;\n repositoryCacheType?: RepositoryCacheType;\n repoFingerprint: string;\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "renovate",
3
3
  "description": "Automated dependency updates. Flexible so you don't need to be.",
4
- "version": "42.66.10",
4
+ "version": "42.66.11",
5
5
  "type": "commonjs",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -1,7 +1,7 @@
1
1
  {
2
- "title": "JSON schema for Renovate 42.66.10 config files (https://renovatebot.com/)",
2
+ "title": "JSON schema for Renovate 42.66.11 config files (https://renovatebot.com/)",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
- "x-renovate-version": "42.66.10",
4
+ "x-renovate-version": "42.66.11",
5
5
  "allowComments": true,
6
6
  "type": "object",
7
7
  "properties": {