github_cli 0.5.1 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +10 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +19 -11
- data/features/label.feature +2 -2
- data/features/starring.feature +74 -0
- data/features/watching.feature +22 -8
- data/github_cli.gemspec +1 -1
- data/lib/github_cli/apis/label.rb +8 -4
- data/lib/github_cli/apis/starring.rb +40 -0
- data/lib/github_cli/apis/watching.rb +7 -7
- data/lib/github_cli/apis.rb +1 -0
- data/lib/github_cli/commands/authorizations.rb +1 -1
- data/lib/github_cli/commands/labels.rb +2 -2
- data/lib/github_cli/commands/starring.rb +39 -0
- data/lib/github_cli/commands/watching.rb +5 -5
- data/lib/github_cli/commands.rb +1 -0
- data/lib/github_cli/formatters/table.rb +3 -3
- data/lib/github_cli/subcommands.rb +3 -0
- data/lib/github_cli/ui.rb +16 -10
- data/lib/github_cli/util.rb +3 -2
- data/lib/github_cli/version.rb +1 -1
- data/lib/github_cli.rb +1 -1
- metadata +110 -71
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
0.5.2 (September 22, 2012)
|
2
|
+
|
3
|
+
* Fix bug with Ruby 1.8 and passing arguments in add and replace label api
|
4
|
+
* Fix ui component in Ruby 1.8 and add newline param
|
5
|
+
* Update dependencies.
|
6
|
+
* Fix table formatting in Ruby 1.8.
|
7
|
+
* Change watching api to new subscribers api.
|
8
|
+
* Add starring api commands.
|
9
|
+
* Fix bug preventing listing of your authorizations.
|
10
|
+
|
1
11
|
0.5.1 (September 16, 2012)
|
2
12
|
|
3
13
|
* Fix bug - failure to load vendored dependencies.
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,8 +1,16 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
github_cli (0.5.
|
5
|
-
github_api (~> 0.
|
4
|
+
github_cli (0.5.2)
|
5
|
+
github_api (~> 0.7)
|
6
|
+
|
7
|
+
PATH
|
8
|
+
remote: ../communist
|
9
|
+
specs:
|
10
|
+
communist (0.3.0)
|
11
|
+
json
|
12
|
+
rack
|
13
|
+
sinatra
|
6
14
|
|
7
15
|
GEM
|
8
16
|
remote: https://rubygems.org/
|
@@ -15,21 +23,18 @@ GEM
|
|
15
23
|
builder (3.0.0)
|
16
24
|
childprocess (0.3.2)
|
17
25
|
ffi (~> 1.0.6)
|
18
|
-
communist (0.1.0)
|
19
|
-
rack
|
20
|
-
sinatra
|
21
26
|
cucumber (1.2.1)
|
22
27
|
builder (>= 2.1.2)
|
23
28
|
diff-lcs (>= 1.1.3)
|
24
29
|
gherkin (~> 2.11.0)
|
25
30
|
json (>= 1.4.6)
|
26
31
|
diff-lcs (1.1.3)
|
27
|
-
faraday (0.8.
|
32
|
+
faraday (0.8.4)
|
28
33
|
multipart-post (~> 1.1)
|
29
34
|
ffi (1.0.11)
|
30
35
|
gherkin (2.11.0)
|
31
36
|
json (>= 1.4.6)
|
32
|
-
github_api (0.
|
37
|
+
github_api (0.7.0)
|
33
38
|
faraday (~> 0.8.1)
|
34
39
|
hashie (~> 1.2.0)
|
35
40
|
multi_json (~> 1.3)
|
@@ -39,15 +44,18 @@ GEM
|
|
39
44
|
hpricot (0.8.6)
|
40
45
|
httpauth (0.1)
|
41
46
|
json (1.7.3)
|
47
|
+
jwt (0.1.5)
|
48
|
+
multi_json (>= 1.0)
|
42
49
|
multi_json (1.3.6)
|
43
50
|
multipart-post (1.1.5)
|
44
51
|
mustache (0.99.4)
|
45
|
-
nokogiri (1.5.
|
46
|
-
oauth2 (0.
|
52
|
+
nokogiri (1.5.5)
|
53
|
+
oauth2 (0.8.0)
|
47
54
|
faraday (~> 0.8)
|
48
55
|
httpauth (~> 0.1)
|
56
|
+
jwt (~> 0.1.4)
|
49
57
|
multi_json (~> 1.0)
|
50
|
-
rack (~> 1.
|
58
|
+
rack (~> 1.2)
|
51
59
|
rack (1.4.1)
|
52
60
|
rack-protection (1.2.0)
|
53
61
|
rack
|
@@ -76,7 +84,7 @@ PLATFORMS
|
|
76
84
|
|
77
85
|
DEPENDENCIES
|
78
86
|
aruba
|
79
|
-
communist
|
87
|
+
communist!
|
80
88
|
github_cli!
|
81
89
|
rake
|
82
90
|
ronn
|
data/features/label.feature
CHANGED
@@ -60,7 +60,7 @@ Feature: gcli label
|
|
60
60
|
"""
|
61
61
|
post('/repos/wycats/thor/issues/1/labels') { status 200 }
|
62
62
|
"""
|
63
|
-
When I run `gcli label add wycats thor 1
|
63
|
+
When I run `gcli label add wycats thor 1 bug feature`
|
64
64
|
Then the exit status should be 0
|
65
65
|
|
66
66
|
Scenario: Remove label from an issue
|
@@ -92,7 +92,7 @@ Feature: gcli label
|
|
92
92
|
"""
|
93
93
|
put('/repos/wycats/thor/issues/1/labels') { status 200 }
|
94
94
|
"""
|
95
|
-
When I run `gcli label replace wycats thor 1
|
95
|
+
When I run `gcli label replace wycats thor 1 bug feature`
|
96
96
|
Then the exit status should be 0
|
97
97
|
|
98
98
|
Scenario: Milestone labels
|
@@ -0,0 +1,74 @@
|
|
1
|
+
Feature: gcli star
|
2
|
+
|
3
|
+
Scenario: Available commands
|
4
|
+
|
5
|
+
When I run `gcli star`
|
6
|
+
Then the exit status should be 0
|
7
|
+
And the output should contain "gcli star list"
|
8
|
+
And the output should contain "gcli star star"
|
9
|
+
And the output should contain "gcli star unstar"
|
10
|
+
And the output should contain "gcli star starred"
|
11
|
+
And the output should contain "gcli star starring"
|
12
|
+
|
13
|
+
Scenario: List stargazers
|
14
|
+
Given the GitHub API server:
|
15
|
+
"""
|
16
|
+
get('/repos/wycats/thor/stargazers') {
|
17
|
+
body :login => 'octokit', :id => 1,
|
18
|
+
:url => 'https://api.github.com/users/peter-murach'
|
19
|
+
status 200
|
20
|
+
}
|
21
|
+
"""
|
22
|
+
When I successfully run `gcli star ls wycats thor`
|
23
|
+
Then the stdout should contain "octokit"
|
24
|
+
|
25
|
+
Scenario: Star
|
26
|
+
Given the GitHub API server:
|
27
|
+
"""
|
28
|
+
put('/user/starred/wycats/thor') { status 204 }
|
29
|
+
"""
|
30
|
+
When I run `gcli star star wycats thor`
|
31
|
+
Then the exit status should be 0
|
32
|
+
|
33
|
+
Scenario: Unstar
|
34
|
+
Given the GitHub API server:
|
35
|
+
"""
|
36
|
+
delete('/user/starred/wycats/thor') { status 204 }
|
37
|
+
"""
|
38
|
+
When I run `gcli star unstar wycats thor`
|
39
|
+
Then the exit status should be 0
|
40
|
+
|
41
|
+
Scenario: Starring
|
42
|
+
Given the GitHub API server:
|
43
|
+
"""
|
44
|
+
get('/user/starred/wycats/thor') { status 204 }
|
45
|
+
"""
|
46
|
+
When I run `gcli star starring wycats thor`
|
47
|
+
Then the exit status should be 0
|
48
|
+
And the stdout should contain "true"
|
49
|
+
|
50
|
+
Scenario: Not Starring
|
51
|
+
Given the GitHub API server:
|
52
|
+
"""
|
53
|
+
get('/user/starred/wycats/thor') { status 404 }
|
54
|
+
"""
|
55
|
+
When I run `gcli star starring wycats thor`
|
56
|
+
Then the exit status should be 0
|
57
|
+
And the stdout should contain "false"
|
58
|
+
|
59
|
+
Scenario: Starred by a user
|
60
|
+
Given the GitHub API server:
|
61
|
+
"""
|
62
|
+
get('/users/wycats/starred') { status 200 }
|
63
|
+
"""
|
64
|
+
When I run `gcli star starred -u wycats`
|
65
|
+
Then the exit status should be 0
|
66
|
+
|
67
|
+
Scenario: Starred by the authenticated user
|
68
|
+
Given the GitHub API server:
|
69
|
+
"""
|
70
|
+
get('/user/starred') { status 200 }
|
71
|
+
"""
|
72
|
+
When I run `gcli star starred`
|
73
|
+
Then the exit status should be 0
|
74
|
+
|
data/features/watching.feature
CHANGED
@@ -4,24 +4,28 @@ Feature: gcli watching
|
|
4
4
|
|
5
5
|
When I run `gcli watch`
|
6
6
|
Then the exit status should be 0
|
7
|
+
And the output should contain "gcli watch list"
|
7
8
|
And the output should contain "gcli watch start"
|
8
9
|
And the output should contain "gcli watch stop"
|
9
10
|
And the output should contain "gcli watch watched"
|
10
|
-
And the output should contain "gcli watch watchers"
|
11
11
|
And the output should contain "gcli watch watching"
|
12
12
|
|
13
|
-
Scenario:
|
13
|
+
Scenario: List watchers
|
14
14
|
Given the GitHub API server:
|
15
15
|
"""
|
16
|
-
get('/repos/wycats/thor/
|
16
|
+
get('/repos/wycats/thor/subscribers') {
|
17
|
+
body :login => 'octokit', :id => 1,
|
18
|
+
:url => 'https://api.github.com/users/peter-murach'
|
19
|
+
status 200
|
20
|
+
}
|
17
21
|
"""
|
18
|
-
When I run `gcli watch
|
19
|
-
Then the
|
22
|
+
When I successfully run `gcli watch ls wycats thor`
|
23
|
+
Then the stdout should contain "octokit"
|
20
24
|
|
21
25
|
Scenario: Start watching
|
22
26
|
Given the GitHub API server:
|
23
27
|
"""
|
24
|
-
put('/user/
|
28
|
+
put('/user/subscriptions/wycats/thor') { status 204 }
|
25
29
|
"""
|
26
30
|
When I run `gcli watch start wycats thor`
|
27
31
|
Then the exit status should be 0
|
@@ -29,7 +33,7 @@ Feature: gcli watching
|
|
29
33
|
Scenario: Stop watching
|
30
34
|
Given the GitHub API server:
|
31
35
|
"""
|
32
|
-
delete('/user/
|
36
|
+
delete('/user/subscriptions/wycats/thor') { status 204 }
|
33
37
|
"""
|
34
38
|
When I run `gcli watch stop wycats thor`
|
35
39
|
Then the exit status should be 0
|
@@ -37,10 +41,20 @@ Feature: gcli watching
|
|
37
41
|
Scenario: Watching
|
38
42
|
Given the GitHub API server:
|
39
43
|
"""
|
40
|
-
get('/user/
|
44
|
+
get('/user/subscriptions/wycats/thor') { status 204 }
|
45
|
+
"""
|
46
|
+
When I run `gcli watch watching wycats thor`
|
47
|
+
Then the exit status should be 0
|
48
|
+
And the stdout should contain "true"
|
49
|
+
|
50
|
+
Scenario: Not Watching
|
51
|
+
Given the GitHub API server:
|
52
|
+
"""
|
53
|
+
get('/user/subscriptions/wycats/thor') { status 404 }
|
41
54
|
"""
|
42
55
|
When I run `gcli watch watching wycats thor`
|
43
56
|
Then the exit status should be 0
|
57
|
+
And the stdout should contain "false"
|
44
58
|
|
45
59
|
Scenario: Watched by a user
|
46
60
|
Given the GitHub API server:
|
data/github_cli.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.require_paths = ["lib"]
|
18
18
|
gem.version = GithubCLI::VERSION
|
19
19
|
|
20
|
-
gem.add_dependency 'github_api', '~> 0.
|
20
|
+
gem.add_dependency 'github_api', '~> 0.7'
|
21
21
|
|
22
22
|
gem.add_development_dependency 'rspec'
|
23
23
|
gem.add_development_dependency 'aruba'
|
@@ -41,9 +41,11 @@ module GithubCLI
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
-
def add(user, repo, issue_id, *args
|
44
|
+
def add(user, repo, issue_id, *args)
|
45
|
+
format, params = args.pop, args.pop
|
46
|
+
|
45
47
|
output format do
|
46
|
-
github_api.issues.labels.add user, repo, issue_id,
|
48
|
+
github_api.issues.labels.add user, repo, issue_id, args.flatten, params
|
47
49
|
end
|
48
50
|
end
|
49
51
|
|
@@ -53,9 +55,11 @@ module GithubCLI
|
|
53
55
|
end
|
54
56
|
end
|
55
57
|
|
56
|
-
def replace(user, repo, issue_id, *args
|
58
|
+
def replace(user, repo, issue_id, *args)
|
59
|
+
format, params = args.pop, args.pop
|
60
|
+
|
57
61
|
output format do
|
58
|
-
github_api.issues.labels.replace user, repo, issue_id,
|
62
|
+
github_api.issues.labels.replace user, repo, issue_id, args.flatten, params
|
59
63
|
end
|
60
64
|
end
|
61
65
|
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module GithubCLI
|
4
|
+
class Starring < API
|
5
|
+
|
6
|
+
class << self
|
7
|
+
|
8
|
+
def list(user, repo, params, format)
|
9
|
+
output format do
|
10
|
+
github_api.repos.starring.list user, repo, params
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def starred(params, format)
|
15
|
+
output format do
|
16
|
+
github_api.repos.starring.starred params
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def starring?(user, repo, params, format)
|
21
|
+
output format do
|
22
|
+
github_api.repos.starring.starring? user, repo, params
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def star(user, repo, params, format)
|
27
|
+
output format do
|
28
|
+
github_api.repos.starring.star user, repo, params
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def unstar(user, repo, params, format)
|
33
|
+
output format do
|
34
|
+
github_api.repos.starring.unstar user, repo, params
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
end # Starring
|
40
|
+
end # GithubCLI
|
@@ -5,15 +5,15 @@ module GithubCLI
|
|
5
5
|
|
6
6
|
class << self
|
7
7
|
|
8
|
-
def
|
8
|
+
def list(user, repo, params, format)
|
9
9
|
output format do
|
10
|
-
github_api.repos.watching.
|
10
|
+
github_api.repos.watching.list user, repo, params
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
def watched(params, format)
|
15
15
|
output format do
|
16
|
-
github_api.repos.watching.watched
|
16
|
+
github_api.repos.watching.watched params
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -23,15 +23,15 @@ module GithubCLI
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
-
def
|
26
|
+
def start(user, repo, params, format)
|
27
27
|
output format do
|
28
|
-
github_api.repos.watching.
|
28
|
+
github_api.repos.watching.watch user, repo, params
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
-
def
|
32
|
+
def stop(user, repo, params, format)
|
33
33
|
output format do
|
34
|
-
github_api.repos.watching.
|
34
|
+
github_api.repos.watching.unwatch user, repo, params
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
data/lib/github_cli/apis.rb
CHANGED
@@ -10,7 +10,7 @@ module GithubCLI
|
|
10
10
|
You can only list your own tokens, and only through Basic Authentication.
|
11
11
|
DESC
|
12
12
|
def list
|
13
|
-
Authorization.all options[:params], options[:
|
13
|
+
Authorization.all options[:params], options[:format]
|
14
14
|
end
|
15
15
|
|
16
16
|
desc 'get <id>', 'Get a single authorization'
|
@@ -42,7 +42,7 @@ module GithubCLI
|
|
42
42
|
|
43
43
|
desc 'add <user> <repo> <issue_id> <label>[<label>...]', 'Add labels to <issue_id>.'
|
44
44
|
def add(user, repo, issue_id, *args)
|
45
|
-
Label.add user, repo, issue_id,
|
45
|
+
Label.add user, repo, issue_id, args, options[:params], options[:format]
|
46
46
|
end
|
47
47
|
|
48
48
|
desc 'remove <user> <repo> [<label_id>/]<issue_id>', 'Remove <label_id> from an <issue_id>'
|
@@ -53,7 +53,7 @@ module GithubCLI
|
|
53
53
|
|
54
54
|
desc 'replace <user> <repo> <issue_id> <label>[<label>...]', 'Replace all labels for an <issue_id>.'
|
55
55
|
def replace(user, repo, issue_id, *args)
|
56
|
-
Label.replace user, repo, issue_id,
|
56
|
+
Label.replace user, repo, issue_id, args, options[:params], options[:format]
|
57
57
|
end
|
58
58
|
|
59
59
|
desc 'milestone <user> <repo> <number>', 'Get labels for every issue in a milestone.'
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module GithubCLI
|
4
|
+
class Commands::Starring < Command
|
5
|
+
|
6
|
+
namespace :star
|
7
|
+
|
8
|
+
desc 'list <user> <repo>', 'Lists stargazers'
|
9
|
+
def list(user, repo)
|
10
|
+
Starring.list user, repo, options[:params], options[:format]
|
11
|
+
end
|
12
|
+
|
13
|
+
desc 'starred', 'Lists repos being starred by a user'
|
14
|
+
method_option :user, :type => :string, :aliases => ["-u"],
|
15
|
+
:desc => 'Starred repositories for <user>'
|
16
|
+
def starred(user, repo, id)
|
17
|
+
if options[:user]
|
18
|
+
options[:params]['user'] = options[:user]
|
19
|
+
end
|
20
|
+
Starring.starred options[:params], options[:format]
|
21
|
+
end
|
22
|
+
|
23
|
+
desc 'starring <user> <repo>', 'Check if you are starring a repository'
|
24
|
+
def starring(user, repo)
|
25
|
+
Starring.starring? user, repo, options[:params], options[:format]
|
26
|
+
end
|
27
|
+
|
28
|
+
desc 'star <user> <repo>', 'Star a repository'
|
29
|
+
def star(user, repo)
|
30
|
+
Starring.star user, repo, options[:params], options[:format]
|
31
|
+
end
|
32
|
+
|
33
|
+
desc 'unstar <user> <repo>', 'Unstar a repository'
|
34
|
+
def unstar(user, repo)
|
35
|
+
Starring.unstar user, repo, options[:params], options[:format]
|
36
|
+
end
|
37
|
+
|
38
|
+
end # Starring
|
39
|
+
end # GithubCLI
|
@@ -5,9 +5,9 @@ module GithubCLI
|
|
5
5
|
|
6
6
|
namespace :watch
|
7
7
|
|
8
|
-
desc '
|
9
|
-
def
|
10
|
-
Watching.
|
8
|
+
desc 'list <user> <repo>', 'Lists repo watchers'
|
9
|
+
def list(user, repo)
|
10
|
+
Watching.list user, repo, options[:params], options[:format]
|
11
11
|
end
|
12
12
|
|
13
13
|
desc 'watched', 'Lists repos being watched by a user'
|
@@ -27,12 +27,12 @@ module GithubCLI
|
|
27
27
|
|
28
28
|
desc 'start <user> <repo>', 'Watch a repository'
|
29
29
|
def start(user, repo)
|
30
|
-
Watching.
|
30
|
+
Watching.start user, repo, options[:params], options[:format]
|
31
31
|
end
|
32
32
|
|
33
33
|
desc 'stop <user> <repo>', 'Stop watching a repository'
|
34
34
|
def stop(user, repo)
|
35
|
-
Watching.
|
35
|
+
Watching.stop user, repo, options[:params], options[:format]
|
36
36
|
end
|
37
37
|
|
38
38
|
end # Watching
|
data/lib/github_cli/commands.rb
CHANGED
@@ -24,6 +24,7 @@ module GithubCLI
|
|
24
24
|
autoload :References, 'github_cli/commands/references'
|
25
25
|
autoload :Repositories, 'github_cli/commands/repositories'
|
26
26
|
autoload :Search, 'github_cli/commands/search'
|
27
|
+
autoload :Starring, 'github_cli/commands/starring'
|
27
28
|
autoload :Tags, 'github_cli/commands/tags'
|
28
29
|
autoload :Teams, 'github_cli/commands/teams'
|
29
30
|
autoload :Trees, 'github_cli/commands/trees'
|
@@ -233,9 +233,9 @@ module GithubCLI
|
|
233
233
|
# Don't output 2 trailing spaces when printing last column
|
234
234
|
width = width - 2 if width > 3 # Ensure sensible width
|
235
235
|
end
|
236
|
-
field = if field.length == width
|
237
|
-
field
|
238
|
-
elsif field.length < width
|
236
|
+
field = if field.to_s.length == width
|
237
|
+
field.to_s
|
238
|
+
elsif field.to_s.length < width
|
239
239
|
pad(field.to_s, width, :align => style.align)
|
240
240
|
else
|
241
241
|
truncate(field.to_s, width)
|
@@ -69,6 +69,9 @@ module GithubCLI
|
|
69
69
|
desc "search <command>", "Leverage Search API"
|
70
70
|
subcommand "search", GithubCLI::Commands::Search
|
71
71
|
|
72
|
+
desc "star <command>", "Leverage Starring API"
|
73
|
+
subcommand "star", GithubCLI::Commands::Starring
|
74
|
+
|
72
75
|
desc "tag <command>", "Leverage Tags API"
|
73
76
|
subcommand "tag", GithubCLI::Commands::Tags
|
74
77
|
|
data/lib/github_cli/ui.rb
CHANGED
@@ -6,26 +6,32 @@ module GithubCLI
|
|
6
6
|
|
7
7
|
def initialize(shell)
|
8
8
|
@shell = shell
|
9
|
+
@quite = false
|
10
|
+
@debug = ENV['DEBUG']
|
9
11
|
end
|
10
12
|
|
11
|
-
def confirm(message)
|
12
|
-
@shell.say message, :green
|
13
|
+
def confirm(message, newline=nil)
|
14
|
+
@shell.say message, :green, newline
|
13
15
|
end
|
14
16
|
|
15
|
-
def info(message)
|
16
|
-
@shell.say message, nil
|
17
|
+
def info(message, newline=nil)
|
18
|
+
@shell.say message, nil, newline
|
17
19
|
end
|
18
20
|
|
19
|
-
def warn(message)
|
20
|
-
@shell.say message, :yellow
|
21
|
+
def warn(message, newline=nil)
|
22
|
+
@shell.say message, :yellow, newline
|
21
23
|
end
|
22
24
|
|
23
|
-
def error(message)
|
24
|
-
@shell.say message, :red
|
25
|
+
def error(message, newline=nil)
|
26
|
+
@shell.say message, :red, newline
|
25
27
|
end
|
26
28
|
|
27
|
-
def debug(message)
|
28
|
-
@shell.say message
|
29
|
+
def debug(message, newline=nil)
|
30
|
+
@shell.say message, nil, newline
|
31
|
+
end
|
32
|
+
|
33
|
+
def quite!
|
34
|
+
@quite = true
|
29
35
|
end
|
30
36
|
|
31
37
|
def debug!
|
data/lib/github_cli/util.rb
CHANGED
@@ -6,13 +6,13 @@ module GithubCLI
|
|
6
6
|
|
7
7
|
# Converts deeply nested hash into only one level structure
|
8
8
|
#
|
9
|
-
def flatten_hash(prefix=nil
|
9
|
+
def flatten_hash(hash, prefix=nil)
|
10
10
|
new_hash ||= {}
|
11
11
|
hash.each do |key, val|
|
12
12
|
key = prefix ? :"#{prefix}_#{key}" : key
|
13
13
|
case val
|
14
14
|
when Hash
|
15
|
-
new_hash.update flatten_hash(
|
15
|
+
new_hash.update flatten_hash(val, key)
|
16
16
|
else
|
17
17
|
new_hash[key] = val
|
18
18
|
end
|
@@ -86,5 +86,6 @@ module GithubCLI
|
|
86
86
|
def longest_common_prefix(string_1, string_2)
|
87
87
|
("#{string_1}\0#{string_2}").match(/^(.*).*\0\1/i).to_a[1]
|
88
88
|
end
|
89
|
+
|
89
90
|
end
|
90
91
|
end # GithubCLI
|
data/lib/github_cli/version.rb
CHANGED
data/lib/github_cli.rb
CHANGED
metadata
CHANGED
@@ -1,90 +1,117 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: github_cli
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 15
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 5
|
9
|
+
- 2
|
10
|
+
version: 0.5.2
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Piotr Murach
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2012-09-22 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: github_api
|
16
|
-
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
24
|
none: false
|
18
|
-
requirements:
|
25
|
+
requirements:
|
19
26
|
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 5
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
- 7
|
32
|
+
version: "0.7"
|
22
33
|
type: :runtime
|
23
|
-
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
26
36
|
name: rspec
|
27
|
-
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
39
|
none: false
|
29
|
-
requirements:
|
30
|
-
- -
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
version: "0"
|
33
47
|
type: :development
|
34
|
-
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
48
|
+
version_requirements: *id002
|
49
|
+
- !ruby/object:Gem::Dependency
|
37
50
|
name: aruba
|
38
|
-
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
53
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
hash: 3
|
58
|
+
segments:
|
59
|
+
- 0
|
60
|
+
version: "0"
|
44
61
|
type: :development
|
45
|
-
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Dependency
|
62
|
+
version_requirements: *id003
|
63
|
+
- !ruby/object:Gem::Dependency
|
48
64
|
name: rake
|
49
|
-
|
65
|
+
prerelease: false
|
66
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
67
|
none: false
|
51
|
-
requirements:
|
52
|
-
- -
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
hash: 3
|
72
|
+
segments:
|
73
|
+
- 0
|
74
|
+
version: "0"
|
55
75
|
type: :development
|
56
|
-
|
57
|
-
|
58
|
-
- !ruby/object:Gem::Dependency
|
76
|
+
version_requirements: *id004
|
77
|
+
- !ruby/object:Gem::Dependency
|
59
78
|
name: communist
|
60
|
-
|
79
|
+
prerelease: false
|
80
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
|
-
requirements:
|
63
|
-
- -
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
hash: 3
|
86
|
+
segments:
|
87
|
+
- 0
|
88
|
+
version: "0"
|
66
89
|
type: :development
|
67
|
-
|
68
|
-
|
69
|
-
- !ruby/object:Gem::Dependency
|
90
|
+
version_requirements: *id005
|
91
|
+
- !ruby/object:Gem::Dependency
|
70
92
|
name: ronn
|
71
|
-
|
93
|
+
prerelease: false
|
94
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
72
95
|
none: false
|
73
|
-
requirements:
|
74
|
-
- -
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
hash: 3
|
100
|
+
segments:
|
101
|
+
- 0
|
102
|
+
version: "0"
|
77
103
|
type: :development
|
78
|
-
|
79
|
-
version_requirements: *2153154540
|
104
|
+
version_requirements: *id006
|
80
105
|
description: CLI-based access to GitHub API v3
|
81
|
-
email:
|
82
|
-
-
|
83
|
-
executables:
|
106
|
+
email:
|
107
|
+
- ""
|
108
|
+
executables:
|
84
109
|
- gcli
|
85
110
|
extensions: []
|
111
|
+
|
86
112
|
extra_rdoc_files: []
|
87
|
-
|
113
|
+
|
114
|
+
files:
|
88
115
|
- .gitignore
|
89
116
|
- .rspec
|
90
117
|
- .rvmrc
|
@@ -123,6 +150,7 @@ files:
|
|
123
150
|
- features/repository.feature
|
124
151
|
- features/search.feature
|
125
152
|
- features/search_commands.feature
|
153
|
+
- features/starring.feature
|
126
154
|
- features/support/env.rb
|
127
155
|
- features/support/hooks.rb
|
128
156
|
- features/tag.feature
|
@@ -159,6 +187,7 @@ files:
|
|
159
187
|
- lib/github_cli/apis/reference.rb
|
160
188
|
- lib/github_cli/apis/repository.rb
|
161
189
|
- lib/github_cli/apis/search.rb
|
190
|
+
- lib/github_cli/apis/starring.rb
|
162
191
|
- lib/github_cli/apis/tag.rb
|
163
192
|
- lib/github_cli/apis/team.rb
|
164
193
|
- lib/github_cli/apis/tree.rb
|
@@ -192,6 +221,7 @@ files:
|
|
192
221
|
- lib/github_cli/commands/references.rb
|
193
222
|
- lib/github_cli/commands/repositories.rb
|
194
223
|
- lib/github_cli/commands/search.rb
|
224
|
+
- lib/github_cli/commands/starring.rb
|
195
225
|
- lib/github_cli/commands/tags.rb
|
196
226
|
- lib/github_cli/commands/teams.rb
|
197
227
|
- lib/github_cli/commands/trees.rb
|
@@ -266,30 +296,38 @@ files:
|
|
266
296
|
- lib/github_cli/man/gcli.1.txt
|
267
297
|
homepage: http://github.com/peter-murach/github_cli
|
268
298
|
licenses: []
|
299
|
+
|
269
300
|
post_install_message:
|
270
301
|
rdoc_options: []
|
271
|
-
|
302
|
+
|
303
|
+
require_paths:
|
272
304
|
- lib
|
273
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
305
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
274
306
|
none: false
|
275
|
-
requirements:
|
276
|
-
- -
|
277
|
-
- !ruby/object:Gem::Version
|
278
|
-
|
279
|
-
|
307
|
+
requirements:
|
308
|
+
- - ">="
|
309
|
+
- !ruby/object:Gem::Version
|
310
|
+
hash: 3
|
311
|
+
segments:
|
312
|
+
- 0
|
313
|
+
version: "0"
|
314
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
280
315
|
none: false
|
281
|
-
requirements:
|
282
|
-
- -
|
283
|
-
- !ruby/object:Gem::Version
|
284
|
-
|
316
|
+
requirements:
|
317
|
+
- - ">="
|
318
|
+
- !ruby/object:Gem::Version
|
319
|
+
hash: 3
|
320
|
+
segments:
|
321
|
+
- 0
|
322
|
+
version: "0"
|
285
323
|
requirements: []
|
324
|
+
|
286
325
|
rubyforge_project:
|
287
326
|
rubygems_version: 1.8.10
|
288
327
|
signing_key:
|
289
328
|
specification_version: 3
|
290
|
-
summary: github_cli is a set of tools that provide full command line access to GitHub
|
291
|
-
|
292
|
-
test_files:
|
329
|
+
summary: github_cli is a set of tools that provide full command line access to GitHub API v3
|
330
|
+
test_files:
|
293
331
|
- features/blob.feature
|
294
332
|
- features/collaborator.feature
|
295
333
|
- features/commit.feature
|
@@ -317,6 +355,7 @@ test_files:
|
|
317
355
|
- features/repository.feature
|
318
356
|
- features/search.feature
|
319
357
|
- features/search_commands.feature
|
358
|
+
- features/starring.feature
|
320
359
|
- features/support/env.rb
|
321
360
|
- features/support/hooks.rb
|
322
361
|
- features/tag.feature
|