Class: Gitlab::ImportExport::SnippetsRepoSaver

Inherits:
Object
  • Object
show all
Includes:
CommandLineUtil, DurationMeasuring
Defined in:
lib/gitlab/import_export/snippets_repo_saver.rb

Constant Summary

Constants included from CommandLineUtil

CommandLineUtil::CLEAN_DIR_IGNORE_FILE_NAMES, CommandLineUtil::CommandLineUtilError, CommandLineUtil::DEFAULT_DIR_MODE, CommandLineUtil::FileOversizedError, CommandLineUtil::HardLinkError, CommandLineUtil::UNTAR_MASK

Instance Method Summary collapse

Methods included from CommandLineUtil

#gunzip, #gzip, #gzip_with_options, #mkdir_p, #tar_cf, #tar_czf, #untar_xf, #untar_zxf

Constructor Details

#initialize(current_user:, project:, shared:) ⇒ SnippetsRepoSaver

Returns a new instance of SnippetsRepoSaver.



9
10
11
12
13
# File 'lib/gitlab/import_export/snippets_repo_saver.rb', line 9

def initialize(current_user:, project:, shared:)
  @project = project
  @shared = shared
  @current_user = current_user
end

Instance Method Details

#saveObject



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/gitlab/import_export/snippets_repo_saver.rb', line 15

def save
  with_duration_measuring do
    create_snippets_repo_directory

    @project.snippets.find_each.all? do |snippet|
      Gitlab::ImportExport::SnippetRepoSaver.new(project: @project,
                                                 shared: @shared,
                                                 repository: snippet.repository)
                                            .save
    end
  end
end