Fix preloading unrelated associations for CommitStatus
What does this MR do?
Fix for the error
ActiveRecord::AssociationNotFoundError: Association named 'metadata' was not found on GenericCommitStatus; perhaps you misspelled it?
@furkanayhan
explains it well:
In
Ci::DropPipelineService
, we try to fetch all "cancelable" commit-statuses (GenericCommitStatus
,Ci::Build
,Ci::Bridge
), then try to preload some relationships (:project, :pipeline, :metadata, :deployment, :taggings
).However,
metadata
,deployment
andtaggings
are defined for onlyCi::Build
model.
I added a commit_status to the relevant tests causing it to fail locally before fixing.
Issue: #337431 (closed)
How to setup and validate locally (strongly suggested)
You can remove the non-test changes and note the failures that are now passing.
Does this MR meet the acceptance criteria?
Conformity
-
I have included changelog trailers, or none are needed. (Does this MR need a changelog?) -
I have self-reviewed this MR per code review guidelines. -
This MR does not harm performance, or I have asked a reviewer to help assess the performance impact. (Merge request performance guidelines) -
I have followed the style guides. -
This change is backwards compatible across updates, or this does not apply.
Availability and Testing
-
I have added/updated tests following the Testing Guide, or it's not needed. (Consider all test levels. See the Test Planning Process.)
Edited by Allison Browne