Class: Gitlab::GithubImport::Importer::NoteImporter
- Inherits:
-
Object
- Object
- Gitlab::GithubImport::Importer::NoteImporter
- Defined in:
- lib/gitlab/github_import/importer/note_importer.rb
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Returns the value of attribute client.
-
#note ⇒ Object
readonly
Returns the value of attribute note.
-
#project ⇒ Object
readonly
Returns the value of attribute project.
-
#user_finder ⇒ Object
readonly
Returns the value of attribute user_finder.
Instance Method Summary collapse
- #execute ⇒ Object
-
#find_noteable_id ⇒ Object
Returns the ID of the issue or merge request to create the note for.
-
#initialize(note, project, client) ⇒ NoteImporter
constructor
note - An instance of `Gitlab::GithubImport::Representation::Note`.
Constructor Details
#initialize(note, project, client) ⇒ NoteImporter
note - An instance of `Gitlab::GithubImport::Representation::Note`. project - An instance of `Project`. client - An instance of `Gitlab::GithubImport::Client`.
12 13 14 15 16 17 |
# File 'lib/gitlab/github_import/importer/note_importer.rb', line 12 def initialize(note, project, client) @note = note @project = project @client = client @user_finder = GithubImport::UserFinder.new(project, client) end |
Instance Attribute Details
#client ⇒ Object (readonly)
Returns the value of attribute client
7 8 9 |
# File 'lib/gitlab/github_import/importer/note_importer.rb', line 7 def client @client end |
#note ⇒ Object (readonly)
Returns the value of attribute note
7 8 9 |
# File 'lib/gitlab/github_import/importer/note_importer.rb', line 7 def note @note end |
#project ⇒ Object (readonly)
Returns the value of attribute project
7 8 9 |
# File 'lib/gitlab/github_import/importer/note_importer.rb', line 7 def project @project end |
#user_finder ⇒ Object (readonly)
Returns the value of attribute user_finder
7 8 9 |
# File 'lib/gitlab/github_import/importer/note_importer.rb', line 7 def user_finder @user_finder end |
Instance Method Details
#execute ⇒ Object
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 |
# File 'lib/gitlab/github_import/importer/note_importer.rb', line 19 def execute return unless (noteable_id = find_noteable_id) , = user_finder.(note) note_body = MarkdownText.format(note.note, note., ) attributes = { noteable_type: note.noteable_type, noteable_id: noteable_id, project_id: project.id, author_id: , note: note_body, system: false, created_at: note.created_at, updated_at: note.updated_at } # We're using bulk_insert here so we can bypass any validations and # callbacks. Running these would result in a lot of unnecessary SQL # queries being executed when importing large projects. Gitlab::Database.bulk_insert(Note.table_name, [attributes]) # rubocop:disable Gitlab/BulkInsert rescue ActiveRecord::InvalidForeignKey # It's possible the project and the issue have been deleted since # scheduling this job. In this case we'll just skip creating the note. end |
#find_noteable_id ⇒ Object
Returns the ID of the issue or merge request to create the note for.
48 49 50 |
# File 'lib/gitlab/github_import/importer/note_importer.rb', line 48 def find_noteable_id GithubImport::IssuableFinder.new(project, note).database_id end |