70 lines
2.2 KiB
Ruby
70 lines
2.2 KiB
Ruby
require 'travis/api/serialize/v0/pusher/job/canceled'
|
|
require 'travis/api/serialize/v0/pusher/job/created'
|
|
require 'travis/api/serialize/v0/pusher/job/log'
|
|
require 'travis/api/serialize/v0/pusher/job/received'
|
|
require 'travis/api/serialize/v0/pusher/job/started'
|
|
require 'travis/api/serialize/v0/pusher/job/finished'
|
|
|
|
module Travis
|
|
module Api
|
|
module Serialize
|
|
module V0
|
|
module Pusher
|
|
class Job
|
|
include Formats
|
|
|
|
attr_reader :job, :options
|
|
|
|
def initialize(job, options = {})
|
|
@job = job
|
|
@options = options
|
|
end
|
|
|
|
def data
|
|
job_data(job).merge(
|
|
'commit' => commit_data(job.commit)
|
|
)
|
|
end
|
|
|
|
private
|
|
|
|
def job_data(job)
|
|
{
|
|
'id' => job.id,
|
|
'repository_id' => job.repository_id,
|
|
'repository_slug' => job.repository.slug,
|
|
'repository_private' => job.repository.private,
|
|
'build_id' => job.source_id,
|
|
'commit_id' => job.commit_id,
|
|
'log_id' => job.log_id,
|
|
'number' => job.number,
|
|
'state' => job.state.to_s,
|
|
'started_at' => format_date(job.started_at),
|
|
'finished_at' => format_date(job.finished_at),
|
|
'queue' => job.queue,
|
|
'allow_failure' => job.allow_failure,
|
|
'annotation_ids' => job.annotation_ids
|
|
}
|
|
end
|
|
|
|
def commit_data(commit)
|
|
{
|
|
'id' => commit.id,
|
|
'sha' => commit.commit,
|
|
'branch' => commit.branch,
|
|
'message' => commit.message,
|
|
'committed_at' => format_date(commit.committed_at),
|
|
'author_name' => commit.author_name,
|
|
'author_email' => commit.author_email,
|
|
'committer_name' => commit.committer_name,
|
|
'committer_email' => commit.committer_email,
|
|
'compare_url' => commit.compare_url,
|
|
}
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|