Import Github releases
This commit is contained in:
parent
3aa8979556
commit
3c0a713a37
2 changed files with 44 additions and 0 deletions
|
@ -255,6 +255,33 @@ module Github
|
|||
end
|
||||
end
|
||||
|
||||
def fetch_releases
|
||||
url = "/repos/#{repo}/releases"
|
||||
|
||||
while url
|
||||
response = Github::Client.new(options).get(url)
|
||||
|
||||
response.body.each do |raw|
|
||||
representation = Github::Representation::Release.new(raw)
|
||||
next unless representation.valid?
|
||||
|
||||
release = ::Release.find_or_initialize_by(project_id: project.id, tag: representation.tag)
|
||||
next unless relese.new_record?
|
||||
|
||||
begin
|
||||
release.description = representation.description
|
||||
release.created_at = representation.created_at
|
||||
release.updated_at = representation.updated_at
|
||||
release.save!(validate: false)
|
||||
rescue => e
|
||||
error(:release, representation.url, e.message)
|
||||
end
|
||||
end
|
||||
|
||||
url = response.rels[:next]
|
||||
end
|
||||
end
|
||||
|
||||
def restore_source_branch(pull_request)
|
||||
repository.create_branch(pull_request.source_branch_name, pull_request.source_branch_sha)
|
||||
end
|
||||
|
|
17
lib/github/representation/release.rb
Normal file
17
lib/github/representation/release.rb
Normal file
|
@ -0,0 +1,17 @@
|
|||
module Github
|
||||
module Representation
|
||||
class Release < Representation::Base
|
||||
def description
|
||||
raw['body']
|
||||
end
|
||||
|
||||
def tag
|
||||
raw['tag_name']
|
||||
end
|
||||
|
||||
def valid?
|
||||
!raw['draft']
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue