renovate 42.94.4 → 42.94.6

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.
@@ -34,8 +34,8 @@ const presets = {
34
34
  managerFilePatterns: [
35
35
  "**/[Dd]ockerfile*",
36
36
  "**/[Cc]ontainerfile*",
37
- "**/.[Dd]ockerfile*",
38
- "**/.[Cc]ontainerfile*"
37
+ "**/*.[Dd]ockerfile*",
38
+ "**/*.[Cc]ontainerfile*"
39
39
  ],
40
40
  matchStrings: ["# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\s]+?)(?: (lookupName|packageName)=(?<packageName>[^\\s]+?))?(?: versioning=(?<versioning>[^\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\s]+?))?\\s(?:ENV|ARG)\\s+[A-Za-z0-9_]+?_VERSION[ =][\"']?(?<currentValue>.+?)[\"']?\\s"]
41
41
  }],
@@ -1 +1 @@
1
- {"version":3,"file":"custom-managers.js","names":[],"sources":["../../../../lib/config/presets/internal/custom-managers.ts"],"sourcesContent":["import type { Preset } from '../types.ts';\n\n/* eslint sort-keys: [\"error\", \"asc\", {caseSensitive: false, natural: true}] */\n\nexport const presets: Record<string, Preset> = {\n azurePipelinesVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: [\n '**/.azuredevops/**/*.{yml,yaml}',\n 'azure*pipeline*.{yml,yaml}',\n ],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (?:lookupName|packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+[A-Za-z0-9_]+?_VERSION\\\\s*:\\\\s*[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description:\n 'Update `_VERSION` environment variables in Azure Pipelines files.',\n },\n biomeVersions: {\n customManagers: [\n {\n customType: 'jsonata',\n datasourceTemplate: 'npm',\n depNameTemplate: '@biomejs/biome',\n fileFormat: 'json',\n managerFilePatterns: ['**/biome.{json,jsonc}'],\n matchStrings: ['{\"currentValue\": $split($.\"$schema\",(\"/\"))[-2]}'],\n },\n ],\n description:\n 'Update `$schema` version in `biome.json` configuration files.',\n },\n bitbucketPipelinesVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: ['**/bitbucket-pipelines.{yml,yaml}'],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (lookupName|packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+.*\\\\s+[A-Za-z0-9_]+?_VERSION[ =:]\\\\s?[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description: 'Update `_VERSION` variables in Bitbucket Pipelines',\n },\n dockerfileVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: [\n '**/[Dd]ockerfile*',\n '**/[Cc]ontainerfile*',\n '**/.[Dd]ockerfile*',\n '**/.[Cc]ontainerfile*',\n ],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (lookupName|packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s(?:ENV|ARG)\\\\s+[A-Za-z0-9_]+?_VERSION[ =][\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description: 'Update `_VERSION` variables in Dockerfiles.',\n },\n githubActionsVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: [\n '/(^|/)(workflow-templates|\\\\.(?:github|gitea|forgejo)/(?:workflows|actions))/.+\\\\.ya?ml$/',\n '/(^|/)action\\\\.ya?ml$/',\n ],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (?:lookupName|packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+[A-Za-z0-9_]+?_VERSION\\\\s*:\\\\s*[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description:\n 'Update `_VERSION` environment variables in GitHub Action files.',\n },\n gitlabPipelineVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: ['.gitlab-ci.{yml,yaml}'],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (?:packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+[A-Za-z0-9_]+?_VERSION\\\\s*:\\\\s*[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description:\n 'Update `_VERSION` environment variables in GitLab pipeline file.',\n },\n helmChartYamlAppVersions: {\n customManagers: [\n {\n customType: 'regex',\n datasourceTemplate: 'docker',\n managerFilePatterns: ['**/Chart.yaml'],\n matchStrings: [\n '#\\\\s*renovate: image=(?<depName>.*?)\\\\s+appVersion:\\\\s*[\"\\']?(?<currentValue>[\\\\w+\\\\.\\\\-]*)',\n ],\n },\n ],\n description: 'Update `appVersion` value in Helm chart `Chart.yaml`.',\n },\n makefileVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: ['**/[Mm]akefile', '**/GNUMakefile', '**/*.mk'],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (?:packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+[A-Za-z0-9_]+?_VERSION\\\\s*:*\\\\??=\\\\s*[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description: 'Update `_VERSION` variables in Makefiles.',\n },\n mavenPropertyVersions: {\n customManagers: [\n {\n customType: 'regex',\n datasourceTemplate:\n '{{#if datasource}}{{{datasource}}}{{else}}maven{{/if}}',\n managerFilePatterns: ['**/pom.xml'],\n matchStrings: [\n '<!--\\\\s?renovate:( datasource=(?<datasource>[a-zA-Z0-9-._]+?))? depName=(?<depName>[^\\\\s]+?)(?: packageName=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?\\\\s+-->\\\\s+<.+\\\\.version>(?<currentValue>.+)<\\\\/.+\\\\.version>',\n ],\n versioningTemplate: '{{#if versioning}}{{{versioning}}}{{/if}}',\n },\n ],\n description: 'Update `*.version` properties in `pom.xml` files.',\n },\n tfvarsVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: ['**/*.tfvars'],\n matchStrings: [\n '#\\\\s*renovate: datasource=(?<datasource>.*?) depName=(?<depName>.*?)( versioning=(?<versioning>.*?))?(?: extractVersion=(?<extractVersion>.*?))?\\\\s.*?_version\\\\s*=\\\\s*\"(?<currentValue>.*)\"',\n ],\n versioningTemplate: '{{#if versioning}}{{{versioning}}}{{/if}}',\n },\n ],\n description: 'Update `*_version` variables in `.tfvars` files.',\n },\n tsconfigNodeVersions: {\n customManagers: [\n {\n autoReplaceStringTemplate: '\"@tsconfig/node{{{major}}}/tsconfig.json\"',\n currentValueTemplate: '{{{major}}}',\n customType: 'regex',\n datasourceTemplate: 'npm',\n managerFilePatterns: ['**/tsconfig.json', '**/tsconfig.*.json'],\n matchStrings: [\n '\"(?<depName>@tsconfig/node(?<major>\\\\d+))/tsconfig\\\\.json\"',\n ],\n },\n ],\n description: 'Update `@tsconfig/node` extends in `tsconfig.json` files.',\n },\n};\n"],"mappings":";;AAIA,MAAa,UAAkC;CAC7C,wBAAwB;EACtB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CACnB,mCACA,6BACD;GACD,cAAc,CACZ,uVACD;GACF,CACF;EACD,aACE;EACH;CACD,eAAe;EACb,gBAAgB,CACd;GACE,YAAY;GACZ,oBAAoB;GACpB,iBAAiB;GACjB,YAAY;GACZ,qBAAqB,CAAC,wBAAwB;GAC9C,cAAc,CAAC,wDAAkD;GAClE,CACF;EACD,aACE;EACH;CACD,4BAA4B;EAC1B,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CAAC,oCAAoC;GAC1D,cAAc,CACZ,2VACD;GACF,CACF;EACD,aAAa;EACd;CACD,oBAAoB;EAClB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB;IACnB;IACA;IACA;IACA;IACD;GACD,cAAc,CACZ,8VACD;GACF,CACF;EACD,aAAa;EACd;CACD,uBAAuB;EACrB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CACnB,6FACA,yBACD;GACD,cAAc,CACZ,uVACD;GACF,CACF;EACD,aACE;EACH;CACD,wBAAwB;EACtB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CAAC,wBAAwB;GAC9C,cAAc,CACZ,4UACD;GACF,CACF;EACD,aACE;EACH;CACD,0BAA0B;EACxB,gBAAgB,CACd;GACE,YAAY;GACZ,oBAAoB;GACpB,qBAAqB,CAAC,gBAAgB;GACtC,cAAc,CACZ,8FACD;GACF,CACF;EACD,aAAa;EACd;CACD,kBAAkB;EAChB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB;IAAC;IAAkB;IAAkB;IAAU;GACpE,cAAc,CACZ,kVACD;GACF,CACF;EACD,aAAa;EACd;CACD,uBAAuB;EACrB,gBAAgB,CACd;GACE,YAAY;GACZ,oBACE;GACF,qBAAqB,CAAC,aAAa;GACnC,cAAc,CACZ,8RACD;GACD,oBAAoB;GACrB,CACF;EACD,aAAa;EACd;CACD,gBAAgB;EACd,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CAAC,cAAc;GACpC,cAAc,CACZ,iMACD;GACD,oBAAoB;GACrB,CACF;EACD,aAAa;EACd;CACD,sBAAsB;EACpB,gBAAgB,CACd;GACE,2BAA2B;GAC3B,sBAAsB;GACtB,YAAY;GACZ,oBAAoB;GACpB,qBAAqB,CAAC,oBAAoB,qBAAqB;GAC/D,cAAc,CACZ,+DACD;GACF,CACF;EACD,aAAa;EACd;CACF"}
1
+ {"version":3,"file":"custom-managers.js","names":[],"sources":["../../../../lib/config/presets/internal/custom-managers.ts"],"sourcesContent":["import type { Preset } from '../types.ts';\n\n/* eslint sort-keys: [\"error\", \"asc\", {caseSensitive: false, natural: true}] */\n\nexport const presets: Record<string, Preset> = {\n azurePipelinesVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: [\n '**/.azuredevops/**/*.{yml,yaml}',\n 'azure*pipeline*.{yml,yaml}',\n ],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (?:lookupName|packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+[A-Za-z0-9_]+?_VERSION\\\\s*:\\\\s*[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description:\n 'Update `_VERSION` environment variables in Azure Pipelines files.',\n },\n biomeVersions: {\n customManagers: [\n {\n customType: 'jsonata',\n datasourceTemplate: 'npm',\n depNameTemplate: '@biomejs/biome',\n fileFormat: 'json',\n managerFilePatterns: ['**/biome.{json,jsonc}'],\n matchStrings: ['{\"currentValue\": $split($.\"$schema\",(\"/\"))[-2]}'],\n },\n ],\n description:\n 'Update `$schema` version in `biome.json` configuration files.',\n },\n bitbucketPipelinesVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: ['**/bitbucket-pipelines.{yml,yaml}'],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (lookupName|packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+.*\\\\s+[A-Za-z0-9_]+?_VERSION[ =:]\\\\s?[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description: 'Update `_VERSION` variables in Bitbucket Pipelines',\n },\n dockerfileVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: [\n '**/[Dd]ockerfile*',\n '**/[Cc]ontainerfile*',\n '**/*.[Dd]ockerfile*',\n '**/*.[Cc]ontainerfile*',\n ],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (lookupName|packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s(?:ENV|ARG)\\\\s+[A-Za-z0-9_]+?_VERSION[ =][\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description: 'Update `_VERSION` variables in Dockerfiles.',\n },\n githubActionsVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: [\n '/(^|/)(workflow-templates|\\\\.(?:github|gitea|forgejo)/(?:workflows|actions))/.+\\\\.ya?ml$/',\n '/(^|/)action\\\\.ya?ml$/',\n ],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (?:lookupName|packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+[A-Za-z0-9_]+?_VERSION\\\\s*:\\\\s*[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description:\n 'Update `_VERSION` environment variables in GitHub Action files.',\n },\n gitlabPipelineVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: ['.gitlab-ci.{yml,yaml}'],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (?:packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+[A-Za-z0-9_]+?_VERSION\\\\s*:\\\\s*[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description:\n 'Update `_VERSION` environment variables in GitLab pipeline file.',\n },\n helmChartYamlAppVersions: {\n customManagers: [\n {\n customType: 'regex',\n datasourceTemplate: 'docker',\n managerFilePatterns: ['**/Chart.yaml'],\n matchStrings: [\n '#\\\\s*renovate: image=(?<depName>.*?)\\\\s+appVersion:\\\\s*[\"\\']?(?<currentValue>[\\\\w+\\\\.\\\\-]*)',\n ],\n },\n ],\n description: 'Update `appVersion` value in Helm chart `Chart.yaml`.',\n },\n makefileVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: ['**/[Mm]akefile', '**/GNUMakefile', '**/*.mk'],\n matchStrings: [\n '# renovate: datasource=(?<datasource>[a-zA-Z0-9-._]+?) depName=(?<depName>[^\\\\s]+?)(?: (?:packageName)=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?(?: registryUrl=(?<registryUrl>[^\\\\s]+?))?\\\\s+[A-Za-z0-9_]+?_VERSION\\\\s*:*\\\\??=\\\\s*[\"\\']?(?<currentValue>.+?)[\"\\']?\\\\s',\n ],\n },\n ],\n description: 'Update `_VERSION` variables in Makefiles.',\n },\n mavenPropertyVersions: {\n customManagers: [\n {\n customType: 'regex',\n datasourceTemplate:\n '{{#if datasource}}{{{datasource}}}{{else}}maven{{/if}}',\n managerFilePatterns: ['**/pom.xml'],\n matchStrings: [\n '<!--\\\\s?renovate:( datasource=(?<datasource>[a-zA-Z0-9-._]+?))? depName=(?<depName>[^\\\\s]+?)(?: packageName=(?<packageName>[^\\\\s]+?))?(?: versioning=(?<versioning>[^\\\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\\\s]+?))?\\\\s+-->\\\\s+<.+\\\\.version>(?<currentValue>.+)<\\\\/.+\\\\.version>',\n ],\n versioningTemplate: '{{#if versioning}}{{{versioning}}}{{/if}}',\n },\n ],\n description: 'Update `*.version` properties in `pom.xml` files.',\n },\n tfvarsVersions: {\n customManagers: [\n {\n customType: 'regex',\n managerFilePatterns: ['**/*.tfvars'],\n matchStrings: [\n '#\\\\s*renovate: datasource=(?<datasource>.*?) depName=(?<depName>.*?)( versioning=(?<versioning>.*?))?(?: extractVersion=(?<extractVersion>.*?))?\\\\s.*?_version\\\\s*=\\\\s*\"(?<currentValue>.*)\"',\n ],\n versioningTemplate: '{{#if versioning}}{{{versioning}}}{{/if}}',\n },\n ],\n description: 'Update `*_version` variables in `.tfvars` files.',\n },\n tsconfigNodeVersions: {\n customManagers: [\n {\n autoReplaceStringTemplate: '\"@tsconfig/node{{{major}}}/tsconfig.json\"',\n currentValueTemplate: '{{{major}}}',\n customType: 'regex',\n datasourceTemplate: 'npm',\n managerFilePatterns: ['**/tsconfig.json', '**/tsconfig.*.json'],\n matchStrings: [\n '\"(?<depName>@tsconfig/node(?<major>\\\\d+))/tsconfig\\\\.json\"',\n ],\n },\n ],\n description: 'Update `@tsconfig/node` extends in `tsconfig.json` files.',\n },\n};\n"],"mappings":";;AAIA,MAAa,UAAkC;CAC7C,wBAAwB;EACtB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CACnB,mCACA,6BACD;GACD,cAAc,CACZ,uVACD;GACF,CACF;EACD,aACE;EACH;CACD,eAAe;EACb,gBAAgB,CACd;GACE,YAAY;GACZ,oBAAoB;GACpB,iBAAiB;GACjB,YAAY;GACZ,qBAAqB,CAAC,wBAAwB;GAC9C,cAAc,CAAC,wDAAkD;GAClE,CACF;EACD,aACE;EACH;CACD,4BAA4B;EAC1B,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CAAC,oCAAoC;GAC1D,cAAc,CACZ,2VACD;GACF,CACF;EACD,aAAa;EACd;CACD,oBAAoB;EAClB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB;IACnB;IACA;IACA;IACA;IACD;GACD,cAAc,CACZ,8VACD;GACF,CACF;EACD,aAAa;EACd;CACD,uBAAuB;EACrB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CACnB,6FACA,yBACD;GACD,cAAc,CACZ,uVACD;GACF,CACF;EACD,aACE;EACH;CACD,wBAAwB;EACtB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CAAC,wBAAwB;GAC9C,cAAc,CACZ,4UACD;GACF,CACF;EACD,aACE;EACH;CACD,0BAA0B;EACxB,gBAAgB,CACd;GACE,YAAY;GACZ,oBAAoB;GACpB,qBAAqB,CAAC,gBAAgB;GACtC,cAAc,CACZ,8FACD;GACF,CACF;EACD,aAAa;EACd;CACD,kBAAkB;EAChB,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB;IAAC;IAAkB;IAAkB;IAAU;GACpE,cAAc,CACZ,kVACD;GACF,CACF;EACD,aAAa;EACd;CACD,uBAAuB;EACrB,gBAAgB,CACd;GACE,YAAY;GACZ,oBACE;GACF,qBAAqB,CAAC,aAAa;GACnC,cAAc,CACZ,8RACD;GACD,oBAAoB;GACrB,CACF;EACD,aAAa;EACd;CACD,gBAAgB;EACd,gBAAgB,CACd;GACE,YAAY;GACZ,qBAAqB,CAAC,cAAc;GACpC,cAAc,CACZ,iMACD;GACD,oBAAoB;GACrB,CACF;EACD,aAAa;EACd;CACD,sBAAsB;EACpB,gBAAgB,CACd;GACE,2BAA2B;GAC3B,sBAAsB;GACtB,YAAY;GACZ,oBAAoB;GACpB,qBAAqB,CAAC,oBAAoB,qBAAqB;GAC/D,cAAc,CACZ,+DACD;GACF,CACF;EACD,aAAa;EACd;CACF"}
@@ -99,7 +99,7 @@ async function getRepos() {
99
99
  * Clone repository to local directory
100
100
  * @param config
101
101
  */
102
- async function initRepo({ repository, gitUrl }) {
102
+ async function initRepo({ repository, cloneSubmodules, cloneSubmodulesFilter, gitUrl }) {
103
103
  require_index.logger.debug(`initRepo(${repository}, ${gitUrl})`);
104
104
  const projectInfo = await require_client.client.getProjectInfo(repository);
105
105
  const branchInfo = await require_client.client.getBranchInfo(repository);
@@ -113,7 +113,11 @@ async function initRepo({ repository, gitUrl }) {
113
113
  const baseUrl = defaults.endpoint;
114
114
  const url = require_utils.getGerritRepoUrl(repository, baseUrl);
115
115
  require_scm.configureScm(repository, config.gerritUsername);
116
- await require_index$1.initRepo({ url });
116
+ await require_index$1.initRepo({
117
+ url,
118
+ cloneSubmodules,
119
+ cloneSubmodulesFilter
120
+ });
117
121
  const rejectedChanges = await require_client.client.findChanges(config.repository, {
118
122
  branchName: "",
119
123
  state: "open",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["ensureTrailingSlash","getEnv","client","getGerritRepoUrl","repoFingerprint","REQUEST_DETAILS_FOR_PRS","mapGerritChangeToPr","TAG_PULL_REQUEST_BODY","DateTime","isTruthy","mapBranchStatusToLabel","parseJson","smartTruncate","readOnlyIssueBody","regEx","MAX_GERRIT_COMMENT_SIZE"],"sources":["../../../../lib/modules/platform/gerrit/index.ts"],"sourcesContent":["import { isTruthy } from '@sindresorhus/is';\nimport { DateTime } from 'luxon';\nimport semver from 'semver';\nimport { logger } from '../../../logger/index.ts';\nimport type { BranchStatus } from '../../../types/index.ts';\nimport { parseJson } from '../../../util/common.ts';\nimport { getEnv } from '../../../util/env.ts';\nimport * as git from '../../../util/git/index.ts';\nimport { setBaseUrl } from '../../../util/http/gerrit.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { ensureTrailingSlash } from '../../../util/url.ts';\nimport type {\n BranchStatusConfig,\n CreatePRConfig,\n EnsureCommentConfig,\n EnsureCommentRemovalConfigByContent,\n EnsureCommentRemovalConfigByTopic,\n EnsureIssueConfig,\n EnsureIssueResult,\n FindPRConfig,\n Issue,\n MergePRConfig,\n PlatformParams,\n PlatformResult,\n Pr,\n RepoParams,\n RepoResult,\n UpdatePrConfig,\n} from '../types.ts';\nimport { repoFingerprint } from '../util.ts';\n\nimport { smartTruncate } from '../utils/pr-body.ts';\nimport { readOnlyIssueBody } from '../utils/read-only-issue-body.ts';\nimport { client } from './client.ts';\nimport { configureScm } from './scm.ts';\nimport type { GerritLabelTypeInfo, GerritProjectInfo } from './types.ts';\nimport {\n MAX_GERRIT_COMMENT_SIZE,\n REQUEST_DETAILS_FOR_PRS,\n TAG_PULL_REQUEST_BODY,\n getGerritRepoUrl,\n mapBranchStatusToLabel,\n mapGerritChangeToPr,\n} from './utils.ts';\n\nexport const id = 'gerrit';\n\nconst defaults: {\n endpoint?: string;\n} = {};\n\nlet config: {\n repository?: string;\n head?: string;\n config?: GerritProjectInfo;\n labels: Record<string, GerritLabelTypeInfo>;\n gerritUsername?: string;\n} = {\n labels: {},\n};\n\nexport function writeToConfig(newConfig: typeof config): void {\n config = { ...config, ...newConfig };\n}\n\nexport async function initPlatform({\n endpoint,\n username,\n password,\n}: PlatformParams): Promise<PlatformResult> {\n logger.debug(`initPlatform(${endpoint!}, ${username!})`);\n if (!endpoint) {\n throw new Error('Init: You must configure a Gerrit Server endpoint');\n }\n if (!(username && password)) {\n throw new Error(\n 'Init: You must configure a Gerrit Server username/password',\n );\n }\n config.gerritUsername = username;\n defaults.endpoint = ensureTrailingSlash(endpoint);\n setBaseUrl(defaults.endpoint);\n\n let gerritVersion: string;\n try {\n const env = getEnv();\n /* v8 ignore if: experimental feature */\n if (env.RENOVATE_X_PLATFORM_VERSION) {\n gerritVersion = env.RENOVATE_X_PLATFORM_VERSION;\n } else {\n gerritVersion = await client.getGerritVersion({\n username,\n password,\n });\n }\n } catch (err) {\n logger.debug(\n { err },\n 'Error authenticating with Gerrit. Check your credentials',\n );\n throw new Error('Init: Authentication failure');\n }\n\n logger.debug('Gerrit version is: ' + gerritVersion);\n // Example: 3.13.0-rc3-148-gb478dbbb57\n const parsed = semver.parse(gerritVersion);\n if (!parsed) {\n throw new Error(`Unable to parse Gerrit version: ${gerritVersion}`);\n }\n gerritVersion = `${parsed.major}.${parsed.minor}.${parsed.patch}`;\n client.setGerritVersion(gerritVersion);\n\n const platformConfig: PlatformResult = {\n endpoint: defaults.endpoint,\n };\n return platformConfig;\n}\n\n/**\n * Get all state=\"ACTIVE\" and type=\"CODE\" repositories from gerrit\n */\nexport async function getRepos(): Promise<string[]> {\n logger.debug(`getRepos()`);\n return await client.getRepos();\n}\n\n/**\n * Clone repository to local directory\n * @param config\n */\nexport async function initRepo({\n repository,\n gitUrl,\n}: RepoParams): Promise<RepoResult> {\n logger.debug(`initRepo(${repository}, ${gitUrl})`);\n const projectInfo = await client.getProjectInfo(repository);\n const branchInfo = await client.getBranchInfo(repository);\n\n config = {\n ...config,\n repository,\n head: branchInfo.revision,\n config: projectInfo,\n labels: projectInfo.labels ?? {},\n };\n const baseUrl = defaults.endpoint!;\n const url = getGerritRepoUrl(repository, baseUrl);\n configureScm(repository, config.gerritUsername!);\n await git.initRepo({ url });\n\n //abandon \"open\" and \"rejected\" changes at startup\n const rejectedChanges = await client.findChanges(config.repository!, {\n branchName: '',\n state: 'open',\n label: '-2',\n });\n for (const change of rejectedChanges) {\n await client.abandonChange(\n change._number,\n 'This change has been abandoned as it was voted with Code-Review -2.',\n );\n logger.info(\n `Abandoned change ${change._number} with Code-Review -2 in repository ${repository}`,\n );\n }\n const repoConfig: RepoResult = {\n defaultBranch: config.head!,\n isFork: false,\n repoFingerprint: repoFingerprint(repository, baseUrl),\n };\n return repoConfig;\n}\n\nexport async function findPr(findPRConfig: FindPRConfig): Promise<Pr | null> {\n const change = (\n await client.findChanges(config.repository!, {\n ...findPRConfig,\n singleChange: true,\n requestDetails: REQUEST_DETAILS_FOR_PRS,\n })\n ).pop();\n return change\n ? mapGerritChangeToPr(change, {\n sourceBranch: findPRConfig.branchName,\n })\n : null;\n}\n\nexport async function getPr(number: number): Promise<Pr | null> {\n try {\n const change = await client.getChange(number, REQUEST_DETAILS_FOR_PRS);\n return mapGerritChangeToPr(change);\n } catch (err) {\n if (err.statusCode === 404) {\n return null;\n }\n throw err;\n }\n}\n\nexport async function updatePr(prConfig: UpdatePrConfig): Promise<void> {\n logger.debug(`updatePr(${prConfig.number}, ${prConfig.prTitle})`);\n // prConfig.prBody will only be set if the body has changed\n if (prConfig.prBody) {\n await client.addMessage(\n prConfig.number,\n prConfig.prBody,\n TAG_PULL_REQUEST_BODY,\n );\n }\n if (prConfig.targetBranch) {\n await client.moveChange(prConfig.number, prConfig.targetBranch);\n }\n if (prConfig.state && prConfig.state === 'closed') {\n await client.abandonChange(prConfig.number);\n }\n}\n\nexport async function createPr(prConfig: CreatePRConfig): Promise<Pr | null> {\n logger.debug(\n `createPr(${prConfig.sourceBranch}, ${prConfig.prTitle}, ${\n prConfig.labels?.toString() ?? ''\n })`,\n );\n const change = (\n await client.findChanges(config.repository!, {\n branchName: prConfig.sourceBranch,\n targetBranch: prConfig.targetBranch,\n state: 'open',\n singleChange: true,\n requestDetails: REQUEST_DETAILS_FOR_PRS,\n })\n ).pop();\n if (change === undefined) {\n throw new Error(\n `the change should be created automatically from previous push to refs/for/${prConfig.sourceBranch}`,\n );\n }\n const created = DateTime.fromISO(change.created.replace(' ', 'T'), {});\n const fiveMinutesAgo = DateTime.utc().minus({ minutes: 5 });\n if (created < fiveMinutesAgo) {\n throw new Error(\n `the change should have been created automatically from previous push to refs/for/${prConfig.sourceBranch}, but it was not created in the last 5 minutes (${change.created})`,\n );\n }\n await client.addMessage(\n change._number,\n prConfig.prBody,\n TAG_PULL_REQUEST_BODY,\n );\n return mapGerritChangeToPr(change, {\n sourceBranch: prConfig.sourceBranch,\n prBody: prConfig.prBody,\n });\n}\n\nexport async function getBranchPr(\n branchName: string,\n targetBranch?: string,\n): Promise<Pr | null> {\n const change = await client.getBranchChange(config.repository!, {\n branchName,\n state: 'open',\n targetBranch,\n requestDetails: REQUEST_DETAILS_FOR_PRS,\n });\n\n return change\n ? mapGerritChangeToPr(change, {\n sourceBranch: branchName,\n })\n : null;\n}\n\nexport async function getPrList(): Promise<Pr[]> {\n const changes = await client.findChanges(config.repository!, {\n branchName: '',\n requestDetails: REQUEST_DETAILS_FOR_PRS,\n });\n return changes.map((change) => mapGerritChangeToPr(change)).filter(isTruthy);\n}\n\nexport async function mergePr(config: MergePRConfig): Promise<boolean> {\n logger.debug(\n `mergePr(${config.id}, ${config.branchName!}, ${config.strategy!})`,\n );\n try {\n const change = await client.submitChange(config.id);\n return change.status === 'MERGED';\n } catch (err) {\n if (err.statusCode === 409) {\n logger.warn(\n { err },\n \"Can't submit the change, because the submit rule doesn't allow it.\",\n );\n return false;\n }\n throw err;\n }\n}\n\n/**\n * BranchStatus for Gerrit assumes that the branchName refers to a change.\n * @param branchName\n */\nexport async function getBranchStatus(\n branchName: string,\n): Promise<BranchStatus> {\n logger.debug(`getBranchStatus(${branchName})`);\n const change = (\n await client.findChanges(config.repository!, {\n state: 'open',\n branchName,\n singleChange: true,\n requestDetails: ['LABELS', 'SUBMITTABLE', 'CHECK'],\n })\n ).pop();\n if (change) {\n const hasProblems = change.problems && change.problems.length > 0;\n if (hasProblems) {\n return 'red';\n }\n const hasBlockingLabels = Object.values(change.labels ?? {}).some(\n (label) => label.blocking,\n );\n if (hasBlockingLabels) {\n return 'red';\n }\n if (change.submittable) {\n return 'green';\n }\n }\n return 'yellow';\n}\n\n/**\n * check the gerrit-change for the presence of the corresponding \"$context\" Gerrit label if configured,\n * return 'yellow' if not configured or not set\n * @param branchName\n * @param context renovate/stability-days || ...\n */\nexport async function getBranchStatusCheck(\n branchName: string,\n context: string,\n): Promise<BranchStatus | null> {\n const labelConfig = config.labels[context];\n if (labelConfig) {\n const change = (\n await client.findChanges(config.repository!, {\n branchName,\n state: 'open',\n singleChange: true,\n requestDetails: ['LABELS'],\n })\n ).pop();\n if (change) {\n const label = change.labels![context];\n if (label) {\n // Check for rejected or blocking first, as a label could have both rejected and approved\n if (label.rejected || label.blocking) {\n return 'red';\n }\n if (label.approved) {\n return 'green';\n }\n }\n }\n }\n return 'yellow';\n}\n\n/**\n * Apply the branch state $context to the corresponding gerrit label (if available)\n * context === \"renovate/stability-days\" / \"renovate/merge-confidence\" and state === \"green\"/...\n * @param branchStatusConfig\n */\nexport async function setBranchStatus(\n branchStatusConfig: BranchStatusConfig,\n): Promise<void> {\n const label = config.labels[branchStatusConfig.context];\n const labelValue =\n label && mapBranchStatusToLabel(branchStatusConfig.state, label);\n if (branchStatusConfig.context && labelValue) {\n const change = (\n await client.findChanges(config.repository!, {\n branchName: branchStatusConfig.branchName,\n state: 'open',\n singleChange: true,\n requestDetails: ['LABELS'],\n })\n ).pop();\n\n const labelKey = branchStatusConfig.context;\n if (!change?.labels || !Object.hasOwn(change.labels, labelKey)) {\n return;\n }\n\n await client.setLabel(change._number, labelKey, labelValue);\n }\n}\n\nexport async function getRawFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<string | null> {\n const repo = repoName ?? config.repository;\n if (!repo) {\n logger.debug('No repo so cannot getRawFile');\n return null;\n }\n const branch =\n branchOrTag ??\n (repo === config.repository ? (config.head ?? 'HEAD') : 'HEAD');\n const result = await client.getFile(repo, branch, fileName);\n return result;\n}\n\nexport async function getJsonFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<any> {\n const raw = await getRawFile(fileName, repoName, branchOrTag);\n return parseJson(raw, fileName);\n}\n\nexport async function addReviewers(\n number: number,\n reviewers: string[],\n): Promise<void> {\n await client.addReviewers(number, reviewers);\n}\n\n/**\n * add \"CC\" (only one possible)\n */\nexport async function addAssignees(\n number: number,\n assignees: string[],\n): Promise<void> {\n if (assignees.length) {\n if (assignees.length > 1) {\n logger.debug(\n `addAssignees(${number}, ${assignees.toString()}) called with more then one assignee! Gerrit only supports one assignee! Using the first from list.`,\n );\n }\n await client.addAssignee(number, assignees[0]);\n }\n}\n\nexport async function ensureComment(\n ensureComment: EnsureCommentConfig,\n): Promise<boolean> {\n logger.debug(\n `ensureComment(${ensureComment.number}, ${ensureComment.topic!}, ${\n ensureComment.content\n })`,\n );\n await client.addMessageIfNotAlreadyExists(\n ensureComment.number,\n ensureComment.content,\n ensureComment.topic ?? undefined,\n );\n return true;\n}\n\nexport function massageMarkdown(prBody: string, rebaseLabel: string): string {\n return (\n smartTruncate(readOnlyIssueBody(prBody), maxBodyLength())\n .replace('Branch creation', 'Change creation')\n .replace(\n 'close this Pull Request unmerged',\n 'abandon or vote this change with Code-Review -2',\n )\n .replace(\n 'Close this PR',\n 'Abandon or vote this change with Code-Review -2',\n )\n .replace(\n 'you tick the rebase/retry checkbox',\n `you add the _${rebaseLabel}_ hashtag to this change`,\n )\n .replace(\n 'checking the rebase/retry box above',\n `adding the _${rebaseLabel}_ hashtag to this change`,\n )\n .replace(regEx(/\\b(?:Pull Request|PR)/g), 'change')\n // Remove HTML tags not supported in Gerrit markdown\n .replace(regEx(/<\\/?summary>/g), '**')\n .replace(regEx(/<\\/?(details|blockquote)>/g), '')\n .replace(regEx(`\\n---\\n\\n.*?<!-- rebase-check -->.*?\\n`), '')\n .replace(regEx(/<!--renovate-(?:debug|config-hash):.*?-->/g), '')\n // Remove zero-width-space not supported in Gerrit markdown\n .replace(regEx(/&#8203;/g), '')\n );\n}\n\nexport function maxBodyLength(): number {\n return MAX_GERRIT_COMMENT_SIZE;\n}\n\nexport async function deleteLabel(\n number: number,\n label: string,\n): Promise<void> {\n await client.deleteHashtag(number, label);\n}\n\nexport function ensureCommentRemoval(\n _ensureCommentRemoval:\n | EnsureCommentRemovalConfigByTopic\n | EnsureCommentRemovalConfigByContent,\n): Promise<void> {\n return Promise.resolve();\n}\n\nexport function ensureIssueClosing(_title: string): Promise<void> {\n return Promise.resolve();\n}\n\nexport function ensureIssue(\n _issueConfig: EnsureIssueConfig,\n): Promise<EnsureIssueResult | null> {\n return Promise.resolve(null);\n}\n\nexport function findIssue(_title: string): Promise<Issue | null> {\n return Promise.resolve(null);\n}\n\nexport function getIssueList(): Promise<Issue[]> {\n return Promise.resolve([]);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["ensureTrailingSlash","getEnv","client","getGerritRepoUrl","repoFingerprint","REQUEST_DETAILS_FOR_PRS","mapGerritChangeToPr","TAG_PULL_REQUEST_BODY","DateTime","isTruthy","mapBranchStatusToLabel","parseJson","smartTruncate","readOnlyIssueBody","regEx","MAX_GERRIT_COMMENT_SIZE"],"sources":["../../../../lib/modules/platform/gerrit/index.ts"],"sourcesContent":["import { isTruthy } from '@sindresorhus/is';\nimport { DateTime } from 'luxon';\nimport semver from 'semver';\nimport { logger } from '../../../logger/index.ts';\nimport type { BranchStatus } from '../../../types/index.ts';\nimport { parseJson } from '../../../util/common.ts';\nimport { getEnv } from '../../../util/env.ts';\nimport * as git from '../../../util/git/index.ts';\nimport { setBaseUrl } from '../../../util/http/gerrit.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { ensureTrailingSlash } from '../../../util/url.ts';\nimport type {\n BranchStatusConfig,\n CreatePRConfig,\n EnsureCommentConfig,\n EnsureCommentRemovalConfigByContent,\n EnsureCommentRemovalConfigByTopic,\n EnsureIssueConfig,\n EnsureIssueResult,\n FindPRConfig,\n Issue,\n MergePRConfig,\n PlatformParams,\n PlatformResult,\n Pr,\n RepoParams,\n RepoResult,\n UpdatePrConfig,\n} from '../types.ts';\nimport { repoFingerprint } from '../util.ts';\n\nimport { smartTruncate } from '../utils/pr-body.ts';\nimport { readOnlyIssueBody } from '../utils/read-only-issue-body.ts';\nimport { client } from './client.ts';\nimport { configureScm } from './scm.ts';\nimport type { GerritLabelTypeInfo, GerritProjectInfo } from './types.ts';\nimport {\n MAX_GERRIT_COMMENT_SIZE,\n REQUEST_DETAILS_FOR_PRS,\n TAG_PULL_REQUEST_BODY,\n getGerritRepoUrl,\n mapBranchStatusToLabel,\n mapGerritChangeToPr,\n} from './utils.ts';\n\nexport const id = 'gerrit';\n\nconst defaults: {\n endpoint?: string;\n} = {};\n\nlet config: {\n repository?: string;\n head?: string;\n config?: GerritProjectInfo;\n labels: Record<string, GerritLabelTypeInfo>;\n gerritUsername?: string;\n} = {\n labels: {},\n};\n\nexport function writeToConfig(newConfig: typeof config): void {\n config = { ...config, ...newConfig };\n}\n\nexport async function initPlatform({\n endpoint,\n username,\n password,\n}: PlatformParams): Promise<PlatformResult> {\n logger.debug(`initPlatform(${endpoint!}, ${username!})`);\n if (!endpoint) {\n throw new Error('Init: You must configure a Gerrit Server endpoint');\n }\n if (!(username && password)) {\n throw new Error(\n 'Init: You must configure a Gerrit Server username/password',\n );\n }\n config.gerritUsername = username;\n defaults.endpoint = ensureTrailingSlash(endpoint);\n setBaseUrl(defaults.endpoint);\n\n let gerritVersion: string;\n try {\n const env = getEnv();\n /* v8 ignore if: experimental feature */\n if (env.RENOVATE_X_PLATFORM_VERSION) {\n gerritVersion = env.RENOVATE_X_PLATFORM_VERSION;\n } else {\n gerritVersion = await client.getGerritVersion({\n username,\n password,\n });\n }\n } catch (err) {\n logger.debug(\n { err },\n 'Error authenticating with Gerrit. Check your credentials',\n );\n throw new Error('Init: Authentication failure');\n }\n\n logger.debug('Gerrit version is: ' + gerritVersion);\n // Example: 3.13.0-rc3-148-gb478dbbb57\n const parsed = semver.parse(gerritVersion);\n if (!parsed) {\n throw new Error(`Unable to parse Gerrit version: ${gerritVersion}`);\n }\n gerritVersion = `${parsed.major}.${parsed.minor}.${parsed.patch}`;\n client.setGerritVersion(gerritVersion);\n\n const platformConfig: PlatformResult = {\n endpoint: defaults.endpoint,\n };\n return platformConfig;\n}\n\n/**\n * Get all state=\"ACTIVE\" and type=\"CODE\" repositories from gerrit\n */\nexport async function getRepos(): Promise<string[]> {\n logger.debug(`getRepos()`);\n return await client.getRepos();\n}\n\n/**\n * Clone repository to local directory\n * @param config\n */\nexport async function initRepo({\n repository,\n cloneSubmodules,\n cloneSubmodulesFilter,\n gitUrl,\n}: RepoParams): Promise<RepoResult> {\n logger.debug(`initRepo(${repository}, ${gitUrl})`);\n const projectInfo = await client.getProjectInfo(repository);\n const branchInfo = await client.getBranchInfo(repository);\n\n config = {\n ...config,\n repository,\n head: branchInfo.revision,\n config: projectInfo,\n labels: projectInfo.labels ?? {},\n };\n const baseUrl = defaults.endpoint!;\n const url = getGerritRepoUrl(repository, baseUrl);\n configureScm(repository, config.gerritUsername!);\n await git.initRepo({ url, cloneSubmodules, cloneSubmodulesFilter });\n\n //abandon \"open\" and \"rejected\" changes at startup\n const rejectedChanges = await client.findChanges(config.repository!, {\n branchName: '',\n state: 'open',\n label: '-2',\n });\n for (const change of rejectedChanges) {\n await client.abandonChange(\n change._number,\n 'This change has been abandoned as it was voted with Code-Review -2.',\n );\n logger.info(\n `Abandoned change ${change._number} with Code-Review -2 in repository ${repository}`,\n );\n }\n const repoConfig: RepoResult = {\n defaultBranch: config.head!,\n isFork: false,\n repoFingerprint: repoFingerprint(repository, baseUrl),\n };\n return repoConfig;\n}\n\nexport async function findPr(findPRConfig: FindPRConfig): Promise<Pr | null> {\n const change = (\n await client.findChanges(config.repository!, {\n ...findPRConfig,\n singleChange: true,\n requestDetails: REQUEST_DETAILS_FOR_PRS,\n })\n ).pop();\n return change\n ? mapGerritChangeToPr(change, {\n sourceBranch: findPRConfig.branchName,\n })\n : null;\n}\n\nexport async function getPr(number: number): Promise<Pr | null> {\n try {\n const change = await client.getChange(number, REQUEST_DETAILS_FOR_PRS);\n return mapGerritChangeToPr(change);\n } catch (err) {\n if (err.statusCode === 404) {\n return null;\n }\n throw err;\n }\n}\n\nexport async function updatePr(prConfig: UpdatePrConfig): Promise<void> {\n logger.debug(`updatePr(${prConfig.number}, ${prConfig.prTitle})`);\n // prConfig.prBody will only be set if the body has changed\n if (prConfig.prBody) {\n await client.addMessage(\n prConfig.number,\n prConfig.prBody,\n TAG_PULL_REQUEST_BODY,\n );\n }\n if (prConfig.targetBranch) {\n await client.moveChange(prConfig.number, prConfig.targetBranch);\n }\n if (prConfig.state && prConfig.state === 'closed') {\n await client.abandonChange(prConfig.number);\n }\n}\n\nexport async function createPr(prConfig: CreatePRConfig): Promise<Pr | null> {\n logger.debug(\n `createPr(${prConfig.sourceBranch}, ${prConfig.prTitle}, ${\n prConfig.labels?.toString() ?? ''\n })`,\n );\n const change = (\n await client.findChanges(config.repository!, {\n branchName: prConfig.sourceBranch,\n targetBranch: prConfig.targetBranch,\n state: 'open',\n singleChange: true,\n requestDetails: REQUEST_DETAILS_FOR_PRS,\n })\n ).pop();\n if (change === undefined) {\n throw new Error(\n `the change should be created automatically from previous push to refs/for/${prConfig.sourceBranch}`,\n );\n }\n const created = DateTime.fromISO(change.created.replace(' ', 'T'), {});\n const fiveMinutesAgo = DateTime.utc().minus({ minutes: 5 });\n if (created < fiveMinutesAgo) {\n throw new Error(\n `the change should have been created automatically from previous push to refs/for/${prConfig.sourceBranch}, but it was not created in the last 5 minutes (${change.created})`,\n );\n }\n await client.addMessage(\n change._number,\n prConfig.prBody,\n TAG_PULL_REQUEST_BODY,\n );\n return mapGerritChangeToPr(change, {\n sourceBranch: prConfig.sourceBranch,\n prBody: prConfig.prBody,\n });\n}\n\nexport async function getBranchPr(\n branchName: string,\n targetBranch?: string,\n): Promise<Pr | null> {\n const change = await client.getBranchChange(config.repository!, {\n branchName,\n state: 'open',\n targetBranch,\n requestDetails: REQUEST_DETAILS_FOR_PRS,\n });\n\n return change\n ? mapGerritChangeToPr(change, {\n sourceBranch: branchName,\n })\n : null;\n}\n\nexport async function getPrList(): Promise<Pr[]> {\n const changes = await client.findChanges(config.repository!, {\n branchName: '',\n requestDetails: REQUEST_DETAILS_FOR_PRS,\n });\n return changes.map((change) => mapGerritChangeToPr(change)).filter(isTruthy);\n}\n\nexport async function mergePr(config: MergePRConfig): Promise<boolean> {\n logger.debug(\n `mergePr(${config.id}, ${config.branchName!}, ${config.strategy!})`,\n );\n try {\n const change = await client.submitChange(config.id);\n return change.status === 'MERGED';\n } catch (err) {\n if (err.statusCode === 409) {\n logger.warn(\n { err },\n \"Can't submit the change, because the submit rule doesn't allow it.\",\n );\n return false;\n }\n throw err;\n }\n}\n\n/**\n * BranchStatus for Gerrit assumes that the branchName refers to a change.\n * @param branchName\n */\nexport async function getBranchStatus(\n branchName: string,\n): Promise<BranchStatus> {\n logger.debug(`getBranchStatus(${branchName})`);\n const change = (\n await client.findChanges(config.repository!, {\n state: 'open',\n branchName,\n singleChange: true,\n requestDetails: ['LABELS', 'SUBMITTABLE', 'CHECK'],\n })\n ).pop();\n if (change) {\n const hasProblems = change.problems && change.problems.length > 0;\n if (hasProblems) {\n return 'red';\n }\n const hasBlockingLabels = Object.values(change.labels ?? {}).some(\n (label) => label.blocking,\n );\n if (hasBlockingLabels) {\n return 'red';\n }\n if (change.submittable) {\n return 'green';\n }\n }\n return 'yellow';\n}\n\n/**\n * check the gerrit-change for the presence of the corresponding \"$context\" Gerrit label if configured,\n * return 'yellow' if not configured or not set\n * @param branchName\n * @param context renovate/stability-days || ...\n */\nexport async function getBranchStatusCheck(\n branchName: string,\n context: string,\n): Promise<BranchStatus | null> {\n const labelConfig = config.labels[context];\n if (labelConfig) {\n const change = (\n await client.findChanges(config.repository!, {\n branchName,\n state: 'open',\n singleChange: true,\n requestDetails: ['LABELS'],\n })\n ).pop();\n if (change) {\n const label = change.labels![context];\n if (label) {\n // Check for rejected or blocking first, as a label could have both rejected and approved\n if (label.rejected || label.blocking) {\n return 'red';\n }\n if (label.approved) {\n return 'green';\n }\n }\n }\n }\n return 'yellow';\n}\n\n/**\n * Apply the branch state $context to the corresponding gerrit label (if available)\n * context === \"renovate/stability-days\" / \"renovate/merge-confidence\" and state === \"green\"/...\n * @param branchStatusConfig\n */\nexport async function setBranchStatus(\n branchStatusConfig: BranchStatusConfig,\n): Promise<void> {\n const label = config.labels[branchStatusConfig.context];\n const labelValue =\n label && mapBranchStatusToLabel(branchStatusConfig.state, label);\n if (branchStatusConfig.context && labelValue) {\n const change = (\n await client.findChanges(config.repository!, {\n branchName: branchStatusConfig.branchName,\n state: 'open',\n singleChange: true,\n requestDetails: ['LABELS'],\n })\n ).pop();\n\n const labelKey = branchStatusConfig.context;\n if (!change?.labels || !Object.hasOwn(change.labels, labelKey)) {\n return;\n }\n\n await client.setLabel(change._number, labelKey, labelValue);\n }\n}\n\nexport async function getRawFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<string | null> {\n const repo = repoName ?? config.repository;\n if (!repo) {\n logger.debug('No repo so cannot getRawFile');\n return null;\n }\n const branch =\n branchOrTag ??\n (repo === config.repository ? (config.head ?? 'HEAD') : 'HEAD');\n const result = await client.getFile(repo, branch, fileName);\n return result;\n}\n\nexport async function getJsonFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<any> {\n const raw = await getRawFile(fileName, repoName, branchOrTag);\n return parseJson(raw, fileName);\n}\n\nexport async function addReviewers(\n number: number,\n reviewers: string[],\n): Promise<void> {\n await client.addReviewers(number, reviewers);\n}\n\n/**\n * add \"CC\" (only one possible)\n */\nexport async function addAssignees(\n number: number,\n assignees: string[],\n): Promise<void> {\n if (assignees.length) {\n if (assignees.length > 1) {\n logger.debug(\n `addAssignees(${number}, ${assignees.toString()}) called with more then one assignee! Gerrit only supports one assignee! Using the first from list.`,\n );\n }\n await client.addAssignee(number, assignees[0]);\n }\n}\n\nexport async function ensureComment(\n ensureComment: EnsureCommentConfig,\n): Promise<boolean> {\n logger.debug(\n `ensureComment(${ensureComment.number}, ${ensureComment.topic!}, ${\n ensureComment.content\n })`,\n );\n await client.addMessageIfNotAlreadyExists(\n ensureComment.number,\n ensureComment.content,\n ensureComment.topic ?? undefined,\n );\n return true;\n}\n\nexport function massageMarkdown(prBody: string, rebaseLabel: string): string {\n return (\n smartTruncate(readOnlyIssueBody(prBody), maxBodyLength())\n .replace('Branch creation', 'Change creation')\n .replace(\n 'close this Pull Request unmerged',\n 'abandon or vote this change with Code-Review -2',\n )\n .replace(\n 'Close this PR',\n 'Abandon or vote this change with Code-Review -2',\n )\n .replace(\n 'you tick the rebase/retry checkbox',\n `you add the _${rebaseLabel}_ hashtag to this change`,\n )\n .replace(\n 'checking the rebase/retry box above',\n `adding the _${rebaseLabel}_ hashtag to this change`,\n )\n .replace(regEx(/\\b(?:Pull Request|PR)/g), 'change')\n // Remove HTML tags not supported in Gerrit markdown\n .replace(regEx(/<\\/?summary>/g), '**')\n .replace(regEx(/<\\/?(details|blockquote)>/g), '')\n .replace(regEx(`\\n---\\n\\n.*?<!-- rebase-check -->.*?\\n`), '')\n .replace(regEx(/<!--renovate-(?:debug|config-hash):.*?-->/g), '')\n // Remove zero-width-space not supported in Gerrit markdown\n .replace(regEx(/&#8203;/g), '')\n );\n}\n\nexport function maxBodyLength(): number {\n return MAX_GERRIT_COMMENT_SIZE;\n}\n\nexport async function deleteLabel(\n number: number,\n label: string,\n): Promise<void> {\n await client.deleteHashtag(number, label);\n}\n\nexport function ensureCommentRemoval(\n _ensureCommentRemoval:\n | EnsureCommentRemovalConfigByTopic\n | EnsureCommentRemovalConfigByContent,\n): Promise<void> {\n return Promise.resolve();\n}\n\nexport function ensureIssueClosing(_title: string): Promise<void> {\n return Promise.resolve();\n}\n\nexport function ensureIssue(\n _issueConfig: EnsureIssueConfig,\n): Promise<EnsureIssueResult | null> {\n return Promise.resolve(null);\n}\n\nexport function findIssue(_title: string): Promise<Issue | null> {\n return Promise.resolve(null);\n}\n\nexport function getIssueList(): Promise<Issue[]> {\n return Promise.resolve([]);\n}\n"],"mappings":"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"}
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.94.4",
4
+ "version": "42.94.6",
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.94.4 config files (https://renovatebot.com/)",
2
+ "title": "JSON schema for Renovate 42.94.6 config files (https://renovatebot.com/)",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
- "x-renovate-version": "42.94.4",
4
+ "x-renovate-version": "42.94.6",
5
5
  "allowComments": true,
6
6
  "type": "object",
7
7
  "properties": {