Module: Gitlab::DataBuilder::Note
Instance Method Summary collapse
-
#build(note, user) ⇒ Object
Produce a hash of post-receive data.
- #build_base_data(project, user, note) ⇒ Object
- #build_data_for_commit(project, user, note) ⇒ Object
Instance Method Details
#build(note, user) ⇒ Object
Produce a hash of post-receive data
For all notes:
data = {
object_kind: "note",
event_type: "confidential_note",
user: {
name: String,
username: String,
avatar_url: String
}
project_id: Integer,
repository: {
name: String,
url: String,
description: String,
homepage: String,
}
object_attributes: {
<hook data for note>
}
<note-specific data>: {
} note-specific data is a hash with one of the following keys and contains the hook data for that type.
- commit
- issue
- merge_request
- snippet
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/gitlab/data_builder/note.rb', line 39 def build(note, user) project = note.project data = build_base_data(project, user, note) if note.for_commit? data[:commit] = build_data_for_commit(project, user, note) elsif note.for_issue? data[:issue] = Gitlab::HookData::IssueBuilder.new(note.noteable).build elsif note.for_merge_request? data[:merge_request] = Gitlab::HookData::MergeRequestBuilder.new(note.noteable).build elsif note.for_snippet? data[:snippet] = note.noteable.hook_attrs end data end |
#build_base_data(project, user, note) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/gitlab/data_builder/note.rb', line 56 def build_base_data(project, user, note) event_type = note.confidential?(include_noteable: true) ? 'confidential_note' : 'note' base_data = { object_kind: "note", event_type: event_type, user: user.hook_attrs, project_id: project.id, project: project.hook_attrs, object_attributes: note.hook_attrs, # DEPRECATED repository: project.hook_attrs.slice(:name, :url, :description, :homepage) } base_data[:object_attributes][:url] = Gitlab::UrlBuilder.build(note) base_data end |
#build_data_for_commit(project, user, note) ⇒ Object
74 75 76 77 78 |
# File 'lib/gitlab/data_builder/note.rb', line 74 def build_data_for_commit(project, user, note) # commit_id is the SHA hash commit = project.commit(note.commit_id) commit.hook_attrs end |