github_cli 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +9 -0
- data/Gemfile.lock +3 -3
- data/README.md +30 -0
- data/bin/ghc +13 -1
- data/features/repositories.feature +9 -0
- data/github_cli.gemspec +1 -1
- data/lib/github_cli.rb +2 -0
- data/lib/github_cli/api.rb +7 -2
- data/lib/github_cli/apis.rb +4 -0
- data/lib/github_cli/apis/authorization.rb +20 -10
- data/lib/github_cli/apis/blob.rb +8 -4
- data/lib/github_cli/apis/collaborator.rb +34 -0
- data/lib/github_cli/apis/commit.rb +8 -4
- data/lib/github_cli/apis/download.rb +20 -10
- data/lib/github_cli/apis/fork.rb +8 -4
- data/lib/github_cli/apis/gist.rb +70 -0
- data/lib/github_cli/apis/hook.rb +24 -12
- data/lib/github_cli/apis/issue.rb +40 -0
- data/lib/github_cli/apis/key.rb +20 -10
- data/lib/github_cli/apis/label.rb +40 -18
- data/lib/github_cli/apis/pull_request.rb +32 -16
- data/lib/github_cli/apis/reference.rb +20 -10
- data/lib/github_cli/apis/repository.rb +36 -19
- data/lib/github_cli/apis/tag.rb +8 -4
- data/lib/github_cli/apis/tree.rb +8 -4
- data/lib/github_cli/apis/watching.rb +20 -10
- data/lib/github_cli/command.rb +19 -0
- data/lib/github_cli/commands.rb +2 -0
- data/lib/github_cli/commands/authorizations.rb +5 -5
- data/lib/github_cli/commands/blobs.rb +2 -2
- data/lib/github_cli/commands/collaborators.rb +37 -0
- data/lib/github_cli/commands/commits.rb +2 -2
- data/lib/github_cli/commands/downloads.rb +5 -5
- data/lib/github_cli/commands/forks.rb +2 -2
- data/lib/github_cli/commands/gists.rb +103 -0
- data/lib/github_cli/commands/hooks.rb +6 -6
- data/lib/github_cli/commands/issues.rb +67 -18
- data/lib/github_cli/commands/keys.rb +5 -5
- data/lib/github_cli/commands/labels.rb +8 -8
- data/lib/github_cli/commands/pull_requests.rb +8 -8
- data/lib/github_cli/commands/references.rb +5 -5
- data/lib/github_cli/commands/repositories.rb +20 -20
- data/lib/github_cli/commands/tags.rb +2 -2
- data/lib/github_cli/commands/trees.rb +2 -2
- data/lib/github_cli/commands/watching.rb +5 -5
- data/lib/github_cli/errors.rb +33 -2
- data/lib/github_cli/formatters.rb +8 -0
- data/lib/github_cli/formatters/csv.rb +39 -0
- data/lib/github_cli/formatters/table.rb +36 -0
- data/lib/github_cli/subcommands.rb +6 -0
- data/lib/github_cli/terminal.rb +25 -0
- data/lib/github_cli/util.rb +35 -0
- data/lib/github_cli/version.rb +1 -1
- data/spec/github_cli/util_spec.rb +37 -0
- metadata +26 -13
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
0.3.0 (May 13, 2012)
|
2
|
+
|
3
|
+
* Add output formatting.
|
4
|
+
* Add gists api commands.
|
5
|
+
* Add collaborators api commands.
|
6
|
+
* Add issues api commands.
|
7
|
+
* Add error handling for the executable.
|
8
|
+
* Setup feature testing environment.
|
9
|
+
|
1
10
|
0.2.1 (April 30, 2012)
|
2
11
|
|
3
12
|
* Add authorizations api commands.
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
github_cli (0.
|
5
|
-
github_api (~> 0.5
|
4
|
+
github_cli (0.3.0)
|
5
|
+
github_api (~> 0.5)
|
6
6
|
thor
|
7
7
|
|
8
8
|
GEM
|
@@ -31,7 +31,7 @@ GEM
|
|
31
31
|
ffi (1.0.11)
|
32
32
|
gherkin (2.9.0)
|
33
33
|
json (>= 1.4.6)
|
34
|
-
github_api (0.5.
|
34
|
+
github_api (0.5.1)
|
35
35
|
faraday (~> 0.7.6)
|
36
36
|
hashie (~> 1.2.0)
|
37
37
|
multi_json (~> 1.3)
|
data/README.md
CHANGED
@@ -71,12 +71,14 @@ Interact with issues:
|
|
71
71
|
```shell
|
72
72
|
$ ghc issue
|
73
73
|
$ ghc label
|
74
|
+
$ ghc milestone
|
74
75
|
```
|
75
76
|
|
76
77
|
Interact with repositories:
|
77
78
|
|
78
79
|
```shell
|
79
80
|
$ ghc repo
|
81
|
+
$ ghc collab
|
80
82
|
$ ghc download
|
81
83
|
$ ghc fork
|
82
84
|
$ ghc hook
|
@@ -84,6 +86,34 @@ $ ghc key
|
|
84
86
|
$ ghc watching
|
85
87
|
```
|
86
88
|
|
89
|
+
Interact with gists:
|
90
|
+
|
91
|
+
```shell
|
92
|
+
$ ghc gist
|
93
|
+
```
|
94
|
+
|
95
|
+
Interact with authorizations:
|
96
|
+
|
97
|
+
```shell
|
98
|
+
$ ghc auth
|
99
|
+
```
|
100
|
+
|
101
|
+
### Output Format
|
102
|
+
|
103
|
+
The API responses can be formattaed as `csv`, `json`, `pretty`, `table`.
|
104
|
+
|
105
|
+
By default responses are in tabular format. Run the following
|
106
|
+
|
107
|
+
```shell
|
108
|
+
ghc repo get peter-murach github_cli
|
109
|
+
```
|
110
|
+
|
111
|
+
To get `csv` formatting for easy command piping do
|
112
|
+
|
113
|
+
```shell
|
114
|
+
ghc repo ls -u wycats --format=csv
|
115
|
+
```
|
116
|
+
|
87
117
|
### Examples
|
88
118
|
|
89
119
|
You can create repository by supplying required parameters
|
data/bin/ghc
CHANGED
@@ -3,4 +3,16 @@ lib_dir = File.expand_path("../../lib", __FILE__)
|
|
3
3
|
$LOAD_PATH.unshift lib_dir if File.directory?(lib_dir)
|
4
4
|
|
5
5
|
require "github_cli"
|
6
|
-
|
6
|
+
begin
|
7
|
+
GithubCLI::CLI.start
|
8
|
+
rescue Interrupt => e
|
9
|
+
GithubCLI.ui.error "\nQuitting..."
|
10
|
+
GithubCLI.ui.debug e.backtrace.join("\n")
|
11
|
+
exit 1
|
12
|
+
rescue SystemExit => e
|
13
|
+
exit e.status
|
14
|
+
rescue Exception => e
|
15
|
+
GithubCLI.ui.error "Fatal error has occurred." + e.message
|
16
|
+
GithubCLI.ui.debug e.backtrace.join("\n")
|
17
|
+
exit 1
|
18
|
+
end
|
data/github_cli.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |gem|
|
|
15
15
|
gem.require_paths = ["lib"]
|
16
16
|
gem.version = GithubCLI::VERSION
|
17
17
|
|
18
|
-
gem.add_dependency 'github_api', '~> 0.5
|
18
|
+
gem.add_dependency 'github_api', '~> 0.5'
|
19
19
|
gem.add_dependency 'thor'
|
20
20
|
|
21
21
|
gem.add_development_dependency 'rspec'
|
data/lib/github_cli.rb
CHANGED
@@ -17,7 +17,9 @@ module GithubCLI
|
|
17
17
|
autoload :Terminal, 'github_cli/terminal'
|
18
18
|
autoload :Commands, 'github_cli/commands'
|
19
19
|
autoload :Helpers, 'github_cli/helpers'
|
20
|
+
autoload :Formatters,'github_cli/formatters'
|
20
21
|
autoload :UI, 'github_cli/ui'
|
22
|
+
autoload :Util, 'github_cli/util'
|
21
23
|
|
22
24
|
require 'github_cli/apis'
|
23
25
|
|
data/lib/github_cli/api.rb
CHANGED
@@ -21,9 +21,14 @@ module GithubCLI
|
|
21
21
|
def self.configure_api
|
22
22
|
end
|
23
23
|
|
24
|
+
def self.output(format=:table, &block)
|
25
|
+
response = block.call
|
26
|
+
GithubCLI::Terminal.render_output response, :format => format
|
27
|
+
end
|
28
|
+
|
24
29
|
class All
|
25
|
-
def initialize
|
26
|
-
|
30
|
+
def initialize(params)
|
31
|
+
puts Github::Repos.new.all params
|
27
32
|
end
|
28
33
|
end
|
29
34
|
|
data/lib/github_cli/apis.rb
CHANGED
@@ -5,24 +5,34 @@ module GithubCLI
|
|
5
5
|
|
6
6
|
class << self
|
7
7
|
|
8
|
-
def all(params)
|
9
|
-
|
8
|
+
def all(params, format)
|
9
|
+
output format do
|
10
|
+
github_api.oauth.list params
|
11
|
+
end
|
10
12
|
end
|
11
13
|
|
12
|
-
def get(id, params)
|
13
|
-
|
14
|
+
def get(id, params, format)
|
15
|
+
output format do
|
16
|
+
github_api.oauth.get id, params
|
17
|
+
end
|
14
18
|
end
|
15
19
|
|
16
|
-
def create(params)
|
17
|
-
|
20
|
+
def create(params, format)
|
21
|
+
output format do
|
22
|
+
github_api.oauth.create params
|
23
|
+
end
|
18
24
|
end
|
19
25
|
|
20
|
-
def update(id, params)
|
21
|
-
|
26
|
+
def update(id, params, format)
|
27
|
+
output format do
|
28
|
+
github_api.oauth.update id, params
|
29
|
+
end
|
22
30
|
end
|
23
31
|
|
24
|
-
def delete(id, params)
|
25
|
-
|
32
|
+
def delete(id, params, format)
|
33
|
+
output format do
|
34
|
+
github_api.oauth.delete id, params
|
35
|
+
end
|
26
36
|
end
|
27
37
|
end
|
28
38
|
|
data/lib/github_cli/apis/blob.rb
CHANGED
@@ -5,12 +5,16 @@ module GithubCLI
|
|
5
5
|
|
6
6
|
class << self
|
7
7
|
|
8
|
-
def get(user, repo, sha, params)
|
9
|
-
|
8
|
+
def get(user, repo, sha, params, format)
|
9
|
+
output format do
|
10
|
+
github_api.git_data.blobs.get user, repo, params
|
11
|
+
end
|
10
12
|
end
|
11
13
|
|
12
|
-
def create(user, repo, params)
|
13
|
-
|
14
|
+
def create(user, repo, params, format)
|
15
|
+
output format do
|
16
|
+
github_api.git_data.blobs.create user, repo, params
|
17
|
+
end
|
14
18
|
end
|
15
19
|
end
|
16
20
|
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module GithubCLI
|
4
|
+
class Collaborator < API
|
5
|
+
|
6
|
+
class << self
|
7
|
+
|
8
|
+
def all(user, repo, params, format)
|
9
|
+
output format do
|
10
|
+
github_api.repos.collaborators.list user, repo, params
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def add(user, repo, collab, params, format)
|
15
|
+
output format do
|
16
|
+
github_api.repos.collaborators.add user, repo, collab, params
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def collaborator?(user, repo, collab, params, format)
|
21
|
+
output format do
|
22
|
+
github_api.repos.collaborators.collaborator? user, repo, collab, params
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def remove(user, repo, collab, params, format)
|
27
|
+
output format do
|
28
|
+
github_api.repos.collaborators.remove user, repo, collab, params
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end # Collaborator
|
34
|
+
end # GithubCLI
|
@@ -5,12 +5,16 @@ module GithubCLI
|
|
5
5
|
|
6
6
|
class << self
|
7
7
|
|
8
|
-
def get(user, repo, sha, params)
|
9
|
-
|
8
|
+
def get(user, repo, sha, params, format)
|
9
|
+
output format do
|
10
|
+
github_api.git_data.commits.get user, repo, params
|
11
|
+
end
|
10
12
|
end
|
11
13
|
|
12
|
-
def create(user, repo, params)
|
13
|
-
|
14
|
+
def create(user, repo, params, format)
|
15
|
+
output format do
|
16
|
+
github_api.git_data.commits.create user, repo, params
|
17
|
+
end
|
14
18
|
end
|
15
19
|
end
|
16
20
|
|
@@ -5,24 +5,34 @@ module GithubCLI
|
|
5
5
|
|
6
6
|
class << self
|
7
7
|
|
8
|
-
def all(user, repo, params)
|
9
|
-
|
8
|
+
def all(user, repo, params, format)
|
9
|
+
output format do
|
10
|
+
github_api.repos.downloads.list user, repo, params
|
11
|
+
end
|
10
12
|
end
|
11
13
|
|
12
|
-
def get(user, repo, id, params)
|
13
|
-
|
14
|
+
def get(user, repo, id, params, format)
|
15
|
+
output format do
|
16
|
+
github_api.repos.downloads.get user, repo, id, params
|
17
|
+
end
|
14
18
|
end
|
15
19
|
|
16
|
-
def create(user, repo, params)
|
17
|
-
|
20
|
+
def create(user, repo, params, format)
|
21
|
+
output format do
|
22
|
+
github_api.repos.downloads.create user, repo, params
|
23
|
+
end
|
18
24
|
end
|
19
25
|
|
20
|
-
def upload(resource, filename)
|
21
|
-
|
26
|
+
def upload(resource, filename, format)
|
27
|
+
output format do
|
28
|
+
github_api.repos.downloads.upload resource, filename
|
29
|
+
end
|
22
30
|
end
|
23
31
|
|
24
|
-
def delete(user, repo, id, params)
|
25
|
-
|
32
|
+
def delete(user, repo, id, params, format)
|
33
|
+
output format do
|
34
|
+
github_api.repos.downloads.delete user, repo, id, params
|
35
|
+
end
|
26
36
|
end
|
27
37
|
end
|
28
38
|
|
data/lib/github_cli/apis/fork.rb
CHANGED
@@ -5,12 +5,16 @@ module GithubCLI
|
|
5
5
|
|
6
6
|
class << self
|
7
7
|
|
8
|
-
def all(user, repo, params)
|
9
|
-
|
8
|
+
def all(user, repo, params, format)
|
9
|
+
output format do
|
10
|
+
github_api.repos.forks.list user, repo, params
|
11
|
+
end
|
10
12
|
end
|
11
13
|
|
12
|
-
def create(user, repo, params)
|
13
|
-
|
14
|
+
def create(user, repo, params, format)
|
15
|
+
output format do
|
16
|
+
github_api.repos.forks.create user, repo, params
|
17
|
+
end
|
14
18
|
end
|
15
19
|
end
|
16
20
|
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module GithubCLI
|
4
|
+
class Gist < API
|
5
|
+
|
6
|
+
class << self
|
7
|
+
|
8
|
+
def all(params, format)
|
9
|
+
output format do
|
10
|
+
github_api.gists.list params
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def starred(params, format)
|
15
|
+
output format do
|
16
|
+
github_api.gists.starred params
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def get(id, params, format)
|
21
|
+
output format do
|
22
|
+
github_api.gists.get id, params
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def create(params, format)
|
27
|
+
output format do
|
28
|
+
github_api.gists.create params
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def edit(id, params, format)
|
33
|
+
output format do
|
34
|
+
github_api.gists.edit id, params
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def star(id, params, format)
|
39
|
+
output format do
|
40
|
+
github_api.gists.star id, params
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def unstar(id, params, format)
|
45
|
+
output format do
|
46
|
+
github_api.gists.unstar id, params
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def starred?(id, params, format)
|
51
|
+
output format do
|
52
|
+
github_api.gists.starred? id, params
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def fork(id, params, format)
|
57
|
+
output format do
|
58
|
+
github_api.gists.fork id, params
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def delete(id, params, format)
|
63
|
+
output format do
|
64
|
+
github_api.gists.delete id, params
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
end # Gist
|
70
|
+
end # GithubCLI
|
data/lib/github_cli/apis/hook.rb
CHANGED
@@ -5,28 +5,40 @@ module GithubCLI
|
|
5
5
|
|
6
6
|
class << self
|
7
7
|
|
8
|
-
def all(user, repo, params)
|
9
|
-
|
8
|
+
def all(user, repo, params, format)
|
9
|
+
output format do
|
10
|
+
github_api.repos.hooks.list user, repo, params
|
11
|
+
end
|
10
12
|
end
|
11
13
|
|
12
|
-
def get(user, repo, id, params)
|
13
|
-
|
14
|
+
def get(user, repo, id, params, format)
|
15
|
+
output format do
|
16
|
+
github_api.repos.hooks.get user, repo, id, params
|
17
|
+
end
|
14
18
|
end
|
15
19
|
|
16
|
-
def create(user, repo, params)
|
17
|
-
|
20
|
+
def create(user, repo, params, format)
|
21
|
+
output format do
|
22
|
+
github_api.repos.hooks.create user, repo, params
|
23
|
+
end
|
18
24
|
end
|
19
25
|
|
20
|
-
def edit(user, repo, id, params)
|
21
|
-
|
26
|
+
def edit(user, repo, id, params, format)
|
27
|
+
output format do
|
28
|
+
github_api.repos.hooks.edit user, repo, id, params
|
29
|
+
end
|
22
30
|
end
|
23
31
|
|
24
|
-
def test(user, repo, id, params)
|
25
|
-
|
32
|
+
def test(user, repo, id, params, format)
|
33
|
+
output format do
|
34
|
+
github_api.repos.hooks.test user, repo, id, params
|
35
|
+
end
|
26
36
|
end
|
27
37
|
|
28
|
-
def delete(user, repo, id, params)
|
29
|
-
|
38
|
+
def delete(user, repo, id, params, format)
|
39
|
+
output format do
|
40
|
+
github_api.repos.hooks.delete user, repo, id, params
|
41
|
+
end
|
30
42
|
end
|
31
43
|
end
|
32
44
|
|