Skip to content

Add `importing?` to disable some callbacks

Kamil Trzciński requested to merge mark-some-as-not-required-during-import into master

What does this MR do?

We run a number of callbacks that are not required to be run:

  • all internal IDs do run for each relation track_greatest, this is not needed, as it will be auto-recovered after the process when a new item is created
  • we run redundant set_as_latest_diff where this is explicitly run afterwards
  • we run creation of evidence and notify after restoring releases

I did not measure how much it helps, but this is ~"🍎" of things that we run but are not needed.

This also leads me to conclusion that we should REQUIRE that each class that can be imported should have Importable concern included, and we should enforce that via tests.

This also leads me to another conclusion that we should mark EACH callback (before/after) as expected to run or not during import, disallowing callbacks that are not annotated.

Fixes: #39109 (closed)

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by 🤖 GitLab Bot 🤖

Merge request reports