Class: JenkinsPipelineBuilder::PullRequestGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/jenkins_pipeline_builder/pull_request_generator.rb

Defined Under Namespace

Classes: NotFound

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(defaults = {}) ⇒ PullRequestGenerator

Returns a new instance of PullRequestGenerator.



27
28
29
30
# File 'lib/jenkins_pipeline_builder/pull_request_generator.rb', line 27

def initialize(defaults = {})
  @application_name = defaults[:application_name] || raise('Please set "application_name" in your project!')
  @open_prs = active_prs defaults[:github_site], defaults[:git_org], defaults[:git_repo_name]
end

Instance Attribute Details

#application_nameObject

Returns the value of attribute application_name.



25
26
27
# File 'lib/jenkins_pipeline_builder/pull_request_generator.rb', line 25

def application_name
  @application_name
end

#open_prsObject

Returns the value of attribute open_prs.



25
26
27
# File 'lib/jenkins_pipeline_builder/pull_request_generator.rb', line 25

def open_prs
  @open_prs
end

Instance Method Details

#convert!(job_collection, pr_number) ⇒ Object



32
33
34
35
36
# File 'lib/jenkins_pipeline_builder/pull_request_generator.rb', line 32

def convert!(job_collection, pr_number)
  job_collection.defaults[:value][:application_name] = "#{application_name}-PR#{pr_number}"
  job_collection.defaults[:value][:pull_request_number] = pr_number.to_s
  job_collection.jobs.each { |j| override j[:value], pr_number }
end

#delete_closed_prsObject



38
39
40
41
42
43
44
45
46
# File 'lib/jenkins_pipeline_builder/pull_request_generator.rb', line 38

def delete_closed_prs
  return if JenkinsPipelineBuilder.debug

  jobs_to_delete = JenkinsPipelineBuilder.client.job.list "^#{application_name}-PR(\\d+)-(.*)$"
  open_prs.each do |pr|
    jobs_to_delete.reject! { |j| j.start_with? "#{application_name}-PR#{pr[:number]}" }
  end
  jobs_to_delete.each { |j| JenkinsPipelineBuilder.client.job.delete j }
end