File: 34_uploads.rb

package info (click to toggle)
gitlab 17.6.5-19
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 629,368 kB
  • sloc: ruby: 1,915,304; javascript: 557,307; sql: 60,639; xml: 6,509; sh: 4,567; makefile: 1,239; python: 406
file content (58 lines) | stat: -rw-r--r-- 1,814 bytes parent folder | download
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
52
53
54
55
56
57
58
# frozen_string_literal: true

# This seeder seeds comments as well, because uploads are not relevant by
# themselves
Gitlab::Seeder.quiet do
  upload_seed_total_limit = 50
  upload_seed_individual_limit = upload_seed_total_limit / 10

  Issue.limit(upload_seed_individual_limit).find_each do |issue|
    project = issue.project

    project.team.users.limit(upload_seed_individual_limit).each do |user|
      file = CarrierWaveStringFile.new_file(
        file_content: "seeded upload file in project #{project.full_path}, issue #{issue.iid}",
        filename: 'seeded_upload.txt',
        content_type: 'text/plain'
      )

      uploader = UploadService.new(project, file, FileUploader).execute

      note_params = {
        noteable_type: 'Issue',
        noteable_id: issue.id,
        note: "Seeded upload: #{uploader.to_h[:markdown]}",
      }

      Gitlab::ExclusiveLease.skipping_transaction_check do
        Notes::CreateService.new(project, user, note_params).execute
      end
      print '.'
    end
  end

  MergeRequest.limit(upload_seed_individual_limit).find_each do |mr|
    project = mr.project

    project.team.users.limit(upload_seed_individual_limit).each do |user|
      file = CarrierWaveStringFile.new_file(
        file_content: "seeded upload file in project #{project.full_path}, MR #{mr.iid}",
        filename: 'seeded_upload.txt',
        content_type: 'text/plain'
      )

      uploader = UploadService.new(project, file, FileUploader).execute

      note_params = {
        noteable_type: 'MergeRequest',
        noteable_id: mr.id,
        note: "Seeded upload: #{uploader.to_h[:markdown]}",
      }

      Gitlab::ExclusiveLease.skipping_transaction_check do
        Notes::CreateService.new(project, user, note_params).execute
      end
      print '.'
    end
  end
end