Add `importing?` to disable some callbacks
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 ~"
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
-
Changelog entry -
Documentation (if required) -
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides -
Separation of EE specific content
Availability and Testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Tested in all supported browsers
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 🤖