Class: GitLabBuildOutput::JobTracer

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab_build_output/job_tracer.rb

Instance Method Summary collapse

Constructor Details

#initialize(private_token, git_repository, endpoint = nil, https: false) ⇒ JobTracer

Returns a new instance of JobTracer.



3
4
5
6
7
8
9
# File 'lib/gitlab_build_output/job_tracer.rb', line 3

def initialize(private_token, git_repository, endpoint = nil, https: false)
  @https = https
  @tracer = Tracer.new
  @git = Git.open(git_repository)
  self.endpoint = endpoint
  @gitlab = GitLabApi.new(self.send(:endpoint), private_token)
end

Instance Method Details

#last_commitObject



27
28
29
# File 'lib/gitlab_build_output/job_tracer.rb', line 27

def last_commit
  @last_commit ||= git.log[0].sha
end

#last_jobObject



17
18
19
20
21
22
23
24
25
# File 'lib/gitlab_build_output/job_tracer.rb', line 17

def last_job
  gitlab
    .commit_builds(project_name, last_commit, per_page: 10, page: 1)
    .detect do |e|
      e.status != GitLabApi::Status::CREATED &&
        e.status != GitLabApi::Status::MANUAL &&
        e.status != GitLabApi::Status::SKIPPED
    end
end

#traceObject



11
12
13
14
15
# File 'lib/gitlab_build_output/job_tracer.rb', line 11

def trace
  last_job = send(:last_job)
  trace = tracer.next_trace(job_trace(last_job.id))
  [trace, last_job.status]
end