Class: Gitlab::Ci::Badge::Pipeline::Status

Inherits:
Base
  • Object
show all
Defined in:
lib/gitlab/ci/badge/pipeline/status.rb

Overview

Pipeline status badge

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project, ref, opts: {}) ⇒ Status

Returns a new instance of Status.



12
13
14
15
16
17
18
19
20
# File 'lib/gitlab/ci/badge/pipeline/status.rb', line 12

def initialize(project, ref, opts: {})
  @project = project
  @ref = ref
  @ignore_skipped = Gitlab::Utils.to_boolean(opts[:ignore_skipped], default: false)
  @customization = {
    key_width: opts[:key_width].to_i,
    key_text: opts[:key_text]
  }
end

Instance Attribute Details

#customizationObject (readonly)

Returns the value of attribute customization.



10
11
12
# File 'lib/gitlab/ci/badge/pipeline/status.rb', line 10

def customization
  @customization
end

#projectObject (readonly)

Returns the value of attribute project.



10
11
12
# File 'lib/gitlab/ci/badge/pipeline/status.rb', line 10

def project
  @project
end

#refObject (readonly)

Returns the value of attribute ref.



10
11
12
# File 'lib/gitlab/ci/badge/pipeline/status.rb', line 10

def ref
  @ref
end

Instance Method Details

#entityObject



22
23
24
# File 'lib/gitlab/ci/badge/pipeline/status.rb', line 22

def entity
  'pipeline'
end

#metadataObject



32
33
34
# File 'lib/gitlab/ci/badge/pipeline/status.rb', line 32

def 
   ||= Pipeline::.new(self)
end

#statusObject



26
27
28
29
30
# File 'lib/gitlab/ci/badge/pipeline/status.rb', line 26

def status
  pipelines = @project.ci_pipelines.for_ref(@ref).order_id_desc
  pipelines = pipelines.without_statuses([:skipped]) if @ignore_skipped
  pipelines.pick(:status) || 'unknown'
end

#templateObject



36
37
38
# File 'lib/gitlab/ci/badge/pipeline/status.rb', line 36

def template
  @template ||= Pipeline::Template.new(self)
end