summaryrefslogtreecommitdiff
path: root/lib/gitlab/hook_data/note_builder.rb
blob: 81873e345d5abe4afb298dbac66de912f84af11a (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
module Gitlab
  module HookData
    class NoteBuilder < BaseBuilder
      SAFE_HOOK_ATTRIBUTES = %i[
        attachment
        author_id
        change_position
        commit_id
        created_at
        discussion_id
        id
        line_code
        note
        noteable_id
        noteable_type
        original_position
        position
        project_id
        resolved_at
        resolved_by_id
        resolved_by_push
        st_diff
        system
        type
        updated_at
        updated_by_id
      ].freeze

      alias_method :note, :object

      def build
        note
          .attributes
          .with_indifferent_access
          .slice(*SAFE_HOOK_ATTRIBUTES)
          .merge(
            description: absolute_image_urls(note.note),
            url: Gitlab::UrlBuilder.build(note)
          )
      end
    end
  end
end