Sha256: d2349cd8880ff4e3b9259e0b2b927e25f02053a288045359780afd78d6c481a8

Contents?: true

Size: 1.46 KB

Versions: 3

Compression:

Stored size: 1.46 KB

Contents

module Git
  module Semaphore
    class API
      class Enrich

        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

        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

      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
git-semaphore-2.3.1 lib/git/semaphore/api_enrich.rb
git-semaphore-2.3.0 lib/git/semaphore/api_enrich.rb
git-semaphore-2.2.0 lib/git/semaphore/api_enrich.rb