mirror_github 0.0.2 → 0.0.3
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.
- checksums.yaml +7 -0
- data/README.rdoc +2 -0
- data/Rakefile +7 -0
- data/lib/mirror_github/github.rb +22 -9
- data/lib/mirror_github/version.rb +1 -1
- data/mirror_github.gemspec +2 -0
- data/test/configuration_test.rb +2 -2
- data/test/git_test.rb +2 -2
- data/test/github_test.rb +3 -2
- data/test/repository_test.rb +1 -1
- data/test/test_helper.rb +2 -2
- metadata +41 -21
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f9f2fc1eed1e6c4e09659fa23f48240298ef89da
|
4
|
+
data.tar.gz: 28abbdba2fe7bc13af8d952a957724ed60e236d7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1c29536b1971bcfefc10d971e2cff6fbb3a76515312a72600ef2fcac0d7609f812eb3d7d5d738dd43fbdc9dc1b6174dca15fdd1bfa6a8aa2c065e46bc3c4d3f9
|
7
|
+
data.tar.gz: 3138948be00c511fce07b43e76de9c74394522a0142fba104a614d2162d092a2c8552e9a6886046981e064e1e8f9cbc7bbb0b621195c1cee6fede83e19b5ca0c
|
data/README.rdoc
CHANGED
@@ -17,6 +17,8 @@ Create a mirror_github_config.yml that contains your GitHub username, password,
|
|
17
17
|
|
18
18
|
Obviously, the user credentials you define in this file need to have access to the specified organization.
|
19
19
|
|
20
|
+
Note: you can [create a personal token](https://github.com/blog/1509-personal-api-tokens) instead of using your username and password. Use it for your username and leave password blank.
|
21
|
+
|
20
22
|
Then:
|
21
23
|
|
22
24
|
mirror_github --config-file=/path/to/your/mirror_github_config.yml --backup-dir=/path/to/github/mirror/directory
|
data/Rakefile
CHANGED
data/lib/mirror_github/github.rb
CHANGED
@@ -20,18 +20,31 @@ module MirrorGithub
|
|
20
20
|
end
|
21
21
|
|
22
22
|
# Return a list of the current repositories for an organization
|
23
|
-
def repositories(limit =
|
23
|
+
def repositories(limit = 100)
|
24
24
|
return [] unless org
|
25
25
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
26
|
+
got_results = true
|
27
|
+
page = 1
|
28
|
+
repos = []
|
29
|
+
|
30
|
+
while got_results do
|
31
|
+
# Github maxes out at 100 repos per page.
|
32
|
+
page_repos = JSON::parse(connection["orgs/#{org}/repos?per_page=#{limit}&page=#{page}"].get).collect do |repo_hash|
|
33
|
+
Repository.new(:ssh_url => repo_hash['ssh_url'],
|
34
|
+
:private => repo_hash['private'],
|
35
|
+
:created_at => repo_hash["created_at"],
|
36
|
+
:pushed_at => repo_hash["pushed_at"],
|
37
|
+
:name => repo_hash["name"])
|
38
|
+
end
|
39
|
+
if page_repos.empty?
|
40
|
+
got_results = false
|
41
|
+
else
|
42
|
+
repos += page_repos
|
43
|
+
end
|
44
|
+
page += 1
|
34
45
|
end
|
46
|
+
|
47
|
+
repos
|
35
48
|
end
|
36
49
|
|
37
50
|
|
data/mirror_github.gemspec
CHANGED
@@ -18,6 +18,8 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.add_dependency 'rest-client'
|
19
19
|
s.add_dependency 'json_pure'
|
20
20
|
|
21
|
+
s.add_development_dependency 'rake'
|
22
|
+
s.add_development_dependency 'minitest'
|
21
23
|
s.add_development_dependency 'fakeweb'
|
22
24
|
|
23
25
|
s.files = `git ls-files`.split("\n")
|
data/test/configuration_test.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
class MirrorGithub::ConfigurationTest <
|
3
|
+
class MirrorGithub::ConfigurationTest < MiniTest::Unit::TestCase
|
4
4
|
|
5
5
|
def test_config_file_default
|
6
|
-
|
6
|
+
assert MirrorGithub::Configuration.config_file_path
|
7
7
|
end
|
8
8
|
|
9
9
|
def test_loads_config_file
|
data/test/git_test.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
class MirrorGithub::GitTest <
|
3
|
+
class MirrorGithub::GitTest < MiniTest::Unit::TestCase
|
4
4
|
|
5
5
|
def setup
|
6
6
|
@tmp_dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'tmp'))
|
@@ -14,7 +14,7 @@ class MirrorGithub::GitTest < Test::Unit::TestCase
|
|
14
14
|
|
15
15
|
def test_initialize_raises_error_if_directory_does_not_exist
|
16
16
|
r = MirrorGithub::Repository.new(:ssh_url => 'ssh://git@github.com:test')
|
17
|
-
|
17
|
+
assert_raises RuntimeError do
|
18
18
|
MirrorGithub::Git.new('sdfl9ij390', r)
|
19
19
|
end
|
20
20
|
end
|
data/test/github_test.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
require 'fakeweb'
|
3
3
|
|
4
|
-
class MirrorGithub::GithubTest <
|
4
|
+
class MirrorGithub::GithubTest < MiniTest::Unit::TestCase
|
5
5
|
|
6
6
|
def setup
|
7
7
|
FakeWeb.allow_net_connect = false
|
8
8
|
FakeWeb.register_uri(:get, MirrorGithub::Github.api_url, :body => "Unauthorized", :status => ["401", "Unauthorized"])
|
9
|
-
FakeWeb.register_uri(:get, 'https://johnnytest:sOOperSecret@api.github.com/orgs/parent_org/repos', :body => organization_json, :content_type => "application/json")
|
9
|
+
FakeWeb.register_uri(:get, 'https://johnnytest:sOOperSecret@api.github.com/orgs/parent_org/repos?per_page=100&page=1', :body => organization_json, :content_type => "application/json")
|
10
|
+
FakeWeb.register_uri(:get, 'https://johnnytest:sOOperSecret@api.github.com/orgs/parent_org/repos?per_page=100&page=2', :body => '[]', :content_type => "application/json")
|
10
11
|
end
|
11
12
|
|
12
13
|
def teardown
|
data/test/repository_test.rb
CHANGED
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mirror_github
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Casey Dreier
|
@@ -10,54 +9,76 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-
|
12
|
+
date: 2013-10-18 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: rest-client
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
|
-
- -
|
18
|
+
- - '>='
|
21
19
|
- !ruby/object:Gem::Version
|
22
20
|
version: '0'
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
|
-
- -
|
25
|
+
- - '>='
|
29
26
|
- !ruby/object:Gem::Version
|
30
27
|
version: '0'
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: json_pure
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
|
-
- -
|
32
|
+
- - '>='
|
37
33
|
- !ruby/object:Gem::Version
|
38
34
|
version: '0'
|
39
35
|
type: :runtime
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
|
-
- -
|
39
|
+
- - '>='
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: rake
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - '>='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: minitest
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - '>='
|
45
68
|
- !ruby/object:Gem::Version
|
46
69
|
version: '0'
|
47
70
|
- !ruby/object:Gem::Dependency
|
48
71
|
name: fakeweb
|
49
72
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
73
|
requirements:
|
52
|
-
- -
|
74
|
+
- - '>='
|
53
75
|
- !ruby/object:Gem::Version
|
54
76
|
version: '0'
|
55
77
|
type: :development
|
56
78
|
prerelease: false
|
57
79
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
80
|
requirements:
|
60
|
-
- -
|
81
|
+
- - '>='
|
61
82
|
- !ruby/object:Gem::Version
|
62
83
|
version: '0'
|
63
84
|
description: Command-line library for mirroring an Organization's GitHub repositories
|
@@ -93,26 +114,25 @@ files:
|
|
93
114
|
homepage: https://github.com/singlebrook/mirror_github
|
94
115
|
licenses:
|
95
116
|
- BSD
|
117
|
+
metadata: {}
|
96
118
|
post_install_message:
|
97
119
|
rdoc_options: []
|
98
120
|
require_paths:
|
99
121
|
- lib
|
100
122
|
required_ruby_version: !ruby/object:Gem::Requirement
|
101
|
-
none: false
|
102
123
|
requirements:
|
103
|
-
- -
|
124
|
+
- - '>='
|
104
125
|
- !ruby/object:Gem::Version
|
105
126
|
version: '0'
|
106
127
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
|
-
none: false
|
108
128
|
requirements:
|
109
|
-
- -
|
129
|
+
- - '>='
|
110
130
|
- !ruby/object:Gem::Version
|
111
131
|
version: '0'
|
112
132
|
requirements: []
|
113
133
|
rubyforge_project: mirror_github
|
114
|
-
rubygems_version:
|
134
|
+
rubygems_version: 2.0.3
|
115
135
|
signing_key:
|
116
|
-
specification_version:
|
136
|
+
specification_version: 4
|
117
137
|
summary: Command-line library for mirroring an Organization's GitHub repositories
|
118
138
|
test_files: []
|