Skip to content

Fix preloading unrelated associations for CommitStatus

Allison Browne requested to merge ab-fix-bad-preloads into master

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 and taggings are defined for only Ci::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

Availability and Testing

Edited by Allison Browne

Merge request reports