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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/github_import/representation/diff_note.rb')
-rw-r--r--lib/gitlab/github_import/representation/diff_note.rb17
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/gitlab/github_import/representation/diff_note.rb b/lib/gitlab/github_import/representation/diff_note.rb
index 0408b34bb02..191e15962a6 100644
--- a/lib/gitlab/github_import/representation/diff_note.rb
+++ b/lib/gitlab/github_import/representation/diff_note.rb
@@ -12,7 +12,7 @@ module Gitlab
expose_attribute :noteable_id, :commit_id, :file_path,
:diff_hunk, :author, :created_at, :updated_at,
:original_commit_id, :note_id, :end_line, :start_line,
- :side, :in_reply_to_id, :discussion_id
+ :side, :in_reply_to_id, :discussion_id, :subject_type
# Builds a diff note from a GitHub API response.
#
@@ -43,7 +43,8 @@ module Gitlab
start_line: note[:start_line],
side: note[:side],
in_reply_to_id: note[:in_reply_to_id],
- discussion_id: DiffNotes::DiscussionId.new(note).find_or_generate
+ discussion_id: DiffNotes::DiscussionId.new(note).find_or_generate,
+ subject_type: note[:subject_type]
}
new(hash)
@@ -84,8 +85,14 @@ module Gitlab
end
def line_code
- diff_line = Gitlab::Diff::Parser.new.parse(diff_hunk.lines).to_a.last
+ # on the GitHub side it is possible to leave a comment on a file
+ # or on a line. When the comment is left on a file there is no
+ # diff hunk, but LegacyDiffNote requires line_code to be always present
+ # and DiffFile requires it for text files
+ # so it is set as the first line for any type of file (image, binary, text)
+ return Gitlab::Git.diff_line_code(file_path, 1, 1) if on_file?
+ diff_line = Gitlab::Diff::Parser.new.parse(diff_hunk.lines).to_a.last
Gitlab::Git.diff_line_code(file_path, diff_line.new_pos, diff_line.old_pos)
end
@@ -141,6 +148,10 @@ module Gitlab
def addition?
side == 'RIGHT'
end
+
+ def on_file?
+ subject_type == 'file'
+ end
end
end
end