Renovate: Git submodules always result in a new commit on each CLI run

Created on 17 Dec 2019  路  8Comments  路  Source: renovatebot/renovate

Hey there, first of all I'd like to thank you for this awesome tool, it's really nice.

What Renovate type are you using?

I'm using self-hosted renovate CLI from your official docker hub image, with my self-hosted local gitlab server. Latest version at the time of posting.

Describe the bug

Normally, for example with nuget updates, renovate bot creates a branch with the update and asks for a merge request. With subsequent runs of the CLI tool, assuming that the state of the repos/versions didn't change, it'll find out that merge request for that version is already created and there is no new version, so nothing to update in this regard. PR will remain in the same state as it was before.

With git submodules, creation works in a similar way, but for some reason each run of the CLI results in a new commit in the branch with the merge request, updating to exactly the same digest, without submodule change. This isn't problematic in terms of the history, because of rebase and cleanup, but it's problematic in terms of CI and auto-merge, as if we assume that CI takes e.g. 15 minutes to finish and renovate bot runs each 10, then it means CI will never be able to finish fast enough for renovate bot to merge the PR, and actually each run of renovate bot will cause extra overhead for the CI to do, which can be very devastating if renovate bot CLI is run often enough. The solution is to have it act exactly the same as with nuget (and probably other) managers, which is, do not change the state of the branch if no new update is found.

Did you see anything helpful in debug logs?

Full debug log from a single run attached below. I didn't see anything helpful, but I'm not familiar enough with your project. I hope it'll come useful.


Expand

docker.io/renovate/renovate:slim
DEBUG: File config
       "config": {
         "autodiscover": false,
         "autodiscoverFilter": "redacted_orgName/*",
         "baseBranches": ["develop", "master"],
         "endpoint": "https://redacted_selfHostedRepoURL.corp/api/v4/",
         "git-submodules": {"enabled": true},
         "logLevel": "debug",
         "onboardingConfig": {
           "extends": [
             "config:base",
             ":automergeDigest",
             ":automergeMinor",
             ":disableRateLimiting"
           ]
         },
         "packageRules": [
           {"updateTypes": ["minor", "patch", "pin", "digest"], "automerge": true}
         ],
         "persistRepoData": true,
         "platform": "gitlab",
         "repositories": ["redacted_orgName/srv/redacted_mainProjectName"],
         "token": "***********"
       }
DEBUG: CLI config
       "config": {}
DEBUG: Env config
       "config": {"hostRules": [], "binarySource": "docker"}
DEBUG: Combined config
       "config": {
         "autodiscover": false,
         "autodiscoverFilter": "redacted_orgName/*",
         "baseBranches": ["develop", "master"],
         "endpoint": "https://redacted_selfHostedRepoURL.corp/api/v4/",
         "git-submodules": {"enabled": true},
         "logLevel": "debug",
         "onboardingConfig": {
           "extends": [
             "config:base",
             ":automergeDigest",
             ":automergeMinor",
             ":disableRateLimiting"
           ]
         },
         "packageRules": [
           {"updateTypes": ["minor", "patch", "pin", "digest"], "automerge": true}
         ],
         "persistRepoData": true,
         "platform": "gitlab",
         "repositories": ["redacted_orgName/srv/redacted_mainProjectName"],
         "token": "***********",
         "hostRules": [],
         "binarySource": "docker"
       }
(node:1) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification.
 INFO: Using platform gitAuthor: Domeradzki 艁ukasz <[email protected]>
DEBUG: Using baseDir: /tmp/renovate
DEBUG: Using cacheDir: /tmp/renovate/cache
DEBUG: Initializing Renovate internal cache into /tmp/renovate/cache/renovate/renovate-cache-v1
DEBUG: Limits.init enter method
DEBUG: Limits.init prCommitsPerRunLimit processing
DEBUG: Limits.init prCommitsPerRunLimit variable is not set. Ignoring prCommitsPerRunLimit
 INFO: Renovating repository (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using localDir: /tmp/renovate/repos/gitlab/redacted_orgName/srv/redacted_mainProjectName (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: redacted_orgName/srv/redacted_mainProjectName default branch = develop (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Bot [email protected] (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Enabling Git FS (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: redacted_orgName/srv/redacted_mainProjectName http URL = https://redacted_selfHostedRepoURL.corp/redacted_orgName/srv/redacted_mainProjectName.git (repository=redacted_orgName/srv/redacted_mainProjectName)
 INFO: Initialising git repository into /tmp/renovate/repos/gitlab/redacted_orgName/srv/redacted_mainProjectName (repository=redacted_orgName/srv/redacted_mainProjectName)
 INFO: git clone completed (repository=redacted_orgName/srv/redacted_mainProjectName)
       "cloneSeconds": 0.5
DEBUG: Cloning git submodule at submodules/redacted_submoduleProjectName (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: latest commit (repository=redacted_orgName/srv/redacted_mainProjectName)
       "latestCommitDate": "2019-12-17 09:29:38 +0100"
DEBUG: No git private key present - commits will be unsigned (repository=redacted_orgName/srv/redacted_mainProjectName)
 INFO: Setting git author (repository=redacted_orgName/srv/redacted_mainProjectName)
       "gitAuthor": {"name": "Domeradzki 艁ukasz", "email": "[email protected]"}
DEBUG: resetMemCache() (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: detectSemanticCommits() (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: getCommitMessages (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Semantic commits detection: unknown (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: No semantic commits detected (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: checkOnboarding() (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: isOnboarded() (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: findFile(renovate.json) (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: config file exists (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: ensureIssueClosing() (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Repo is onboarded (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Found renovate.json config file (repository=redacted_orgName/srv/redacted_mainProjectName)
 INFO: Repository config (repository=redacted_orgName/srv/redacted_mainProjectName)
       "configFile": "renovate.json",
       "config": {
         "extends": [
           "config:base",
           ":automergeDigest",
           ":automergeMinor",
           ":disableRateLimiting"
         ]
       }
DEBUG: migrateAndValidate() (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: No config migration necessary (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: massaged config (repository=redacted_orgName/srv/redacted_mainProjectName)
       "config": {
         "extends": [
           "config:base",
           ":automergeDigest",
           ":automergeMinor",
           ":disableRateLimiting"
         ]
       }
DEBUG: migrated config (repository=redacted_orgName/srv/redacted_mainProjectName)
       "config": {
         "extends": [
           "config:base",
           ":automergeDigest",
           ":automergeMinor",
           ":disableRateLimiting"
         ]
       }
DEBUG: Found repo ignorePaths (repository=redacted_orgName/srv/redacted_mainProjectName)
       "ignorePaths": [
         "**/node_modules/**",
         "**/bower_components/**",
         "**/vendor/**",
         "**/examples/**",
         "**/__tests__/**",
         "**/test/**",
         "**/tests/**"
       ]
DEBUG: checkBaseBranch() (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: config.repoIsOnboarded=true (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Setting baseBranch to develop (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Setting baseBranch to develop (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: latest commit (repository=redacted_orgName/srv/redacted_mainProjectName)
       "branchName": "develop",
       "latestCommitDate": "2019-12-17 09:29:38 +0100"
DEBUG: Setting branchPrefix: renovate/ (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: No vulnerability alerts found (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: processRepo() (repository=redacted_orgName/srv/redacted_mainProjectName)
 INFO: baseBranches (repository=redacted_orgName/srv/redacted_mainProjectName)
       "baseBranches": ["develop", "master"]
DEBUG: baseBranch: develop (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Setting baseBranch to develop (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Setting baseBranch to develop (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: latest commit (repository=redacted_orgName/srv/redacted_mainProjectName)
       "branchName": "develop",
       "latestCommitDate": "2019-12-17 09:29:38 +0100"
DEBUG: extractAndUpdate() (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)tasks/[^/]+\.ya?ml$ for manager ansible (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)WORKSPACE$ for manager bazel (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: \.bzl$ for manager bazel (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: buildkite\.ya?ml for manager buildkite (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: \.buildkite/.+\.ya?ml$ for manager buildkite (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)Gemfile$ for manager bundler (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)Cargo.toml$ for manager cargo (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/).circleci/config.yml$ for manager circleci (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)([\w-]*)composer.json$ for manager composer (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)deps\.edn$ for manager deps-edn (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)docker-compose[^/]*\.ya?ml$ for manager docker-compose (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)Dockerfile$ for manager dockerfile (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)Dockerfile\.[^/]*$ for manager dockerfile (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Matched 1 file(s) for manager dockerfile: Dockerfile (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Found a multistage build stage name (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Found a multistage build stage name (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Found a multistage build stage name (repository=redacted_orgName/srv/redacted_mainProjectName)
 INFO: Found dockerfile package files (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/).drone.yml$ for manager droneci (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/).gitmodules$ for manager git-submodules (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Matched 1 file(s) for manager git-submodules: .gitmodules (repository=redacted_orgName/srv/redacted_mainProjectName)
 INFO: Found git-submodules package files (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: ^\.github/main.workflow$ for manager github-actions (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: ^\.github/workflows/[^/]+\.ya?ml$ for manager github-actions (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: ^\.gitlab-ci\.yml$ for manager gitlabci (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Matched 1 file(s) for manager gitlabci: .gitlab-ci.yml (repository=redacted_orgName/srv/redacted_mainProjectName)
 INFO: Found gitlabci package files (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: ^\.gitlab-ci\.yml$ for manager gitlabci-include (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Matched 1 file(s) for manager gitlabci-include: .gitlab-ci.yml (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)go.mod$ for manager gomod (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: \.gradle(\.kts)?$ for manager gradle (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)gradle.properties$ for manager gradle (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)gradle/wrapper/gradle-wrapper.properties$ for manager gradle-wrapper (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)requirements.yaml$ for manager helm-requirements (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: ^Formula/[^/]+[.]rb$ for manager homebrew (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)project\.clj$ for manager leiningen (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: \.pom\.xml$ for manager maven (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)pom\.xml$ for manager maven (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)package.js$ for manager meteor (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)mix\.exs$ for manager mix (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)package.json$ for manager npm (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: \.csproj$ for manager nuget (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Matched 1 file(s) for manager nuget: src/redacted_mainProjectName.csproj (repository=redacted_orgName/srv/redacted_mainProjectName)
 INFO: Found nuget package files (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: ^.nvmrc$ for manager nvm (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)([\w-]*)requirements.(txt|pip)$ for manager pip_requirements (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)setup.py$ for manager pip_setup (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)Pipfile$ for manager pipenv (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)pyproject\.toml$ for manager poetry (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)pubspec\.ya?ml$ for manager pub (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: \.sbt$ for manager sbt (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)Package\.swift for manager swift (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: \.tf$ for manager terraform (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: ^.travis.yml$ for manager travis (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)\.ruby-version$ for manager ruby-version (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Found 4 package file(s) (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: manager.fetchUpdates() (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Dependency docker has unsupported value stable (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Dependency docker has unsupported value stable (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: getLabels(https://mcr.microsoft.com, dotnet/core/sdk, latest) (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: getManifestResponse(https://mcr.microsoft.com, dotnet/core/sdk, latest) (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: packageFiles with updates (repository=redacted_orgName/srv/redacted_mainProjectName)
       "config": {
         "dockerfile": [
           {
             "packageFile": "Dockerfile",
             "manager": "dockerfile",
             "deps": [
               {
                 "skipReason": "contains-variable",
                 "datasource": "docker",
                 "managerData": {
                   "lineNumber": 3,
                   "fromPrefix": "FROM",
                   "fromSuffix": "AS protogen"
                 },
                 "depType": "stage",
                 "updates": []
               },
               {
                 "skipReason": "contains-variable",
                 "datasource": "docker",
                 "managerData": {
                   "lineNumber": 7,
                   "fromPrefix": "FROM",
                   "fromSuffix": "AS build"
                 },
                 "depType": "stage",
                 "updates": []
               },
               {
                 "skipReason": "contains-variable",
                 "datasource": "docker",
                 "managerData": {
                   "lineNumber": 14,
                   "fromPrefix": "FROM",
                   "fromSuffix": "AS runtime"
                 },
                 "depType": "final",
                 "updates": []
               }
             ]
           }
         ],
         "git-submodules": [
           {
             "packageFile": ".gitmodules",
             "manager": "git-submodules",
             "deps": [
               {
                 "depName": "submodules/redacted_submoduleProjectName",
                 "registryUrls": [
                   "https://oauth2:**redacted**@redacted_selfHostedRepoURL.corp/redacted_orgName/srv/redacted_submoduleProjectName.git",
                   "develop"
                 ],
                 "currentValue": "82172a4a48db8327c37177b8869aa24eeefb7c96",
                 "currentDigest": "82172a4a48db8327c37177b8869aa24eeefb7c96",
                 "updates": [
                   {
                     "updateType": "digest",
                     "newValue": "6a447e6fe4b854fc6abccdf7c9746e82a646a62d",
                     "newVersion": "6a447e6fe4b854fc6abccdf7c9746e82a646a62d",
                     "newDigest": "6a447e6fe4b854fc6abccdf7c9746e82a646a62d",
                     "newDigestShort": "6a447e6"
                   }
                 ],
                 "warnings": [],
                 "sourceUrl": "https://:**redacted**@redacted_selfHostedRepoURL.corp/redacted_orgName/srv/redacted_submoduleProjectName.git"
               }
             ],
             "datasource": "gitSubmodules"
           }
         ],
         "gitlabci": [
           {
             "packageFile": ".gitlab-ci.yml",
             "manager": "gitlabci",
             "deps": [
               {
                 "depName": "mcr.microsoft.com/dotnet/core/sdk",
                 "currentValue": "3.1",
                 "datasource": "docker",
                 "managerData": {"lineNumber": 0},
                 "depType": "image",
                 "updates": [],
                 "warnings": [],
                 "sourceUrl": null,
                 "dockerRegistry": "https://mcr.microsoft.com",
                 "dockerRepository": "dotnet/core/sdk"
               },
               {
                 "depName": "docker",
                 "currentValue": "stable",
                 "datasource": "docker",
                 "managerData": {"lineNumber": 37},
                 "depType": "image",
                 "updates": [],
                 "warnings": [],
                 "skipReason": "unsupported-value"
               },
               {
                 "depName": "docker",
                 "currentValue": "stable",
                 "datasource": "docker",
                 "managerData": {"lineNumber": 72},
                 "depType": "image",
                 "updates": [],
                 "warnings": [],
                 "skipReason": "unsupported-value"
               }
             ]
           }
         ],
         "nuget": [
           {
             "packageFile": "src/redacted_mainProjectName.csproj",
             "manager": "nuget",
             "deps": [
               {
                 "depType": "nuget",
                 "depName": "Newtonsoft.Json",
                 "currentValue": "12.0.3",
                 "managerData": {"lineNumber": 10},
                 "datasource": "nuget",
                 "updates": [],
                 "warnings": [],
                 "sourceUrl": "https://github.com/JamesNK/Newtonsoft.Json"
               },
               {
                 "depType": "nuget",
                 "depName": "Dapper",
                 "currentValue": "1.60.6",
                 "managerData": {"lineNumber": 12},
                 "datasource": "nuget",
                 "updates": [
                   {
                     "fromVersion": "1.60.6",
                     "toVersion": "2.0.30",
                     "newValue": "2.0.30",
                     "newMajor": 2,
                     "newMinor": 0,
                     "updateType": "major",
                     "isSingleVersion": true
                   }
                 ],
                 "warnings": [],
                 "sourceUrl": "https://github.com/StackExchange/Dapper"
               },
               {
                 "depType": "nuget",
                 "depName": "Google.Protobuf",
                 "currentValue": "3.11.2",
                 "managerData": {"lineNumber": 13},
                 "datasource": "nuget",
                 "updates": [],
                 "warnings": [],
                 "sourceUrl": "https://github.com/protocolbuffers/protobuf"
               },
               {
                 "depType": "nuget",
                 "depName": "Microsoft.Extensions.Hosting",
                 "currentValue": "2.2.0",
                 "managerData": {"lineNumber": 14},
                 "datasource": "nuget",
                 "updates": [
                   {
                     "fromVersion": "2.2.0",
                     "toVersion": "3.1.0",
                     "newValue": "3.1.0",
                     "newMajor": 3,
                     "newMinor": 1,
                     "updateType": "major",
                     "isSingleVersion": true
                   }
                 ],
                 "warnings": [],
                 "sourceUrl": "https://github.com/aspnet/Extensions"
               },
               {
                 "depType": "nuget",
                 "depName": "Npgsql",
                 "currentValue": "4.1.2",
                 "managerData": {"lineNumber": 15},
                 "datasource": "nuget",
                 "updates": [],
                 "warnings": [],
                 "sourceUrl": "https://github.com/npgsql/npgsql"
               },
               {
                 "depType": "nuget",
                 "depName": "RabbitMQ.Client",
                 "currentValue": "5.1.2",
                 "managerData": {"lineNumber": 16},
                 "datasource": "nuget",
                 "updates": [],
                 "warnings": [],
                 "sourceUrl": null
               }
             ]
           }
         ]
       }
DEBUG: branchifyUpgrades (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: 3 flattened updates found: submodules/redacted_submoduleProjectName, Dapper, Microsoft.Extensions.Hosting (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using group branchName template (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Dependency Microsoft.Extensions.Hosting is part of group aspnet Extensions monorepo (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Returning 3 branch(es) (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: generateBranchConfig(1) (repository=redacted_orgName/srv/redacted_mainProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: hasGroupName: false (repository=redacted_orgName/srv/redacted_mainProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: groupEligible: false (repository=redacted_orgName/srv/redacted_mainProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: useGroupSettings: false (repository=redacted_orgName/srv/redacted_mainProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: generateBranchConfig(1) (repository=redacted_orgName/srv/redacted_mainProjectName, branch=renovate/develop-dapper-2.x)
DEBUG: hasGroupName: false (repository=redacted_orgName/srv/redacted_mainProjectName, branch=renovate/develop-dapper-2.x)
DEBUG: groupEligible: false (repository=redacted_orgName/srv/redacted_mainProjectName, branch=renovate/develop-dapper-2.x)
DEBUG: useGroupSettings: false (repository=redacted_orgName/srv/redacted_mainProjectName, branch=renovate/develop-dapper-2.x)
DEBUG: generateBranchConfig(1) (repository=redacted_orgName/srv/redacted_mainProjectName, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: hasGroupName: true (repository=redacted_orgName/srv/redacted_mainProjectName, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: groupEligible: false (repository=redacted_orgName/srv/redacted_mainProjectName, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: useGroupSettings: false (repository=redacted_orgName/srv/redacted_mainProjectName, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: config.repoIsOnboarded=true (repository=redacted_orgName/srv/redacted_mainProjectName)
 INFO: Processing 3 branches: renovate/develop-dapper-2.x, renovate/develop-major-aspnet-extensions-monorepo, renovate/develop-submodules-redacted_submoduleProjectName-digest (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: processBranch with 1 upgrades (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Setting baseBranch to develop (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Setting baseBranch to develop (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: latest commit (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
       "branchName": "develop",
       "latestCommitDate": "2019-12-17 09:29:38 +0100"
DEBUG: getBranchPr(renovate/develop-submodules-redacted_submoduleProjectName-digest) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Got res with 1 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: getPr(16) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: getBranchStatus(renovate/develop-submodules-redacted_submoduleProjectName-digest) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Got res with 3 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: branchExists=true (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Branch pr rebase requested: false (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Branch has 1 upgrade(s) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Checking if PR has been edited (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Found existing branch PR (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Checking schedule(at any time, null) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: No schedule defined (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Branch already exists (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: getBranchPr(renovate/develop-submodules-redacted_submoduleProjectName-digest) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Got res with 1 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: getPr(16) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: getBranchStatus(renovate/develop-submodules-redacted_submoduleProjectName-digest) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Got res with 3 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Branch does not need rebasing (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Using parentBranch: renovate/develop-submodules-redacted_submoduleProjectName-digest (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: manager.getUpdatedPackageFiles() (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Updated 1 package files (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Updated 1 lock files (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
       "updatedArtifacts": ["submodules/redacted_submoduleProjectName"]
DEBUG: 2 file(s) to commit (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Committing files to branch renovate/develop-submodules-redacted_submoduleProjectName-digest (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
 INFO: files committed (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Checking if we can automerge branch (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: mergeStatus=no automerge (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Ensuring PR (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: There are 0 errors and 0 warnings (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: getBranchPr(renovate/develop-submodules-redacted_submoduleProjectName-digest) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Got res with 1 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: getPr(16) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: getBranchStatus(renovate/develop-submodules-redacted_submoduleProjectName-digest) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Got res with 0 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Found existing PR (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: getBranchStatus(renovate/develop-submodules-redacted_submoduleProjectName-digest) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Got res with 0 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Processing existing PR (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: getBranchStatus(renovate/develop-submodules-redacted_submoduleProjectName-digest) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Got res with 0 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: getBranchStatus() result (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
       "branchStatus": "pending",
       "branchName": "renovate/develop-submodules-redacted_submoduleProjectName-digest"
 INFO: PR updated (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
       "committedFiles": true,
       "pr": 16
DEBUG: Ensuring comment ":warning: Artifact update problem" in #16 is removed (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Getting comments for #16 (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Found 1 comments (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: Checking #16 for automerge (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
       "automerge": true,
       "automergeType": "pr",
       "automergeComment": "automergeComment"
DEBUG: PR is configured for automerge (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
 INFO: PR is not ready for merge (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=submodules/redacted_submoduleProjectName, branch=renovate/develop-submodules-redacted_submoduleProjectName-digest)
DEBUG: processBranch with 1 upgrades (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Setting baseBranch to develop (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Setting baseBranch to develop (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: latest commit (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
       "branchName": "develop",
       "latestCommitDate": "2019-12-17 09:29:38 +0100"
DEBUG: getBranchPr(renovate/develop-dapper-2.x) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Got res with 1 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: getPr(13) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: getBranchStatus(renovate/develop-dapper-2.x) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Got res with 3 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: branchExists=true (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Branch pr rebase requested: false (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Branch has 1 upgrade(s) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Checking if PR has been edited (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Found existing branch PR (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Checking schedule(at any time, null) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: No schedule defined (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Branch already exists (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: getBranchPr(renovate/develop-dapper-2.x) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Got res with 1 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: getPr(13) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: getBranchStatus(renovate/develop-dapper-2.x) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Got res with 3 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Branch does not need rebasing (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Using parentBranch: renovate/develop-dapper-2.x (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: manager.getUpdatedPackageFiles() (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: nuget.updateDependency(): undefined (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: No changes necessary (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: No package files need updating (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: No updated lock files in branch (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: No files to commit (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Checking if we can automerge branch (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: mergeStatus=no automerge (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Ensuring PR (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: There are 0 errors and 0 warnings (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: getBranchPr(renovate/develop-dapper-2.x) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Got res with 1 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: getPr(13) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: getBranchStatus(renovate/develop-dapper-2.x) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Got res with 3 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Found existing PR (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Repository URL does not match any known hosts (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Processing existing PR (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Merge Request #13 does not need updating (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: Checking #13 for automerge (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
       "automerge": false,
       "automergeType": "pr",
       "automergeComment": "automergeComment"
DEBUG: No automerge (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Dapper, branch=renovate/develop-dapper-2.x)
DEBUG: processBranch with 1 upgrades (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Setting baseBranch to develop (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Setting baseBranch to develop (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: latest commit (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
       "branchName": "develop",
       "latestCommitDate": "2019-12-17 09:29:38 +0100"
DEBUG: getBranchPr(renovate/develop-major-aspnet-extensions-monorepo) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Got res with 1 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: getPr(14) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: getBranchStatus(renovate/develop-major-aspnet-extensions-monorepo) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Got res with 3 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: branchExists=true (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Branch pr rebase requested: false (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Branch has 1 upgrade(s) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Checking if PR has been edited (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Found existing branch PR (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Checking schedule(at any time, null) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: No schedule defined (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Branch already exists (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: getBranchPr(renovate/develop-major-aspnet-extensions-monorepo) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Got res with 1 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: getPr(14) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: getBranchStatus(renovate/develop-major-aspnet-extensions-monorepo) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Got res with 3 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Branch does not need rebasing (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Using parentBranch: renovate/develop-major-aspnet-extensions-monorepo (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: manager.getUpdatedPackageFiles() (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: nuget.updateDependency(): undefined (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: No changes necessary (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: No package files need updating (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: No updated lock files in branch (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: No files to commit (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Checking if we can automerge branch (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: mergeStatus=no automerge (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Ensuring PR (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: There are 0 errors and 0 warnings (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: getBranchPr(renovate/develop-major-aspnet-extensions-monorepo) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Got res with 1 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: getPr(14) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: getBranchStatus(renovate/develop-major-aspnet-extensions-monorepo) (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Got res with 3 results (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Found existing PR (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Repository URL does not match any known hosts (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Processing existing PR (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Merge Request #14 does not need updating (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: Checking #14 for automerge (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
       "automerge": false,
       "automergeType": "pr",
       "automergeComment": "automergeComment"
DEBUG: No automerge (repository=redacted_orgName/srv/redacted_mainProjectName, dependencies=Microsoft.Extensions.Hosting, branch=renovate/develop-major-aspnet-extensions-monorepo)
DEBUG: baseBranch: master (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Setting baseBranch to master (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Setting baseBranch to master (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: latest commit (repository=redacted_orgName/srv/redacted_mainProjectName)
       "branchName": "master",
       "latestCommitDate": "2019-11-21 11:08:29 +0100"
DEBUG: extractAndUpdate() (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)tasks/[^/]+\.ya?ml$ for manager ansible (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)WORKSPACE$ for manager bazel (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: \.bzl$ for manager bazel (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: buildkite\.ya?ml for manager buildkite (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: \.buildkite/.+\.ya?ml$ for manager buildkite (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)Gemfile$ for manager bundler (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)Cargo.toml$ for manager cargo (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/).circleci/config.yml$ for manager circleci (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)([\w-]*)composer.json$ for manager composer (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)deps\.edn$ for manager deps-edn (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)docker-compose[^/]*\.ya?ml$ for manager docker-compose (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)Dockerfile$ for manager dockerfile (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)Dockerfile\.[^/]*$ for manager dockerfile (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/).drone.yml$ for manager droneci (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/).gitmodules$ for manager git-submodules (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: ^\.github/main.workflow$ for manager github-actions (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: ^\.github/workflows/[^/]+\.ya?ml$ for manager github-actions (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: ^\.gitlab-ci\.yml$ for manager gitlabci (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: ^\.gitlab-ci\.yml$ for manager gitlabci-include (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)go.mod$ for manager gomod (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: \.gradle(\.kts)?$ for manager gradle (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)gradle.properties$ for manager gradle (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)gradle/wrapper/gradle-wrapper.properties$ for manager gradle-wrapper (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)requirements.yaml$ for manager helm-requirements (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: ^Formula/[^/]+[.]rb$ for manager homebrew (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)project\.clj$ for manager leiningen (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: \.pom\.xml$ for manager maven (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)pom\.xml$ for manager maven (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)package.js$ for manager meteor (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)mix\.exs$ for manager mix (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)package.json$ for manager npm (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: \.csproj$ for manager nuget (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: ^.nvmrc$ for manager nvm (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)([\w-]*)requirements.(txt|pip)$ for manager pip_requirements (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)setup.py$ for manager pip_setup (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)Pipfile$ for manager pipenv (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)pyproject\.toml$ for manager poetry (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)pubspec\.ya?ml$ for manager pub (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: \.sbt$ for manager sbt (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)Package\.swift for manager swift (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: \.tf$ for manager terraform (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: ^.travis.yml$ for manager travis (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Using file match: (^|/)\.ruby-version$ for manager ruby-version (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Found 0 package file(s) (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: manager.fetchUpdates() (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: packageFiles with updates (repository=redacted_orgName/srv/redacted_mainProjectName)
       "config": {}
DEBUG: branchifyUpgrades (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: 0 flattened updates found:  (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Returning 0 branch(es) (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: config.repoIsOnboarded=true (repository=redacted_orgName/srv/redacted_mainProjectName)
 INFO: Processing 0 branches:  (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: branchPrefix: renovate/ (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Found 0 Renovate PRs (repository=redacted_orgName/srv/redacted_mainProjectName)
       "renovatePrs": []
DEBUG: Removing any stale branches (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: config.repoIsOnboarded=true (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Branch lists (repository=redacted_orgName/srv/redacted_mainProjectName)
       "branchList": [
         "renovate/develop-submodules-redacted_submoduleProjectName-digest",
         "renovate/develop-dapper-2.x",
         "renovate/develop-major-aspnet-extensions-monorepo"
       ],
       "renovateBranches": [
         "renovate/develop-dapper-2.x",
         "renovate/develop-major-aspnet-extensions-monorepo",
         "renovate/develop-submodules-redacted_submoduleProjectName-digest"
       ]
DEBUG: remainingBranches= (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: No branches to clean up (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: ensureIssueClosing() (repository=redacted_orgName/srv/redacted_mainProjectName)
 INFO: Finished repository (repository=redacted_orgName/srv/redacted_mainProjectName)
DEBUG: Host request stats (milliseconds)
       "hostStats": {
         "redacted_selfHostedRepoURL.corp": {
           "requests": 20,
           "sum": 7908,
           "average": 395,
           "median": 177
         },
         "registry.npmjs.org": {
           "requests": 6,
           "sum": 1030,
           "average": 172,
           "median": 27
         },
         "api.nuget.org": {"requests": 7, "sum": 226, "average": 32, "median": 36},
         "mcr.microsoft.com": {
           "requests": 4,
           "sum": 430,
           "average": 108,
           "median": 101
         },
         "azuresearch-usnc.nuget.org": {
           "requests": 6,
           "sum": 3216,
           "average": 536,
           "median": 534
         }
       }
 INFO: Renovate finished

To Reproduce

It should be enough to run a CLI tool with available submodule update and notice that renovate bot updates the PR on each run. If you have any CI attached, you'll see that (without automerge) it's triggered to rebuild the PR, even if the digest of the submodule to update to doesn't change.

I didn't test this in other environments than my own, so I can say that it works at least with self-hosted gitlab and official renovate docker image, but it's likely that other environments suffer from the same problem.

Additional context

None for now, but I'll be happy to provide any extra info you may need to reproduce/solve this problem. Thank you in advance for your time.

bug

Most helpful comment

Wow, this is probably the most detailed (and helpful) bug report I've ever seen! :heart:

I've narrowed the issue down to the if statement here. However, I can't see a simple fix right now.

Due to how git submodules work, the package file (.gitmodules) never actually changes, so I used the if statement above to force the .gitmodules file to be committed, so that the artifact (the directory where the git module is stored) is committed. See here.

Unfortunately all this happens against master branch, so I can't check the current status of a branch that Renovate has created from this point in the code.

I'll continue my investigation tomorrow.

All 8 comments

Note: for now I've implemented a very awful workaround of simply not waiting for CI at all:

  'git-submodules': {
    enabled: true,
    requiredStatusChecks: null
  }

This is very bad in terms of the development flow, but at least it avoids infinite CI rebuilds and lack of automerge. Eventual fixes can be done in the development branch.

Thanks once again for looking into my issue.

@JustArchi is it possible that you can create a public repo on github or gitlab that reproduces the same problem? I don't think the platform should have anything to do with it, but feel free to create on gitlab.com if you prefer.

Thanks for your response @rarkins

I had a plan to do it later today, so I'll be more than happy to, if it helps, by all means.

But basically you just need a project with git submodule that is outdated to reproduce this, so if by any chance you manage to come down to this earlier than I do, let me know.

@JustArchi I suspect I know what the issue is, and I guess I didn't hit it during development and testing due to me either having a longer period in between Renovate runs, or just running it manually.

@rarkins @JamieMagee As requested I've created the minimal repro in form of GitHub repository at https://github.com/JustArchi/Renovate-submodules-tests

My minimal config used for reproducing the problem:

module.exports = {
 "git-submodules": {"enabled": true},
 "logLevel": "debug",
 "repositories": ["JustArchi/Renovate-submodules-tests"],
 "token": "redacted"
}

Steps to reproduce:

  • Fork my JustArchi/Renovate-submodules-tests repository.
  • Change the repositories accordingly to your forked repo, and token accordingly to your GitHub token.
  • Launch renovate CLI for the first time, I've used docker run -it -v "C:\path\to\above\config.js:/usr/src/app/config.js" --rm --name renovate renovate/renovate:slim. It should be already onboarded considering I have the config in the repo, but do the onboarding if needed by merging the initial PR.
  • If onboarding, launch the CLI tool again, if already onboarded, notice how renovate bot should create a branch named renovate/archicrowdin-digest with a single commit bumping the submodule. This was b0ffb96 in my case. Everything is alright up to this point.
  • Run the renovate CLI again, notice how the CLI tool, despite no version change in submodule, force pushes to the repo with a new single commit different than the above one (c7d5540 in my case), which does exactly the same change as the first one.

First run debug log (after onboarding):


Expand

DEBUG: File config
       "config": {
         "git-submodules": {"enabled": true},
         "logLevel": "debug",
         "repositories": ["JustArchi/Renovate-submodules-tests"],
         "token": "***********"
       }
DEBUG: CLI config
       "config": {}
DEBUG: Env config
       "config": {"hostRules": [], "binarySource": "docker"}
DEBUG: Combined config
       "config": {
         "git-submodules": {"enabled": true},
         "logLevel": "debug",
         "repositories": ["JustArchi/Renovate-submodules-tests"],
         "token": "***********",
         "hostRules": [],
         "binarySource": "docker"
       }
 INFO: Using default github endpoint: https://api.github.com/
 INFO: Authenticated as GitHub user: JustArchi
 INFO: Using platform gitAuthor: 艁ukasz Domeradzki <[email protected]>
DEBUG: Using baseDir: /tmp/renovate
DEBUG: Using cacheDir: /tmp/renovate/cache
DEBUG: Initializing Renovate internal cache into /tmp/renovate/cache/renovate/renovate-cache-v1
DEBUG: Limits.init enter method
DEBUG: Limits.init prCommitsPerRunLimit processing
DEBUG: Limits.init prCommitsPerRunLimit variable is not set. Ignoring prCommitsPerRunLimit
 INFO: Renovating repository (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using localDir: /tmp/renovate/repos/github/JustArchi/Renovate-submodules-tests (repository=JustArchi/Renovate-submodules-tests)
DEBUG: initRepo("JustArchi/Renovate-submodules-tests") (repository=JustArchi/Renovate-submodules-tests)
 INFO: Authenticated as user: JustArchi (repository=JustArchi/Renovate-submodules-tests)
 INFO: Using renovate version: 19.84.5 (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Overriding default GitHub endpoint (repository=JustArchi/Renovate-submodules-tests)
DEBUG: JustArchi/Renovate-submodules-tests owner = JustArchi (repository=JustArchi/Renovate-submodules-tests)
DEBUG: JustArchi/Renovate-submodules-tests default branch = master (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using personal access token for git init (repository=JustArchi/Renovate-submodules-tests)
 INFO: Initialising git repository into /tmp/renovate/repos/github/JustArchi/Renovate-submodules-tests (repository=JustArchi/Renovate-submodules-tests)
 INFO: git clone completed (repository=JustArchi/Renovate-submodules-tests)
       "cloneSeconds": 1.4
DEBUG: Cloning git submodule at ArchiCrowdin (repository=JustArchi/Renovate-submodules-tests)
DEBUG: latest commit (repository=JustArchi/Renovate-submodules-tests)
       "latestCommitDate": "2019-12-17 21:39:52 +0100"
DEBUG: No git private key present - commits will be unsigned (repository=JustArchi/Renovate-submodules-tests)
 INFO: Setting git author (repository=JustArchi/Renovate-submodules-tests)
       "gitAuthor": {"name": "艁ukasz Domeradzki", "email": "[email protected]"}
DEBUG: resetMemCache() (repository=JustArchi/Renovate-submodules-tests)
DEBUG: detectSemanticCommits() (repository=JustArchi/Renovate-submodules-tests)
DEBUG: getCommitMessages (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Semantic commits detection: unknown (repository=JustArchi/Renovate-submodules-tests)
DEBUG: No semantic commits detected (repository=JustArchi/Renovate-submodules-tests)
DEBUG: checkOnboarding() (repository=JustArchi/Renovate-submodules-tests)
DEBUG: isOnboarded() (repository=JustArchi/Renovate-submodules-tests)
DEBUG: findFile(renovate.json) (repository=JustArchi/Renovate-submodules-tests)
DEBUG: config file exists (repository=JustArchi/Renovate-submodules-tests)
DEBUG: ensureIssueClosing(Action required: Add a Renovate config) (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Retrieving issueList (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Retrieved 0 issues (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Repo is onboarded (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Found renovate.json config file (repository=JustArchi/Renovate-submodules-tests)
 INFO: Repository config (repository=JustArchi/Renovate-submodules-tests)
       "configFile": "renovate.json",
       "config": {}
DEBUG: migrateAndValidate() (repository=JustArchi/Renovate-submodules-tests)
DEBUG: No config migration necessary (repository=JustArchi/Renovate-submodules-tests)
DEBUG: massaged config (repository=JustArchi/Renovate-submodules-tests)
       "config": {}
DEBUG: migrated config (repository=JustArchi/Renovate-submodules-tests)
       "config": {}
DEBUG: Found repo ignorePaths (repository=JustArchi/Renovate-submodules-tests)
       "ignorePaths": ["**/node_modules/**", "**/bower_components/**"]
DEBUG: checkBaseBranch() (repository=JustArchi/Renovate-submodules-tests)
DEBUG: config.repoIsOnboarded=true (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Setting baseBranch to master (repository=JustArchi/Renovate-submodules-tests)
DEBUG: latest commit (repository=JustArchi/Renovate-submodules-tests)
       "branchName": "master",
       "latestCommitDate": "2019-12-17 21:39:52 +0100"
DEBUG: Setting branchPrefix: renovate/ (repository=JustArchi/Renovate-submodules-tests)
DEBUG: No vulnerability alerts found (repository=JustArchi/Renovate-submodules-tests)
DEBUG: processRepo() (repository=JustArchi/Renovate-submodules-tests)
DEBUG: No baseBranches (repository=JustArchi/Renovate-submodules-tests)
DEBUG: extractAndUpdate() (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)tasks/[^/]+\.ya?ml$ for manager ansible (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)WORKSPACE$ for manager bazel (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: \.bzl$ for manager bazel (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: buildkite\.ya?ml for manager buildkite (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: \.buildkite/.+\.ya?ml$ for manager buildkite (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)Gemfile$ for manager bundler (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)Cargo.toml$ for manager cargo (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/).circleci/config.yml$ for manager circleci (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)([\w-]*)composer.json$ for manager composer (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)deps\.edn$ for manager deps-edn (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)docker-compose[^/]*\.ya?ml$ for manager docker-compose (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)Dockerfile$ for manager dockerfile (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)Dockerfile\.[^/]*$ for manager dockerfile (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/).drone.yml$ for manager droneci (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/).gitmodules$ for manager git-submodules (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Matched 1 file(s) for manager git-submodules: .gitmodules (repository=JustArchi/Renovate-submodules-tests)
 INFO: Found git-submodules package files (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: ^\.github/main.workflow$ for manager github-actions (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: ^\.github/workflows/[^/]+\.ya?ml$ for manager github-actions (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: ^\.gitlab-ci\.yml$ for manager gitlabci (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: ^\.gitlab-ci\.yml$ for manager gitlabci-include (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)go.mod$ for manager gomod (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: \.gradle(\.kts)?$ for manager gradle (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)gradle.properties$ for manager gradle (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)gradle/wrapper/gradle-wrapper.properties$ for manager gradle-wrapper (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)requirements.yaml$ for manager helm-requirements (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: ^Formula/[^/]+[.]rb$ for manager homebrew (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)project\.clj$ for manager leiningen (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: \.pom\.xml$ for manager maven (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)pom\.xml$ for manager maven (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)package.js$ for manager meteor (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)mix\.exs$ for manager mix (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)package.json$ for manager npm (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: \.csproj$ for manager nuget (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: ^.nvmrc$ for manager nvm (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)([\w-]*)requirements.(txt|pip)$ for manager pip_requirements (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)setup.py$ for manager pip_setup (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)Pipfile$ for manager pipenv (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)pyproject\.toml$ for manager poetry (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)pubspec\.ya?ml$ for manager pub (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: \.sbt$ for manager sbt (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)Package\.swift for manager swift (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: \.tf$ for manager terraform (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: ^.travis.yml$ for manager travis (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)\.ruby-version$ for manager ruby-version (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Found 1 package file(s) (repository=JustArchi/Renovate-submodules-tests)
DEBUG: manager.fetchUpdates() (repository=JustArchi/Renovate-submodules-tests)
DEBUG: packageFiles with updates (repository=JustArchi/Renovate-submodules-tests)
       "config": {
         "git-submodules": [
           {
             "packageFile": ".gitmodules",
             "manager": "git-submodules",
             "deps": [
               {
                 "depName": "ArchiCrowdin",
                 "registryUrls": [
                   "https://github.com/JustArchiNET/ArchiCrowdin",
                   "master"
                 ],
                 "currentValue": "8aeda69935142d9bc9d6e1706bd88b2a0326cbf4",
                 "currentDigest": "8aeda69935142d9bc9d6e1706bd88b2a0326cbf4",
                 "updates": [
                   {
                     "updateType": "digest",
                     "newValue": "b4292e6fc9588ec5b54a9f880253ba62db9646f3",
                     "newVersion": "b4292e6fc9588ec5b54a9f880253ba62db9646f3",
                     "newDigest": "b4292e6fc9588ec5b54a9f880253ba62db9646f3",
                     "newDigestShort": "b4292e6"
                   }
                 ],
                 "warnings": [],
                 "sourceUrl": "https://github.com/JustArchiNET/ArchiCrowdin"
               }
             ],
             "datasource": "gitSubmodules"
           }
         ]
       }
DEBUG: branchifyUpgrades (repository=JustArchi/Renovate-submodules-tests)
DEBUG: 1 flattened updates found: ArchiCrowdin (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Returning 1 branch(es) (repository=JustArchi/Renovate-submodules-tests)
DEBUG: generateBranchConfig(1) (repository=JustArchi/Renovate-submodules-tests, branch=renovate/archicrowdin-digest)
DEBUG: hasGroupName: false (repository=JustArchi/Renovate-submodules-tests, branch=renovate/archicrowdin-digest)
DEBUG: groupEligible: false (repository=JustArchi/Renovate-submodules-tests, branch=renovate/archicrowdin-digest)
DEBUG: useGroupSettings: false (repository=JustArchi/Renovate-submodules-tests, branch=renovate/archicrowdin-digest)
DEBUG: config.repoIsOnboarded=true (repository=JustArchi/Renovate-submodules-tests)
 INFO: Processing 1 branch: renovate/archicrowdin-digest (repository=JustArchi/Renovate-submodules-tests)
DEBUG: processBranch with 1 upgrades (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Setting baseBranch to master (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: latest commit (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
       "branchName": "master",
       "latestCommitDate": "2019-12-17 21:39:52 +0100"
DEBUG: getBranchPr(renovate/archicrowdin-digest) (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: findPr(renovate/archicrowdin-digest, null, open) (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Retrieving PR list (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Retrieved 1 Pull Requests (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: branchExists=false (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Branch has 1 upgrade(s) (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: recreateClosed is false (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: findPr(renovate/archicrowdin-digest, Update ArchiCrowdin commit hash to b4292e6, !open) (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: prAlreadyExisted=false (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Checking schedule(at any time, null) (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: No schedule defined (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
 INFO: Branch needs creating (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Using parentBranch: undefined (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: manager.getUpdatedPackageFiles() (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Updated 1 package files (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Updated 1 lock files (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
       "updatedArtifacts": ["ArchiCrowdin"]
DEBUG: 2 file(s) to commit (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Committing files to branch renovate/archicrowdin-digest (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
 INFO: files committed (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Checking if we can automerge branch (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: mergeStatus=no automerge (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Ensuring PR (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: There are 0 errors and 0 warnings (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: getBranchPr(renovate/archicrowdin-digest) (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: findPr(renovate/archicrowdin-digest, null, open) (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Creating PR (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
       "prTitle": "Update ArchiCrowdin commit hash to b4292e6"
DEBUG: Creating PR (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
       "title": "Update ArchiCrowdin commit hash to b4292e6",
       "head": "JustArchi:renovate/archicrowdin-digest",
       "base": "master"
DEBUG: PR created (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
       "pr": 2
DEBUG: Adding labels  to #2 (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
 INFO: PR created (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
       "pr": 2
 INFO: Created Pull Request #2 (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Ensuring comment ":warning: Artifact update problem" in #2 is removed (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Retrieved closed PR list with graphql (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
       "prNumbers": [1]
DEBUG: Getting comments for #2 (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Found 0 comments (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Checking #2 for automerge (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
       "automerge": false,
       "automergeType": "pr",
       "automergeComment": "automergeComment"
DEBUG: No automerge (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: branchPrefix: renovate/ (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Found 0 Renovate PRs (repository=JustArchi/Renovate-submodules-tests)
       "renovatePrs": []
DEBUG: Removing any stale branches (repository=JustArchi/Renovate-submodules-tests)
DEBUG: config.repoIsOnboarded=true (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Branch lists (repository=JustArchi/Renovate-submodules-tests)
       "branchList": ["renovate/archicrowdin-digest"],
       "renovateBranches": ["renovate/archicrowdin-digest"]
DEBUG: remainingBranches= (repository=JustArchi/Renovate-submodules-tests)
DEBUG: No branches to clean up (repository=JustArchi/Renovate-submodules-tests)
DEBUG: ensureIssueClosing(Action Required: Fix Renovate Configuration) (repository=JustArchi/Renovate-submodules-tests)
 INFO: Finished repository (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Host request stats (milliseconds)
       "hostStats": {"api.github.com": {"requests": 9, "sum": 4356, "average": 484, "median": 399}}
 INFO: Renovate finished

Second run debug log (after opening the module update pull request):


Expand

DEBUG: File config
       "config": {
         "git-submodules": {"enabled": true},
         "logLevel": "debug",
         "repositories": ["JustArchi/Renovate-submodules-tests"],
         "token": "***********"
       }
DEBUG: CLI config
       "config": {}
DEBUG: Env config
       "config": {"hostRules": [], "binarySource": "docker"}
DEBUG: Combined config
       "config": {
         "git-submodules": {"enabled": true},
         "logLevel": "debug",
         "repositories": ["JustArchi/Renovate-submodules-tests"],
         "token": "***********",
         "hostRules": [],
         "binarySource": "docker"
       }
 INFO: Using default github endpoint: https://api.github.com/
 INFO: Authenticated as GitHub user: JustArchi
 INFO: Using platform gitAuthor: 艁ukasz Domeradzki <[email protected]>
DEBUG: Using baseDir: /tmp/renovate
DEBUG: Using cacheDir: /tmp/renovate/cache
DEBUG: Initializing Renovate internal cache into /tmp/renovate/cache/renovate/renovate-cache-v1
DEBUG: Limits.init enter method
DEBUG: Limits.init prCommitsPerRunLimit processing
DEBUG: Limits.init prCommitsPerRunLimit variable is not set. Ignoring prCommitsPerRunLimit
 INFO: Renovating repository (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using localDir: /tmp/renovate/repos/github/JustArchi/Renovate-submodules-tests (repository=JustArchi/Renovate-submodules-tests)
DEBUG: initRepo("JustArchi/Renovate-submodules-tests") (repository=JustArchi/Renovate-submodules-tests)
 INFO: Authenticated as user: JustArchi (repository=JustArchi/Renovate-submodules-tests)
 INFO: Using renovate version: 19.84.5 (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Overriding default GitHub endpoint (repository=JustArchi/Renovate-submodules-tests)
DEBUG: JustArchi/Renovate-submodules-tests owner = JustArchi (repository=JustArchi/Renovate-submodules-tests)
DEBUG: JustArchi/Renovate-submodules-tests default branch = master (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using personal access token for git init (repository=JustArchi/Renovate-submodules-tests)
 INFO: Initialising git repository into /tmp/renovate/repos/github/JustArchi/Renovate-submodules-tests (repository=JustArchi/Renovate-submodules-tests)
 INFO: git clone completed (repository=JustArchi/Renovate-submodules-tests)
       "cloneSeconds": 1.5
DEBUG: Cloning git submodule at ArchiCrowdin (repository=JustArchi/Renovate-submodules-tests)
DEBUG: latest commit (repository=JustArchi/Renovate-submodules-tests)
       "latestCommitDate": "2019-12-17 21:39:52 +0100"
DEBUG: No git private key present - commits will be unsigned (repository=JustArchi/Renovate-submodules-tests)
 INFO: Setting git author (repository=JustArchi/Renovate-submodules-tests)
       "gitAuthor": {"name": "艁ukasz Domeradzki", "email": "[email protected]"}
DEBUG: resetMemCache() (repository=JustArchi/Renovate-submodules-tests)
DEBUG: detectSemanticCommits() (repository=JustArchi/Renovate-submodules-tests)
DEBUG: getCommitMessages (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Semantic commits detection: unknown (repository=JustArchi/Renovate-submodules-tests)
DEBUG: No semantic commits detected (repository=JustArchi/Renovate-submodules-tests)
DEBUG: checkOnboarding() (repository=JustArchi/Renovate-submodules-tests)
DEBUG: isOnboarded() (repository=JustArchi/Renovate-submodules-tests)
DEBUG: findFile(renovate.json) (repository=JustArchi/Renovate-submodules-tests)
DEBUG: config file exists (repository=JustArchi/Renovate-submodules-tests)
DEBUG: ensureIssueClosing(Action required: Add a Renovate config) (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Retrieving issueList (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Retrieved 0 issues (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Repo is onboarded (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Found renovate.json config file (repository=JustArchi/Renovate-submodules-tests)
 INFO: Repository config (repository=JustArchi/Renovate-submodules-tests)
       "configFile": "renovate.json",
       "config": {}
DEBUG: migrateAndValidate() (repository=JustArchi/Renovate-submodules-tests)
DEBUG: No config migration necessary (repository=JustArchi/Renovate-submodules-tests)
DEBUG: massaged config (repository=JustArchi/Renovate-submodules-tests)
       "config": {}
DEBUG: migrated config (repository=JustArchi/Renovate-submodules-tests)
       "config": {}
DEBUG: Found repo ignorePaths (repository=JustArchi/Renovate-submodules-tests)
       "ignorePaths": ["**/node_modules/**", "**/bower_components/**"]
DEBUG: checkBaseBranch() (repository=JustArchi/Renovate-submodules-tests)
DEBUG: config.repoIsOnboarded=true (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Setting baseBranch to master (repository=JustArchi/Renovate-submodules-tests)
DEBUG: latest commit (repository=JustArchi/Renovate-submodules-tests)
       "branchName": "master",
       "latestCommitDate": "2019-12-17 21:39:52 +0100"
DEBUG: Setting branchPrefix: renovate/ (repository=JustArchi/Renovate-submodules-tests)
DEBUG: No vulnerability alerts found (repository=JustArchi/Renovate-submodules-tests)
DEBUG: processRepo() (repository=JustArchi/Renovate-submodules-tests)
DEBUG: No baseBranches (repository=JustArchi/Renovate-submodules-tests)
DEBUG: extractAndUpdate() (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)tasks/[^/]+\.ya?ml$ for manager ansible (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)WORKSPACE$ for manager bazel (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: \.bzl$ for manager bazel (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: buildkite\.ya?ml for manager buildkite (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: \.buildkite/.+\.ya?ml$ for manager buildkite (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)Gemfile$ for manager bundler (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)Cargo.toml$ for manager cargo (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/).circleci/config.yml$ for manager circleci (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)([\w-]*)composer.json$ for manager composer (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)deps\.edn$ for manager deps-edn (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)docker-compose[^/]*\.ya?ml$ for manager docker-compose (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)Dockerfile$ for manager dockerfile (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)Dockerfile\.[^/]*$ for manager dockerfile (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/).drone.yml$ for manager droneci (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/).gitmodules$ for manager git-submodules (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Matched 1 file(s) for manager git-submodules: .gitmodules (repository=JustArchi/Renovate-submodules-tests)
 INFO: Found git-submodules package files (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: ^\.github/main.workflow$ for manager github-actions (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: ^\.github/workflows/[^/]+\.ya?ml$ for manager github-actions (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: ^\.gitlab-ci\.yml$ for manager gitlabci (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: ^\.gitlab-ci\.yml$ for manager gitlabci-include (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)go.mod$ for manager gomod (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: \.gradle(\.kts)?$ for manager gradle (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)gradle.properties$ for manager gradle (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)gradle/wrapper/gradle-wrapper.properties$ for manager gradle-wrapper (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)requirements.yaml$ for manager helm-requirements (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: ^Formula/[^/]+[.]rb$ for manager homebrew (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)project\.clj$ for manager leiningen (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: \.pom\.xml$ for manager maven (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)pom\.xml$ for manager maven (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)package.js$ for manager meteor (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)mix\.exs$ for manager mix (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)package.json$ for manager npm (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: \.csproj$ for manager nuget (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: ^.nvmrc$ for manager nvm (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)([\w-]*)requirements.(txt|pip)$ for manager pip_requirements (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)setup.py$ for manager pip_setup (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)Pipfile$ for manager pipenv (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)pyproject\.toml$ for manager poetry (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)pubspec\.ya?ml$ for manager pub (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: \.sbt$ for manager sbt (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)Package\.swift for manager swift (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: \.tf$ for manager terraform (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: ^.travis.yml$ for manager travis (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Using file match: (^|/)\.ruby-version$ for manager ruby-version (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Found 1 package file(s) (repository=JustArchi/Renovate-submodules-tests)
DEBUG: manager.fetchUpdates() (repository=JustArchi/Renovate-submodules-tests)
DEBUG: packageFiles with updates (repository=JustArchi/Renovate-submodules-tests)
       "config": {
         "git-submodules": [
           {
             "packageFile": ".gitmodules",
             "manager": "git-submodules",
             "deps": [
               {
                 "depName": "ArchiCrowdin",
                 "registryUrls": [
                   "https://github.com/JustArchiNET/ArchiCrowdin",
                   "master"
                 ],
                 "currentValue": "8aeda69935142d9bc9d6e1706bd88b2a0326cbf4",
                 "currentDigest": "8aeda69935142d9bc9d6e1706bd88b2a0326cbf4",
                 "updates": [
                   {
                     "updateType": "digest",
                     "newValue": "b4292e6fc9588ec5b54a9f880253ba62db9646f3",
                     "newVersion": "b4292e6fc9588ec5b54a9f880253ba62db9646f3",
                     "newDigest": "b4292e6fc9588ec5b54a9f880253ba62db9646f3",
                     "newDigestShort": "b4292e6"
                   }
                 ],
                 "warnings": [],
                 "sourceUrl": "https://github.com/JustArchiNET/ArchiCrowdin"
               }
             ],
             "datasource": "gitSubmodules"
           }
         ]
       }
DEBUG: branchifyUpgrades (repository=JustArchi/Renovate-submodules-tests)
DEBUG: 1 flattened updates found: ArchiCrowdin (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Returning 1 branch(es) (repository=JustArchi/Renovate-submodules-tests)
DEBUG: generateBranchConfig(1) (repository=JustArchi/Renovate-submodules-tests, branch=renovate/archicrowdin-digest)
DEBUG: hasGroupName: false (repository=JustArchi/Renovate-submodules-tests, branch=renovate/archicrowdin-digest)
DEBUG: groupEligible: false (repository=JustArchi/Renovate-submodules-tests, branch=renovate/archicrowdin-digest)
DEBUG: useGroupSettings: false (repository=JustArchi/Renovate-submodules-tests, branch=renovate/archicrowdin-digest)
DEBUG: config.repoIsOnboarded=true (repository=JustArchi/Renovate-submodules-tests)
 INFO: Processing 1 branch: renovate/archicrowdin-digest (repository=JustArchi/Renovate-submodules-tests)
DEBUG: processBranch with 1 upgrades (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Setting baseBranch to master (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: latest commit (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
       "branchName": "master",
       "latestCommitDate": "2019-12-17 21:39:52 +0100"
DEBUG: getBranchPr(renovate/archicrowdin-digest) (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: findPr(renovate/archicrowdin-digest, null, open) (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Retrieving PR list (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Retrieved 2 Pull Requests (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Found PR #2 (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Returning from graphql open PR list (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: branchExists=true (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Branch pr rebase requested: false (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Branch has 1 upgrade(s) (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Checking if PR has been edited (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Found existing branch PR (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Checking schedule(at any time, null) (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: No schedule defined (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Branch already exists (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: getBranchPr(renovate/archicrowdin-digest) (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: findPr(renovate/archicrowdin-digest, null, open) (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Found PR #2 (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Returning from graphql open PR list (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: No branch protection found (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Branch does not need rebasing (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Using parentBranch: renovate/archicrowdin-digest (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: manager.getUpdatedPackageFiles() (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Updated 1 package files (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Updated 1 lock files (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
       "updatedArtifacts": ["ArchiCrowdin"]
DEBUG: 2 file(s) to commit (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Committing files to branch renovate/archicrowdin-digest (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
 INFO: files committed (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Checking if we can automerge branch (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: mergeStatus=no automerge (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Ensuring PR (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: There are 0 errors and 0 warnings (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: getBranchPr(renovate/archicrowdin-digest) (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: findPr(renovate/archicrowdin-digest, null, open) (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Found PR #2 (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Returning from graphql open PR list (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Found existing PR (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Processing existing PR (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Pull Request #2 does not need updating (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Ensuring comment ":warning: Artifact update problem" in #2 is removed (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Retrieved closed PR list with graphql (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
       "prNumbers": [1]
DEBUG: Getting comments for #2 (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Found 0 comments (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Checking #2 for automerge (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
       "automerge": false,
       "automergeType": "pr",
       "automergeComment": "automergeComment"
DEBUG: No automerge (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: branchPrefix: renovate/ (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Found 0 Renovate PRs (repository=JustArchi/Renovate-submodules-tests)
       "renovatePrs": []
DEBUG: Removing any stale branches (repository=JustArchi/Renovate-submodules-tests)
DEBUG: config.repoIsOnboarded=true (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Branch lists (repository=JustArchi/Renovate-submodules-tests)
       "branchList": ["renovate/archicrowdin-digest"],
       "renovateBranches": ["renovate/archicrowdin-digest"]
DEBUG: remainingBranches= (repository=JustArchi/Renovate-submodules-tests)
DEBUG: No branches to clean up (repository=JustArchi/Renovate-submodules-tests)
DEBUG: ensureIssueClosing(Action Required: Fix Renovate Configuration) (repository=JustArchi/Renovate-submodules-tests)
 INFO: Finished repository (repository=JustArchi/Renovate-submodules-tests)
DEBUG: Host request stats (milliseconds)
       "hostStats": {"api.github.com": {"requests": 11, "sum": 4027, "average": 366, "median": 362}}
 INFO: Renovate finished

Culprit:

DEBUG: 2 file(s) to commit (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
DEBUG: Committing files to branch renovate/archicrowdin-digest (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)
 INFO: files committed (repository=JustArchi/Renovate-submodules-tests, dependencies=ArchiCrowdin, branch=renovate/archicrowdin-digest)

Screenshot from https://github.com/JustArchi/Renovate-submodules-tests/pull/2 showing the problem:

image

In other words, each run of the CLI with git submodules causes the branch to be force pushed over and over again. If we assume that CI builds the branch for 15 minutes and renovate bot runs each 10 minutes, this means that CI will never be able to finish the pull request build in time, since renovate bot will force-push to the branch each 10 minutes, despite no need of any rebasing, since the version of the git submodule doesn't change.

Force-pushing (rebasing) the pull request is alright but only if it's needed, so when my submodule was in the meantime updated to newer version or there were some conflicting changes in the repo, as expected, but in this case it's force-pushed on each CLI run, regardless of (lack of) any changes in the meantime, which is especially harmful in CI environments that are forced to rebuild the same pull request over and over again, each time.

I hope that my explanation is good enough, please let me know if there is anything else I can help with, otherwise I'd be very happy if you could take a look into it. Thank you in advance.

Wow, this is probably the most detailed (and helpful) bug report I've ever seen! :heart:

I've narrowed the issue down to the if statement here. However, I can't see a simple fix right now.

Due to how git submodules work, the package file (.gitmodules) never actually changes, so I used the if statement above to force the .gitmodules file to be committed, so that the artifact (the directory where the git module is stored) is committed. See here.

Unfortunately all this happens against master branch, so I can't check the current status of a branch that Renovate has created from this point in the code.

I'll continue my investigation tomorrow.

:tada: This issue has been resolved in version 19.102.2 :tada:

The release is available on:

Your semantic-release bot :package::rocket:

Thank you for fixing this issue, I'll make sure to test it in the upcoming week and I'll let you know if anything comes up. Cheers 鉂わ笍.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Arcanemagus picture Arcanemagus  路  4Comments

Siilwyn picture Siilwyn  路  4Comments

ghost picture ghost  路  3Comments

hutson picture hutson  路  3Comments

Flydiverny picture Flydiverny  路  4Comments