github 0.5.0 → 0.6.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/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- github (0.5.0)
4
+ github (0.6.0)
5
5
  highline (~> 1.5.1)
6
6
  json (~> 1.4.6)
7
7
  launchy (~> 0.3.7)
@@ -31,9 +31,5 @@ PLATFORMS
31
31
  DEPENDENCIES
32
32
  activerecord (~> 2.3.10)
33
33
  github!
34
- highline (~> 1.5.1)
35
- json (~> 1.4.6)
36
- launchy (~> 0.3.7)
37
34
  rake
38
35
  rspec (~> 1.3.1)
39
- text-format (= 1.0.0)
data/History.txt CHANGED
@@ -1,7 +1,13 @@
1
+ == 0.6.0
2
+
3
+ * If credentials not setup, then user prompted for them
4
+ * Corrected the "gem source --add" call [kedarmhaswade]
5
+ * Verify network-cache is non-empty [bfroehle]
6
+
1
7
  == 0.5.0 2011-1-17
2
8
 
3
- * Support for ruby 1.9.2 [keithpitty]
4
- * Clean fail if haven't setup github config yet [keithpitty]
9
+ * Support for ruby 1.9.2 [keithpitt]
10
+ * Clean fail if haven't setup github config yet [keithpitt]
5
11
 
6
12
  == 0.4.6 2010-11-04
7
13
 
data/README.md CHANGED
@@ -6,7 +6,7 @@ Catch us in the #github room on freenode if you want to get involved. Or just f
6
6
 
7
7
  ## Getting started
8
8
 
9
- $ gem source add http://gemcutter.org
9
+ $ gem source --add http://gemcutter.org
10
10
  $ gem install github
11
11
 
12
12
  Run it:
@@ -389,7 +389,7 @@ helper :cache_expired? do
389
389
  end
390
390
 
391
391
  helper :has_cache? do
392
- File.file?(network_cache_path)
392
+ File.file?(network_cache_path) && !File.zero?(network_cache_path)
393
393
  end
394
394
 
395
395
  helper :has_commits_cache? do
@@ -69,20 +69,40 @@ module GitHub
69
69
  def github_user
70
70
  user = git("config --get github.user")
71
71
  if user.empty?
72
- die("You must 'git config --global github.user [your Github username]' before running this command")
72
+ request_github_credentials
73
+ user = github_user
73
74
  end
74
-
75
75
  user
76
76
  end
77
77
 
78
78
  def github_token
79
79
  token = git("config --get github.token")
80
80
  if token.empty?
81
- die("You must 'git config --global github.token [your API token]' before running this command")
81
+ request_github_credentials
82
+ token = github_token
82
83
  end
83
-
84
84
  token
85
85
  end
86
+
87
+ def request_github_credentials
88
+ puts "Please enter your GitHub credentials:"
89
+ user = highline.ask("Username: ") while user.nil? || user.empty?
90
+
91
+ git("config --global github.user '#{user}'")
92
+ puts("Your account token is at https://github.com/account under 'Account Admin'.")
93
+ puts("Press Enter to launch page in browser.")
94
+ token = highline.ask("Token: ")
95
+ while token.strip.empty?
96
+ helper.open "https://github.com/account"
97
+ token = highline.ask("Token: ")
98
+ end
99
+ git("config --global github.token '#{token}'")
100
+ true
101
+ end
102
+
103
+ def highline
104
+ @highline ||= HighLine.new
105
+ end
86
106
 
87
107
  def shell_user
88
108
  ENV['USER']
@@ -1,3 +1,3 @@
1
1
  module GitHub
2
- VERSION = "0.5.0"
2
+ VERSION = "0.6.0"
3
3
  end
data/spec/command_spec.rb CHANGED
@@ -79,18 +79,38 @@ describe GitHub::Command do
79
79
  @command.should_receive(:exit!).once
80
80
  @command.die "message"
81
81
  end
82
-
83
- it "should die if a github API token cannot be found" do
84
- @command.should_receive(:git).once.with("config --get github.token").and_return("")
85
- @command.should_receive(:puts).once.with("=> You must 'git config --global github.token [your API token]' before running this command")
86
- @command.should_receive(:exit!).once
87
- @command.github_token
82
+
83
+ it "requests github API credentials if not found" do
84
+ @command.should_receive(:git).once.with("config --get github.user").and_return("")
85
+ @command.should_receive(:puts).once.with("Please enter your GitHub credentials:")
86
+ h = mock("HighLine")
87
+ h.should_receive(:ask).once.with("Username: ").and_return("drnic")
88
+ @command.should_receive(:puts).once.with("Your account token is at https://github.com/account under 'Account Admin'.")
89
+ @command.should_receive(:puts).once.with("Press Enter to launch page in browser.")
90
+ h.should_receive(:ask).once.with("Token: ").and_return("TOKEN")
91
+ @command.should_receive(:highline).twice.and_return(h)
92
+ @command.should_receive(:git).once.with("config --global github.user 'drnic'")
93
+ @command.should_receive(:git).once.with("config --global github.token 'TOKEN'")
94
+ @command.should_receive(:git).once.with("config --get github.user").and_return("drnic")
95
+ @command.github_user
88
96
  end
89
97
 
90
- it "should die if a github username token cannot be found" do
98
+ it "requests github API credentials if not found, and shows accounts page" do
91
99
  @command.should_receive(:git).once.with("config --get github.user").and_return("")
92
- @command.should_receive(:puts).once.with("=> You must 'git config --global github.user [your Github username]' before running this command")
93
- @command.should_receive(:exit!).once
100
+ @command.should_receive(:puts).once.with("Please enter your GitHub credentials:")
101
+ h = mock("HighLine")
102
+ h.should_receive(:ask).once.with("Username: ").and_return("drnic")
103
+ @command.should_receive(:puts).once.with("Your account token is at https://github.com/account under 'Account Admin'.")
104
+ @command.should_receive(:puts).once.with("Press Enter to launch page in browser.")
105
+ h.should_receive(:ask).once.with("Token: ").and_return("")
106
+ helper = mock("GitHub::Helper")
107
+ helper.should_receive("open").once.with("https://github.com/account")
108
+ @command.should_receive(:helper).once.and_return(helper)
109
+ h.should_receive(:ask).once.with("Token: ").and_return("TOKEN")
110
+ @command.should_receive(:highline).any_number_of_times.and_return(h)
111
+ @command.should_receive(:git).once.with("config --global github.user 'drnic'")
112
+ @command.should_receive(:git).once.with("config --global github.token 'TOKEN'")
113
+ @command.should_receive(:git).once.with("config --get github.user").and_return("drnic")
94
114
  @command.github_user
95
115
  end
96
116
  end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: 7
5
+ prerelease:
5
6
  segments:
6
7
  - 0
7
- - 5
8
+ - 6
8
9
  - 0
9
- version: 0.5.0
10
+ version: 0.6.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - Chris Wanstrath
@@ -17,112 +18,119 @@ autorequire:
17
18
  bindir: bin
18
19
  cert_chain: []
19
20
 
20
- date: 2011-01-17 00:00:00 -08:00
21
+ date: 2011-01-30 00:00:00 -08:00
21
22
  default_executable:
22
23
  dependencies:
23
24
  - !ruby/object:Gem::Dependency
24
- name: text-format
25
- requirement: &id001 !ruby/object:Gem::Requirement
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
26
26
  none: false
27
27
  requirements:
28
28
  - - "="
29
29
  - !ruby/object:Gem::Version
30
+ hash: 23
30
31
  segments:
31
32
  - 1
32
33
  - 0
33
34
  - 0
34
35
  version: 1.0.0
35
36
  type: :runtime
37
+ requirement: *id001
38
+ name: text-format
36
39
  prerelease: false
37
- version_requirements: *id001
38
40
  - !ruby/object:Gem::Dependency
39
- name: highline
40
- requirement: &id002 !ruby/object:Gem::Requirement
41
+ version_requirements: &id002 !ruby/object:Gem::Requirement
41
42
  none: false
42
43
  requirements:
43
44
  - - ~>
44
45
  - !ruby/object:Gem::Version
46
+ hash: 1
45
47
  segments:
46
48
  - 1
47
49
  - 5
48
50
  - 1
49
51
  version: 1.5.1
50
52
  type: :runtime
53
+ requirement: *id002
54
+ name: highline
51
55
  prerelease: false
52
- version_requirements: *id002
53
56
  - !ruby/object:Gem::Dependency
54
- name: json
55
- requirement: &id003 !ruby/object:Gem::Requirement
57
+ version_requirements: &id003 !ruby/object:Gem::Requirement
56
58
  none: false
57
59
  requirements:
58
60
  - - ~>
59
61
  - !ruby/object:Gem::Version
62
+ hash: 11
60
63
  segments:
61
64
  - 1
62
65
  - 4
63
66
  - 6
64
67
  version: 1.4.6
65
68
  type: :runtime
69
+ requirement: *id003
70
+ name: json
66
71
  prerelease: false
67
- version_requirements: *id003
68
72
  - !ruby/object:Gem::Dependency
69
- name: launchy
70
- requirement: &id004 !ruby/object:Gem::Requirement
73
+ version_requirements: &id004 !ruby/object:Gem::Requirement
71
74
  none: false
72
75
  requirements:
73
76
  - - ~>
74
77
  - !ruby/object:Gem::Version
78
+ hash: 29
75
79
  segments:
76
80
  - 0
77
81
  - 3
78
82
  - 7
79
83
  version: 0.3.7
80
84
  type: :runtime
85
+ requirement: *id004
86
+ name: launchy
81
87
  prerelease: false
82
- version_requirements: *id004
83
88
  - !ruby/object:Gem::Dependency
84
- name: rake
85
- requirement: &id005 !ruby/object:Gem::Requirement
89
+ version_requirements: &id005 !ruby/object:Gem::Requirement
86
90
  none: false
87
91
  requirements:
88
92
  - - ">="
89
93
  - !ruby/object:Gem::Version
94
+ hash: 3
90
95
  segments:
91
96
  - 0
92
97
  version: "0"
93
98
  type: :development
99
+ requirement: *id005
100
+ name: rake
94
101
  prerelease: false
95
- version_requirements: *id005
96
102
  - !ruby/object:Gem::Dependency
97
- name: rspec
98
- requirement: &id006 !ruby/object:Gem::Requirement
103
+ version_requirements: &id006 !ruby/object:Gem::Requirement
99
104
  none: false
100
105
  requirements:
101
106
  - - ~>
102
107
  - !ruby/object:Gem::Version
108
+ hash: 25
103
109
  segments:
104
110
  - 1
105
111
  - 3
106
112
  - 1
107
113
  version: 1.3.1
108
114
  type: :development
115
+ requirement: *id006
116
+ name: rspec
109
117
  prerelease: false
110
- version_requirements: *id006
111
118
  - !ruby/object:Gem::Dependency
112
- name: activerecord
113
- requirement: &id007 !ruby/object:Gem::Requirement
119
+ version_requirements: &id007 !ruby/object:Gem::Requirement
114
120
  none: false
115
121
  requirements:
116
122
  - - ~>
117
123
  - !ruby/object:Gem::Version
124
+ hash: 23
118
125
  segments:
119
126
  - 2
120
127
  - 3
121
128
  - 10
122
129
  version: 2.3.10
123
130
  type: :development
131
+ requirement: *id007
132
+ name: activerecord
124
133
  prerelease: false
125
- version_requirements: *id007
126
134
  description: The official `github` command line helper for simplifying your GitHub experience.
127
135
  email:
128
136
  - drnicwilliams@gmail.com
@@ -194,7 +202,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
194
202
  requirements:
195
203
  - - ">="
196
204
  - !ruby/object:Gem::Version
197
- hash: -2745710888565364419
205
+ hash: 3
198
206
  segments:
199
207
  - 0
200
208
  version: "0"
@@ -203,14 +211,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
203
211
  requirements:
204
212
  - - ">="
205
213
  - !ruby/object:Gem::Version
206
- hash: -2745710888565364419
214
+ hash: 3
207
215
  segments:
208
216
  - 0
209
217
  version: "0"
210
218
  requirements: []
211
219
 
212
220
  rubyforge_project: github
213
- rubygems_version: 1.3.7
221
+ rubygems_version: 1.4.2
214
222
  signing_key:
215
223
  specification_version: 3
216
224
  summary: The official `github` command line helper for simplifying your GitHub experience.