Class: Gitlab::Checks::FileSizeCheck::HookEnvironmentAwareAnyOversizedBlobs

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/checks/file_size_check/hook_environment_aware_any_oversized_blobs.rb

Instance Method Summary collapse

Constructor Details

#initialize(project:, changes:, file_size_limit_megabytes:) ⇒ HookEnvironmentAwareAnyOversizedBlobs

Returns a new instance of HookEnvironmentAwareAnyOversizedBlobs.



7
8
9
10
11
12
# File 'lib/gitlab/checks/file_size_check/hook_environment_aware_any_oversized_blobs.rb', line 7

def initialize(project:, changes:, file_size_limit_megabytes:)
  @project = project
  @repository = project.repository
  @changes = changes
  @file_size_limit_megabytes = file_size_limit_megabytes
end

Instance Method Details

#find(timeout: nil) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/gitlab/checks/file_size_check/hook_environment_aware_any_oversized_blobs.rb', line 14

def find(timeout: nil)
  if ignore_alternate_directories?
    blobs = repository.list_all_blobs(bytes_limit: 0, dynamic_timeout: timeout,
      ignore_alternate_object_directories: true).to_a

    blobs.select! do |blob|
      ::Gitlab::Utils.bytes_to_megabytes(blob.size) > file_size_limit_megabytes
    end
    filter_existing(blobs)
  else
    any_oversize_blobs.find(timeout: timeout)
  end
end