package_cloud 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/package_cloud +1 -1
- data/lib/package_cloud.rb +2 -0
- data/lib/package_cloud/auth.rb +1 -1
- data/lib/package_cloud/cli.rb +18 -95
- data/lib/package_cloud/cli/distro.rb +26 -0
- data/lib/package_cloud/cli/entry.rb +33 -0
- data/lib/package_cloud/cli/master_token.rb +89 -0
- data/lib/package_cloud/cli/repository.rb +50 -0
- data/lib/package_cloud/client.rb +14 -4
- data/lib/package_cloud/config_file.rb +10 -0
- data/lib/package_cloud/master_token.rb +19 -0
- data/lib/package_cloud/read_token.rb +7 -0
- data/lib/package_cloud/repository.rb +22 -1
- data/lib/package_cloud/version.rb +5 -1
- metadata +28 -10
- checksums.yaml +0 -7
data/bin/package_cloud
CHANGED
data/lib/package_cloud.rb
CHANGED
@@ -6,7 +6,9 @@ module PackageCloud
|
|
6
6
|
autoload :CLI, "package_cloud/cli"
|
7
7
|
autoload :Client, "package_cloud/client"
|
8
8
|
autoload :ConfigFile, "package_cloud/config_file"
|
9
|
+
autoload :MasterToken, "package_cloud/master_token"
|
9
10
|
autoload :Object, "package_cloud/object"
|
11
|
+
autoload :ReadToken, "package_cloud/read_token"
|
10
12
|
autoload :Repository, "package_cloud/repository"
|
11
13
|
autoload :Validator, "package_cloud/validator"
|
12
14
|
end
|
data/lib/package_cloud/auth.rb
CHANGED
data/lib/package_cloud/cli.rb
CHANGED
@@ -2,104 +2,27 @@ require "colorize"
|
|
2
2
|
require "thor"
|
3
3
|
|
4
4
|
module PackageCloud
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
5
|
+
module CLI
|
6
|
+
autoload :Distro, "package_cloud/cli/distro"
|
7
|
+
autoload :Entry, "package_cloud/cli/entry"
|
8
|
+
autoload :MasterToken, "package_cloud/cli/master_token"
|
9
|
+
autoload :Repository, "package_cloud/cli/repository"
|
10
|
+
|
11
|
+
class Base < Thor
|
12
|
+
class_option "config"
|
13
|
+
class_option "url"
|
14
|
+
|
15
|
+
private
|
16
|
+
def config
|
17
|
+
@config ||= begin
|
18
|
+
ConfigFile.new(options[:config] || "~/.packagecloud",
|
19
|
+
options[:url] || "https://packagecloud.io").tap(&:read_or_create)
|
20
|
+
end
|
20
21
|
end
|
21
22
|
|
22
|
-
|
23
|
-
|
24
|
-
puts "No distributions exist for #{package_type}.".red
|
25
|
-
puts "That either means that we don't support #{package_type} or that it doesn't require a distribution/version."
|
26
|
-
exit(1)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
desc "push user/repo[/distro/version] /path/to/package",
|
31
|
-
"push package to repository (in distro/version if required)"
|
32
|
-
def push(repo, package_file)
|
33
|
-
ARGV.clear # otherwise gets explodes
|
34
|
-
|
35
|
-
validator = Validator.new(client)
|
36
|
-
dist_id = validator.distribution_id(repo, package_file)
|
37
|
-
|
38
|
-
# strip os/dist
|
39
|
-
repo = repo.split("/")[0..1].join("/")
|
40
|
-
|
41
|
-
print "Looking for repository at #{repo}... "
|
42
|
-
repo = client.repository(repo)
|
43
|
-
print "success!\n"
|
44
|
-
print "Pushing #{package_file}... "
|
45
|
-
repo.create_package(package_file, dist_id)
|
46
|
-
end
|
47
|
-
|
48
|
-
option :private
|
49
|
-
desc "create repo_name",
|
50
|
-
"create repository called repo_name"
|
51
|
-
def create(repo_name)
|
52
|
-
config.read_or_create
|
53
|
-
client = Client.new(config)
|
54
|
-
|
55
|
-
print "Looking for repository at #{repo_name}... "
|
56
|
-
repo = client.create_repo(repo_name, options[:private])
|
57
|
-
print "success!\n".green
|
58
|
-
puts "Your repository has been created at:"
|
59
|
-
puts " #{repo["url"]}"
|
60
|
-
end
|
61
|
-
|
62
|
-
desc "list",
|
63
|
-
"list your repositories"
|
64
|
-
def list
|
65
|
-
repos = client.repositories
|
66
|
-
if repos.length == 0
|
67
|
-
puts "You have no repositories at the moment. Create one!"
|
68
|
-
else
|
69
|
-
puts "Your repositories:"
|
70
|
-
puts ""
|
71
|
-
repos.each_with_index do |repo, i|
|
72
|
-
puts " #{repo.fqname} (#{repo.private_human})"
|
73
|
-
puts " last push: #{repo.last_push_human} | packages: #{repo.package_count_human}"
|
74
|
-
puts "" unless i == repos.length - 1
|
23
|
+
def client
|
24
|
+
@client ||= Client.new(config)
|
75
25
|
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
desc "install user/repo package_type",
|
80
|
-
"install user/repo for package_type"
|
81
|
-
def install(repo, package_type)
|
82
|
-
if Process.uid != 0 && package_type != "gem"
|
83
|
-
abort("You have to run install as root.".red)
|
84
|
-
end
|
85
|
-
|
86
|
-
print "Locating repository at #{repo}... "
|
87
|
-
repo = client.repository(repo)
|
88
|
-
print "success!\n"
|
89
|
-
pid = fork { exec(repo.install_script(package_type)) }
|
90
|
-
Process.waitpid(pid)
|
91
26
|
end
|
92
|
-
|
93
|
-
private
|
94
|
-
def config
|
95
|
-
@config ||= begin
|
96
|
-
ConfigFile.new(options[:config] || "~/.packagecloud",
|
97
|
-
options[:url] || "https://packagecloud.io").tap(&:read_or_create)
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
def client
|
102
|
-
@client ||= Client.new(config)
|
103
|
-
end
|
104
27
|
end
|
105
28
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module PackageCloud
|
2
|
+
module CLI
|
3
|
+
class Distro < Base
|
4
|
+
desc "list package_type",
|
5
|
+
"list available distros and versions for package_type"
|
6
|
+
def list(package_type)
|
7
|
+
distros = client.distributions[package_type]
|
8
|
+
if distros
|
9
|
+
puts "Listing distributions for #{package_type}:"
|
10
|
+
distros.each do |distro|
|
11
|
+
puts "\n #{distro["display_name"]} (#{distro["index_name"]}):\n\n"
|
12
|
+
distro["versions"].each do |ver|
|
13
|
+
puts " #{ver["display_name"]} (#{ver["index_name"]})"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
puts "\nIf you don't see your distribution or version here, email us at support@packagecloud.io."
|
18
|
+
else
|
19
|
+
puts "No distributions exist for #{package_type}.".red
|
20
|
+
puts "That either means that we don't support #{package_type} or that it doesn't require a distribution/version."
|
21
|
+
exit(1)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module PackageCloud
|
2
|
+
module CLI
|
3
|
+
class Entry < Base
|
4
|
+
desc "repository SUBCMD ...ARGS", "manage repositories"
|
5
|
+
subcommand "repository", Repository
|
6
|
+
|
7
|
+
desc "distro SUBCMD ...ARGS", "manage repositories"
|
8
|
+
subcommand "distro", Distro
|
9
|
+
|
10
|
+
desc "master_token SUBCMD ...ARGS", "manage master tokens"
|
11
|
+
subcommand "master_token", MasterToken
|
12
|
+
|
13
|
+
|
14
|
+
desc "push user/repo[/distro/version] /path/to/package",
|
15
|
+
"push package to repository (in distro/version if required)"
|
16
|
+
def push(repo, package_file)
|
17
|
+
ARGV.clear # otherwise gets explodes
|
18
|
+
|
19
|
+
validator = Validator.new(client)
|
20
|
+
dist_id = validator.distribution_id(repo, package_file)
|
21
|
+
|
22
|
+
# strip os/dist
|
23
|
+
repo = repo.split("/")[0..1].join("/")
|
24
|
+
|
25
|
+
print "Looking for repository at #{repo}... "
|
26
|
+
repo = client.repository(repo)
|
27
|
+
print "success!\n"
|
28
|
+
print "Pushing #{package_file}... "
|
29
|
+
repo.create_package(package_file, dist_id)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
module PackageCloud
|
2
|
+
module CLI
|
3
|
+
class MasterToken < Base
|
4
|
+
desc "list user/repository",
|
5
|
+
"list master tokens for specified repository"
|
6
|
+
def list(repo_name)
|
7
|
+
print "Looking for repository at #{repo_name}... "
|
8
|
+
repo = client.repository(repo_name)
|
9
|
+
print "success!\n"
|
10
|
+
|
11
|
+
tokens = repo.master_tokens
|
12
|
+
puts "Tokens for #{repo_name}:"
|
13
|
+
puts ""
|
14
|
+
tokens.each_with_index do |token, i|
|
15
|
+
puts " #{token.name}"
|
16
|
+
puts " read tokens:"
|
17
|
+
token.read_tokens.each do |read_token|
|
18
|
+
puts " #{read_token.name}"
|
19
|
+
end
|
20
|
+
puts "" unless i == tokens.length - 1
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
desc "create user/repository token_name",
|
25
|
+
"create a master token for the specified repository"
|
26
|
+
def create(repo_name, token_name)
|
27
|
+
print "Looking for repository at #{repo_name}... "
|
28
|
+
repo = client.repository(repo_name)
|
29
|
+
print "success!\n"
|
30
|
+
|
31
|
+
print "Attempting to create token named #{token_name}... "
|
32
|
+
repo.create_master_token(token_name)
|
33
|
+
print "success!\n".green
|
34
|
+
end
|
35
|
+
|
36
|
+
desc "destroy user/repository token_name",
|
37
|
+
"destroy a master token for the specified repository"
|
38
|
+
def destroy(repo_name, token_name)
|
39
|
+
ARGV.clear # otherwise gets explodes
|
40
|
+
|
41
|
+
if token_name == "default"
|
42
|
+
abort("You can't delete the default master_token.".red)
|
43
|
+
end
|
44
|
+
|
45
|
+
print "Looking for repository at #{repo_name}... "
|
46
|
+
repo = client.repository(repo_name)
|
47
|
+
print "success!\n"
|
48
|
+
|
49
|
+
token = repo.master_tokens.detect do |token|
|
50
|
+
token.name == token_name
|
51
|
+
end
|
52
|
+
|
53
|
+
if token
|
54
|
+
msg = "\nAre you sure you want to delete #{token_name}?"
|
55
|
+
msg << " #{token.read_tokens.length} read tokens will no longer work afterwards (y/n)" if token.read_tokens.length > 0
|
56
|
+
answer = get_valid(msg) do |s|
|
57
|
+
s == "y" || s == "n"
|
58
|
+
end
|
59
|
+
if answer == "y"
|
60
|
+
print "Attempting to destroy token named #{token_name}... "
|
61
|
+
token.destroy
|
62
|
+
print "success!\n".green
|
63
|
+
else
|
64
|
+
puts "Aborting...".red
|
65
|
+
end
|
66
|
+
else
|
67
|
+
puts "Wasn't able to find a token named #{token_name}.".red
|
68
|
+
exit(1)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
private
|
73
|
+
def get_valid(prompt)
|
74
|
+
selection = ""
|
75
|
+
times = 0
|
76
|
+
until yield(selection)
|
77
|
+
if times > 0
|
78
|
+
puts "#{selection} is not a valid selection."
|
79
|
+
end
|
80
|
+
print "#{prompt}: "
|
81
|
+
selection = ::Kernel.gets.chomp
|
82
|
+
times += 1
|
83
|
+
end
|
84
|
+
|
85
|
+
selection
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module PackageCloud
|
2
|
+
module CLI
|
3
|
+
class Repository < Base
|
4
|
+
option :private
|
5
|
+
desc "create repo_name",
|
6
|
+
"create repository called repo_name"
|
7
|
+
def create(repo_name)
|
8
|
+
config.read_or_create
|
9
|
+
client = Client.new(config)
|
10
|
+
|
11
|
+
print "Looking for repository at #{repo_name}... "
|
12
|
+
repo = client.create_repo(repo_name, options[:private])
|
13
|
+
print "success!\n".green
|
14
|
+
puts "Your repository has been created at:"
|
15
|
+
puts " #{repo["url"]}"
|
16
|
+
end
|
17
|
+
|
18
|
+
desc "list",
|
19
|
+
"list your repositories"
|
20
|
+
def list
|
21
|
+
repos = client.repositories
|
22
|
+
if repos.length == 0
|
23
|
+
puts "You have no repositories at the moment. Create one!"
|
24
|
+
else
|
25
|
+
puts "Your repositories:"
|
26
|
+
puts ""
|
27
|
+
repos.each_with_index do |repo, i|
|
28
|
+
puts " #{repo.fqname} (#{repo.private_human})"
|
29
|
+
puts " last push: #{repo.last_push_human} | packages: #{repo.package_count_human}"
|
30
|
+
puts "" unless i == repos.length - 1
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
desc "install user/repo package_type",
|
36
|
+
"install user/repo for package_type"
|
37
|
+
def install(repo, package_type)
|
38
|
+
if Process.uid != 0 && package_type != "gem"
|
39
|
+
abort("You have to run install as root.".red)
|
40
|
+
end
|
41
|
+
|
42
|
+
print "Locating repository at #{repo}... "
|
43
|
+
repo = client.repository(repo)
|
44
|
+
print "success!\n"
|
45
|
+
pid = fork { exec(repo.install_script(package_type)) }
|
46
|
+
Process.waitpid(pid)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/lib/package_cloud/client.rb
CHANGED
@@ -10,7 +10,7 @@ module PackageCloud
|
|
10
10
|
def repositories
|
11
11
|
base_url = @config.base_url
|
12
12
|
begin
|
13
|
-
attrs = JSON.parse(RestClient.get("#{base_url}/
|
13
|
+
attrs = JSON.parse(RestClient.get("#{base_url}/api/v1/repos.json"))
|
14
14
|
attrs.map { |a| Repository.new(a, @config) }
|
15
15
|
rescue RestClient::ResourceNotFound => e
|
16
16
|
print "failed!\n".red
|
@@ -22,7 +22,7 @@ module PackageCloud
|
|
22
22
|
base_url = @config.base_url
|
23
23
|
user, repo = name.split("/")
|
24
24
|
begin
|
25
|
-
attrs = JSON.parse(RestClient.get("#{base_url}/#{user}/#{repo}.json"))
|
25
|
+
attrs = JSON.parse(RestClient.get("#{base_url}/api/v1/repos/#{user}/#{repo}.json"))
|
26
26
|
Repository.new(attrs, @config)
|
27
27
|
rescue RestClient::ResourceNotFound => e
|
28
28
|
print "failed!\n".red
|
@@ -33,7 +33,7 @@ module PackageCloud
|
|
33
33
|
def create_repo(name, priv)
|
34
34
|
base_url = @config.base_url
|
35
35
|
begin
|
36
|
-
JSON.parse(RestClient.post("#{base_url}/
|
36
|
+
JSON.parse(RestClient.post("#{base_url}/api/v1/repos.json", :repository => {:name => name, :private => priv == "private" ? "1" : "0"}))
|
37
37
|
rescue RestClient::UnprocessableEntity => e
|
38
38
|
print "error!\n".red
|
39
39
|
json = JSON.parse(e.response)
|
@@ -48,7 +48,17 @@ module PackageCloud
|
|
48
48
|
def distributions
|
49
49
|
base_url = @config.base_url
|
50
50
|
begin
|
51
|
-
JSON.parse(RestClient.get("#{base_url}/distributions.json"))
|
51
|
+
JSON.parse(RestClient.get("#{base_url}/api/v1/distributions.json"))
|
52
|
+
rescue RestClient::ResourceNotFound => e
|
53
|
+
print "failed!\n".red
|
54
|
+
exit(127)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def gem_version
|
59
|
+
base_url = @config.base_url
|
60
|
+
begin
|
61
|
+
JSON.parse(RestClient.get("#{base_url}/api/v1/gem_version"))
|
52
62
|
rescue RestClient::ResourceNotFound => e
|
53
63
|
print "failed!\n".red
|
54
64
|
exit(127)
|
@@ -17,6 +17,7 @@ module PackageCloud
|
|
17
17
|
attrs = JSON.parse(File.read(@filename))
|
18
18
|
@token = attrs["token"] if attrs.has_key?("token")
|
19
19
|
@url = URI(attrs["url"]) if attrs.has_key?("url")
|
20
|
+
assert_reasonable_gem_version
|
20
21
|
else
|
21
22
|
puts "No config file exists at #{@filename}. Login to create one."
|
22
23
|
|
@@ -55,5 +56,14 @@ module PackageCloud
|
|
55
56
|
File.open(@filename, "w", 0600) { |f| f << JSON.dump(attrs); f << "\r\n" }
|
56
57
|
puts "success!"
|
57
58
|
end
|
59
|
+
|
60
|
+
def assert_reasonable_gem_version
|
61
|
+
gem_version = Client.new(self).gem_version
|
62
|
+
if gem_version["minor"] != MINOR_VERSION
|
63
|
+
abort("This gem is out of date. Please update it!".red)
|
64
|
+
elsif gem_version["patch"] > PATCH_VERSION
|
65
|
+
$stderr << "[WARNING] There's a newer version of the package_cloud gem. Install it when you get a chance!\n"
|
66
|
+
end
|
67
|
+
end
|
58
68
|
end
|
59
69
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module PackageCloud
|
2
|
+
class MasterToken < Object
|
3
|
+
def initialize(attrs, config)
|
4
|
+
@attrs = attrs
|
5
|
+
@config = config
|
6
|
+
end
|
7
|
+
|
8
|
+
def read_tokens
|
9
|
+
@attrs["read_tokens"].map do |read_token|
|
10
|
+
ReadToken.new(read_token)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def destroy
|
15
|
+
url = @config.base_url + paths["self"]
|
16
|
+
RestClient.delete(url)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -25,10 +25,31 @@ module PackageCloud
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def install_script(type)
|
28
|
-
url =
|
28
|
+
url = urls["install_script"].gsub(/:package_type/, type)
|
29
29
|
RestClient.get(url)
|
30
30
|
end
|
31
31
|
|
32
|
+
def master_tokens
|
33
|
+
url = @config.base_url + paths["master_tokens"]
|
34
|
+
attrs = JSON.parse(RestClient.get(url))
|
35
|
+
attrs.map { |a| MasterToken.new(a, @config) }
|
36
|
+
end
|
37
|
+
|
38
|
+
def create_master_token(name)
|
39
|
+
url = @config.base_url + paths["create_master_token"]
|
40
|
+
begin
|
41
|
+
RestClient.post(url, :master_token => {:name => name})
|
42
|
+
rescue RestClient::UnprocessableEntity => e
|
43
|
+
print "error:\n".red
|
44
|
+
json = JSON.parse(e.response)
|
45
|
+
json.each do |k,v|
|
46
|
+
puts "\n\t#{k}: #{v.join(", ")}\n"
|
47
|
+
end
|
48
|
+
puts ""
|
49
|
+
exit(1)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
32
53
|
def private_human
|
33
54
|
send(:private) ? "private".red : "public".green
|
34
55
|
end
|
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: package_cloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease:
|
5
|
+
version: 0.2.0
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- James Golick
|
@@ -9,12 +10,13 @@ autorequire:
|
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
12
|
|
12
|
-
date: 2014-
|
13
|
+
date: 2014-04-14 00:00:00 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: thor
|
16
17
|
prerelease: false
|
17
18
|
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
18
20
|
requirements:
|
19
21
|
- - "="
|
20
22
|
- !ruby/object:Gem::Version
|
@@ -25,6 +27,7 @@ dependencies:
|
|
25
27
|
name: highline
|
26
28
|
prerelease: false
|
27
29
|
requirement: &id002 !ruby/object:Gem::Requirement
|
30
|
+
none: false
|
28
31
|
requirements:
|
29
32
|
- - "="
|
30
33
|
- !ruby/object:Gem::Version
|
@@ -35,6 +38,7 @@ dependencies:
|
|
35
38
|
name: rest-client
|
36
39
|
prerelease: false
|
37
40
|
requirement: &id003 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
38
42
|
requirements:
|
39
43
|
- - "="
|
40
44
|
- !ruby/object:Gem::Version
|
@@ -45,6 +49,7 @@ dependencies:
|
|
45
49
|
name: json
|
46
50
|
prerelease: false
|
47
51
|
requirement: &id004 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
48
53
|
requirements:
|
49
54
|
- - "="
|
50
55
|
- !ruby/object:Gem::Version
|
@@ -55,6 +60,7 @@ dependencies:
|
|
55
60
|
name: colorize
|
56
61
|
prerelease: false
|
57
62
|
requirement: &id005 !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
58
64
|
requirements:
|
59
65
|
- - "="
|
60
66
|
- !ruby/object:Gem::Version
|
@@ -65,6 +71,7 @@ dependencies:
|
|
65
71
|
name: bundler
|
66
72
|
prerelease: false
|
67
73
|
requirement: &id006 !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
68
75
|
requirements:
|
69
76
|
- - ~>
|
70
77
|
- !ruby/object:Gem::Version
|
@@ -75,9 +82,9 @@ dependencies:
|
|
75
82
|
name: rake
|
76
83
|
prerelease: false
|
77
84
|
requirement: &id007 !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
78
86
|
requirements:
|
79
|
-
-
|
80
|
-
- ">="
|
87
|
+
- - ">="
|
81
88
|
- !ruby/object:Gem::Version
|
82
89
|
version: "0"
|
83
90
|
type: :development
|
@@ -101,9 +108,15 @@ files:
|
|
101
108
|
- lib/package_cloud.rb
|
102
109
|
- lib/package_cloud/auth.rb
|
103
110
|
- lib/package_cloud/cli.rb
|
111
|
+
- lib/package_cloud/cli/distro.rb
|
112
|
+
- lib/package_cloud/cli/entry.rb
|
113
|
+
- lib/package_cloud/cli/master_token.rb
|
114
|
+
- lib/package_cloud/cli/repository.rb
|
104
115
|
- lib/package_cloud/client.rb
|
105
116
|
- lib/package_cloud/config_file.rb
|
117
|
+
- lib/package_cloud/master_token.rb
|
106
118
|
- lib/package_cloud/object.rb
|
119
|
+
- lib/package_cloud/read_token.rb
|
107
120
|
- lib/package_cloud/repository.rb
|
108
121
|
- lib/package_cloud/validator.rb
|
109
122
|
- lib/package_cloud/version.rb
|
@@ -111,25 +124,30 @@ files:
|
|
111
124
|
homepage: https://packagecloud.io
|
112
125
|
licenses:
|
113
126
|
- MIT
|
114
|
-
metadata: {}
|
115
|
-
|
116
127
|
post_install_message:
|
117
128
|
rdoc_options: []
|
118
129
|
|
119
130
|
require_paths:
|
120
131
|
- lib
|
121
132
|
required_ruby_version: !ruby/object:Gem::Requirement
|
133
|
+
none: false
|
122
134
|
requirements:
|
123
|
-
-
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: "0"
|
124
138
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
|
+
none: false
|
125
140
|
requirements:
|
126
|
-
-
|
141
|
+
- - ">="
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
version: "0"
|
127
144
|
requirements: []
|
128
145
|
|
129
146
|
rubyforge_project:
|
130
|
-
rubygems_version:
|
147
|
+
rubygems_version: 1.8.23
|
131
148
|
signing_key:
|
132
|
-
specification_version:
|
149
|
+
specification_version: 3
|
133
150
|
summary: https://packagecloud.io
|
134
151
|
test_files: []
|
135
152
|
|
153
|
+
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA512:
|
3
|
-
data.tar.gz: 674a58d089c083097afa436918d5d31a62b0d9266d42b08db982d2513de5d9725cdb7af305b7462162cf0ea71eded879c96aad518943ddc2ee95dcc140527b51
|
4
|
-
metadata.gz: 6695cc5d8daccd1b9e631b1ab21f0d2cf1298e024419fd8a38ef8ac02a0c3779620a9f880ce3e7095eed6707b5148bfd737ab889fb92e6664a52d34a92622857
|
5
|
-
SHA1:
|
6
|
-
data.tar.gz: 79e329454ab6a8deaa1a86bb5fa6dda54eaff956
|
7
|
-
metadata.gz: 1a6346259c8e321a6d1fa20f415e2b9389eff0e9
|