-
Previous Value Current Value RenovateStep: GET /~api/renovate/repos/{project}/commits/{sha}/statuses returns 404 for an existing commit, so Renovate aborts the repo ("Repository has changed during renovation")/~api/renovate/repos/{project}/commits/{sha}/statuses returns 404 for an existing commit -
State changed as build OD-8665 (16.8.7) is successful
-
OneDev
changed state to 'Closed' 2 weeks ago
Previous Value Current Value Open
Closed
| Type |
Bug
|
| Priority |
Normal
|
| Assignee | |
| Affected Versions |
16.8.6
|
| Labels |
No labels
|
Issue Votes (0)
Environment:
Symptoms
When a repository has a pending Renovate branch for a datasource that uses
minimumReleaseAge, the step stops processing that repository after the first branch. No PR is created for that branch, and the repo's other branches (for examplerenovate/lock-file-maintenance) are never reached. Every later run repeats this.Job log (debug level):
Commit
1824eaf...exists: it is the head of branch renovate/npm-(non-major), pushed by the same job minutes earlier.Why Renovate aborts (theory)
The job log shows
"platform": "github"and"endpoint": "https://<server>/~api/renovate". In Renovate's GitHub platform,getBranchStatusCheckmaps any404to a repository-changed error. The code below is from Renovate 44.147.0; the job runs 44.14.10 and logs the same message:In 44.147.0 it is reached through
setStatusCheck->setStability(the renovate/stability-days status). In our runs the call only happened for branches that aminimumReleaseAgerule applied to.Expected vs actual
Tested against GitHub's live API (octocat/Hello-World, unauthenticated):
/repos/octocat/Hello-World/commits/<existing sha with no statuses>/statusesreturns200 []. Same for the branch namemaster.OneDev returns 404 for
commits/<sha>/statuseswhere<sha>is the head commit of a branch that exists and was pushed by the same job (1824eaf..., seen on the remote branch). It returned 404 again for the same SHA in a second run about 7 minutes later.Repro
RenovateStepand this inglobalConfig:packageRules: [{ matchDatasources: ["npm"], minimumReleaseAge: "7 days" }]package.jsonthat has an outdated dependency whose newer release is older than 7 days.With
minimumReleaseAgeset tonullfor npm in that child project only, the same run made no/statusescall, created the branch and PR, and then also processedrenovate/lock-file-maintenanceand created its PR.Can the
GET /~api/renovate/repos/{owner}/{repo}/commits/{ref}/statusesreturn200 []for an existing commit with no statuses, and make sure the matching status-create endpoint works, so that Renovate'sminimumReleaseAgestatus check can be used again.