Class: PullRequestBuilder::ObsPullRequestPackage
- Inherits:
-
Object
- Object
- PullRequestBuilder::ObsPullRequestPackage
- Includes:
- ActiveModel::Model
- Defined in:
- lib/pull_request_builder/obs_pull_request_package.rb
Defined Under Namespace
Classes: PullRequest
Instance Attribute Summary collapse
-
#logger ⇒ Object
Returns the value of attribute logger.
-
#obs_package_name ⇒ Object
Returns the value of attribute obs_package_name.
-
#obs_project_name ⇒ Object
Returns the value of attribute obs_project_name.
-
#obs_project_name_prefix ⇒ Object
Returns the value of attribute obs_project_name_prefix.
-
#obs_project_pr_name ⇒ Object
Returns the value of attribute obs_project_pr_name.
-
#osc ⇒ Object
Returns the value of attribute osc.
-
#pull_request ⇒ Object
Returns the value of attribute pull_request.
-
#template_directory ⇒ Object
Returns the value of attribute template_directory.
Class Method Summary collapse
Instance Method Summary collapse
- #==(other) ⇒ Object
- #commit_sha ⇒ Object
- #create ⇒ Object
- #delete ⇒ Object
- #eql?(other) ⇒ Boolean
- #hash ⇒ Object
- #last_commited_sha ⇒ Object
- #merge_sha ⇒ Object
- #pull_request_number ⇒ Object
-
#url ⇒ Object
TODO address must be configurable.
Instance Attribute Details
#logger ⇒ Object
Returns the value of attribute logger.
6 7 8 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 6 def logger @logger end |
#obs_package_name ⇒ Object
Returns the value of attribute obs_package_name.
6 7 8 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 6 def obs_package_name @obs_package_name end |
#obs_project_name ⇒ Object
Returns the value of attribute obs_project_name.
6 7 8 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 6 def obs_project_name @obs_project_name end |
#obs_project_name_prefix ⇒ Object
Returns the value of attribute obs_project_name_prefix.
6 7 8 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 6 def obs_project_name_prefix @obs_project_name_prefix end |
#obs_project_pr_name ⇒ Object
Returns the value of attribute obs_project_pr_name.
6 7 8 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 6 def obs_project_pr_name @obs_project_pr_name end |
#osc ⇒ Object
Returns the value of attribute osc.
6 7 8 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 6 def osc @osc end |
#pull_request ⇒ Object
Returns the value of attribute pull_request.
6 7 8 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 6 def pull_request @pull_request end |
#template_directory ⇒ Object
Returns the value of attribute template_directory.
6 7 8 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 6 def template_directory @template_directory end |
Class Method Details
.all(logger, obs_project_name_prefix, osc = OSC.new) ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 10 def self.all(logger, obs_project_name_prefix, osc = OSC.new) result = osc.search_project(obs_project_name_prefix) xml = Nokogiri::XML(result) xml.xpath('//project').map do |project| pull_request_number = project.attribute('name').to_s.split('-').last.to_i ObsPullRequestPackage.new(pull_request: PullRequest.new(pull_request_number), logger: logger) end end |
Instance Method Details
#==(other) ⇒ Object
23 24 25 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 23 def ==(other) pull_request.number == other.pull_request.number end |
#commit_sha ⇒ Object
39 40 41 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 39 def commit_sha pull_request.head.sha end |
#create ⇒ Object
68 69 70 71 72 73 74 75 76 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 68 def create if last_commited_sha == commit_sha logger.info('Pull request did not change, skipping ...') return end create_project create_package copy_files end |
#delete ⇒ Object
19 20 21 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 19 def delete osc.delete_project("source/#{obs_project_name}") end |
#eql?(other) ⇒ Boolean
27 28 29 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 27 def eql?(other) pull_request.number.eql(other.pull_request.number) end |
#hash ⇒ Object
31 32 33 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 31 def hash pull_request.number.hash end |
#last_commited_sha ⇒ Object
58 59 60 61 62 63 64 65 66 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 58 def last_commited_sha # if its a new PR, get_history will fail with a 404 and we have to ignore it result = osc.get_history("#{obs_project_pr_name}/#{obs_package_name}") node = Nokogiri::XML(result).root node.xpath('.//revision/comment').last.content rescue StandardError, Cheetah::ExecutionFailed '' end |
#merge_sha ⇒ Object
43 44 45 46 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 43 def merge_sha # github test merge commit pull_request.merge_commit_sha end |
#pull_request_number ⇒ Object
35 36 37 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 35 def pull_request_number pull_request.number end |
#url ⇒ Object
TODO address must be configurable
54 55 56 |
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 54 def url "https://build.opensuse.org/package/show/#{obs_project_pr_name}/#{obs_package_name}" end |