git_multicast 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -74,6 +74,6 @@ http_interactions:
74
74
  usefull ruby git hooks.","fork":true,"url":"https://api.github.com/repos/rranelli/ruby-git-hooks","forks_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/forks","keys_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/teams","hooks_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/hooks","issue_events_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/issues/events{/number}","events_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/events","assignees_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/assignees{/user}","branches_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/branches{/branch}","tags_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/tags","blobs_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/git/refs{/sha}","trees_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/statuses/{sha}","languages_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/languages","stargazers_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/stargazers","contributors_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/contributors","subscribers_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/subscribers","subscription_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/subscription","commits_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/commits{/sha}","git_commits_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/git/commits{/sha}","comments_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/comments{/number}","issue_comment_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/issues/comments/{number}","contents_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/contents/{+path}","compare_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/merges","archive_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/downloads","issues_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/issues{/number}","pulls_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/pulls{/number}","milestones_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/milestones{/number}","notifications_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/labels{/name}","releases_url":"https://api.github.com/repos/rranelli/ruby-git-hooks/releases{/id}","created_at":"2014-07-01T23:06:50Z","updated_at":"2014-08-19T23:55:53Z","pushed_at":"2014-08-21T22:53:32Z","git_url":"git://github.com/rranelli/ruby-git-hooks.git","ssh_url":"git@github.com:rranelli/ruby-git-hooks.git","clone_url":"https://github.com/rranelli/ruby-git-hooks.git","svn_url":"https://github.com/rranelli/ruby-git-hooks","homepage":null,"size":255,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","parent":{"id":21166102,"name":"git-hooks","full_name":"stupied4ever/git-hooks","owner":{"login":"stupied4ever","id":535347,"avatar_url":"https://avatars.githubusercontent.com/u/535347?v=2","gravatar_id":"1eb9b500bbf85599f404c92417a450a4","url":"https://api.github.com/users/stupied4ever","html_url":"https://github.com/stupied4ever","followers_url":"https://api.github.com/users/stupied4ever/followers","following_url":"https://api.github.com/users/stupied4ever/following{/other_user}","gists_url":"https://api.github.com/users/stupied4ever/gists{/gist_id}","starred_url":"https://api.github.com/users/stupied4ever/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stupied4ever/subscriptions","organizations_url":"https://api.github.com/users/stupied4ever/orgs","repos_url":"https://api.github.com/users/stupied4ever/repos","events_url":"https://api.github.com/users/stupied4ever/events{/privacy}","received_events_url":"https://api.github.com/users/stupied4ever/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/stupied4ever/git-hooks","description":"Some
75
75
  usefull ruby git hooks.","fork":false,"url":"https://api.github.com/repos/stupied4ever/git-hooks","forks_url":"https://api.github.com/repos/stupied4ever/git-hooks/forks","keys_url":"https://api.github.com/repos/stupied4ever/git-hooks/keys{/key_id}","collaborators_url":"https://api.github.com/repos/stupied4ever/git-hooks/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/stupied4ever/git-hooks/teams","hooks_url":"https://api.github.com/repos/stupied4ever/git-hooks/hooks","issue_events_url":"https://api.github.com/repos/stupied4ever/git-hooks/issues/events{/number}","events_url":"https://api.github.com/repos/stupied4ever/git-hooks/events","assignees_url":"https://api.github.com/repos/stupied4ever/git-hooks/assignees{/user}","branches_url":"https://api.github.com/repos/stupied4ever/git-hooks/branches{/branch}","tags_url":"https://api.github.com/repos/stupied4ever/git-hooks/tags","blobs_url":"https://api.github.com/repos/stupied4ever/git-hooks/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/stupied4ever/git-hooks/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/stupied4ever/git-hooks/git/refs{/sha}","trees_url":"https://api.github.com/repos/stupied4ever/git-hooks/git/trees{/sha}","statuses_url":"https://api.github.com/repos/stupied4ever/git-hooks/statuses/{sha}","languages_url":"https://api.github.com/repos/stupied4ever/git-hooks/languages","stargazers_url":"https://api.github.com/repos/stupied4ever/git-hooks/stargazers","contributors_url":"https://api.github.com/repos/stupied4ever/git-hooks/contributors","subscribers_url":"https://api.github.com/repos/stupied4ever/git-hooks/subscribers","subscription_url":"https://api.github.com/repos/stupied4ever/git-hooks/subscription","commits_url":"https://api.github.com/repos/stupied4ever/git-hooks/commits{/sha}","git_commits_url":"https://api.github.com/repos/stupied4ever/git-hooks/git/commits{/sha}","comments_url":"https://api.github.com/repos/stupied4ever/git-hooks/comments{/number}","issue_comment_url":"https://api.github.com/repos/stupied4ever/git-hooks/issues/comments/{number}","contents_url":"https://api.github.com/repos/stupied4ever/git-hooks/contents/{+path}","compare_url":"https://api.github.com/repos/stupied4ever/git-hooks/compare/{base}...{head}","merges_url":"https://api.github.com/repos/stupied4ever/git-hooks/merges","archive_url":"https://api.github.com/repos/stupied4ever/git-hooks/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/stupied4ever/git-hooks/downloads","issues_url":"https://api.github.com/repos/stupied4ever/git-hooks/issues{/number}","pulls_url":"https://api.github.com/repos/stupied4ever/git-hooks/pulls{/number}","milestones_url":"https://api.github.com/repos/stupied4ever/git-hooks/milestones{/number}","notifications_url":"https://api.github.com/repos/stupied4ever/git-hooks/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/stupied4ever/git-hooks/labels{/name}","releases_url":"https://api.github.com/repos/stupied4ever/git-hooks/releases{/id}","created_at":"2014-06-24T13:45:23Z","updated_at":"2014-09-03T14:37:40Z","pushed_at":"2014-09-04T17:06:59Z","git_url":"git://github.com/stupied4ever/git-hooks.git","ssh_url":"git@github.com:stupied4ever/git-hooks.git","clone_url":"https://github.com/stupied4ever/git-hooks.git","svn_url":"https://github.com/stupied4ever/git-hooks","homepage":null,"size":831,"stargazers_count":4,"watchers_count":4,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":1,"mirror_url":null,"open_issues_count":4,"forks":1,"open_issues":4,"watchers":4,"default_branch":"master"},"source":{"id":21166102,"name":"git-hooks","full_name":"stupied4ever/git-hooks","owner":{"login":"stupied4ever","id":535347,"avatar_url":"https://avatars.githubusercontent.com/u/535347?v=2","gravatar_id":"1eb9b500bbf85599f404c92417a450a4","url":"https://api.github.com/users/stupied4ever","html_url":"https://github.com/stupied4ever","followers_url":"https://api.github.com/users/stupied4ever/followers","following_url":"https://api.github.com/users/stupied4ever/following{/other_user}","gists_url":"https://api.github.com/users/stupied4ever/gists{/gist_id}","starred_url":"https://api.github.com/users/stupied4ever/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stupied4ever/subscriptions","organizations_url":"https://api.github.com/users/stupied4ever/orgs","repos_url":"https://api.github.com/users/stupied4ever/repos","events_url":"https://api.github.com/users/stupied4ever/events{/privacy}","received_events_url":"https://api.github.com/users/stupied4ever/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/stupied4ever/git-hooks","description":"Some
76
76
  usefull ruby git hooks.","fork":false,"url":"https://api.github.com/repos/stupied4ever/git-hooks","forks_url":"https://api.github.com/repos/stupied4ever/git-hooks/forks","keys_url":"https://api.github.com/repos/stupied4ever/git-hooks/keys{/key_id}","collaborators_url":"https://api.github.com/repos/stupied4ever/git-hooks/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/stupied4ever/git-hooks/teams","hooks_url":"https://api.github.com/repos/stupied4ever/git-hooks/hooks","issue_events_url":"https://api.github.com/repos/stupied4ever/git-hooks/issues/events{/number}","events_url":"https://api.github.com/repos/stupied4ever/git-hooks/events","assignees_url":"https://api.github.com/repos/stupied4ever/git-hooks/assignees{/user}","branches_url":"https://api.github.com/repos/stupied4ever/git-hooks/branches{/branch}","tags_url":"https://api.github.com/repos/stupied4ever/git-hooks/tags","blobs_url":"https://api.github.com/repos/stupied4ever/git-hooks/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/stupied4ever/git-hooks/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/stupied4ever/git-hooks/git/refs{/sha}","trees_url":"https://api.github.com/repos/stupied4ever/git-hooks/git/trees{/sha}","statuses_url":"https://api.github.com/repos/stupied4ever/git-hooks/statuses/{sha}","languages_url":"https://api.github.com/repos/stupied4ever/git-hooks/languages","stargazers_url":"https://api.github.com/repos/stupied4ever/git-hooks/stargazers","contributors_url":"https://api.github.com/repos/stupied4ever/git-hooks/contributors","subscribers_url":"https://api.github.com/repos/stupied4ever/git-hooks/subscribers","subscription_url":"https://api.github.com/repos/stupied4ever/git-hooks/subscription","commits_url":"https://api.github.com/repos/stupied4ever/git-hooks/commits{/sha}","git_commits_url":"https://api.github.com/repos/stupied4ever/git-hooks/git/commits{/sha}","comments_url":"https://api.github.com/repos/stupied4ever/git-hooks/comments{/number}","issue_comment_url":"https://api.github.com/repos/stupied4ever/git-hooks/issues/comments/{number}","contents_url":"https://api.github.com/repos/stupied4ever/git-hooks/contents/{+path}","compare_url":"https://api.github.com/repos/stupied4ever/git-hooks/compare/{base}...{head}","merges_url":"https://api.github.com/repos/stupied4ever/git-hooks/merges","archive_url":"https://api.github.com/repos/stupied4ever/git-hooks/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/stupied4ever/git-hooks/downloads","issues_url":"https://api.github.com/repos/stupied4ever/git-hooks/issues{/number}","pulls_url":"https://api.github.com/repos/stupied4ever/git-hooks/pulls{/number}","milestones_url":"https://api.github.com/repos/stupied4ever/git-hooks/milestones{/number}","notifications_url":"https://api.github.com/repos/stupied4ever/git-hooks/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/stupied4ever/git-hooks/labels{/name}","releases_url":"https://api.github.com/repos/stupied4ever/git-hooks/releases{/id}","created_at":"2014-06-24T13:45:23Z","updated_at":"2014-09-03T14:37:40Z","pushed_at":"2014-09-04T17:06:59Z","git_url":"git://github.com/stupied4ever/git-hooks.git","ssh_url":"git@github.com:stupied4ever/git-hooks.git","clone_url":"https://github.com/stupied4ever/git-hooks.git","svn_url":"https://github.com/stupied4ever/git-hooks","homepage":null,"size":831,"stargazers_count":4,"watchers_count":4,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":1,"mirror_url":null,"open_issues_count":4,"forks":1,"open_issues":4,"watchers":4,"default_branch":"master"},"network_count":1,"subscribers_count":1}'
77
- http_version:
77
+ http_version:
78
78
  recorded_at: Wed, 10 Sep 2014 06:21:01 GMT
79
79
  recorded_with: VCR 2.9.3
@@ -2,25 +2,23 @@ module GitMulticast
2
2
  describe Cloner do
3
3
  subject(:cloner) { described_class.new(username, dir) }
4
4
 
5
- let(:username) { 'ironman' }
5
+ let(:username) { 'rranelli' }
6
6
  let(:dir) { '/kifita/' }
7
7
 
8
- let(:repo) do
9
- double(
10
- :repo,
11
- ssh_url: 'git@hubgit.com:bar/foo',
12
- url: 'http://hubgit.com/bar/foo',
13
- fork: false,
14
- name: 'foo')
15
- end
16
- let(:repos) { [repo] * 3 }
8
+ let(:repo_name) { 'git_multicast' }
9
+
10
+ let(:pipe) { IO.pipe }
11
+ let(:r) { pipe.first }
12
+ let(:w) { pipe[1] }
17
13
 
18
14
  before do
19
15
  allow(cloner).to receive(:spawn).and_return(nil)
20
- allow(cloner).to receive(:waitall).and_return([])
16
+ allow(cloner).to receive(:waitall).and_return(
17
+ [[nil, double(:success, success?: true)]] * 32
18
+ )
19
+
20
+ allow(IO).to receive(:pipe).and_return([r, w])
21
21
 
22
- allow(RepositoryFetcher).to receive(:get_all_repos_from_user)
23
- .and_return(repos)
24
22
  allow(OutputFormatter).to receive(:format)
25
23
  end
26
24
 
@@ -28,41 +26,38 @@ module GitMulticast
28
26
  subject(:clone!) { cloner.clone! }
29
27
 
30
28
  it 'spawns a clone job for each repo' do
31
- expect(cloner).to receive(:spawn)
32
- .with("git clone #{repo.ssh_url} /kifita/foo").exactly(3).times
33
-
34
- clone!
35
- end
36
-
37
- context 'when repo is a fork'do
38
- let(:parent_repo) do
39
- double(:parent, ssh_url: 'git@hubgit.com:parent/repo')
40
- end
41
-
42
- before do
43
- allow(RepositoryFetcher).to receive(
44
- :get_repo_parent
45
- ).and_return(parent_repo)
29
+ VCR.use_cassette('clone_repos') do
30
+ expect(cloner).to receive(:spawn).exactly(32).times
46
31
 
47
- allow(repo).to receive(:fork).and_return(true)
32
+ clone!
48
33
  end
34
+ end
49
35
 
50
- it 'gets parent repository by url' do
51
- expect(RepositoryFetcher).to receive(:get_repo_parent)
52
- .with(repo.url)
36
+ it 'spawns a clone with the right parameters' do
37
+ VCR.use_cassette('clone_repos') do
38
+ expect(cloner).to receive(:spawn)
39
+ .with("git clone git@github.com:rranelli/#{repo_name}.git" \
40
+ ' /kifita/git_multicast', out: w, err: w)
53
41
 
54
42
  clone!
55
43
  end
44
+ end
45
+
46
+ context 'when repo is a fork'do
47
+ let(:repo_name) { 'git-hooks' }
56
48
 
57
49
  it 'adds upstream remote' do
58
- expect(cloner).to receive(:spawn)
59
- .with(
60
- "git clone #{repo.ssh_url} /kifita/foo && \
61
- git -C \"/kifita/foo\" remote add upstream #{parent_repo.ssh_url} \
62
- --fetch"
63
- )
50
+ VCR.use_cassette('clone_repos') do
51
+ expect(cloner).to receive(:spawn)
52
+ .with(
53
+ "git clone git@github.com:rranelli/ruby-#{repo_name}.git " \
54
+ "/kifita/ruby-#{repo_name} && git -C \"/kifita/ruby-#{repo_name}\"" \
55
+ ' remote add upstream ' \
56
+ "git@github.com:stupied4ever/#{repo_name}.git --fetch",
57
+ out: w, err: w)
64
58
 
65
- clone!
59
+ clone!
60
+ end
66
61
  end
67
62
  end
68
63
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git_multicast
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Renan Ranelli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-11 00:00:00.000000000 Z
11
+ date: 2014-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: recursive-open-struct
@@ -183,6 +183,7 @@ files:
183
183
  - lib/git_multicast/version.rb
184
184
  - spec/fixtures/vcr_cassettes/bitbucket_all_user_repos.yml
185
185
  - spec/fixtures/vcr_cassettes/bitbucket_repo.yml
186
+ - spec/fixtures/vcr_cassettes/clone_repos.yml
186
187
  - spec/fixtures/vcr_cassettes/github_all_user_repos.yml
187
188
  - spec/fixtures/vcr_cassettes/github_repo.yml
188
189
  - spec/fixtures/vcr_cassettes/github_repo_parent.yml