spaarti 0.0.6 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +21 -0
- data/bin/spaarti +0 -0
- data/lib/spaarti/repo.rb +7 -3
- data/lib/spaarti/site.rb +10 -6
- data/lib/spaarti/version.rb +1 -1
- data/spaarti.gemspec +5 -3
- data/spec/bin_spec.rb +4 -0
- data/spec/examples/auth.yml +2 -0
- data/spec/examples/config.yml +4 -0
- data/spec/fixtures/cassettes/repos.yml +72 -0
- data/spec/spaarti/repo_spec.rb +4 -0
- data/spec/spaarti/site_spec.rb +61 -0
- data/spec/spaarti_spec.rb +8 -0
- data/spec/spec_helper.rb +12 -0
- metadata +48 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c42ba062b7a494cebed060c05573e29456f03fdc
|
4
|
+
data.tar.gz: 7f0ea344fc7cf4eccf66ab0e9ca0d6c10d97739b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b07d2daf7693308084d93e72752cdb716d1a68a7fa41a72674ab6f09bfd19c96d2d53ce2e2459ab307ed3d1acc7153e64ce91f3884ca251530d9840d6ca0c1a
|
7
|
+
data.tar.gz: 827d5277721187b041c163691026c4bf3749eb923211434913856664c8fcc479d9a7da73f500e305d30f3442ce3441dfc39b1aac219ac300dc3e7b7c240a3e94
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -12,6 +12,27 @@ Tool to maintain local clones of repos you have access to on GitHub
|
|
12
12
|
|
13
13
|
## Usage
|
14
14
|
|
15
|
+
To clone all your repos to the current directory: `spaarti`
|
16
|
+
|
17
|
+
Adding `-p` will remove orphaned repos (repos on disk that don't exist on GitHub, or that you no longer have access to).
|
18
|
+
|
19
|
+
Adding `-q` will silence output except errors.
|
20
|
+
|
21
|
+
You can override the defaults by defining a config file in YAML:
|
22
|
+
|
23
|
+
```
|
24
|
+
base_path: Defaults to './', this is the root that repos will be cloned to
|
25
|
+
auth_file: Passed to OctoAuth for storing your GitHub token, the default will use ~/.octoauth.yml
|
26
|
+
exclude: Hash where keys are attributes of a repo (https://developer.github.com/v3/repos/#get) and values are array of regex pattern strings, with any repo whose attribute matches any pattern not being pulled
|
27
|
+
format: Format string used to determine path. Defaults to "%{full_name}", so "akerl/blog" is cloned at "akerl/blog". Available keys: https://developer.github.com/v3/repos/#get
|
28
|
+
git_config: Hash of key/value pairs, will be set in .git/config for cloned repos. Useful for setting things like user.name/email
|
29
|
+
quiet: Boolean, controls verbosity of status output
|
30
|
+
purge: Boolean, true will remove repos that are on-disk but not accessible by you on GitHub
|
31
|
+
url_type: Used to determine how to clone, one of: html, clone, git, ssh, svn. Defaults to 'ssh'
|
32
|
+
```
|
33
|
+
|
34
|
+
The default config path is `~/.spaarti.yml`, but you can provide an alternate path with `./spaarti -c /path/to/config`
|
35
|
+
|
15
36
|
## Installation
|
16
37
|
|
17
38
|
gem install spaarti
|
data/bin/spaarti
CHANGED
File without changes
|
data/lib/spaarti/repo.rb
CHANGED
@@ -39,12 +39,16 @@ module Spaarti
|
|
39
39
|
err(error_msg) unless res
|
40
40
|
end
|
41
41
|
|
42
|
+
def url
|
43
|
+
@url ||= @data["#{@options[:url_type]}_url".to_sym]
|
44
|
+
end
|
45
|
+
|
42
46
|
def clone
|
43
47
|
return log("#{@data[:full_name]} already cloned") if Dir.exist? @path
|
44
|
-
log "Cloning #{
|
48
|
+
log "Cloning #{url} to #{@path}"
|
45
49
|
run(
|
46
|
-
"git clone '#{
|
47
|
-
"Failed to clone #{
|
50
|
+
"git clone '#{url}' '#{@path}' &>/dev/null",
|
51
|
+
"Failed to clone #{url}"
|
48
52
|
)
|
49
53
|
end
|
50
54
|
|
data/lib/spaarti/site.rb
CHANGED
@@ -13,9 +13,10 @@ module Spaarti
|
|
13
13
|
config_file: File.expand_path('~/.spaarti.yml'),
|
14
14
|
exclude: [],
|
15
15
|
format: '%{full_name}',
|
16
|
-
git_config:
|
16
|
+
git_config: {},
|
17
17
|
quiet: false,
|
18
|
-
purge: false
|
18
|
+
purge: false,
|
19
|
+
url_type: 'ssh'
|
19
20
|
}
|
20
21
|
|
21
22
|
##
|
@@ -24,6 +25,7 @@ module Spaarti
|
|
24
25
|
def initialize(params = {})
|
25
26
|
@options = DEFAULT_OPTIONS.dup.merge params
|
26
27
|
load_config(params.include? :config_file)
|
28
|
+
auth
|
27
29
|
end
|
28
30
|
|
29
31
|
def sync!
|
@@ -71,13 +73,15 @@ module Spaarti
|
|
71
73
|
|
72
74
|
def repos
|
73
75
|
@repos ||= client.repos.map do |data|
|
74
|
-
next if excluded(data
|
76
|
+
next if excluded(data)
|
75
77
|
Repo.new data.to_h, client, @options
|
76
|
-
end
|
78
|
+
end.compact
|
77
79
|
end
|
78
80
|
|
79
|
-
def excluded(
|
80
|
-
@options[:exclude].any?
|
81
|
+
def excluded(data)
|
82
|
+
@options[:exclude].any? do |key, patterns|
|
83
|
+
patterns.any? { |pattern| data[key].match pattern }
|
84
|
+
end
|
81
85
|
end
|
82
86
|
end
|
83
87
|
end
|
data/lib/spaarti/version.rb
CHANGED
data/spaarti.gemspec
CHANGED
@@ -17,14 +17,16 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.test_files = `git ls-files spec/*`.split
|
18
18
|
s.executables = ['spaarti']
|
19
19
|
|
20
|
-
s.add_dependency 'octokit', '~> 3.
|
21
|
-
s.add_dependency 'octoauth', '~> 1.0.
|
20
|
+
s.add_dependency 'octokit', '~> 3.8.0'
|
21
|
+
s.add_dependency 'octoauth', '~> 1.0.1'
|
22
22
|
s.add_dependency 'mercenary', '~> 0.3.4'
|
23
23
|
s.add_dependency 'cymbal', '~> 1.0.0'
|
24
24
|
|
25
25
|
s.add_development_dependency 'rubocop', '~> 0.29.0'
|
26
26
|
s.add_development_dependency 'rake', '~> 10.4.0'
|
27
|
-
s.add_development_dependency 'coveralls', '~> 0.
|
27
|
+
s.add_development_dependency 'coveralls', '~> 0.8.0'
|
28
28
|
s.add_development_dependency 'rspec', '~> 3.2.0'
|
29
29
|
s.add_development_dependency 'fuubar', '~> 2.0.0'
|
30
|
+
s.add_development_dependency 'webmock', '~> 1.21.0'
|
31
|
+
s.add_development_dependency 'vcr', '~> 2.9.2'
|
30
32
|
end
|
data/spec/bin_spec.rb
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://api.github.com/user/repos?per_page=100
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/vnd.github.moondragon+json
|
12
|
+
User-Agent:
|
13
|
+
- Octokit Ruby Gem 3.8.0
|
14
|
+
Content-Type:
|
15
|
+
- application/json
|
16
|
+
Accept-Encoding:
|
17
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
Server:
|
24
|
+
- GitHub.com
|
25
|
+
Date:
|
26
|
+
- Sun, 05 Apr 2015 14:56:23 GMT
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Transfer-Encoding:
|
30
|
+
- chunked
|
31
|
+
Status:
|
32
|
+
- 200 OK
|
33
|
+
X-Ratelimit-Limit:
|
34
|
+
- '5000'
|
35
|
+
X-Ratelimit-Remaining:
|
36
|
+
- '4998'
|
37
|
+
X-Ratelimit-Reset:
|
38
|
+
- '1428249267'
|
39
|
+
Cache-Control:
|
40
|
+
- private, max-age=60, s-maxage=60
|
41
|
+
X-Oauth-Scopes:
|
42
|
+
- repo
|
43
|
+
X-Accepted-Oauth-Scopes:
|
44
|
+
- ''
|
45
|
+
Vary:
|
46
|
+
- Accept, Authorization, Cookie, X-GitHub-OTP
|
47
|
+
- Accept-Encoding
|
48
|
+
X-Github-Media-Type:
|
49
|
+
- github.moondragon; format=json
|
50
|
+
X-Xss-Protection:
|
51
|
+
- 1; mode=block
|
52
|
+
X-Frame-Options:
|
53
|
+
- deny
|
54
|
+
Content-Security-Policy:
|
55
|
+
- default-src 'none'
|
56
|
+
Access-Control-Allow-Credentials:
|
57
|
+
- 'true'
|
58
|
+
Access-Control-Expose-Headers:
|
59
|
+
- ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
|
60
|
+
X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
|
61
|
+
Access-Control-Allow-Origin:
|
62
|
+
- "*"
|
63
|
+
Strict-Transport-Security:
|
64
|
+
- max-age=31536000; includeSubdomains; preload
|
65
|
+
X-Content-Type-Options:
|
66
|
+
- nosniff
|
67
|
+
body:
|
68
|
+
encoding: ASCII-8BIT
|
69
|
+
string: '[{"id":23901941,"name":"spaarti","full_name":"akerl/spaarti","owner":{"login":"akerl","id":491209,"avatar_url":"https://avatars.githubusercontent.com/u/491209?v=3","gravatar_id":"","url":"https://api.github.com/users/akerl","html_url":"https://github.com/akerl","followers_url":"https://api.github.com/users/akerl/followers","following_url":"https://api.github.com/users/akerl/following{/other_user}","gists_url":"https://api.github.com/users/akerl/gists{/gist_id}","starred_url":"https://api.github.com/users/akerl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akerl/subscriptions","organizations_url":"https://api.github.com/users/akerl/orgs","repos_url":"https://api.github.com/users/akerl/repos","events_url":"https://api.github.com/users/akerl/events{/privacy}","received_events_url":"https://api.github.com/users/akerl/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/akerl/spaarti","description":"Tool to maintain local clones of repos you have access to on GitHub","fork":false,"url":"https://api.github.com/repos/akerl/spaarti","forks_url":"https://api.github.com/repos/akerl/spaarti/forks","keys_url":"https://api.github.com/repos/akerl/spaarti/keys{/key_id}","collaborators_url":"https://api.github.com/repos/akerl/spaarti/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/akerl/spaarti/teams","hooks_url":"https://api.github.com/repos/akerl/spaarti/hooks","issue_events_url":"https://api.github.com/repos/akerl/spaarti/issues/events{/number}","events_url":"https://api.github.com/repos/akerl/spaarti/events","assignees_url":"https://api.github.com/repos/akerl/spaarti/assignees{/user}","branches_url":"https://api.github.com/repos/akerl/spaarti/branches{/branch}","tags_url":"https://api.github.com/repos/akerl/spaarti/tags","blobs_url":"https://api.github.com/repos/akerl/spaarti/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/akerl/spaarti/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/akerl/spaarti/git/refs{/sha}","trees_url":"https://api.github.com/repos/akerl/spaarti/git/trees{/sha}","statuses_url":"https://api.github.com/repos/akerl/spaarti/statuses/{sha}","languages_url":"https://api.github.com/repos/akerl/spaarti/languages","stargazers_url":"https://api.github.com/repos/akerl/spaarti/stargazers","contributors_url":"https://api.github.com/repos/akerl/spaarti/contributors","subscribers_url":"https://api.github.com/repos/akerl/spaarti/subscribers","subscription_url":"https://api.github.com/repos/akerl/spaarti/subscription","commits_url":"https://api.github.com/repos/akerl/spaarti/commits{/sha}","git_commits_url":"https://api.github.com/repos/akerl/spaarti/git/commits{/sha}","comments_url":"https://api.github.com/repos/akerl/spaarti/comments{/number}","issue_comment_url":"https://api.github.com/repos/akerl/spaarti/issues/comments{/number}","contents_url":"https://api.github.com/repos/akerl/spaarti/contents/{+path}","compare_url":"https://api.github.com/repos/akerl/spaarti/compare/{base}...{head}","merges_url":"https://api.github.com/repos/akerl/spaarti/merges","archive_url":"https://api.github.com/repos/akerl/spaarti/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/akerl/spaarti/downloads","issues_url":"https://api.github.com/repos/akerl/spaarti/issues{/number}","pulls_url":"https://api.github.com/repos/akerl/spaarti/pulls{/number}","milestones_url":"https://api.github.com/repos/akerl/spaarti/milestones{/number}","notifications_url":"https://api.github.com/repos/akerl/spaarti/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/akerl/spaarti/labels{/name}","releases_url":"https://api.github.com/repos/akerl/spaarti/releases{/id}","created_at":"2014-09-11T03:05:28Z","updated_at":"2015-04-05T14:20:01Z","pushed_at":"2015-04-05T14:20:00Z","git_url":"git://github.com/akerl/spaarti.git","ssh_url":"git@github.com:akerl/spaarti.git","clone_url":"https://github.com/akerl/spaarti.git","svn_url":"https://github.com/akerl/spaarti","homepage":"","size":364,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":2,"forks":0,"open_issues":2,"watchers":0,"default_branch":"master","master_branch":"master","permissions":{"admin":true,"push":true,"pull":true}}]'
|
70
|
+
http_version:
|
71
|
+
recorded_at: Sun, 05 Apr 2015 14:56:23 GMT
|
72
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
describe Spaarti do
|
5
|
+
describe 'Site' do
|
6
|
+
let(:path) { 'tmp/base' }
|
7
|
+
let(:config) { 'spec/examples/config.yml' }
|
8
|
+
let(:subject) { Spaarti::Site.new config_file: config }
|
9
|
+
|
10
|
+
before(:each) do
|
11
|
+
FileUtils.rm_rf path
|
12
|
+
FileUtils.mkdir_p path
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '#sync!' do
|
16
|
+
it 'clones repo' do
|
17
|
+
expect(File.exist? "#{path}/akerl/spaarti/.git").to be_falsey
|
18
|
+
VCR.use_cassette('repos') { subject.sync! }
|
19
|
+
expect(File.exist? "#{path}/akerl/spaarti/.git").to be_truthy
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'with purge enabled' do
|
23
|
+
it 'purges repos that are orphaned' do
|
24
|
+
FileUtils.mkdir_p "#{path}/akerl/orphan/.git"
|
25
|
+
VCR.use_cassette('repos') do
|
26
|
+
Spaarti::Site.new(purge: true, config_file: config).sync!
|
27
|
+
end
|
28
|
+
expect(File.exist? "#{path}/akerl/orphan").to be_falsey
|
29
|
+
end
|
30
|
+
end
|
31
|
+
context 'with purge disabled' do
|
32
|
+
it 'does not purge repos that are orphaned' do
|
33
|
+
FileUtils.mkdir_p "#{path}/akerl/orphan/.git"
|
34
|
+
VCR.use_cassette('repos') do
|
35
|
+
Spaarti::Site.new(purge: false, config_file: config).sync!
|
36
|
+
end
|
37
|
+
expect(File.exist? "#{path}/akerl/orphan").to be_truthy
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'supports excluding repos' do
|
42
|
+
VCR.use_cassette('repos') do
|
43
|
+
Spaarti::Site.new(
|
44
|
+
exclude: { full_name: ['[ab]a'] }, config_file: config
|
45
|
+
).sync!
|
46
|
+
end
|
47
|
+
expect(File.exist? "#{path}/akerl/spaarti").to be_falsey
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe '#purge!' do
|
52
|
+
it 'purges repos that are orphaned' do
|
53
|
+
FileUtils.mkdir_p "#{path}/akerl/orphan/.git"
|
54
|
+
VCR.use_cassette('repos') do
|
55
|
+
Spaarti::Site.new(purge: true, config_file: config).sync!
|
56
|
+
end
|
57
|
+
expect(File.exist? "#{path}/akerl/orphan").to be_falsey
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
data/spec/spaarti_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -8,3 +8,15 @@ end
|
|
8
8
|
|
9
9
|
require 'rspec'
|
10
10
|
require 'spaarti'
|
11
|
+
|
12
|
+
require 'vcr'
|
13
|
+
VCR.configure do |c|
|
14
|
+
c.cassette_library_dir = 'spec/fixtures/cassettes'
|
15
|
+
c.hook_into :webmock
|
16
|
+
c.before_record do |i|
|
17
|
+
i.request.headers.delete 'Authorization'
|
18
|
+
%w(Etag X-Github-Request-Id X-Served-By).each do |header|
|
19
|
+
i.response.headers.delete header
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spaarti
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Les Aker
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-04-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: octokit
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.
|
19
|
+
version: 3.8.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.
|
26
|
+
version: 3.8.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: octoauth
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.0.
|
33
|
+
version: 1.0.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.0.
|
40
|
+
version: 1.0.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: mercenary
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,14 +100,14 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 0.
|
103
|
+
version: 0.8.0
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0.
|
110
|
+
version: 0.8.0
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: rspec
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,6 +136,34 @@ dependencies:
|
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: 2.0.0
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: webmock
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 1.21.0
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 1.21.0
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: vcr
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 2.9.2
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 2.9.2
|
139
167
|
description: Maintain local clones of repos you have access to on GitHub
|
140
168
|
email: me@lesaker.org
|
141
169
|
executables:
|
@@ -157,6 +185,12 @@ files:
|
|
157
185
|
- lib/spaarti/site.rb
|
158
186
|
- lib/spaarti/version.rb
|
159
187
|
- spaarti.gemspec
|
188
|
+
- spec/bin_spec.rb
|
189
|
+
- spec/examples/auth.yml
|
190
|
+
- spec/examples/config.yml
|
191
|
+
- spec/fixtures/cassettes/repos.yml
|
192
|
+
- spec/spaarti/repo_spec.rb
|
193
|
+
- spec/spaarti/site_spec.rb
|
160
194
|
- spec/spaarti_spec.rb
|
161
195
|
- spec/spec_helper.rb
|
162
196
|
homepage: https://github.com/akerl/spaarti
|
@@ -184,5 +218,11 @@ signing_key:
|
|
184
218
|
specification_version: 4
|
185
219
|
summary: Helper for cloning GitHub repos
|
186
220
|
test_files:
|
221
|
+
- spec/bin_spec.rb
|
222
|
+
- spec/examples/auth.yml
|
223
|
+
- spec/examples/config.yml
|
224
|
+
- spec/fixtures/cassettes/repos.yml
|
225
|
+
- spec/spaarti/repo_spec.rb
|
226
|
+
- spec/spaarti/site_spec.rb
|
187
227
|
- spec/spaarti_spec.rb
|
188
228
|
- spec/spec_helper.rb
|