renovate icon indicating copy to clipboard operation
renovate copied to clipboard

Gitlab auto merge status 405 when platformAutomerge is true

Open xiopt opened this issue 2 years ago • 4 comments

How are you running Renovate?

Self-hosted

If you're self-hosting Renovate, tell us what version of Renovate you run.

32.64.2

Please select which platform you are using if self-hosting.

GitLab self-hosted

If you're self-hosting Renovate, tell us what version of the platform you run.

13.12.1

Was this something which used to work for you, and then stopped?

I never saw this working

Describe the bug

The automerge option is not working with platformAutomerge: true. Gitlab returns error code 405. I tested the same request with only private-token in Postman and the merge was done without errors. The main branch is master, which is not protected.

image

config.js
module.exports = {
  platform: "gitlab",
  endpoint: process.end.GITLAB_ENDPOINT,
  token: process.env.RENOVATE_TOKEN,

  repositories: ["microservices/marketplace/affiliate"],

  logLevel: "DEBUG",
  assignees: ["alin", "andy"],
  packageRules: [
    {
      packagePatterns: ["*"],
      excludePackagePatterns: ["^@cel/*", "^moleculer*"],
      enabled: false,
    },
    {
      matchPackagePatterns: ["^@cel/*"],
      groupName: "cel packages",
      automerge: true,
    },
    {
      matchPackagePatterns: ["^moleculer*"],
      groupName: "moleculer packages",
      automerge: false,
    },
  ],
  rebaseWhen: "auto",
  requireConfig: true,
  rebaseStalePrs: true,
  platformAutomerge: true,
  labels: ["dependencies"],
  onboarding: false,
  onboardingConfig: {
    extends: ["config:base"],
    prConcurrentLimit: 5,
  },
  hostRules: [
    {
      hostType: "npm",
      matchHost: "registry.npmjs.org",
      token: process.env.NPMJS_TOKEN,
    },
  ],
  prConcurrentLimit: 0,
  prHourlyLimit: 0,
  enabledManagers: ["npm"],
  timezone: "Europe/Bucharest",
  separateMajorMinor: true,
  separateMultipleMajor: true,
  respectLatest: true,
  npmrc: process.env.VERDACCIO_TOKEN,
};

Relevant debug logs

Logs
[0KRunning with gitlab-runner 13.12.0 (7a6612da)
[0;m[0K  on mp-runner smx1PRi9
[0;msection_start:1653066093:prepare_executor
[0K[0K[36;1mPreparing the "docker" executor[0;m
[0;m[0KUsing Docker executor with image node:16.15.0-alpine3.15 ...
[0;m[0KAuthenticating with credentials from $DOCKER_AUTH_CONFIG
[0;m[0KPulling docker image node:16.15.0-alpine3.15 ...
[0;m[0KUsing docker image sha256:e5065cc780745864eeee3280fe347b33e90961c98c7d3e14d5b660e16aef24ce for node:16.15.0-alpine3.15 with digest node@sha256:1a9a71ea86aad332aa7740316d4111ee1bd4e890df47d3b5eff3e5bded3b3d10 ...
[0;msection_end:1653066096:prepare_executor
[0Ksection_start:1653066096:prepare_script
[0K[0K[36;1mPreparing environment[0;m
[0;mRunning on runner-smx1pri9-project-138-concurrent-0 via 2fe4247ead01...
section_end:1653066097:prepare_script
[0Ksection_start:1653066097:get_sources
[0K[0K[36;1mGetting source from Git repository[0;m
[0;m[32;1mFetching changes with git depth set to 50...[0;m
Reinitialized existing Git repository in /builds/microservices/renovate-bot/.git/
[32;1mChecking out c99be329 as master...[0;m
Removing node_modules/
Removing package-lock.json

[32;1mSkipping Git submodules setup[0;m
section_end:1653066097:get_sources
[0Ksection_start:1653066097:step_script
[0K[0K[36;1mExecuting "step_script" stage of the job script[0;m
[0;m[0KUsing docker image sha256:e5065cc780745864eeee3280fe347b33e90961c98c7d3e14d5b660e16aef24ce for node:16.15.0-alpine3.15 with digest node@sha256:1a9a71ea86aad332aa7740316d4111ee1bd4e890df47d3b5eff3e5bded3b3d10 ...
[0;m[32;1m$ apk add --no-cache git[0;m
fetch https://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.15/community/x86_64/APKINDEX.tar.gz
(1/7) Installing ca-certificates (20211220-r0)
(2/7) Installing brotli-libs (1.0.9-r5)
(3/7) Installing nghttp2-libs (1.46.0-r0)
(4/7) Installing libcurl (7.80.0-r1)
(5/7) Installing expat (2.4.7-r0)
(6/7) Installing pcre2 (10.39-r0)
(7/7) Installing git (2.34.2-r0)
Executing busybox-1.34.1-r5.trigger
Executing ca-certificates-20211220-r0.trigger
OK: 21 MiB in 23 packages
[32;1m$ npm install[0;m

added 696 packages, and audited 697 packages in 14s

145 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
[32;1m$ npm run renovate[0;m

> [email protected] renovate
> renovate

DEBUG: Using RE2 as regex engine
DEBUG: Parsing configs
DEBUG: Checking for config file in /builds/microservices/renovate-bot/config.js
 WARN: Config needs migrating
       "originalConfig": {
         "platform": "gitlab",
         "endpoint": "http://192.168.0.5:85/api/v4/",
         "token": "***********",
         "repositories": ["microservices/marketplace/affiliate"],
         "logLevel": "DEBUG",
         "assignees": ["alin", "andy"],
         "packageRules": [
           {
             "packagePatterns": ["*"],
             "excludePackagePatterns": ["^@cel/*", "^moleculer*"],
             "enabled": false
           },
           {
             "matchPackagePatterns": ["^@cel/*"],
             "groupName": "cel packages",
             "automerge": true
           },
           {
             "matchPackagePatterns": ["^moleculer*"],
             "groupName": "moleculer packages",
             "automerge": false
           }
         ],
         "rebaseWhen": "auto",
         "requireConfig": true,
         "rebaseStalePrs": true,
         "onboarding": false,
         "platformAutomerge": true,
         "labels": ["dependencies"],
         "onboardingConfig": {"extends": ["config:base"], "prConcurrentLimit": 5},
         "hostRules": [{"hostType": "npm", "matchHost": "registry.npmjs.org"}],
         "prConcurrentLimit": 0,
         "prHourlyLimit": 0,
         "enabledManagers": ["npm", "yarn"],
         "timezone": "Europe/Bucharest",
         "separateMajorMinor": true,
         "separateMultipleMajor": true,
         "respectLatest": true,
         "npmrc": "***********"
       },
       "migratedConfig": {
         "platform": "gitlab",
         "endpoint": "http://192.168.0.5:85/api/v4/",
         "token": "***********",
         "repositories": ["microservices/marketplace/affiliate"],
         "logLevel": "DEBUG",
         "assignees": ["alin", "andy"],
         "packageRules": [
           {
             "excludePackagePatterns": ["^@cel/*", "^moleculer*"],
             "enabled": false,
             "matchPackagePatterns": ["*"]
           },
           {
             "matchPackagePatterns": ["^@cel/*"],
             "groupName": "cel packages",
             "automerge": true
           },
           {
             "matchPackagePatterns": ["^moleculer*"],
             "groupName": "moleculer packages",
             "automerge": false
           }
         ],
         "rebaseWhen": "auto",
         "requireConfig": "required",
         "onboarding": false,
         "platformAutomerge": true,
         "labels": ["dependencies"],
         "onboardingConfig": {"extends": ["config:base"], "prConcurrentLimit": 5},
         "hostRules": [{"hostType": "npm", "matchHost": "registry.npmjs.org"}],
         "prConcurrentLimit": 0,
         "prHourlyLimit": 0,
         "enabledManagers": ["npm", "npm"],
         "timezone": "Europe/Bucharest",
         "separateMajorMinor": true,
         "separateMultipleMajor": true,
         "respectLatest": true,
         "npmrc": "***********"
       }
DEBUG: Converting GITHUB_COM_TOKEN into a global host rule
DEBUG: File config
       "config": {
         "platform": "gitlab",
         "endpoint": "http://192.168.0.5:85/api/v4/",
         "token": "***********",
         "repositories": ["microservices/marketplace/affiliate"],
         "logLevel": "DEBUG",
         "assignees": ["alin", "andy"],
         "packageRules": [
           {
             "excludePackagePatterns": ["^@cel/*", "^moleculer*"],
             "enabled": false,
             "matchPackagePatterns": ["*"]
           },
           {
             "matchPackagePatterns": ["^@cel/*"],
             "groupName": "cel packages",
             "automerge": true
           },
           {
             "matchPackagePatterns": ["^moleculer*"],
             "groupName": "moleculer packages",
             "automerge": false
           }
         ],
         "rebaseWhen": "auto",
         "requireConfig": "required",
         "onboarding": false,
         "platformAutomerge": true,
         "labels": ["dependencies"],
         "onboardingConfig": {"extends": ["config:base"], "prConcurrentLimit": 5},
         "hostRules": [{"hostType": "npm", "matchHost": "registry.npmjs.org"}],
         "prConcurrentLimit": 0,
         "prHourlyLimit": 0,
         "enabledManagers": ["npm", "npm"],
         "timezone": "Europe/Bucharest",
         "separateMajorMinor": true,
         "separateMultipleMajor": true,
         "respectLatest": true,
         "npmrc": "***********"
       }
DEBUG: CLI config
       "config": {}
DEBUG: Env config
       "config": {
         "hostRules": [
           {"hostType": "github", "matchHost": "github.com", "token": "***********"}
         ],
         "token": "***********"
       }
DEBUG: Combined config
       "config": {
         "platform": "gitlab",
         "endpoint": "http://192.168.0.5:85/api/v4/",
         "token": "***********",
         "repositories": ["microservices/marketplace/affiliate"],
         "logLevel": "DEBUG",
         "assignees": ["alin", "andy"],
         "packageRules": [
           {
             "excludePackagePatterns": ["^@cel/*", "^moleculer*"],
             "enabled": false,
             "matchPackagePatterns": ["*"]
           },
           {
             "matchPackagePatterns": ["^@cel/*"],
             "groupName": "cel packages",
             "automerge": true
           },
           {
             "matchPackagePatterns": ["^moleculer*"],
             "groupName": "moleculer packages",
             "automerge": false
           }
         ],
         "rebaseWhen": "auto",
         "requireConfig": "required",
         "onboarding": false,
         "platformAutomerge": true,
         "labels": ["dependencies"],
         "onboardingConfig": {"extends": ["config:base"], "prConcurrentLimit": 5},
         "hostRules": [
           {"hostType": "npm", "matchHost": "registry.npmjs.org"},
           {"hostType": "github", "matchHost": "github.com", "token": "***********"}
         ],
         "prConcurrentLimit": 0,
         "prHourlyLimit": 0,
         "enabledManagers": ["npm", "npm"],
         "timezone": "Europe/Bucharest",
         "separateMajorMinor": true,
         "separateMultipleMajor": true,
         "respectLatest": true,
         "npmrc": "***********"
       }
DEBUG: Checking if we can automerge branch (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: mergeStatus=no automerge (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: Ensuring PR (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: There are 0 errors and 0 warnings (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: getBranchPr(renovate/cel-packages) (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: findPr(renovate/cel-packages, undefined, open) (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: getPr(30) (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: getMR(30) (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: Found existing PR (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: resolveBranchStatus(branchName=renovate/cel-packages, ignoreTests=false) (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: getBranchStatus(renovate/cel-packages) (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: Got res with 0 results (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: Branch status yellow (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: Processing existing PR (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: resolveBranchStatus(branchName=renovate/cel-packages, ignoreTests=false) (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: getBranchStatus(renovate/cel-packages) (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: Got res with 0 results (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: Branch status yellow (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: Gitlab API error (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
       "err": {
         "name": "HTTPError",
         "code": "ERR_NON_2XX_3XX_RESPONSE",
         "timings": {
           "start": 1653066137284,
           "socket": 1653066137285,
           "lookup": 1653066137285,
           "connect": 1653066137285,
           "upload": 1653066137285,
           "response": 1653066137313,
           "end": 1653066137313,
           "phases": {
             "wait": 1,
             "dns": 0,
             "tcp": 0,
             "request": 0,
             "firstByte": 28,
             "download": 0,
             "total": 29
           }
         },
         "message": "Response code 405 (Method Not Allowed)",
         "stack": "HTTPError: Response code 405 (Method Not Allowed)\n    at Request.<anonymous> (/builds/microservices/renovate-bot/node_modules/got/dist/source/as-promise/index.js:117:42)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)",
         "options": {
           "headers": {
             "user-agent": "RenovateBot/32.64.2 (https://github.com/renovatebot/renovate)",
             "private-token": "**redacted**",
             "accept": "application/json",
             "content-type": "application/json",
             "content-length": "72",
             "accept-encoding": "gzip, deflate, br"
           },
           "url": "http://192.168.0.5:85/api/v4/projects/microservices%2Fmarketplace%2Faffiliate/merge_requests/30/merge",
           "hostType": "gitlab",
           "username": "",
           "password": "",
           "method": "PUT",
           "http2": false
         },
         "response": {
           "statusCode": 405,
           "statusMessage": "Method Not Allowed",
           "body": {"message": "405 Method Not Allowed"},
           "headers": {
             "server": "nginx",
             "date": "Fri, 20 May 2022 17:02:17 GMT",
             "content-type": "application/json",
             "content-length": "36",
             "connection": "close",
             "cache-control": "no-cache",
             "vary": "Origin",
             "x-content-type-options": "nosniff",
             "x-frame-options": "SAMEORIGIN",
             "x-gitlab-feature-category": "code_review",
             "x-request-id": "01G3H6PZP5B379MHWQJ6XV05SQ",
             "x-runtime": "0.026936"
           },
           "httpVersion": "1.1"
         }
       }
DEBUG: Automerge on PR creation failed (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
       "err": {
         "name": "HTTPError",
         "code": "ERR_NON_2XX_3XX_RESPONSE",
         "timings": {
           "start": 1653066137284,
           "socket": 1653066137285,
           "lookup": 1653066137285,
           "connect": 1653066137285,
           "upload": 1653066137285,
           "response": 1653066137313,
           "end": 1653066137313,
           "phases": {
             "wait": 1,
             "dns": 0,
             "tcp": 0,
             "request": 0,
             "firstByte": 28,
             "download": 0,
             "total": 29
           }
         },
         "message": "Response code 405 (Method Not Allowed)",
         "stack": "HTTPError: Response code 405 (Method Not Allowed)\n    at Request.<anonymous> (/builds/microservices/renovate-bot/node_modules/got/dist/source/as-promise/index.js:117:42)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)",
         "options": {
           "headers": {
             "user-agent": "RenovateBot/32.64.2 (https://github.com/renovatebot/renovate)",
             "private-token": "**redacted**",
             "accept": "application/json",
             "content-type": "application/json",
             "content-length": "72",
             "accept-encoding": "gzip, deflate, br"
           },
           "url": "http://192.168.0.5:85/api/v4/projects/microservices%2Fmarketplace%2Faffiliate/merge_requests/30/merge",
           "hostType": "gitlab",
           "username": "",
           "password": "",
           "method": "PUT",
           "http2": false
         },
         "response": {
           "statusCode": 405,
           "statusMessage": "Method Not Allowed",
           "body": {"message": "405 Method Not Allowed"},
           "headers": {
             "server": "nginx",
             "date": "Fri, 20 May 2022 17:02:17 GMT",
             "content-type": "application/json",
             "content-length": "36",
             "connection": "close",
             "cache-control": "no-cache",
             "vary": "Origin",
             "x-content-type-options": "nosniff",
             "x-frame-options": "SAMEORIGIN",
             "x-gitlab-feature-category": "code_review",
             "x-request-id": "01G3H6PZP5B379MHWQJ6XV05SQ",
             "x-runtime": "0.026936"
           },
           "httpVersion": "1.1"
         }
       }
 INFO: PR updated (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
       "pr": 30,
       "prTitle": "Update cel packages"
DEBUG: PR is configured for automerge (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: resolveBranchStatus(branchName=renovate/cel-packages, ignoreTests=false) (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: getBranchStatus(renovate/cel-packages) (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: Got res with 0 results (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: Branch status yellow (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: PR is not ready for merge (branch status is yellow) (repository=microservices/marketplace/affiliate, branch=renovate/cel-packages)
DEBUG: Setting current branch to master (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: latest commit (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
       "branchName": "master",
       "latestCommitDate": "2022-05-20T16:59:57+00:00"
DEBUG: getBranchPr(renovate/moleculer-packages) (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: findPr(renovate/moleculer-packages, undefined, open) (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: getPr(29) (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: getMR(29) (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: branchExists=true (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: dependencyDashboardCheck=undefined (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: PR rebase requested=false (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: Checking if PR has been edited (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: Branch has not been modified (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
       "branchName": "renovate/moleculer-packages"
DEBUG: Found existing branch PR (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: Checking schedule(at any time, Europe/Bucharest) (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: No schedule defined (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: Branch already exists (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: getBranchPr(renovate/moleculer-packages) (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: findPr(renovate/moleculer-packages, undefined, open) (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: getPr(29) (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: getMR(29) (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: Skipping stale branch check due to rebaseWhen=auto (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: isBranchConflicted(master, renovate/moleculer-packages) (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: Branch does not need rebasing (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: Using reuseExistingBranch: true (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: manager.getUpdatedPackageFiles() reuseExistinbranch=true (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: npm.updateDependency(): dependencies.moleculer = 0.14.21 (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: npm.updateDependency(): dependencies.moleculer-console-tracer = 0.2.3 (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: npm.updateDependency(): devDependencies.moleculer-repl = 0.7.1 (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: No package files need updating (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: Getting updated lock files (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: Writing package.json files (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
       "packageFiles": ["package.json"]
DEBUG: Writing any updated package files (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: No updated lock files in branch (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: No files to commit (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: Checking if we can automerge branch (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: mergeStatus=no automerge (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: Ensuring PR (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: There are 0 errors and 0 warnings (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: getBranchPr(renovate/moleculer-packages) (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: findPr(renovate/moleculer-packages, undefined, open) (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: getPr(29) (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: getMR(29) (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: Found existing PR (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: Processing existing PR (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: Merge Request #29 does not need updating (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: PR is not configured for automerge (repository=microservices/marketplace/affiliate, branch=renovate/moleculer-packages)
DEBUG: getBranchPr(renovate/cel-packages) (repository=microservices/marketplace/affiliate)
DEBUG: findPr(renovate/cel-packages, undefined, open) (repository=microservices/marketplace/affiliate)
DEBUG: getPr(30) (repository=microservices/marketplace/affiliate)
DEBUG: getMR(30) (repository=microservices/marketplace/affiliate)
DEBUG: getBranchPr(renovate/moleculer-packages) (repository=microservices/marketplace/affiliate)
DEBUG: findPr(renovate/moleculer-packages, undefined, open) (repository=microservices/marketplace/affiliate)
DEBUG: getPr(29) (repository=microservices/marketplace/affiliate)
DEBUG: getMR(29) (repository=microservices/marketplace/affiliate)
DEBUG: Ensuring Dependency Dashboard (repository=microservices/marketplace/affiliate)
DEBUG: ensureIssue() (repository=microservices/marketplace/affiliate)
DEBUG: Updating issue (repository=microservices/marketplace/affiliate)
DEBUG: Removing any stale branches (repository=microservices/marketplace/affiliate)
DEBUG: config.repoIsOnboarded=true (repository=microservices/marketplace/affiliate)
DEBUG: Branch lists (repository=microservices/marketplace/affiliate)
       "branchList": ["renovate/cel-packages", "renovate/moleculer-packages"],
       "renovateBranches": ["renovate/cel-packages", "renovate/moleculer-packages"]
DEBUG: remainingBranches= (repository=microservices/marketplace/affiliate)
DEBUG: No branches to clean up (repository=microservices/marketplace/affiliate)
DEBUG: ensureIssueClosing() (repository=microservices/marketplace/affiliate)
DEBUG: PackageFiles.clear() - Package files deleted (repository=microservices/marketplace/affiliate)
       "baseBranches": ["master"]
DEBUG: Repo is activated (repository=microservices/marketplace/affiliate)
DEBUG: Renovate repository PR statistics (repository=microservices/marketplace/affiliate)
       "stats": {"total": 27, "open": 2, "closed": 24, "merged": 1}
DEBUG: Repository result: done, status: activated, enabled: true, onboarded: true (repository=microservices/marketplace/affiliate)
DEBUG: Repository timing splits (milliseconds) (repository=microservices/marketplace/affiliate)
       "splits": {"init": 739, "extract": 241, "lookup": 3279, "update": 18142},
       "total": 22867
DEBUG: http statistics (repository=microservices/marketplace/affiliate)
       "urls": {
         "http://192.168.0.134:4873/@cel%2Fcache-keys (GET,200)": 1,
         "http://192.168.0.134:4873/@cel%2Fdeclarations (GET,200)": 1,
         "http://192.168.0.134:4873/@cel%2Fmixin-cache-cleaner (GET,200)": 1,
         "http://192.168.0.134:4873/@cel%2Fmixin-marketplace-config (GET,200)": 1,
         "http://192.168.0.134:4873/@cel%2Fsequelize-connector (GET,200)": 1,
         "http://192.168.0.134:4873/@cel%2Fsequelize-models (GET,200)": 1,
         "http://192.168.0.134:4873/@cel%2Fstrategy-dev (GET,200)": 1,
         "http://192.168.0.134:4873/@cel%2Fvalidator (GET,200)": 1,
         "http://192.168.0.134:4873/moleculer (GET,200)": 1,
         "http://192.168.0.134:4873/moleculer-console-tracer (GET,200)": 1,
         "http://192.168.0.134:4873/moleculer-repl (GET,200)": 1,
         "http://192.168.0.5:85/api/v4/projects/microservices%2Fmarketplace%2Faffiliate/issues (GET,200)": 1,
         "http://192.168.0.5:85/api/v4/projects/microservices%2Fmarketplace%2Faffiliate/issues/10 (GET,200)": 2,
         "http://192.168.0.5:85/api/v4/projects/microservices%2Fmarketplace%2Faffiliate/issues/10 (PUT,200)": 1,
         "http://192.168.0.5:85/api/v4/projects/microservices%2Fmarketplace%2Faffiliate/merge_requests (GET,200)": 1,
         "http://192.168.0.5:85/api/v4/projects/microservices%2Fmarketplace%2Faffiliate/merge_requests/29 (GET,200)": 1,
         "http://192.168.0.5:85/api/v4/projects/microservices%2Fmarketplace%2Faffiliate/merge_requests/30 (GET,200)": 2,
         "http://192.168.0.5:85/api/v4/projects/microservices%2Fmarketplace%2Faffiliate/merge_requests/30 (PUT,200)": 1,
         "http://192.168.0.5:85/api/v4/projects/microservices%2Fmarketplace%2Faffiliate/merge_requests/30/merge (PUT,405)": 1,
         "http://192.168.0.5:85/api/v4/projects/microservices%2Fmarketplace%2Faffiliate/merge_requests/30/notes (GET,200)": 1,
         "http://192.168.0.5:85/api/v4/projects/microservices%2Fmarketplace%2Faffiliate/repository/commits/a07d562426dedeca2122c65c9a3f9caeb7e2828c/statuses (GET,200)": 1,
         "https://api.github.com/repos/moleculerjs/moleculer (GET,200)": 1,
         "https://api.github.com/repos/moleculerjs/moleculer-repl (GET,200)": 1,
         "https://api.github.com/repos/moleculerjs/moleculer-repl/git/blobs/6e4505c41f7df495bc207f948a198a4437d4ce6f (GET,200)": 1,
         "https://api.github.com/repos/moleculerjs/moleculer-repl/git/trees/master (GET,200)": 1,
         "https://api.github.com/repos/moleculerjs/moleculer-repl/tags (GET,200)": 1,
         "https://api.github.com/repos/moleculerjs/moleculer/git/blobs/ab9f08b0ee3d05be63942cb0277e3bb25a0a4cd6 (GET,200)": 1,
         "https://api.github.com/repos/moleculerjs/moleculer/git/trees/master (GET,200)": 1,
         "https://api.github.com/repos/moleculerjs/moleculer/tags (GET,200)": 1,
         "https://api.github.com/repositories/82289483/tags (GET,200)": 1
       },
       "hostStats": {
         "192.168.0.134": {"requestCount": 11, "requestAvgMs": 238, "queueAvgMs": 0},
         "192.168.0.5": {"requestCount": 12, "requestAvgMs": 54, "queueAvgMs": 0},
         "api.github.com": {"requestCount": 9, "requestAvgMs": 281, "queueAvgMs": 0}
       },
       "totalRequests": 32
 INFO: Repository finished (repository=microservices/marketplace/affiliate)
       "durationMs": 22867
DEBUG: Renovate exiting
section_end:1653066138:step_script
[0K[32;1mJob succeeded
[0;m

Have you created a minimal reproduction repository?

No reproduction repository

xiopt avatar May 20 '22 17:05 xiopt

I've now enabled it on our official runner template repo. let's see if it's happening there too.

https://gitlab.com/renovate-bot/renovate-runner/

viceice avatar May 20 '22 18:05 viceice

I'm getting this same error, is this a confirmed issue? I was wondering if it was possibly due to an approvals issue?

jjathman avatar Jul 11 '22 22:07 jjathman

When looking at the URLs of the debug log, I'd assume it's due to escaping the slashes. Which means, this should be reproducible with nested groups.

http://192.168.0.5:85/api/v4/projects/microservices%2Fmarketplace%2Faffiliate/merge_requests/30/merge

should probably be:

http://192.168.0.5:85/api/v4/projects/microservices/marketplace/affiliate/merge_requests/30/merge

EDIT: hm, no, that's correct according to the GitLab documentation: https://docs.gitlab.com/ee/api/#file-path-branches-and-tags-name-encoding

nachtjasmin avatar Jul 27 '22 08:07 nachtjasmin

Can someone reproduce it on gitlab.com?

rarkins avatar Jul 29 '22 06:07 rarkins

we sometimes experience this issue also.

could this be of any help? -> gitlab ticket

joelgrimberg avatar Aug 12 '22 11:08 joelgrimberg

Same thing for me here.

We require at least one approval for every MR. Tried with gitLabIgnoreApprovals but without success.

When manually approving it merges just fine.

MaxWinterstein avatar Sep 06 '22 08:09 MaxWinterstein

We are having the same problem. Has anyone found a solution for this?

bitnik avatar Sep 22 '22 10:09 bitnik

We are having the same problem. Has anyone found a solution for this?

yasinlachiny avatar Oct 13 '22 14:10 yasinlachiny

please avoid me to posts. use the emoji on issue description to vote.

somebody needs to debug this and probably check the gitlab logs on self-hosted gitlab to get further. I'm pretty sure this is caused by some invalid combination of settings on repo

viceice avatar Oct 13 '22 14:10 viceice

Hi @viceice Thank you for your response. I used automerge=true, automergeType=pr . Could you please give me your opinion about this config? gitLabIgnoreApprovals: Ignore the default project level approval(s), so that Renovate bot can automerge its merge requests, without needing approval(s). Under the hood, it creates a MR-level approval rule where approvals_required is set to 0. This option works only when automerge=true, automergeType=pr or automergeType=branch and platformAutomerge=true. Also, approval rules overriding should not be prevented in GitLab settings.

yasinlachiny avatar Oct 13 '22 14:10 yasinlachiny

i don't think it depends on approval rules ( never used them). it probably depends on merge method. maybe renovate tries the wrong method. please check the allowed merge methods on your repo and the settings on renovate

viceice avatar Oct 13 '22 15:10 viceice

Without Approval rules it works fine but when I add Approval rules it won't work so I think renovate config is fine.

yasinlachiny avatar Oct 13 '22 15:10 yasinlachiny

does the renovate user has appropriate rights to ignore approvals?

viceice avatar Oct 13 '22 15:10 viceice

I try to ignore approvals for renovate bot by gitLabIgnoreApprovals . Is there anything else I should do about it?

yasinlachiny avatar Oct 13 '22 15:10 yasinlachiny

that only works if the gitlab user renovate is using is allowed to ignore approvals.

this is a gitlab permission and renovate can't change that.

those rules wouldn't make sense if everyone could simply ignore them.

viceice avatar Oct 13 '22 15:10 viceice

Yeah, You are right. But If a user can ignore approvals, what's the purpose of gitLabIgnoreApprovals? In addition, it has a security risk to have this kind of user. we would like to have this feature in just some of our repos.

yasinlachiny avatar Oct 13 '22 15:10 yasinlachiny

i think that only works when the renovate gitlab user has admin privilege

viceice avatar Oct 13 '22 15:10 viceice

The bot has an owner role in our repos. and I gave it all the permissions.

yasinlachiny avatar Oct 13 '22 15:10 yasinlachiny

🤷‍♂️ i don't use those rules, so i can't help further.

as said before someone needs to debug this.

viceice avatar Oct 13 '22 15:10 viceice

GitLab has 2 approval mechanisms, approval rules, which (as long as not disable in settings) renovate correctly sets to 0 and can automerge. The other is in the Protected Branches settings where you can say require CODEOWNER approval. Renovate can't bypass that, so the automerge fails and the MR is left open.

See also https://github.com/renovatebot/renovate/issues/6473

adam-moss avatar Oct 14 '22 14:10 adam-moss

When I use curl and the branch has no changes then I got also a 405.

But what saw in the "http statistics" was that there was two PUT requests. one 200 and the 405.

tobiasbaehr avatar Nov 07 '22 22:11 tobiasbaehr