Method: PackageCloud::Repository#promote

Defined in:
lib/package_cloud/repository.rb

#promote(dist, package_name, dest_repo_name, scope = nil) ⇒ Object



164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
# File 'lib/package_cloud/repository.rb', line 164

def promote(dist, package_name, dest_repo_name, scope=nil)
  begin
    url = PackageCloud::Util.compute_url(@config.base_url, paths["self"] + "/" + [dist, package_name, "promote.json"].compact.join("/"))
    resp = if scope
             RestClient.post(url, destination: dest_repo_name, scope: scope)
           else
             RestClient.post(url, destination: dest_repo_name)
           end
    resp = JSON.parse(resp)
  rescue RestClient::UnprocessableEntity, RestClient::ResourceNotFound => e
    print "error:\n".color(:red)
    json = JSON.parse(e.response)
    json.each do |k,v|
      puts "\n\t#{k}: #{v.join(", ")}\n"
    end
    puts ""
    exit(1)
  end
end