Remove stale merge refs
What does this MR do?
14 days after a merge request gets closed/merged, its merge ref will be deleted and moved as a keep-around ref (if not yet added).
This is to ensure that the commit won't be deleted when GC runs and still being able to reduce the number of advertised refs on git push/pull.
Before deletion, it'll be cached to merge_ref_sha
column of merge_requests
table so we can still display the merge ref diff.
This MR is dependent on !41555 (merged) where the worker and service was implemented. This is just extending it.
Migration
== 20200904092131 AddMergeRefShaToMergeRequests: migrating ====================
-- add_column(:merge_requests, :merge_ref_sha, :binary)
-> 0.0010s
== 20200904092131 AddMergeRefShaToMergeRequests: migrated (0.0066s) ===========
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
- [-] Informed Infrastructure department of a default or new setting change, if applicable per definition of done
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 Patrick Bajao