gitlab-org--gitlab-foss/lib/gitlab/build_data_builder.rb

66 lines
1.8 KiB
Ruby

module Gitlab
class BuildDataBuilder
class << self
def build(build)
project = build.project
commit = build.pipeline
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
end
end
end