class Git::Semaphore::API::Enrich
Public Class Methods
history(project_hash_id, branch_id)
click to toggle source
# File lib/git/semaphore/api_enrich.rb, line 17 def self.history(project_hash_id, branch_id) API.history(project_hash_id, branch_id).tap do |history| history['builds'].each do |build| enrich(build) end end end
projects()
click to toggle source
# File lib/git/semaphore/api_enrich.rb, line 6 def self.projects API.projects.tap do |results| results.each do |project| # full repository name on github.com: 'pvdb/git-semaphore' project['full_name'] = [project['owner'], project['name']].join('/') # https://semaphoreci.com/pvdb/git-semaphore -> https://github.com/pvdb/git-semaphore project['github_url'] = project['html_url'].sub(/semaphoreci\.com/, 'github.com') end end end
status(project_hash_id, branch_id)
click to toggle source
# File lib/git/semaphore/api_enrich.rb, line 25 def self.status(project_hash_id, branch_id) API.status(project_hash_id, branch_id).tap do |status| enrich(status) end end
Private Class Methods
enrich(build)
click to toggle source
# File lib/git/semaphore/api_enrich.rb, line 31 def self.enrich(build) # build['result'] = "passed", "failed", "stopped" or "pending" return unless (started_at = build['started_at']) return unless (finished_at = build['finished_at']) started_at = Time.parse(started_at) finished_at = Time.parse(finished_at) build['date'] = { started_at: started_at.to_date, finished_at: finished_at.to_date, } build['iso8601'] = { started_at: started_at.utc.iso8601, finished_at: finished_at.utc.iso8601, } build['epoch'] = { started_at: started_at.to_f, finished_at: finished_at.to_f, } build['duration'] = { seconds: (finished_at - started_at).to_i, minutes: format('%0.2f', (finished_at - started_at) / 60).to_f, } end