Class: JenkinsPipelineBuilder::PullRequestGenerator
- Inherits:
-
Object
- Object
- JenkinsPipelineBuilder::PullRequestGenerator
- Defined in:
- lib/jenkins_pipeline_builder/pull_request_generator.rb
Defined Under Namespace
Classes: NotFound
Instance Attribute Summary collapse
-
#application_name ⇒ Object
Returns the value of attribute application_name.
-
#open_prs ⇒ Object
Returns the value of attribute open_prs.
Instance Method Summary collapse
- #convert!(job_collection, pr_number) ⇒ Object
- #delete_closed_prs ⇒ Object
-
#initialize(defaults = {}) ⇒ PullRequestGenerator
constructor
A new instance of PullRequestGenerator.
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_name ⇒ Object
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_prs ⇒ Object
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_prs ⇒ Object
38 39 40 41 42 43 44 45 |
# 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 |