Welcome to mirror list, hosted at ThFree Co, Russian Federation.

12_snippets.rb « development « fixtures « db - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 6d31007b3208de90cc268310cc0340888018eab2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
require './spec/support/sidekiq_middleware'

SNIPPET_REPO_URL = "https://gitlab.com/gitlab-org/gitlab-snippet-test.git"
BUNDLE_PATH = File.join(Rails.root, 'db/fixtures/development/gitlab-snippet-test.bundle')

class Gitlab::Seeder::SnippetRepository
  def initialize(snippet)
    @snippet = snippet
  end

  def import
    if File.exists?(BUNDLE_PATH)
      @snippet.repository.create_from_bundle(BUNDLE_PATH)
    else
      @snippet.repository.import_repository(SNIPPET_REPO_URL)
      @snippet.repository.bundle_to_disk(BUNDLE_PATH)
    end
  end

  def self.cleanup
    File.delete(BUNDLE_PATH) if File.exists?(BUNDLE_PATH)
  rescue => e
    warn "\nError cleaning up snippet bundle: #{e}"
  end
end

Gitlab::Seeder.quiet do
  20.times do |i|
    user = User.not_mass_generated.sample

    user.snippets.create({
      type: 'PersonalSnippet',
      title: FFaker::Lorem.sentence(3),
      file_name:  'file.rb',
      visibility_level: Gitlab::VisibilityLevel.values.sample,
      content: 'foo'
    }).tap do |snippet|
      unless snippet.repository_exists?
        Gitlab::Seeder::SnippetRepository.new(snippet).import
      end

      snippet.track_snippet_repository(snippet.repository.storage)
      snippet.statistics.refresh!
    end

    print('.')
  end

  Gitlab::Seeder::SnippetRepository.cleanup
end