renovate 42.58.1 → 42.58.3

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.
@@ -20,6 +20,10 @@ function applyAuthorization(inOptions) {
20
20
  options.headers.authorization = `${authType} ${options.token}`;
21
21
  }
22
22
  }
23
+ else if (options.hostType &&
24
+ constants_1.FORGEJO_API_USING_HOST_TYPES.includes(options.hostType)) {
25
+ options.headers.authorization = `Bearer ${options.token}`;
26
+ }
23
27
  else if (options.hostType &&
24
28
  constants_1.GITEA_API_USING_HOST_TYPES.includes(options.hostType)) {
25
29
  // Gitea v1.8.0 and later support `Bearer` as alternate to `token`
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../lib/util/http/auth.ts"],"names":[],"mappings":";;AAoBA,gDAiEC;AAgBD,kDAsBC;AA3HD,yCAA8D;AAE9D,+CAIyB;AAczB,SAAgB,kBAAkB,CAChC,SAAqB;IAErB,MAAM,OAAO,GAAe,EAAE,GAAG,SAAS,EAAE,CAAC;IAE7C,IAAI,IAAA,qBAAgB,EAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACvE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,OAAO,KAAK,EAAE,CAAC;IACvB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC3C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;gBAC9B,OAAO,CAAC,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,OAAO,CAAC,aAAa,GAAG,GAAG,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACjE,CAAC;QACH,CAAC;aAAM,IACL,OAAO,CAAC,QAAQ;YAChB,sCAA0B,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EACrD,CAAC;YACD,kEAAkE;YAClE,8CAA8C;YAC9C,OAAO,CAAC,OAAO,CAAC,aAAa,GAAG,UAAU,OAAO,CAAC,KAAK,EAAE,CAAC;QAC5D,CAAC;aAAM,IACL,OAAO,CAAC,QAAQ;YAChB,uCAA2B,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EACtD,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,aAAa,GAAG,SAAS,OAAO,CAAC,KAAK,EAAE,CAAC;YACzD,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;gBAC9D,OAAO,CAAC,OAAO,CAAC,aAAa,GAAG,SAAS,QAAQ,EAAE,CAAC;gBACpD,IAAI,IAAA,aAAQ,EAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBACrC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CACrD,gCAAgC,EAChC,iDAAiD,CAClD,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IACL,OAAO,CAAC,QAAQ;YAChB,uCAA2B,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EACtD,CAAC;YACD,qEAAqE;YACrE,wDAAwD;YACxD,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;gBAChC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,OAAO,CAAC,aAAa,GAAG,UAAU,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,CAAC,aAAa,GAAG,UAAU,OAAO,CAAC,KAAK,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAC;IACvB,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC1C,iEAAiE;QACjE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CACtB,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAChD,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrB,OAAO,CAAC,OAAO,CAAC,aAAa,GAAG,SAAS,IAAI,EAAE,CAAC;QAChD,OAAO,OAAO,CAAC,QAAQ,CAAC;QACxB,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC1B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,0EAA0E;AAC1E,SAAS,QAAQ,CAAC,OAAgB;IAChC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AACvD,CAAC;AAED,4FAA4F;AAC5F,SAAS,WAAW,CAAC,OAAgB;IACnC,OAAO,CAAC,CAAC,CACP,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,wBAAwB,CAAC,IAAI,kDAAkD;QAC1G,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAC3C,CAAC;AACJ,CAAC;AAED,gDAAgD;AAChD,SAAgB,mBAAmB,CAAC,OAAgB;IAClD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC;QACzD,OAAO;IACT,CAAC;IAED,wEAAwE;IACxE,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,4FAA4F;QAC5F,+DAA+D;QAC/D,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,qEAAqE;QAC5F,CAAC;QAED,oEAAoE;QACpE,6DAA6D;QAC7D,IAAI,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;YACpC,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QACvC,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC;QACxB,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC1B,CAAC;AACH,CAAC","sourcesContent":["import { isNonEmptyString, isString } from '@sindresorhus/is';\nimport type { Options } from 'got';\nimport {\n GITEA_API_USING_HOST_TYPES,\n GITHUB_API_USING_HOST_TYPES,\n GITLAB_API_USING_HOST_TYPES,\n} from '../../constants';\nimport type { GotOptions } from './types';\n\nexport type AuthGotOptions = Pick<\n GotOptions,\n | 'hostType'\n | 'headers'\n | 'noAuth'\n | 'context'\n | 'token'\n | 'username'\n | 'password'\n>;\n\nexport function applyAuthorization<GotOptions extends AuthGotOptions>(\n inOptions: GotOptions,\n): GotOptions {\n const options: GotOptions = { ...inOptions };\n\n if (isNonEmptyString(options.headers?.authorization) || options.noAuth) {\n return options;\n }\n\n options.headers ??= {};\n if (options.token) {\n const authType = options.context?.authType;\n if (authType) {\n if (authType === 'Token-Only') {\n options.headers.authorization = options.token;\n } else {\n options.headers.authorization = `${authType} ${options.token}`;\n }\n } else if (\n options.hostType &&\n GITEA_API_USING_HOST_TYPES.includes(options.hostType)\n ) {\n // Gitea v1.8.0 and later support `Bearer` as alternate to `token`\n // https://github.com/go-gitea/gitea/pull/5378\n options.headers.authorization = `Bearer ${options.token}`;\n } else if (\n options.hostType &&\n GITHUB_API_USING_HOST_TYPES.includes(options.hostType)\n ) {\n options.headers.authorization = `token ${options.token}`;\n if (options.token.startsWith('x-access-token:')) {\n const appToken = options.token.replace('x-access-token:', '');\n options.headers.authorization = `token ${appToken}`;\n if (isString(options.headers.accept)) {\n options.headers.accept = options.headers.accept.replace(\n 'application/vnd.github.v3+json',\n 'application/vnd.github.machine-man-preview+json',\n );\n }\n }\n } else if (\n options.hostType &&\n GITLAB_API_USING_HOST_TYPES.includes(options.hostType)\n ) {\n // GitLab versions earlier than 12.2 only support authentication with\n // a personal access token, which is 20 characters long.\n if (options.token.length === 20) {\n options.headers['Private-token'] = options.token;\n } else {\n options.headers.authorization = `Bearer ${options.token}`;\n }\n } else {\n options.headers.authorization = `Bearer ${options.token}`;\n }\n delete options.token;\n } else if (options.password !== undefined) {\n // Otherwise got will add username and password to url and header\n const auth = Buffer.from(\n `${options.username ?? ''}:${options.password}`,\n ).toString('base64');\n options.headers.authorization = `Basic ${auth}`;\n delete options.username;\n delete options.password;\n }\n return options;\n}\n\n// isAmazon return true if request options contains Amazon related headers\nfunction isAmazon(options: Options): boolean {\n return !!options.search?.includes('X-Amz-Algorithm');\n}\n\n// isAzureBlob return true if request options contains Azure container registry related data\nfunction isAzureBlob(options: Options): boolean {\n return !!(\n options.hostname?.endsWith('.blob.core.windows.net') && // lgtm [js/incomplete-url-substring-sanitization]\n options.href?.includes('/docker/registry')\n );\n}\n\n// removeAuthorization from the redirect options\nexport function removeAuthorization(options: Options): void {\n if (!options.password && !options.headers?.authorization) {\n return;\n }\n\n // Check if request has been redirected to Amazon or an Azure blob (ACR)\n if (isAmazon(options) || isAzureBlob(options)) {\n // if there is no port in the redirect URL string, then delete it from the redirect options.\n // This can be evaluated for removal after upgrading to Got v10\n const portInUrl = options.href?.split?.('/')?.[2]?.split(':')?.[1];\n if (!portInUrl) {\n delete options.port; // Redirect will instead use 80 or 443 for HTTP or HTTPS respectively\n }\n\n // registry is hosted on Amazon or Azure blob, redirect url includes\n // authentication which is not required and should be removed\n if (options?.headers?.authorization) {\n delete options.headers.authorization;\n }\n delete options.username;\n delete options.password;\n }\n}\n"]}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../lib/util/http/auth.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNonEmptyString, isString } from '@sindresorhus/is';\nimport type { Options } from 'got';\nimport {\n FORGEJO_API_USING_HOST_TYPES,\n GITEA_API_USING_HOST_TYPES,\n GITHUB_API_USING_HOST_TYPES,\n GITLAB_API_USING_HOST_TYPES,\n} from '../../constants';\nimport type { GotOptions } from './types';\n\nexport type AuthGotOptions = Pick<\n GotOptions,\n | 'hostType'\n | 'headers'\n | 'noAuth'\n | 'context'\n | 'token'\n | 'username'\n | 'password'\n>;\n\nexport function applyAuthorization<GotOptions extends AuthGotOptions>(\n inOptions: GotOptions,\n): GotOptions {\n const options: GotOptions = { ...inOptions };\n\n if (isNonEmptyString(options.headers?.authorization) || options.noAuth) {\n return options;\n }\n\n options.headers ??= {};\n if (options.token) {\n const authType = options.context?.authType;\n if (authType) {\n if (authType === 'Token-Only') {\n options.headers.authorization = options.token;\n } else {\n options.headers.authorization = `${authType} ${options.token}`;\n }\n } else if (\n options.hostType &&\n FORGEJO_API_USING_HOST_TYPES.includes(options.hostType)\n ) {\n options.headers.authorization = `Bearer ${options.token}`;\n } else if (\n options.hostType &&\n GITEA_API_USING_HOST_TYPES.includes(options.hostType)\n ) {\n // Gitea v1.8.0 and later support `Bearer` as alternate to `token`\n // https://github.com/go-gitea/gitea/pull/5378\n options.headers.authorization = `Bearer ${options.token}`;\n } else if (\n options.hostType &&\n GITHUB_API_USING_HOST_TYPES.includes(options.hostType)\n ) {\n options.headers.authorization = `token ${options.token}`;\n if (options.token.startsWith('x-access-token:')) {\n const appToken = options.token.replace('x-access-token:', '');\n options.headers.authorization = `token ${appToken}`;\n if (isString(options.headers.accept)) {\n options.headers.accept = options.headers.accept.replace(\n 'application/vnd.github.v3+json',\n 'application/vnd.github.machine-man-preview+json',\n );\n }\n }\n } else if (\n options.hostType &&\n GITLAB_API_USING_HOST_TYPES.includes(options.hostType)\n ) {\n // GitLab versions earlier than 12.2 only support authentication with\n // a personal access token, which is 20 characters long.\n if (options.token.length === 20) {\n options.headers['Private-token'] = options.token;\n } else {\n options.headers.authorization = `Bearer ${options.token}`;\n }\n } else {\n options.headers.authorization = `Bearer ${options.token}`;\n }\n delete options.token;\n } else if (options.password !== undefined) {\n // Otherwise got will add username and password to url and header\n const auth = Buffer.from(\n `${options.username ?? ''}:${options.password}`,\n ).toString('base64');\n options.headers.authorization = `Basic ${auth}`;\n delete options.username;\n delete options.password;\n }\n return options;\n}\n\n// isAmazon return true if request options contains Amazon related headers\nfunction isAmazon(options: Options): boolean {\n return !!options.search?.includes('X-Amz-Algorithm');\n}\n\n// isAzureBlob return true if request options contains Azure container registry related data\nfunction isAzureBlob(options: Options): boolean {\n return !!(\n options.hostname?.endsWith('.blob.core.windows.net') && // lgtm [js/incomplete-url-substring-sanitization]\n options.href?.includes('/docker/registry')\n );\n}\n\n// removeAuthorization from the redirect options\nexport function removeAuthorization(options: Options): void {\n if (!options.password && !options.headers?.authorization) {\n return;\n }\n\n // Check if request has been redirected to Amazon or an Azure blob (ACR)\n if (isAmazon(options) || isAzureBlob(options)) {\n // if there is no port in the redirect URL string, then delete it from the redirect options.\n // This can be evaluated for removal after upgrading to Got v10\n const portInUrl = options.href?.split?.('/')?.[2]?.split(':')?.[1];\n if (!portInUrl) {\n delete options.port; // Redirect will instead use 80 or 443 for HTTP or HTTPS respectively\n }\n\n // registry is hosted on Amazon or Azure blob, redirect url includes\n // authentication which is not required and should be removed\n if (options?.headers?.authorization) {\n delete options.headers.authorization;\n }\n delete options.username;\n delete options.password;\n }\n}\n"]}
@@ -79,6 +79,18 @@ function findMatchingRule(url, options) {
79
79
  ...res,
80
80
  };
81
81
  }
82
+ // Fallback to `forgejo` hostType
83
+ if (hostType &&
84
+ constants_1.FORGEJO_API_USING_HOST_TYPES.includes(hostType) &&
85
+ hostType !== 'forgejo') {
86
+ res = {
87
+ ...hostRules.find({
88
+ hostType: 'forgejo',
89
+ url,
90
+ }),
91
+ ...res,
92
+ };
93
+ }
82
94
  // Fallback to `gitea` hostType
83
95
  if (hostType &&
84
96
  constants_1.GITEA_API_USING_HOST_TYPES.includes(hostType) &&
@@ -1 +1 @@
1
- {"version":3,"file":"host-rules.js","sourceRoot":"","sources":["../../../lib/util/http/host-rules.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNonEmptyString } from '@sindresorhus/is';\nimport { GlobalConfig } from '../../config/global';\nimport {\n BITBUCKET_API_USING_HOST_TYPES,\n BITBUCKET_SERVER_API_USING_HOST_TYPES,\n GITEA_API_USING_HOST_TYPES,\n GITHUB_API_USING_HOST_TYPES,\n GITLAB_API_USING_HOST_TYPES,\n} from '../../constants';\nimport { logger } from '../../logger';\nimport { hasProxy } from '../../proxy';\nimport type { HostRule } from '../../types';\nimport * as hostRules from '../host-rules';\nimport { matchRegexOrGlobList } from '../string-match';\nimport { parseUrl } from '../url';\nimport type { InternalHttpOptions } from './http';\nimport { keepAliveAgents } from './keep-alive';\nimport type { GotOptions } from './types';\n\nexport type HostRulesGotOptions = Pick<\n GotOptions & InternalHttpOptions,\n | 'hostType'\n | 'url'\n | 'noAuth'\n | 'headers'\n | 'token'\n | 'username'\n | 'password'\n | 'context'\n | 'enabled'\n | 'abortOnError'\n | 'abortIgnoreStatusCodes'\n | 'timeout'\n | 'lookup'\n | 'agent'\n | 'http2'\n | 'https'\n | 'readOnly'\n>;\n\nexport function findMatchingRule<GotOptions extends HostRulesGotOptions>(\n url: string,\n options: GotOptions,\n): HostRule {\n const { hostType, readOnly } = options;\n let res = hostRules.find({ hostType, url, readOnly });\n\n if (\n isNonEmptyString(res.token) ||\n isNonEmptyString(res.username) ||\n isNonEmptyString(res.password)\n ) {\n // do not fallback if we already have auth infos\n return res;\n }\n\n // Fallback to `github` hostType\n if (\n hostType &&\n GITHUB_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'github'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'github',\n url,\n }),\n ...res,\n };\n }\n\n // in the case that an API URL is used for GitHub.com, fallback to `github` hostType, and use the `url`'s host to find a `matchHost: api.github.com` (or `matchHost: github.com`)\n if (url.startsWith('https://api.github.com/')) {\n res = {\n ...hostRules.find({\n hostType: 'github',\n url,\n }),\n ...res,\n };\n }\n\n // Fallback to `gitlab` hostType\n if (\n hostType &&\n GITLAB_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'gitlab'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'gitlab',\n url,\n }),\n ...res,\n };\n }\n\n // Fallback to `bitbucket` hostType\n if (\n hostType &&\n BITBUCKET_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'bitbucket'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'bitbucket',\n url,\n }),\n ...res,\n };\n }\n\n // Fallback to `bitbucket-server` hostType\n if (\n hostType &&\n BITBUCKET_SERVER_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'bitbucket-server'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'bitbucket-server',\n url,\n }),\n ...res,\n };\n }\n\n // Fallback to `gitea` hostType\n if (\n hostType &&\n GITEA_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'gitea'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'gitea',\n url,\n }),\n ...res,\n };\n }\n\n return res;\n}\n\n// Apply host rules to requests\nexport function applyHostRule<GotOptions extends HostRulesGotOptions>(\n url: string,\n options: GotOptions,\n hostRule: HostRule,\n): GotOptions {\n if (hostRule.enabled === false) {\n options.enabled = false;\n return options;\n }\n\n const { username, password, token, authType } = hostRule;\n const host = parseUrl(url)?.host;\n if (options.noAuth) {\n logger.trace({ url }, `Authorization disabled`);\n } else if (\n isNonEmptyString(options.headers?.authorization) ||\n isNonEmptyString(options.password) ||\n isNonEmptyString(options.token)\n ) {\n logger.once.debug(`hostRules: authentication already set for ${host}`);\n logger.trace({ url }, `Authorization already set`);\n } else if (password !== undefined) {\n logger.once.debug(`hostRules: applying Basic authentication for ${host}`);\n logger.trace({ url }, `Applying Basic authentication`);\n options.username = username;\n options.password = password;\n } else if (token) {\n logger.once.debug(`hostRules: applying Bearer authentication for ${host}`);\n logger.trace({ url }, `Applying Bearer authentication`);\n options.token = token;\n options.context = { ...options.context, authType };\n } else {\n logger.once.debug(`hostRules: no authentication for ${host}`);\n }\n // Apply optional params\n if (hostRule.abortOnError) {\n options.abortOnError = hostRule.abortOnError;\n }\n\n if (hostRule.abortIgnoreStatusCodes) {\n options.abortIgnoreStatusCodes = hostRule.abortIgnoreStatusCodes;\n }\n\n if (hostRule.timeout) {\n options.timeout = hostRule.timeout;\n }\n\n if (hostRule.headers) {\n const allowedHeaders = GlobalConfig.get('allowedHeaders', []);\n const filteredHeaders: Record<string, string> = {};\n\n for (const [header, value] of Object.entries(hostRule.headers)) {\n if (matchRegexOrGlobList(header, allowedHeaders)) {\n filteredHeaders[header] = value;\n } else {\n logger.once.error(\n { allowedHeaders, header },\n 'Disallowed hostRules headers',\n );\n }\n }\n\n options.headers = {\n ...options.headers,\n ...filteredHeaders,\n };\n }\n\n if (hostRule.keepAlive) {\n options.agent = keepAliveAgents;\n }\n\n if (!hasProxy() && hostRule.enableHttp2 === true) {\n options.http2 = true;\n }\n\n if (isNonEmptyString(hostRule.httpsCertificateAuthority)) {\n options.https = {\n ...(options.https ?? {}),\n certificateAuthority: hostRule.httpsCertificateAuthority,\n };\n }\n\n if (isNonEmptyString(hostRule.httpsPrivateKey)) {\n options.https = {\n ...(options.https ?? {}),\n key: hostRule.httpsPrivateKey,\n };\n }\n\n if (isNonEmptyString(hostRule.httpsCertificate)) {\n options.https = {\n ...(options.https ?? {}),\n certificate: hostRule.httpsCertificate,\n };\n }\n\n return options;\n}\n"]}
1
+ {"version":3,"file":"host-rules.js","sourceRoot":"","sources":["../../../lib/util/http/host-rules.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNonEmptyString } from '@sindresorhus/is';\nimport { GlobalConfig } from '../../config/global';\nimport {\n BITBUCKET_API_USING_HOST_TYPES,\n BITBUCKET_SERVER_API_USING_HOST_TYPES,\n FORGEJO_API_USING_HOST_TYPES,\n GITEA_API_USING_HOST_TYPES,\n GITHUB_API_USING_HOST_TYPES,\n GITLAB_API_USING_HOST_TYPES,\n} from '../../constants';\nimport { logger } from '../../logger';\nimport { hasProxy } from '../../proxy';\nimport type { HostRule } from '../../types';\nimport * as hostRules from '../host-rules';\nimport { matchRegexOrGlobList } from '../string-match';\nimport { parseUrl } from '../url';\nimport type { InternalHttpOptions } from './http';\nimport { keepAliveAgents } from './keep-alive';\nimport type { GotOptions } from './types';\n\nexport type HostRulesGotOptions = Pick<\n GotOptions & InternalHttpOptions,\n | 'hostType'\n | 'url'\n | 'noAuth'\n | 'headers'\n | 'token'\n | 'username'\n | 'password'\n | 'context'\n | 'enabled'\n | 'abortOnError'\n | 'abortIgnoreStatusCodes'\n | 'timeout'\n | 'lookup'\n | 'agent'\n | 'http2'\n | 'https'\n | 'readOnly'\n>;\n\nexport function findMatchingRule<GotOptions extends HostRulesGotOptions>(\n url: string,\n options: GotOptions,\n): HostRule {\n const { hostType, readOnly } = options;\n let res = hostRules.find({ hostType, url, readOnly });\n\n if (\n isNonEmptyString(res.token) ||\n isNonEmptyString(res.username) ||\n isNonEmptyString(res.password)\n ) {\n // do not fallback if we already have auth infos\n return res;\n }\n\n // Fallback to `github` hostType\n if (\n hostType &&\n GITHUB_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'github'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'github',\n url,\n }),\n ...res,\n };\n }\n\n // in the case that an API URL is used for GitHub.com, fallback to `github` hostType, and use the `url`'s host to find a `matchHost: api.github.com` (or `matchHost: github.com`)\n if (url.startsWith('https://api.github.com/')) {\n res = {\n ...hostRules.find({\n hostType: 'github',\n url,\n }),\n ...res,\n };\n }\n\n // Fallback to `gitlab` hostType\n if (\n hostType &&\n GITLAB_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'gitlab'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'gitlab',\n url,\n }),\n ...res,\n };\n }\n\n // Fallback to `bitbucket` hostType\n if (\n hostType &&\n BITBUCKET_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'bitbucket'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'bitbucket',\n url,\n }),\n ...res,\n };\n }\n\n // Fallback to `bitbucket-server` hostType\n if (\n hostType &&\n BITBUCKET_SERVER_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'bitbucket-server'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'bitbucket-server',\n url,\n }),\n ...res,\n };\n }\n\n // Fallback to `forgejo` hostType\n if (\n hostType &&\n FORGEJO_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'forgejo'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'forgejo',\n url,\n }),\n ...res,\n };\n }\n\n // Fallback to `gitea` hostType\n if (\n hostType &&\n GITEA_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'gitea'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'gitea',\n url,\n }),\n ...res,\n };\n }\n\n return res;\n}\n\n// Apply host rules to requests\nexport function applyHostRule<GotOptions extends HostRulesGotOptions>(\n url: string,\n options: GotOptions,\n hostRule: HostRule,\n): GotOptions {\n if (hostRule.enabled === false) {\n options.enabled = false;\n return options;\n }\n\n const { username, password, token, authType } = hostRule;\n const host = parseUrl(url)?.host;\n if (options.noAuth) {\n logger.trace({ url }, `Authorization disabled`);\n } else if (\n isNonEmptyString(options.headers?.authorization) ||\n isNonEmptyString(options.password) ||\n isNonEmptyString(options.token)\n ) {\n logger.once.debug(`hostRules: authentication already set for ${host}`);\n logger.trace({ url }, `Authorization already set`);\n } else if (password !== undefined) {\n logger.once.debug(`hostRules: applying Basic authentication for ${host}`);\n logger.trace({ url }, `Applying Basic authentication`);\n options.username = username;\n options.password = password;\n } else if (token) {\n logger.once.debug(`hostRules: applying Bearer authentication for ${host}`);\n logger.trace({ url }, `Applying Bearer authentication`);\n options.token = token;\n options.context = { ...options.context, authType };\n } else {\n logger.once.debug(`hostRules: no authentication for ${host}`);\n }\n // Apply optional params\n if (hostRule.abortOnError) {\n options.abortOnError = hostRule.abortOnError;\n }\n\n if (hostRule.abortIgnoreStatusCodes) {\n options.abortIgnoreStatusCodes = hostRule.abortIgnoreStatusCodes;\n }\n\n if (hostRule.timeout) {\n options.timeout = hostRule.timeout;\n }\n\n if (hostRule.headers) {\n const allowedHeaders = GlobalConfig.get('allowedHeaders', []);\n const filteredHeaders: Record<string, string> = {};\n\n for (const [header, value] of Object.entries(hostRule.headers)) {\n if (matchRegexOrGlobList(header, allowedHeaders)) {\n filteredHeaders[header] = value;\n } else {\n logger.once.error(\n { allowedHeaders, header },\n 'Disallowed hostRules headers',\n );\n }\n }\n\n options.headers = {\n ...options.headers,\n ...filteredHeaders,\n };\n }\n\n if (hostRule.keepAlive) {\n options.agent = keepAliveAgents;\n }\n\n if (!hasProxy() && hostRule.enableHttp2 === true) {\n options.http2 = true;\n }\n\n if (isNonEmptyString(hostRule.httpsCertificateAuthority)) {\n options.https = {\n ...(options.https ?? {}),\n certificateAuthority: hostRule.httpsCertificateAuthority,\n };\n }\n\n if (isNonEmptyString(hostRule.httpsPrivateKey)) {\n options.https = {\n ...(options.https ?? {}),\n key: hostRule.httpsPrivateKey,\n };\n }\n\n if (isNonEmptyString(hostRule.httpsCertificate)) {\n options.https = {\n ...(options.https ?? {}),\n certificate: hostRule.httpsCertificate,\n };\n }\n\n return options;\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.58.1",
4
+ "version": "42.58.3",
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.58.1 config files (https://renovatebot.com/)",
2
+ "title": "JSON schema for Renovate 42.58.3 config files (https://renovatebot.com/)",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
- "x-renovate-version": "42.58.1",
4
+ "x-renovate-version": "42.58.3",
5
5
  "allowComments": true,
6
6
  "type": "object",
7
7
  "properties": {