Class: Gitlab::BuildDataBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/build_data_builder.rb

Class Method Summary collapse

Class Method Details

.build(build) ⇒ Object


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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/gitlab/build_data_builder.rb', line 4

def build(build)
  project = build.project
  commit = build.commit
  user = build.user

  data = {
    object_kind: 'build',

    ref: build.ref,
    tag: build.tag,
    before_sha: build.before_sha,
    sha: build.sha,

    # TODO: should this be not prefixed with build_?
    # Leaving this way to have backward compatibility
    build_id: build.id,
    build_name: build.name,
    build_stage: build.stage,
    build_status: build.status,
    build_started_at: build.started_at,
    build_finished_at: build.finished_at,
    build_duration: build.duration,
    build_allow_failure: build.allow_failure,

    # TODO: do we still need it?
    project_id: project.id,
    project_name: project.name_with_namespace,

    user: {
      id: user.try(:id),
      name: user.try(:name),
      email: user.try(:email),
    },

    commit: {
      id: commit.id,
      sha: commit.sha,
      message: commit.git_commit_message,
      author_name: commit.git_author_name,
      author_email: commit.git_author_email,
      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
    },
  }

  data
end