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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/gitlab/data_builder/build.rb', line 8
def build(build)
project = build.project
commit = build.pipeline
user = build.user
author_url = build_author_url(build.commit, commit)
attrs = {
object_kind: 'build',
ref: build.ref,
tag: build.tag,
before_sha: build.before_sha,
sha: build.sha,
retries_count: build.retries_count,
build_id: build.id,
build_name: build.name,
build_stage: build.stage_name,
build_status: build.status,
build_created_at: build.created_at,
build_started_at: build.started_at,
build_finished_at: build.finished_at,
build_duration: build.duration,
build_queued_duration: build.queued_duration,
build_allow_failure: build.allow_failure,
build_failure_reason: build.failure_reason,
pipeline_id: commit.id,
runner: build_runner(build.runner),
project_id: project.id,
project_name: project.full_name,
user: user.try(:hook_attrs),
commit: {
id: commit.id,
name: commit.name,
sha: commit.sha,
message: commit.git_commit_message,
author_name: commit.git_author_name,
author_email: commit.git_author_email,
author_url: author_url,
status: commit.status,
duration: commit.duration,
started_at: commit.started_at,
finished_at: commit.finished_at
},
repository: {
name: project.name,
url: project.url_to_repo,
description: project.description,
homepage: project.web_url,
git_http_url: project.http_url_to_repo,
git_ssh_url: project.ssh_url_to_repo,
visibility_level: project.visibility_level
},
project: project.hook_attrs(backward: false),
environment: build_environment(build)
}
attrs[:source_pipeline] = source_pipeline_attrs(commit.source_pipeline) if commit.source_pipeline.present?
attrs
end
|