github_cli 0.5.4 → 0.5.5
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/CHANGELOG.md +8 -0
- data/Gemfile.lock +1 -1
- data/bin/gcli +3 -0
- data/features/config.feature +1 -0
- data/features/email.feature +1 -0
- data/features/follower.feature +1 -0
- data/features/gist.feature +1 -0
- data/features/key.feature +5 -5
- data/features/pull_request.feature +1 -0
- data/features/repository.feature +56 -3
- data/lib/github_cli/api.rb +11 -3
- data/lib/github_cli/apis/repository.rb +12 -0
- data/lib/github_cli/apis/user.rb +6 -0
- data/lib/github_cli/cli.rb +2 -0
- data/lib/github_cli/commands/gists.rb +25 -12
- data/lib/github_cli/commands/pull_requests.rb +24 -2
- data/lib/github_cli/commands/repositories.rb +95 -27
- data/lib/github_cli/commands/users.rb +28 -4
- data/lib/github_cli/version.rb +1 -1
- data/spec/github_cli/commands/authorizations_spec.rb +43 -0
- data/spec/github_cli/commands/gists_spec.rb +76 -0
- data/spec/github_cli/commands/pull_requests_spec.rb +57 -0
- data/spec/github_cli/commands/repositories_spec.rb +107 -0
- metadata +22 -14
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
0.5.5 (March 30, 2013)
|
2
|
+
|
3
|
+
* Change PullRequest commands to take specific options and add tests
|
4
|
+
* Change to stop formatting response without body
|
5
|
+
* Change Repository commands to take specific options and add tests
|
6
|
+
* Add repo branch & delete commands
|
7
|
+
* Change Gist commands to take specific options and add tests
|
8
|
+
|
1
9
|
0.5.4 (March 23, 2013)
|
2
10
|
|
3
11
|
* Update vendor dependency
|
data/Gemfile.lock
CHANGED
data/bin/gcli
CHANGED
data/features/config.feature
CHANGED
data/features/email.feature
CHANGED
data/features/follower.feature
CHANGED
data/features/gist.feature
CHANGED
data/features/key.feature
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Feature: gcli key
|
2
2
|
|
3
|
-
@
|
3
|
+
@ci-run
|
4
4
|
Scenario: Available commands
|
5
5
|
When I run `gcli key`
|
6
6
|
Then the exit status should be 0
|
@@ -13,7 +13,7 @@ Feature: gcli key
|
|
13
13
|
Scenario: List keys
|
14
14
|
Given the GitHub API server:
|
15
15
|
"""
|
16
|
-
get('/repos/wycats/thor/keys') {
|
16
|
+
get('/repos/wycats/thor/keys') { status 200 }
|
17
17
|
"""
|
18
18
|
When I run `gcli key ls wycats thor`
|
19
19
|
Then the exit status should be 0
|
@@ -21,7 +21,7 @@ Feature: gcli key
|
|
21
21
|
Scenario: Get key
|
22
22
|
Given the GitHub API server:
|
23
23
|
"""
|
24
|
-
get('/repos/wycats/thor/keys/1') {
|
24
|
+
get('/repos/wycats/thor/keys/1') { status 200 }
|
25
25
|
"""
|
26
26
|
When I run `gcli key get wycats thor 1`
|
27
27
|
Then the exit status should be 0
|
@@ -29,7 +29,7 @@ Feature: gcli key
|
|
29
29
|
Scenario: Create key
|
30
30
|
Given the GitHub API server:
|
31
31
|
"""
|
32
|
-
post('/repos/wycats/thor/keys') {
|
32
|
+
post('/repos/wycats/thor/keys') { status 200 }
|
33
33
|
"""
|
34
34
|
When I run `gcli key create wycats thor --params=title:octo key:fh34d55`
|
35
35
|
Then the exit status should be 0
|
@@ -37,7 +37,7 @@ Feature: gcli key
|
|
37
37
|
Scenario: Edit key
|
38
38
|
Given the GitHub API server:
|
39
39
|
"""
|
40
|
-
patch('/repos/wycats/thor/keys/1') {
|
40
|
+
patch('/repos/wycats/thor/keys/1') { status 200 }
|
41
41
|
"""
|
42
42
|
When I run `gcli key edit wycats thor 1 --params=title:octo key:fh34d55`
|
43
43
|
Then the exit status should be 0
|
data/features/repository.feature
CHANGED
@@ -1,19 +1,30 @@
|
|
1
1
|
Feature: gcli repository
|
2
2
|
|
3
|
+
@ci-run
|
3
4
|
Scenario: Available commands
|
4
5
|
When I run `gcli repo`
|
5
6
|
Then the exit status should be 0
|
7
|
+
And the output should contain "gcli repo branch"
|
6
8
|
And the output should contain "gcli repo branches"
|
7
9
|
And the output should contain "gcli repo contribs"
|
8
10
|
And the output should contain "gcli repo create"
|
9
11
|
And the output should contain "gcli repo edit"
|
12
|
+
And the output should contain "gcli repo delete"
|
10
13
|
And the output should contain "gcli repo get"
|
11
14
|
And the output should contain "gcli repo list"
|
12
|
-
And the output should contain "gcli repo
|
15
|
+
And the output should contain "gcli repo langs"
|
13
16
|
And the output should contain "gcli repo tags"
|
14
17
|
And the output should contain "gcli repo teams"
|
15
18
|
|
16
|
-
Scenario: List repositories
|
19
|
+
Scenario: List all repositories
|
20
|
+
Given the GitHub API server:
|
21
|
+
"""
|
22
|
+
get('/repositories') { status 200 }
|
23
|
+
"""
|
24
|
+
When I run `gcli repo ls`
|
25
|
+
Then the exit status should be 0
|
26
|
+
|
27
|
+
Scenario: List repositories for user
|
17
28
|
Given the GitHub API server:
|
18
29
|
"""
|
19
30
|
get('/users/wycats/repos') { status 200 }
|
@@ -21,6 +32,22 @@ Feature: gcli repository
|
|
21
32
|
When I run `gcli repo ls -u wycats`
|
22
33
|
Then the exit status should be 0
|
23
34
|
|
35
|
+
Scenario: List repositories for organization
|
36
|
+
Given the GitHub API server:
|
37
|
+
"""
|
38
|
+
get('/orgs/github/repos') { status 200 }
|
39
|
+
"""
|
40
|
+
When I run `gcli repo ls -o github`
|
41
|
+
Then the exit status should be 0
|
42
|
+
|
43
|
+
Scenario: List repositories for organization
|
44
|
+
Given the GitHub API server:
|
45
|
+
"""
|
46
|
+
get('/orgs/github/repos') { status 200 }
|
47
|
+
"""
|
48
|
+
When I run `gcli repo ls -o github`
|
49
|
+
Then the exit status should be 0
|
50
|
+
|
24
51
|
Scenario: Get repository
|
25
52
|
Given the GitHub API server:
|
26
53
|
"""
|
@@ -87,11 +114,37 @@ Feature: gcli repository
|
|
87
114
|
When I run `gcli repo create github`
|
88
115
|
Then the exit status should be 0
|
89
116
|
|
117
|
+
Scenario: Create repository in organization
|
118
|
+
Given the GitHub API server:
|
119
|
+
"""
|
120
|
+
post('/orgs/github/repos') { status 200 }
|
121
|
+
"""
|
122
|
+
When I run `gcli repo create github/thor`
|
123
|
+
Then the exit status should be 0
|
124
|
+
|
90
125
|
Scenario: Edit repository
|
91
126
|
Given the GitHub API server:
|
92
127
|
"""
|
93
128
|
patch('/repos/wycats/thor') { status 200 }
|
94
129
|
"""
|
95
|
-
When I run `gcli repo edit wycats thor
|
130
|
+
When I run `gcli repo edit wycats thor new`
|
131
|
+
Then the exit status should be 0
|
132
|
+
|
133
|
+
Scenario: Delete repository
|
134
|
+
Given the GitHub API server:
|
135
|
+
"""
|
136
|
+
delete('/repos/wycats/thor') { status 200 }
|
137
|
+
"""
|
138
|
+
When I run `gcli repo del wycats thor`
|
139
|
+
Then the exit status should be 0
|
140
|
+
|
141
|
+
Scenario: Get repository branch
|
142
|
+
Given the GitHub API server:
|
143
|
+
"""
|
144
|
+
get('/repos/wycats/thor/branches/master') {
|
145
|
+
status 200
|
146
|
+
}
|
147
|
+
"""
|
148
|
+
When I run `gcli repo branch wycats thor master`
|
96
149
|
Then the exit status should be 0
|
97
150
|
|
data/lib/github_cli/api.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
module GithubCLI
|
4
4
|
|
5
5
|
# The API class is the main entry point for creating GithubCLI APIs.
|
6
|
-
class API
|
6
|
+
class API < Thor
|
7
7
|
|
8
8
|
@@api = nil
|
9
9
|
|
@@ -17,6 +17,10 @@ module GithubCLI
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
+
# see http://stackoverflow.com/questions/5729071/how-to-compose-thor-tasks-in-separate-classes-modules-files
|
21
|
+
|
22
|
+
# this could become a command such as configure that gets class options
|
23
|
+
|
20
24
|
def configure_api
|
21
25
|
@@api = Github.new
|
22
26
|
config = GithubCLI.config.data
|
@@ -36,8 +40,12 @@ module GithubCLI
|
|
36
40
|
|
37
41
|
def output(format=:table, &block)
|
38
42
|
response = block.call
|
39
|
-
|
40
|
-
|
43
|
+
if response.respond_to?(:body)
|
44
|
+
formatter = Formatter.new response, :format => format
|
45
|
+
formatter.render_output
|
46
|
+
else
|
47
|
+
response
|
48
|
+
end
|
41
49
|
end
|
42
50
|
|
43
51
|
end
|
@@ -29,12 +29,24 @@ module GithubCLI
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
+
def delete(user, repo, params, format)
|
33
|
+
output format do
|
34
|
+
github_api.repos.delete user, repo, params
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
32
38
|
def branches(user, repo, params, format)
|
33
39
|
output format do
|
34
40
|
github_api.repos.branches user, repo, params
|
35
41
|
end
|
36
42
|
end
|
37
43
|
|
44
|
+
def branch(user, repo, name, params, format)
|
45
|
+
output format do
|
46
|
+
github_api.repos.branch user, repo, name, params
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
38
50
|
def contributors(user, repo, params, format)
|
39
51
|
output format do
|
40
52
|
github_api.repos.contributors user, repo, params
|
data/lib/github_cli/apis/user.rb
CHANGED
data/lib/github_cli/cli.rb
CHANGED
@@ -30,6 +30,8 @@ module GithubCLI
|
|
30
30
|
class_option :token, :type => :string,
|
31
31
|
:desc => 'Authentication token.',
|
32
32
|
:banner => '<oauth token>'
|
33
|
+
class_option :login, :type => :string
|
34
|
+
class_option :password, :type => :string
|
33
35
|
class_option "no-color", :type => :boolean,
|
34
36
|
:desc => "Disable colorization in output."
|
35
37
|
class_option "no-pager", :type => :boolean,
|
@@ -6,20 +6,19 @@ module GithubCLI
|
|
6
6
|
namespace :gist
|
7
7
|
|
8
8
|
desc 'list', 'List all gists'
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
9
|
+
option :user, :type => :string, :aliases => ["-u"], :banner => '<user>',
|
10
|
+
:desc => 'List a <user> gists'
|
11
|
+
option :starred, :type => :boolean, :aliases => ["-s"], :default => false,
|
12
|
+
:desc => 'List the authenticated users starred gists'
|
13
|
+
option :since, :type => :string, :banner => "timestamp",
|
14
|
+
:desc => "a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ "
|
15
15
|
def list
|
16
16
|
if options[:starred]
|
17
17
|
Gist.starred options[:params], options[:format]
|
18
18
|
else
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
Gist.all options[:params], options[:format]
|
19
|
+
params = options[:params].dup
|
20
|
+
params['user'] = options[:user] if options[:user]
|
21
|
+
Gist.all params, options[:format]
|
23
22
|
end
|
24
23
|
end
|
25
24
|
|
@@ -28,6 +27,10 @@ module GithubCLI
|
|
28
27
|
Gist.get id, options[:params], options[:format]
|
29
28
|
end
|
30
29
|
|
30
|
+
option :public, :type => :boolean, :default => false
|
31
|
+
option :desc, :type => :string
|
32
|
+
option :files, :type => :hash, :banner => "file1.txt:",
|
33
|
+
:desc => "Files that make up this gist. The key of which should be a required string filename and the value another required hash with parameters"
|
31
34
|
desc 'create', 'Create a gist'
|
32
35
|
long_desc <<-DESC
|
33
36
|
Create a gist
|
@@ -40,9 +43,16 @@ module GithubCLI
|
|
40
43
|
content - Required string - File contents.
|
41
44
|
DESC
|
42
45
|
def create
|
43
|
-
|
46
|
+
params = options[:params].dup
|
47
|
+
params['description'] = options[:desc] if options[:desc]
|
48
|
+
params['public'] = options[:public] || false
|
49
|
+
params['files'] = options[:files] if options[:files]
|
50
|
+
Gist.create params, options[:format]
|
44
51
|
end
|
45
52
|
|
53
|
+
option :desc, :type => :string
|
54
|
+
option :files, :type => :hash, :banner => "file1.txt:",
|
55
|
+
:desc => "Files that make up this gist. The key of which should be a required string filename and the value another required hash with parameters"
|
46
56
|
desc 'edit <id>', 'Edit a gist'
|
47
57
|
long_desc <<-DESC
|
48
58
|
Edit a gist
|
@@ -55,7 +65,10 @@ module GithubCLI
|
|
55
65
|
filename - Optional string - New name for this file.\n
|
56
66
|
DESC
|
57
67
|
def edit(id)
|
58
|
-
|
68
|
+
params = options[:params].dup
|
69
|
+
params['description'] = options[:desc] if options[:desc]
|
70
|
+
params['files'] = options[:files] if options[:files]
|
71
|
+
Gist.edit id, params, options[:format]
|
59
72
|
end
|
60
73
|
|
61
74
|
desc 'star <id>', 'Star a gist'
|
@@ -16,13 +16,35 @@ module GithubCLI
|
|
16
16
|
end
|
17
17
|
|
18
18
|
desc 'create <user> <repo>', 'Create a new Pull Request'
|
19
|
+
option :title, :type => :string
|
20
|
+
option :body, :type => :string
|
21
|
+
option :base, :type => :string,
|
22
|
+
:desc => "The branch you want your changes pulled into."
|
23
|
+
option :head, :type => :string,
|
24
|
+
:desc => "The branch where your changes are implemented"
|
25
|
+
option :issue, :type => :string,
|
26
|
+
:desc => "Issue number in this repository to turn into a Pull Request"
|
19
27
|
def create(user, repo)
|
20
|
-
|
28
|
+
params = options[:params].dup
|
29
|
+
params['title'] = options[:title] if options[:title]
|
30
|
+
params['body'] = options[:body] if options[:body]
|
31
|
+
params['base'] = options[:base] if options[:base]
|
32
|
+
params['head'] = options[:head] if options[:head]
|
33
|
+
params['issue'] = options[:issue] if options[:issue]
|
34
|
+
PullRequest.create user, repo, params, options[:format]
|
21
35
|
end
|
22
36
|
|
23
37
|
desc 'update <user> <repo> <number>', 'Update a Pull Request'
|
38
|
+
option :title, :type => :string
|
39
|
+
option :body, :type => :string
|
40
|
+
option :state, :type => :string,
|
41
|
+
:desc => "State of this Pull Request. Valid values are open and closed"
|
24
42
|
def update(user, repo, number)
|
25
|
-
|
43
|
+
params = options[:params].dup
|
44
|
+
params['title'] = options[:title] if options[:title]
|
45
|
+
params['body'] = options[:body] if options[:body]
|
46
|
+
params['state'] = options[:state] if options[:state]
|
47
|
+
PullRequest.update user, repo, number, params, options[:format]
|
26
48
|
end
|
27
49
|
|
28
50
|
desc 'commits <user> <repo> <number>', 'List commits on a Pull Request'
|
@@ -4,22 +4,29 @@ module GithubCLI
|
|
4
4
|
class Commands::Repositories < Command
|
5
5
|
|
6
6
|
namespace :repo
|
7
|
-
# TODO: format_type options[:format]
|
8
7
|
|
8
|
+
option :org, :type => :string, :aliases => ["-o"], :banner => '<organization>',
|
9
|
+
:desc => 'List repositories for <organization>'
|
10
|
+
option :user, :type => :string, :aliases => ["-u"], :banner => '<user>',
|
11
|
+
:desc => 'List repositories for <user>'
|
12
|
+
option :since, :type => :string, :banner => '<id>',
|
13
|
+
:desc => "the integer ID of the last Repository that you've seen"
|
14
|
+
option :type, :type => :string,
|
15
|
+
:desc => "all, owner, public, private, member. Default: all."
|
16
|
+
option :sort, :type => :string,
|
17
|
+
:desc => "created, updated, pushed, full_name, default: full_name."
|
18
|
+
option :direction, :type => :string,
|
19
|
+
:desc => "asc or desc, default: when using full_name: asc, otherwise desc."
|
9
20
|
desc 'list', 'Lists all repositories for the authenticated user'
|
10
|
-
method_option :org, :type => :string, :aliases => ["-o"],
|
11
|
-
:desc => 'List repositories for <organization>',
|
12
|
-
:banner => '<organization>'
|
13
|
-
method_option :user, :type => :string, :aliases => ["-u"],
|
14
|
-
:desc => 'List repositories for <user>',
|
15
|
-
:banner => '<user>'
|
16
21
|
def list
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
22
|
+
params = options[:params].dup
|
23
|
+
params['org'] = options[:org] if options[:org]
|
24
|
+
params['user'] = options[:user] if options[:user]
|
25
|
+
params['since'] = options[:since] if options[:since]
|
26
|
+
params['type'] = options[:type] if options[:type]
|
27
|
+
params['sort'] = options[:sort] if options[:sort]
|
28
|
+
params['direction'] = options[:direction] if options[:direction]
|
29
|
+
Repository.all params, options[:format]
|
23
30
|
end
|
24
31
|
|
25
32
|
desc 'get <user> <repo>', 'Get a repository'
|
@@ -27,6 +34,25 @@ module GithubCLI
|
|
27
34
|
Repository.get user, repo, options[:params], options[:format]
|
28
35
|
end
|
29
36
|
|
37
|
+
option :org, :type => :string, :aliases => ["-o"],
|
38
|
+
:desc => 'Create repository in <organization>',
|
39
|
+
:banner => '<organization>'
|
40
|
+
option :desc, :type => :string, :banner => "description"
|
41
|
+
option :home, :type => :string, :banner => "homepage"
|
42
|
+
option :private, :type => :boolean,
|
43
|
+
:desc => "true to create a private repository, false to create a public one"
|
44
|
+
option :issues, :type => :boolean, :banner => "has_issues",
|
45
|
+
:desc => "true to enable issues for this repository, false to disable them"
|
46
|
+
option :wiki, :type => :boolean, :banner => "has_wiki",
|
47
|
+
:desc => "true to enable the wiki for this repository, false to disable it. Default is true"
|
48
|
+
option :downloads, :type => :boolean, :banner => "has_downloads",
|
49
|
+
:desc => "true to enable downloads for this repository "
|
50
|
+
option :team, :type => :string, :banner => "team <id>",
|
51
|
+
:desc => "The id of the team that will be granted access to this repository. This is only valid when creating a repo in an organization"
|
52
|
+
option :auto, :type => :string, :banner => "auto_init",
|
53
|
+
:desc => "true to create an initial commit with empty README. Default is false."
|
54
|
+
option :gitignore, :type => :string, :banner => "gitignore_template",
|
55
|
+
:desc => "Desired language or platform .gitignore template to apply."
|
30
56
|
desc 'create [<org>/]<name>', 'Create a new repository <name> for the authenticated user.'
|
31
57
|
long_desc <<-DESC
|
32
58
|
Create a new repository for the autheticated user.
|
@@ -41,19 +67,40 @@ module GithubCLI
|
|
41
67
|
has_downloads Optional boolean - true to enable downloads for this repository \n
|
42
68
|
org Optional string - The organisation in which this repository will be created \n
|
43
69
|
team_id - Optional number - The id of the team that will be granted access to this repository. This is only valid when creating a repo in an organization \n
|
70
|
+
auto_init - Optional boolean - true to create an initial commit with empty README. Default is false.
|
71
|
+
gitignore_template - Optional string - Desired language or platform .gitignore template to apply. Use the name of the template without the extension. For example, “Haskell” Ignored if auto_init parameter is not provided.
|
44
72
|
DESC
|
45
|
-
method_option :org, :type => :string, :aliases => ["-o"],
|
46
|
-
:desc => 'Create repository in <organization>',
|
47
|
-
:banner => '<organization>'
|
48
73
|
def create(args)
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
74
|
+
params = options[:params].dup
|
75
|
+
org, params['name'] = Arguments.new(args).parse
|
76
|
+
params['org'] = org if org
|
77
|
+
params['org'] = options[:org] if options[:org]
|
78
|
+
params['description'] = options[:desc] if options[:desc]
|
79
|
+
params['homepage'] = options[:home] if options[:home]
|
80
|
+
params['private'] = options[:private] if options[:private]
|
81
|
+
params['has_issues'] = options[:issues] if options[:issues]
|
82
|
+
params['has_wiki'] = options[:wiki] if options[:wiki]
|
83
|
+
params['has_downloads'] = options[:downloads] if options[:downloads]
|
84
|
+
params['team_id'] = options[:team] if options[:team]
|
85
|
+
params['auto_init'] = options[:auto] if options[:auto]
|
86
|
+
params['gitignore_template'] = options[:gitignore] if options[:gitignore]
|
87
|
+
|
88
|
+
Repository.create params, options[:format]
|
54
89
|
end
|
55
90
|
|
56
|
-
desc
|
91
|
+
option :desc, :type => :string, :banner => "description"
|
92
|
+
option :home, :type => :string, :banner => "homepage"
|
93
|
+
option :private, :type => :boolean,
|
94
|
+
:desc => "true to create a private repository, false to create a public one"
|
95
|
+
option :issues, :type => :boolean, :banner => "has_issues",
|
96
|
+
:desc => "true to enable issues for this repository, false to disable them"
|
97
|
+
option :wiki, :type => :boolean, :banner => "has_wiki",
|
98
|
+
:desc => "true to enable the wiki for this repository, false to disable it. Default is true"
|
99
|
+
option :downloads, :type => :boolean, :banner => "has_downloads",
|
100
|
+
:desc => "true to enable downloads for this repository "
|
101
|
+
option :branch, :type => :string, :banner => "default branch",
|
102
|
+
:desc => "Update the default branch for this repository."
|
103
|
+
desc 'edit <user> <repo> <name>', 'Edit <repo> with <name> for an <user>.'
|
57
104
|
long_desc <<-DESC
|
58
105
|
Create a new repository for the autheticated user.
|
59
106
|
|
@@ -65,10 +112,26 @@ module GithubCLI
|
|
65
112
|
private - Optional boolean - true to create a private repository, false to create a public one \n
|
66
113
|
has_issues - Optional boolean - true to enable issues for this repository, false to disable them \n
|
67
114
|
has_wiki - Optional boolean - true to enable the wiki for this repository, false to disable it. Default is true \n
|
68
|
-
has_downloads Optional boolean - true to enable downloads for this repository \n
|
115
|
+
has_downloads - Optional boolean - true to enable downloads for this repository \n
|
116
|
+
default_branch - Optional string - update the default branch for this repository \n
|
69
117
|
DESC
|
70
|
-
def edit(user, repo)
|
71
|
-
|
118
|
+
def edit(user, repo, name)
|
119
|
+
params = options[:params].dup
|
120
|
+
params['name'] = name
|
121
|
+
params['description'] = options[:desc] if options[:desc]
|
122
|
+
params['homepage'] = options[:home] if options[:home]
|
123
|
+
params['private'] = options[:private] if options[:private]
|
124
|
+
params['has_issues'] = options[:issues] if options[:issues]
|
125
|
+
params['has_wiki'] = options[:wiki] if options[:wiki]
|
126
|
+
params['has_downloads'] = options[:downloads] if options[:downloads]
|
127
|
+
params['default_branch'] = options[:branch] if options[:branch]
|
128
|
+
|
129
|
+
Repository.edit user, repo, params, options[:format]
|
130
|
+
end
|
131
|
+
|
132
|
+
desc 'delete <user> <repo>', 'Delete a repository'
|
133
|
+
def delete(user, repo)
|
134
|
+
Repository.delete user, repo, options[:params], options[:format]
|
72
135
|
end
|
73
136
|
|
74
137
|
desc 'branches <user> <repo>', 'List branches'
|
@@ -76,13 +139,18 @@ module GithubCLI
|
|
76
139
|
Repository.branches user, repo, options[:params], options[:format]
|
77
140
|
end
|
78
141
|
|
142
|
+
desc 'branch <user> <repo> <name>', 'Get branch'
|
143
|
+
def branch(user, repo, name)
|
144
|
+
Repository.branch user, repo, name, options[:params], options[:format]
|
145
|
+
end
|
146
|
+
|
79
147
|
desc 'contribs <user> <repo>', 'List contributors'
|
80
148
|
def contribs(user, repo)
|
81
149
|
Repository.contributors user, repo, options[:params], options[:format]
|
82
150
|
end
|
83
151
|
|
84
|
-
desc '
|
85
|
-
def
|
152
|
+
desc 'langs <user> <repo>', 'Listing all languages'
|
153
|
+
def langs(user, repo)
|
86
154
|
Repository.languages user, repo, options[:params], options[:format]
|
87
155
|
end
|
88
156
|
|
@@ -5,17 +5,41 @@ module GithubCLI
|
|
5
5
|
|
6
6
|
namespace :user
|
7
7
|
|
8
|
+
desc 'list', 'List all users'
|
9
|
+
option :since, :type => :string, :banner => "<user>",
|
10
|
+
:desc => "The integer ID of the last User that you’ve seen."
|
11
|
+
def list
|
12
|
+
params = options[:params].dup
|
13
|
+
params['since'] = options[:since] if options[:since]
|
14
|
+
User.all params, options[:format]
|
15
|
+
end
|
16
|
+
|
8
17
|
desc 'get', 'Get the authenticated user'
|
9
|
-
|
10
|
-
|
11
|
-
|
18
|
+
option :user, :type => :string, :aliases => ["-u"],
|
19
|
+
:desc => 'Get a single unauthenticated <user>',
|
20
|
+
:banner => '<user>'
|
12
21
|
def get
|
13
22
|
User.get options[:user], options[:params], options[:format]
|
14
23
|
end
|
15
24
|
|
16
25
|
desc 'update', 'Update the authenticated user'
|
26
|
+
option :name, :type => :string
|
27
|
+
option :email, :type => :string
|
28
|
+
option :blog, :type => :string
|
29
|
+
option :company, :type => :string
|
30
|
+
option :location, :type => :string
|
31
|
+
option :hireable, :type => :string
|
32
|
+
option :bio, :type => :string
|
17
33
|
def update
|
18
|
-
|
34
|
+
params = options[:params].dup
|
35
|
+
params['name'] = options[:name] if options[:name]
|
36
|
+
params['email'] = options[:email] if options[:email]
|
37
|
+
params['blog'] = options[:blog] if options[:blog]
|
38
|
+
params['company'] = options[:company] if options[:company]
|
39
|
+
params['location'] = options[:location] if options[:location]
|
40
|
+
params['hireable'] = options[:hireable] if options[:hireable]
|
41
|
+
params['bio'] = options[:bio] if options[:bio]
|
42
|
+
User.update params, options[:format]
|
19
43
|
end
|
20
44
|
|
21
45
|
end # Users
|
data/lib/github_cli/version.rb
CHANGED
@@ -0,0 +1,43 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe GithubCLI::Commands::Authorizations do
|
6
|
+
let(:format) { 'table' }
|
7
|
+
let(:id) { 1 }
|
8
|
+
let(:api_class) { GithubCLI::Authorization }
|
9
|
+
|
10
|
+
it "invokes auth:list" do
|
11
|
+
api_class.should_receive(:all).with({}, format)
|
12
|
+
subject.invoke "auth:list", []
|
13
|
+
end
|
14
|
+
|
15
|
+
it "invokes auth:get" do
|
16
|
+
api_class.should_receive(:get).with(id, {}, format)
|
17
|
+
subject.invoke "auth:get", [id]
|
18
|
+
end
|
19
|
+
|
20
|
+
it "invokes auth:create --scopes --note --note_url" do
|
21
|
+
api_class.should_receive(:create).with({"scopes" => ["repo"],
|
22
|
+
"note" => "github_cli",
|
23
|
+
"note_url" => "https://github.com/peter-murach/github_cli"}, format)
|
24
|
+
subject.invoke "auth:create", [], :scopes => ["repo"], :note => 'github_cli', :note_url => "https://github.com/peter-murach/github_cli"
|
25
|
+
end
|
26
|
+
|
27
|
+
it "invokes auth:update" do
|
28
|
+
api_class.should_receive(:update).with(id, {}, format)
|
29
|
+
subject.invoke "auth:update", [id]
|
30
|
+
end
|
31
|
+
|
32
|
+
it "invokes auth:update --scopes --note --note_url" do
|
33
|
+
api_class.should_receive(:update).with(id, {"scopes" => ["repo"],
|
34
|
+
"note" => "github_cli",
|
35
|
+
"note_url" => "https://github.com/peter-murach/github_cli"}, format)
|
36
|
+
subject.invoke "auth:update", [id], :scopes => ["repo"], :note => 'github_cli', :note_url => "https://github.com/peter-murach/github_cli"
|
37
|
+
end
|
38
|
+
|
39
|
+
it "invokes auth:delete" do
|
40
|
+
api_class.should_receive(:delete).with(id, {}, format)
|
41
|
+
subject.invoke "auth:delete", [id]
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe GithubCLI::Commands::Gists do
|
6
|
+
let(:format) { 'table' }
|
7
|
+
let(:user) { 'peter-murach' }
|
8
|
+
let(:id) { 1 }
|
9
|
+
let(:api_class) { GithubCLI::Gist }
|
10
|
+
|
11
|
+
it "invokes gist:list" do
|
12
|
+
api_class.should_receive(:all).with({}, format)
|
13
|
+
subject.invoke "gist:list", []
|
14
|
+
end
|
15
|
+
|
16
|
+
it "invokes gist:list --user" do
|
17
|
+
api_class.should_receive(:all).with({"user" => user}, format)
|
18
|
+
subject.invoke "gist:list", [], :user => user
|
19
|
+
end
|
20
|
+
|
21
|
+
it "invokes gist:list --starred" do
|
22
|
+
api_class.should_receive(:starred).with({}, format)
|
23
|
+
subject.invoke "gist:list", [], :starred => true
|
24
|
+
end
|
25
|
+
|
26
|
+
it "invokes gist:get" do
|
27
|
+
api_class.should_receive(:get).with(id, {}, format)
|
28
|
+
subject.invoke "gist:get", [id]
|
29
|
+
end
|
30
|
+
|
31
|
+
it "invokes gist:create" do
|
32
|
+
api_class.should_receive(:create).with({'public' => false}, format)
|
33
|
+
subject.invoke "gist:create", []
|
34
|
+
end
|
35
|
+
|
36
|
+
it "invokes gist:create --public --desc" do
|
37
|
+
api_class.should_receive(:create).with({'public' => true,
|
38
|
+
'description' => 'new'}, format)
|
39
|
+
subject.invoke "gist:create", [], :desc => 'new', :public => true
|
40
|
+
end
|
41
|
+
|
42
|
+
it "invokes gist:edit id" do
|
43
|
+
api_class.should_receive(:edit).with(id, {}, format)
|
44
|
+
subject.invoke "gist:edit", [id]
|
45
|
+
end
|
46
|
+
|
47
|
+
it "invokes gist:edit id --desc" do
|
48
|
+
api_class.should_receive(:edit).with(id, {'description' => 'new'}, format)
|
49
|
+
subject.invoke "gist:edit", [id], :desc => 'new'
|
50
|
+
end
|
51
|
+
|
52
|
+
it "invokes gist:star id" do
|
53
|
+
api_class.should_receive(:star).with(id, {}, format)
|
54
|
+
subject.invoke "gist:star", [id]
|
55
|
+
end
|
56
|
+
|
57
|
+
it "invokes gist:unstar id" do
|
58
|
+
api_class.should_receive(:unstar).with(id, {}, format)
|
59
|
+
subject.invoke "gist:unstar", [id]
|
60
|
+
end
|
61
|
+
|
62
|
+
it "invokes gist:starred id" do
|
63
|
+
api_class.should_receive(:starred?).with(id, {}, format)
|
64
|
+
subject.invoke "gist:starred", [id]
|
65
|
+
end
|
66
|
+
|
67
|
+
it "invokes gist:fork id" do
|
68
|
+
api_class.should_receive(:fork).with(id, {}, format)
|
69
|
+
subject.invoke "gist:fork", [id]
|
70
|
+
end
|
71
|
+
|
72
|
+
it "invokes gist:delete id" do
|
73
|
+
api_class.should_receive(:delete).with(id, {}, format)
|
74
|
+
subject.invoke "gist:delete", [id]
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe GithubCLI::Commands::PullRequests do
|
6
|
+
let(:format) { 'table' }
|
7
|
+
let(:user) { 'peter-murach' }
|
8
|
+
let(:repo) { 'github_cli' }
|
9
|
+
let(:number) { 1 }
|
10
|
+
let(:api_class) { GithubCLI::PullRequest }
|
11
|
+
|
12
|
+
it "invokes pull:list" do
|
13
|
+
api_class.should_receive(:list).with(user, repo, {}, format)
|
14
|
+
subject.invoke "pull:list", [user, repo]
|
15
|
+
end
|
16
|
+
|
17
|
+
it "invokes pull:get" do
|
18
|
+
api_class.should_receive(:get).with(user, repo, number, {}, format)
|
19
|
+
subject.invoke "pull:get", [user, repo, number]
|
20
|
+
end
|
21
|
+
|
22
|
+
it "invokes pull:create --title" do
|
23
|
+
api_class.should_receive(:create).with(user, repo, {"title" => 'new'}, format)
|
24
|
+
subject.invoke "pull:create", [user, repo], :title => 'new'
|
25
|
+
end
|
26
|
+
|
27
|
+
it "invokes pull:update" do
|
28
|
+
api_class.should_receive(:update).with(user, repo, number, {}, format)
|
29
|
+
subject.invoke "pull:update", [user, repo, number]
|
30
|
+
end
|
31
|
+
|
32
|
+
it "invokes pull:update --title" do
|
33
|
+
api_class.should_receive(:update).with(user, repo, number,
|
34
|
+
{'title' => 'new'}, format)
|
35
|
+
subject.invoke "pull:update", [user, repo, number], :title => 'new'
|
36
|
+
end
|
37
|
+
|
38
|
+
it "invokes pull:commits" do
|
39
|
+
api_class.should_receive(:commits).with(user, repo, number, {}, format)
|
40
|
+
subject.invoke "pull:commits", [user, repo, number]
|
41
|
+
end
|
42
|
+
|
43
|
+
it "invokes pull:files" do
|
44
|
+
api_class.should_receive(:files).with(user, repo, number, {}, format)
|
45
|
+
subject.invoke "pull:files", [user, repo, number]
|
46
|
+
end
|
47
|
+
|
48
|
+
it "invokes pull:merged" do
|
49
|
+
api_class.should_receive(:merged).with(user, repo, number, {}, format)
|
50
|
+
subject.invoke "pull:merged", [user, repo, number]
|
51
|
+
end
|
52
|
+
|
53
|
+
it "invokes pull:merge" do
|
54
|
+
api_class.should_receive(:merge).with(user, repo, number, {}, format)
|
55
|
+
subject.invoke "pull:merge", [user, repo, number]
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe GithubCLI::Commands::Repositories do
|
6
|
+
let(:format) { 'table' }
|
7
|
+
let(:user) { 'peter-murach' }
|
8
|
+
let(:repo) { 'github_cli' }
|
9
|
+
let(:org) { 'rails' }
|
10
|
+
let(:api_class) { GithubCLI::Repository }
|
11
|
+
|
12
|
+
it "invokes repo:list" do
|
13
|
+
api_class.should_receive(:all).with({}, format)
|
14
|
+
subject.invoke "repo:list", []
|
15
|
+
end
|
16
|
+
|
17
|
+
it "invokes repo:list --org" do
|
18
|
+
api_class.should_receive(:all).with({"org" => org}, format)
|
19
|
+
subject.invoke "repo:list", [], :org => org
|
20
|
+
end
|
21
|
+
|
22
|
+
it "invokes repo:list --user" do
|
23
|
+
api_class.should_receive(:all).with({"user" => user}, format)
|
24
|
+
subject.invoke "repo:list", [], :user => user
|
25
|
+
end
|
26
|
+
|
27
|
+
it "invokes repo:list --user --type --sort --direction" do
|
28
|
+
api_class.should_receive(:all).with({"user" => user, "type" => "owner",
|
29
|
+
"sort" => "created", "direction" => "asc"}, format)
|
30
|
+
subject.invoke "repo:list", [], :user => user, :type => "owner",
|
31
|
+
:sort => "created", :direction => "asc"
|
32
|
+
end
|
33
|
+
|
34
|
+
it "invokes repo:get" do
|
35
|
+
api_class.should_receive(:get).with(user, repo, {}, format)
|
36
|
+
subject.invoke "repo:get", [user, repo]
|
37
|
+
end
|
38
|
+
|
39
|
+
it "invokes repo:create name" do
|
40
|
+
api_class.should_receive(:create).with({'name' => repo}, format)
|
41
|
+
subject.invoke "repo:create", [repo]
|
42
|
+
end
|
43
|
+
|
44
|
+
it "invokes repo:create org/name" do
|
45
|
+
api_class.should_receive(:create).with({'name' => repo, 'org' => org}, format)
|
46
|
+
subject.invoke "repo:create", ["#{org}/#{repo}"]
|
47
|
+
end
|
48
|
+
|
49
|
+
it "invokes repo:create name --org" do
|
50
|
+
api_class.should_receive(:create).with({'name' => repo, 'org' => org}, format)
|
51
|
+
subject.invoke "repo:create", [repo], :org => org
|
52
|
+
end
|
53
|
+
|
54
|
+
it "invokes repo:create name --wiki --issues --downloads --auto_init" do
|
55
|
+
api_class.should_receive(:create).with({'name' => repo, "has_wiki" => true,
|
56
|
+
"has_issues" => true, "has_downloads" => true, "auto_init" => true}, format)
|
57
|
+
subject.invoke "repo:create", [repo], :wiki => true, :issues => true,
|
58
|
+
:downloads => true, :auto => true
|
59
|
+
end
|
60
|
+
|
61
|
+
it "invokes repo:edit user repo name" do
|
62
|
+
api_class.should_receive(:edit).with(user, repo, {'name' => 'new'}, format)
|
63
|
+
subject.invoke "repo:edit", [user, repo, 'new']
|
64
|
+
end
|
65
|
+
|
66
|
+
it "invokes repo:edit user repo name --wiki --issues --downloads --auto_init" do
|
67
|
+
api_class.should_receive(:edit).with(user, repo, {'name' => 'new',
|
68
|
+
"has_wiki" => true, "has_issues" => true, "has_downloads" => true}, format)
|
69
|
+
subject.invoke "repo:edit", [user, repo, 'new'], :wiki => true,
|
70
|
+
:issues => true, :downloads => true
|
71
|
+
end
|
72
|
+
|
73
|
+
it "invokes repo:delete user repo" do
|
74
|
+
api_class.should_receive(:delete).with(user, repo, {}, format)
|
75
|
+
subject.invoke "repo:delete", [user, repo]
|
76
|
+
end
|
77
|
+
|
78
|
+
it "invokes repo:branches" do
|
79
|
+
api_class.should_receive(:branches).with(user, repo, {}, format)
|
80
|
+
subject.invoke "repo:branches", [user, repo]
|
81
|
+
end
|
82
|
+
|
83
|
+
it "invokes repo:branch" do
|
84
|
+
api_class.should_receive(:branch).with(user, repo, 'new', {}, format)
|
85
|
+
subject.invoke "repo:branch", [user, repo, 'new']
|
86
|
+
end
|
87
|
+
|
88
|
+
it "invokes repo:contribs" do
|
89
|
+
api_class.should_receive(:contributors).with(user, repo, {}, format)
|
90
|
+
subject.invoke "repo:contribs", [user, repo]
|
91
|
+
end
|
92
|
+
|
93
|
+
it "invokes repo:langs" do
|
94
|
+
api_class.should_receive(:languages).with(user, repo, {}, format)
|
95
|
+
subject.invoke "repo:langs", [user, repo]
|
96
|
+
end
|
97
|
+
|
98
|
+
it "invokes repo:tags" do
|
99
|
+
api_class.should_receive(:tags).with(user, repo, {}, format)
|
100
|
+
subject.invoke "repo:tags", [user, repo]
|
101
|
+
end
|
102
|
+
|
103
|
+
it "invokes repo:teams" do
|
104
|
+
api_class.should_receive(:teams).with(user, repo, {}, format)
|
105
|
+
subject.invoke "repo:teams", [user, repo]
|
106
|
+
end
|
107
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: github_cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-30 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: github_api
|
16
|
-
requirement: &
|
16
|
+
requirement: &2156305200 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0.9'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2156305200
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &2156304760 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2156304760
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: aruba
|
38
|
-
requirement: &
|
38
|
+
requirement: &2156304140 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2156304140
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
|
-
requirement: &
|
49
|
+
requirement: &2156303440 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2156303440
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: communist
|
60
|
-
requirement: &
|
60
|
+
requirement: &2156302700 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2156302700
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: ronn
|
71
|
-
requirement: &
|
71
|
+
requirement: &2156301940 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2156301940
|
80
80
|
description: CLI-based access to GitHub API v3
|
81
81
|
email:
|
82
82
|
- ''
|
@@ -265,16 +265,20 @@ files:
|
|
265
265
|
- spec/github_cli/cli_spec.rb
|
266
266
|
- spec/github_cli/command_spec.rb
|
267
267
|
- spec/github_cli/commands/assignees_spec.rb
|
268
|
+
- spec/github_cli/commands/authorizations_spec.rb
|
268
269
|
- spec/github_cli/commands/blobs_spec.rb
|
269
270
|
- spec/github_cli/commands/collaborators_spec.rb
|
270
271
|
- spec/github_cli/commands/commits_spec.rb
|
271
272
|
- spec/github_cli/commands/emails_spec.rb
|
272
273
|
- spec/github_cli/commands/events_spec.rb
|
273
274
|
- spec/github_cli/commands/followers_spec.rb
|
275
|
+
- spec/github_cli/commands/gists_spec.rb
|
274
276
|
- spec/github_cli/commands/keys_spec.rb
|
275
277
|
- spec/github_cli/commands/labels_spec.rb
|
276
278
|
- spec/github_cli/commands/milestones_spec.rb
|
279
|
+
- spec/github_cli/commands/pull_requests_spec.rb
|
277
280
|
- spec/github_cli/commands/references_spec.rb
|
281
|
+
- spec/github_cli/commands/repositories_spec.rb
|
278
282
|
- spec/github_cli/commands/starring_spec.rb
|
279
283
|
- spec/github_cli/commands/tags_spec.rb
|
280
284
|
- spec/github_cli/commands/trees_spec.rb
|
@@ -361,16 +365,20 @@ test_files:
|
|
361
365
|
- spec/github_cli/cli_spec.rb
|
362
366
|
- spec/github_cli/command_spec.rb
|
363
367
|
- spec/github_cli/commands/assignees_spec.rb
|
368
|
+
- spec/github_cli/commands/authorizations_spec.rb
|
364
369
|
- spec/github_cli/commands/blobs_spec.rb
|
365
370
|
- spec/github_cli/commands/collaborators_spec.rb
|
366
371
|
- spec/github_cli/commands/commits_spec.rb
|
367
372
|
- spec/github_cli/commands/emails_spec.rb
|
368
373
|
- spec/github_cli/commands/events_spec.rb
|
369
374
|
- spec/github_cli/commands/followers_spec.rb
|
375
|
+
- spec/github_cli/commands/gists_spec.rb
|
370
376
|
- spec/github_cli/commands/keys_spec.rb
|
371
377
|
- spec/github_cli/commands/labels_spec.rb
|
372
378
|
- spec/github_cli/commands/milestones_spec.rb
|
379
|
+
- spec/github_cli/commands/pull_requests_spec.rb
|
373
380
|
- spec/github_cli/commands/references_spec.rb
|
381
|
+
- spec/github_cli/commands/repositories_spec.rb
|
374
382
|
- spec/github_cli/commands/starring_spec.rb
|
375
383
|
- spec/github_cli/commands/tags_spec.rb
|
376
384
|
- spec/github_cli/commands/trees_spec.rb
|