Class: Git::Semaphore::API::Enrich

Inherits:
Object
  • Object
show all
Defined in:
lib/git/semaphore/api_enrich.rb

Class Method Summary collapse

Class Method Details

.history(project_hash_id, branch_id, auth_token) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/git/semaphore/api_enrich.rb', line 17

def self.history(project_hash_id, branch_id, auth_token)
  API.history(project_hash_id, branch_id, auth_token).tap do |results|
    results['builds'].each do |build|
      # build['result'] = "passed", "failed", "stopped" or "pending"
      next unless (started_at  = build['started_at'])
      next 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['duration'] = {
        seconds: (finished_at - started_at).to_i,
        minutes: format('%0.2f', (finished_at - started_at) / 60).to_f,
      }
    end
  end
end

.projects(auth_token) ⇒ Object



6
7
8
9
10
11
12
13
14
15
# File 'lib/git/semaphore/api_enrich.rb', line 6

def self.projects(auth_token)
  API.projects(auth_token).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