packagecloud-ruby

Ruby library for communicating with the packagecloud.io API.
Goals
This library aims to have widest amount of compatibility possible between Ruby versions and implementations. All dependencies are pure Ruby and kept to a minimum to ensure this.
Tested Rubies
- Ruby 1.8.x, 1.9x, and 2.x
Implemented API Endpoints
Installation
gem install packagecloud-ruby
Getting your API token
Login to packagecloud.io and
go to your Account Settings to see your API token.
Creating a Client
Note that you should not use the email address associated with your
packagecloud.io account when accessing the API.
Please use your username on the site.
require 'packagecloud'
credentials = Packagecloud::Credentials.new("joedamato", "my_api_token")
@client = Packagecloud::Client.new(credentials)
Result objects
Every client API method call returns a Result
object, which is simply:
module Packagecloud
class Result
attr_accessor :response
attr_accessor :succeeded
end
end
If .succeeded
is true
then, .response
is the parsed JSON response
of that endpoint, otherwise .response
is the error text explaining what went wrong.
Usage
Distributions
This is the list of currently supported distributions.
distros = @client.distributions
id = @client.find_distribution_id("el/6")
Repositories
repos = @client.repositories
repo = @client.repository("my_repo")
@client.create_repository("my_repo")
When specifying your repository name, you should use just the name and not
the fully qualified name (fqname).
For example:
repo = @client.repository("user/my_repo")
Packages
rpm_package = Packagecloud::Package.new(:file => "libcurl-0.1.2.rpm")
gem_package = Packagecloud::Package.new(:file => io_object, :filename => "rails-4.0.0.gem")
source_files = { "jake_1.0.orig.tar.bz2" => open("/path/jake_1.0.orig.tar.bz2"),
"jake_1.0-7.debian.tar.gz" => open("/path/jake_1.0-7.debian.tar.gz") }
dsc_package = Packagecloud::Package.new(:file => "jake_1.0-7.dsc", :source_files => source_files)
@client.put_package("test_repo", gem_package)
@client.put_package("test_repo", rpm_package, "el/6")
@client.put_package("test_repo", dsc_package, "ubuntu/trusty")
@client.put_package("test_repo", node_package, "node")
Copyright
Copyright (c) 2014-2018 Computology, LLC
See LICENSE.txt for details.