debian-mirror-gitlab/lib/gitlab/checks/lfs_check.rb

29 lines
974 B
Ruby
Raw Normal View History

2019-02-15 15:39:39 +05:30
# frozen_string_literal: true
module Gitlab
module Checks
class LfsCheck < BaseChecker
2019-12-04 20:38:33 +05:30
LOG_MESSAGE = 'Scanning repository for blobs stored in LFS and verifying their files have been uploaded to GitLab...'
ERROR_MESSAGE = 'LFS objects are missing. Ensure LFS is properly set up or try a manual "git lfs push --all".'
2019-02-15 15:39:39 +05:30
def validate!
2020-10-24 23:57:45 +05:30
# This feature flag is used for disabling integrify check on some envs
# because these costy calculations may cause performance issues
2019-07-07 11:18:12 +05:30
return unless Feature.enabled?(:lfs_check, default_enabled: true)
2020-10-24 23:57:45 +05:30
2019-02-15 15:39:39 +05:30
return unless project.lfs_enabled?
return if skip_lfs_integrity_check
2021-04-17 20:07:23 +05:30
return if deletion?
2019-02-15 15:39:39 +05:30
logger.log_timed(LOG_MESSAGE) do
lfs_check = Checks::LfsIntegrity.new(project, newrev, logger.time_left)
if lfs_check.objects_missing?
2020-04-08 14:13:33 +05:30
raise GitAccess::ForbiddenError, ERROR_MESSAGE
2019-02-15 15:39:39 +05:30
end
end
end
end
end
end