github_cli 0.4.2 → 0.4.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +7 -7
- data/CHANGELOG.md +13 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +12 -1
- data/features/blob.feature +16 -0
- data/features/collaborator.feature +33 -0
- data/features/commit.feature +16 -0
- data/features/content.feature +32 -0
- data/features/download.feature +32 -0
- data/features/email.feature +24 -0
- data/features/errors.feature +7 -6
- data/features/event.feature +80 -0
- data/features/follower.feature +48 -0
- data/features/fork.feature +15 -4
- data/features/gist.feature +88 -0
- data/features/hook.feature +49 -0
- data/features/label.feature +89 -0
- data/features/search_commands.feature +1 -1
- data/features/support/env.rb +1 -0
- data/features/support/hooks.rb +1 -1
- data/github_cli.gemspec +1 -0
- data/lib/github_cli/api.rb +4 -0
- data/lib/github_cli/apis.rb +1 -0
- data/lib/github_cli/apis/blob.rb +1 -1
- data/lib/github_cli/apis/commit.rb +1 -1
- data/lib/github_cli/apis/label.rb +17 -19
- data/lib/github_cli/commands/collaborators.rb +1 -1
- data/lib/github_cli/commands/followers.rb +1 -1
- data/lib/github_cli/commands/gists.rb +7 -5
- data/lib/github_cli/commands/labels.rb +9 -14
- data/lib/github_cli/version.rb +1 -1
- metadata +23 -12
data/.travis.yml
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
before_install:
|
2
2
|
- gem install bundler
|
3
|
-
branches:
|
4
|
-
only: master
|
5
|
-
notifications:
|
6
|
-
email:false
|
7
3
|
matrix:
|
8
4
|
allow_failures:
|
9
5
|
- rvm: ruby-head
|
10
|
-
- jruby
|
11
|
-
- rbx-19mode
|
6
|
+
- rvm: jruby-19mode
|
7
|
+
- rvm: rbx-19mode
|
12
8
|
rvm:
|
13
9
|
- 1.9.2
|
14
10
|
- 1.9.3
|
15
11
|
- rbx-19mode
|
16
|
-
- jruby
|
12
|
+
- jruby-19mode
|
17
13
|
- ruby-head
|
14
|
+
branches:
|
15
|
+
only: master
|
16
|
+
notifications:
|
17
|
+
email:false
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
0.4.3 (July 14, 2012)
|
2
|
+
|
3
|
+
* Add communist gem dependency.
|
4
|
+
* Fix bug with getting blob data and add blob api feature tests.
|
5
|
+
* Fix bug with getting commit data and add commit api feature tests.
|
6
|
+
* Fix bug with removing collaborator and add feature tests.
|
7
|
+
* Add content, download, email api commands feature tests.
|
8
|
+
* Fix bug with missing event api inclusion and add feature tests.
|
9
|
+
* Fix bug with checkig if user is a follower and add feature tests.
|
10
|
+
* Fix bug with listing starred gists and add gist api feature tests.
|
11
|
+
* Add hook api commands feature tests.
|
12
|
+
* Fix bugs with labels api coammands using old github_api gem method calls.
|
13
|
+
|
1
14
|
0.4.2 (July 12, 2012)
|
2
15
|
|
3
16
|
* Add 'did you mean' help for mistyped commands.
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
github_cli (0.4.
|
4
|
+
github_cli (0.4.3)
|
5
5
|
github_api (~> 0.6)
|
6
6
|
thor
|
7
7
|
|
@@ -16,6 +16,9 @@ GEM
|
|
16
16
|
builder (3.0.0)
|
17
17
|
childprocess (0.3.2)
|
18
18
|
ffi (~> 1.0.6)
|
19
|
+
communist (0.1.0)
|
20
|
+
rack
|
21
|
+
sinatra
|
19
22
|
cucumber (1.2.1)
|
20
23
|
builder (>= 2.1.2)
|
21
24
|
diff-lcs (>= 1.1.3)
|
@@ -45,6 +48,8 @@ GEM
|
|
45
48
|
multi_json (~> 1.0)
|
46
49
|
rack (~> 1.4)
|
47
50
|
rack (1.4.1)
|
51
|
+
rack-protection (1.2.0)
|
52
|
+
rack
|
48
53
|
rake (0.9.2.2)
|
49
54
|
rspec (2.10.0)
|
50
55
|
rspec-core (~> 2.10.0)
|
@@ -54,13 +59,19 @@ GEM
|
|
54
59
|
rspec-expectations (2.10.0)
|
55
60
|
diff-lcs (~> 1.1.3)
|
56
61
|
rspec-mocks (2.10.1)
|
62
|
+
sinatra (1.3.2)
|
63
|
+
rack (~> 1.3, >= 1.3.6)
|
64
|
+
rack-protection (~> 1.2)
|
65
|
+
tilt (~> 1.3, >= 1.3.3)
|
57
66
|
thor (0.15.2)
|
67
|
+
tilt (1.3.3)
|
58
68
|
|
59
69
|
PLATFORMS
|
60
70
|
ruby
|
61
71
|
|
62
72
|
DEPENDENCIES
|
63
73
|
aruba
|
74
|
+
communist
|
64
75
|
github_cli!
|
65
76
|
rake
|
66
77
|
rspec
|
data/features/blob.feature
CHANGED
@@ -6,3 +6,19 @@ Feature: ghc blob
|
|
6
6
|
Then the exit status should be 0
|
7
7
|
And the output should contain "ghc blob get"
|
8
8
|
And the output should contain "ghc blob create"
|
9
|
+
|
10
|
+
Scenario: Get blob
|
11
|
+
Given the GitHub API server:
|
12
|
+
"""
|
13
|
+
get('/repos/wycats/thor/git/blobs/59b23de9b91d') { status 200 }
|
14
|
+
"""
|
15
|
+
When I run `ghc blob get wycats thor 59b23de9b91d`
|
16
|
+
Then the exit status should be 0
|
17
|
+
|
18
|
+
Scenario: Create blob
|
19
|
+
Given the GitHub API server:
|
20
|
+
"""
|
21
|
+
post('/repos/wycats/thor/git/blobs') { status 200 }
|
22
|
+
"""
|
23
|
+
When I run `ghc blob create wycats thor --params=content:'Content' encoding:'utf-8'`
|
24
|
+
Then the exit status should be 0
|
@@ -8,3 +8,36 @@ Feature: ghc collab
|
|
8
8
|
And the output should contain "ghc collab add"
|
9
9
|
And the output should contain "ghc collab collab"
|
10
10
|
And the output should contain "ghc collab remove"
|
11
|
+
|
12
|
+
Scenario: List collaborators
|
13
|
+
Given the GitHub API server:
|
14
|
+
"""
|
15
|
+
get('/repos/wycats/thor/collaborators') { status 200 }
|
16
|
+
"""
|
17
|
+
When I run `ghc collab ls wycats thor`
|
18
|
+
Then the exit status should be 0
|
19
|
+
|
20
|
+
Scenario: Add collaborator
|
21
|
+
Given the GitHub API server:
|
22
|
+
"""
|
23
|
+
put('/repos/wycats/thor/collaborators/octocat') { status 200 }
|
24
|
+
"""
|
25
|
+
When I run `ghc collab add wycats thor octocat`
|
26
|
+
Then the exit status should be 0
|
27
|
+
|
28
|
+
Scenario: Remove collaborator
|
29
|
+
Given the GitHub API server:
|
30
|
+
"""
|
31
|
+
delete('/repos/wycats/thor/collaborators/octocat') { status 200 }
|
32
|
+
"""
|
33
|
+
When I run `ghc collab remove wycats thor octocat`
|
34
|
+
Then the exit status should be 0
|
35
|
+
|
36
|
+
Scenario: Check if collaborator
|
37
|
+
Given the GitHub API server:
|
38
|
+
"""
|
39
|
+
delete('/repos/wycats/thor/collaborators/octocat') { status 200 }
|
40
|
+
"""
|
41
|
+
When I run `ghc collab collab wycats thor octocat`
|
42
|
+
Then the exit status should be 0
|
43
|
+
|
data/features/commit.feature
CHANGED
@@ -6,3 +6,19 @@ Feature: ghc commit
|
|
6
6
|
Then the exit status should be 0
|
7
7
|
And the output should contain "ghc commit get"
|
8
8
|
And the output should contain "ghc commit create"
|
9
|
+
|
10
|
+
Scenario: Get commit
|
11
|
+
Given the GitHub API server:
|
12
|
+
"""
|
13
|
+
get('/repos/wycats/thor/git/commits/59b23de9b91d') { status 200 }
|
14
|
+
"""
|
15
|
+
When I run `ghc commit get wycats thor 59b23de9b91d`
|
16
|
+
Then the exit status should be 0
|
17
|
+
|
18
|
+
Scenario: Create commit
|
19
|
+
Given the GitHub API server:
|
20
|
+
"""
|
21
|
+
post('/repos/wycats/thor/git/commits') { status 200 }
|
22
|
+
"""
|
23
|
+
When I run `ghc commit create wycats thor --params=message:'my commit' tree:827efc parents:['7d1b31e']`
|
24
|
+
Then the exit status should be 0
|
data/features/content.feature
CHANGED
@@ -7,3 +7,35 @@ Feature: ghc content
|
|
7
7
|
And the output should contain "ghc content get"
|
8
8
|
And the output should contain "ghc content readme"
|
9
9
|
And the output should contain "ghc content archive"
|
10
|
+
|
11
|
+
Scenario: Readme
|
12
|
+
Given the GitHub API server:
|
13
|
+
"""
|
14
|
+
get('/repos/wycats/thor/readme') { status 200 }
|
15
|
+
"""
|
16
|
+
When I run `ghc content readme wycats thor`
|
17
|
+
Then the exit status should be 0
|
18
|
+
|
19
|
+
Scenario: Get content
|
20
|
+
Given the GitHub API server:
|
21
|
+
"""
|
22
|
+
get('/repos/wycats/thor/contents/lib') { status 200 }
|
23
|
+
"""
|
24
|
+
When I run `ghc content get wycats thor lib`
|
25
|
+
Then the exit status should be 0
|
26
|
+
|
27
|
+
Scenario: Archive
|
28
|
+
Given the GitHub API server:
|
29
|
+
"""
|
30
|
+
get('/repos/wycats/thor/zipball/master') { status 200 }
|
31
|
+
"""
|
32
|
+
When I run `ghc content archive wycats thor`
|
33
|
+
Then the exit status should be 0
|
34
|
+
|
35
|
+
Scenario: Archive with params
|
36
|
+
Given the GitHub API server:
|
37
|
+
"""
|
38
|
+
get('/repos/wycats/thor/tarball/new_feature') { status 200 }
|
39
|
+
"""
|
40
|
+
When I run `ghc content archive wycats thor --params=archive_format:tarball ref:new_feature`
|
41
|
+
Then the exit status should be 0
|
data/features/download.feature
CHANGED
@@ -9,3 +9,35 @@ Feature: ghc download
|
|
9
9
|
And the output should contain "ghc download get"
|
10
10
|
And the output should contain "ghc download list"
|
11
11
|
And the output should contain "ghc download upload"
|
12
|
+
|
13
|
+
Scenario: List downloads
|
14
|
+
Given the GitHub API server:
|
15
|
+
"""
|
16
|
+
get('/repos/wycats/thor/downloads') { status 200 }
|
17
|
+
"""
|
18
|
+
When I run `ghc download ls wycats thor`
|
19
|
+
Then the exit status should be 0
|
20
|
+
|
21
|
+
Scenario: Get download
|
22
|
+
Given the GitHub API server:
|
23
|
+
"""
|
24
|
+
get('/repos/wycats/thor/downloads/1') { status 200 }
|
25
|
+
"""
|
26
|
+
When I run `ghc download get wycats thor 1`
|
27
|
+
Then the exit status should be 0
|
28
|
+
|
29
|
+
Scenario: Delete download
|
30
|
+
Given the GitHub API server:
|
31
|
+
"""
|
32
|
+
delete('/repos/wycats/thor/downloads/1') { status 200 }
|
33
|
+
"""
|
34
|
+
When I run `ghc download delete wycats thor 1`
|
35
|
+
Then the exit status should be 0
|
36
|
+
|
37
|
+
Scenario: Create download
|
38
|
+
Given the GitHub API server:
|
39
|
+
"""
|
40
|
+
post('/repos/wycats/thor/downloads') { status 200 }
|
41
|
+
"""
|
42
|
+
When I run `ghc download create wycats thor --params=name:octo.jpg size:113410`
|
43
|
+
Then the exit status should be 0
|
data/features/email.feature
CHANGED
@@ -7,3 +7,27 @@ Feature: ghc email
|
|
7
7
|
And the output should contain "ghc email delete"
|
8
8
|
And the output should contain "ghc email list"
|
9
9
|
And the output should contain "ghc email add"
|
10
|
+
|
11
|
+
Scenario: List emails
|
12
|
+
Given the GitHub API server:
|
13
|
+
"""
|
14
|
+
get('/user/emails') { status 200 }
|
15
|
+
"""
|
16
|
+
When I run `ghc email ls`
|
17
|
+
Then the exit status should be 0
|
18
|
+
|
19
|
+
Scenario: Add emails
|
20
|
+
Given the GitHub API server:
|
21
|
+
"""
|
22
|
+
post('/user/emails') { status 200 }
|
23
|
+
"""
|
24
|
+
When I run `ghc email add user@github.com`
|
25
|
+
Then the exit status should be 0
|
26
|
+
|
27
|
+
Scenario: Delete emails
|
28
|
+
Given the GitHub API server:
|
29
|
+
"""
|
30
|
+
delete('/user/emails') { status 200 }
|
31
|
+
"""
|
32
|
+
When I run `ghc email del user@github.com`
|
33
|
+
Then the exit status should be 0
|
data/features/errors.feature
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
Feature: ghc errors notification
|
2
2
|
|
3
|
+
@wip
|
3
4
|
Scenario: Unknown formatting option
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
6
|
+
# When I run `ghc repo list -u wycats --format=unknown`
|
7
|
+
# Then the exit status should be 1
|
8
|
+
# And the output should contain:
|
9
|
+
# """
|
10
|
+
# Fatal error has occurred. Unrecognized formatting options: unknown
|
11
|
+
# """
|
data/features/event.feature
CHANGED
@@ -12,3 +12,83 @@ Feature: ghc event
|
|
12
12
|
And the output should contain "ghc event received"
|
13
13
|
And the output should contain "ghc event repo"
|
14
14
|
And the output should contain "ghc event user_org"
|
15
|
+
|
16
|
+
Scenario: Public events
|
17
|
+
Given the GitHub API server:
|
18
|
+
"""
|
19
|
+
get('/events') { status 200 }
|
20
|
+
"""
|
21
|
+
When I run `ghc event public`
|
22
|
+
Then the exit status should be 0
|
23
|
+
|
24
|
+
Scenario: Repository events
|
25
|
+
Given the GitHub API server:
|
26
|
+
"""
|
27
|
+
get('/repos/wycats/thor/events') { status 200 }
|
28
|
+
"""
|
29
|
+
When I run `ghc event repo wycats thor`
|
30
|
+
Then the exit status should be 0
|
31
|
+
|
32
|
+
Scenario: Issue events
|
33
|
+
Given the GitHub API server:
|
34
|
+
"""
|
35
|
+
get('/repos/wycats/thor/issues/events') { status 200 }
|
36
|
+
"""
|
37
|
+
When I run `ghc event issue wycats thor`
|
38
|
+
Then the exit status should be 0
|
39
|
+
|
40
|
+
Scenario: Network events
|
41
|
+
Given the GitHub API server:
|
42
|
+
"""
|
43
|
+
get('/networks/wycats/thor/events') { status 200 }
|
44
|
+
"""
|
45
|
+
When I run `ghc event network wycats thor`
|
46
|
+
Then the exit status should be 0
|
47
|
+
|
48
|
+
Scenario: Organization events
|
49
|
+
Given the GitHub API server:
|
50
|
+
"""
|
51
|
+
get('/orgs/github/events') { status 200 }
|
52
|
+
"""
|
53
|
+
When I run `ghc event org github`
|
54
|
+
Then the exit status should be 0
|
55
|
+
|
56
|
+
Scenario: Received events
|
57
|
+
Given the GitHub API server:
|
58
|
+
"""
|
59
|
+
get('/users/wycats/received_events') { status 200 }
|
60
|
+
"""
|
61
|
+
When I run `ghc event received wycats`
|
62
|
+
Then the exit status should be 0
|
63
|
+
|
64
|
+
Scenario: Received public events
|
65
|
+
Given the GitHub API server:
|
66
|
+
"""
|
67
|
+
get('/users/wycats/received_events/public') { status 200 }
|
68
|
+
"""
|
69
|
+
When I run `ghc event received wycats --public`
|
70
|
+
Then the exit status should be 0
|
71
|
+
|
72
|
+
Scenario: Performed events
|
73
|
+
Given the GitHub API server:
|
74
|
+
"""
|
75
|
+
get('/users/wycats/events') { status 200 }
|
76
|
+
"""
|
77
|
+
When I run `ghc event performed wycats`
|
78
|
+
Then the exit status should be 0
|
79
|
+
|
80
|
+
Scenario: Performed public events
|
81
|
+
Given the GitHub API server:
|
82
|
+
"""
|
83
|
+
get('/users/wycats/events/public') { status 200 }
|
84
|
+
"""
|
85
|
+
When I run `ghc event performed wycats --public`
|
86
|
+
Then the exit status should be 0
|
87
|
+
|
88
|
+
Scenario: User organization events
|
89
|
+
Given the GitHub API server:
|
90
|
+
"""
|
91
|
+
get('/users/wycats/events/orgs/rails') { status 200 }
|
92
|
+
"""
|
93
|
+
When I run `ghc event user_org wycats rails`
|
94
|
+
Then the exit status should be 0
|
data/features/follower.feature
CHANGED
@@ -9,3 +9,51 @@ Feature: ghc follower
|
|
9
9
|
And the output should contain "ghc follower following"
|
10
10
|
And the output should contain "ghc follower list"
|
11
11
|
And the output should contain "ghc follower unfollow"
|
12
|
+
|
13
|
+
Scenario: List for user
|
14
|
+
Given the GitHub API server:
|
15
|
+
"""
|
16
|
+
get('/users/wycats/followers') { status 200 }
|
17
|
+
"""
|
18
|
+
When I run `ghc follower ls -u wycats`
|
19
|
+
Then the exit status should be 0
|
20
|
+
|
21
|
+
Scenario: List for the authenticated user
|
22
|
+
Given the GitHub API server:
|
23
|
+
"""
|
24
|
+
get('/user/followers') { status 200 }
|
25
|
+
"""
|
26
|
+
When I run `ghc follower ls`
|
27
|
+
Then the exit status should be 0
|
28
|
+
|
29
|
+
Scenario: Follower
|
30
|
+
Given the GitHub API server:
|
31
|
+
"""
|
32
|
+
get('/users/following/wycats') { status 200 }
|
33
|
+
"""
|
34
|
+
When I run `ghc follower follower wycats`
|
35
|
+
Then the exit status should be 0
|
36
|
+
|
37
|
+
Scenario: Following
|
38
|
+
Given the GitHub API server:
|
39
|
+
"""
|
40
|
+
get('/users/wycats/following') { status 200 }
|
41
|
+
"""
|
42
|
+
When I run `ghc follower following -u wycats`
|
43
|
+
Then the exit status should be 0
|
44
|
+
|
45
|
+
Scenario: Follow
|
46
|
+
Given the GitHub API server:
|
47
|
+
"""
|
48
|
+
put('/user/following/wycats') { status 200 }
|
49
|
+
"""
|
50
|
+
When I run `ghc follower follow wycats`
|
51
|
+
Then the exit status should be 0
|
52
|
+
|
53
|
+
Scenario: Unfollow
|
54
|
+
Given the GitHub API server:
|
55
|
+
"""
|
56
|
+
delete('/user/following/wycats') { status 200 }
|
57
|
+
"""
|
58
|
+
When I run `ghc follower unfollow wycats`
|
59
|
+
Then the exit status should be 0
|
data/features/fork.feature
CHANGED
@@ -7,7 +7,18 @@ Feature: ghc fork
|
|
7
7
|
And the output should contain "ghc fork create"
|
8
8
|
And the output should contain "ghc fork list"
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
Scenario: List forks
|
11
|
+
Given the GitHub API server:
|
12
|
+
"""
|
13
|
+
get('/repos/wycats/thor/forks') { status 200 }
|
14
|
+
"""
|
15
|
+
When I run `ghc fork ls wycats thor`
|
16
|
+
Then the exit status should be 0
|
17
|
+
|
18
|
+
Scenario: Create fork
|
19
|
+
Given the GitHub API server:
|
20
|
+
"""
|
21
|
+
post('/repos/wycats/thor/forks') { status 200 }
|
22
|
+
"""
|
23
|
+
When I run `ghc fork create wycats thor`
|
24
|
+
Then the exit status should be 0
|
data/features/gist.feature
CHANGED
@@ -13,3 +13,91 @@ Feature: ghc gist
|
|
13
13
|
And the output should contain "ghc gist star"
|
14
14
|
And the output should contain "ghc gist starred"
|
15
15
|
And the output should contain "ghc gist unstar"
|
16
|
+
|
17
|
+
Scenario: List gists for user
|
18
|
+
Given the GitHub API server:
|
19
|
+
"""
|
20
|
+
get('/users/wycats/gists') { status 200 }
|
21
|
+
"""
|
22
|
+
When I run `ghc gist ls -u wycats`
|
23
|
+
Then the exit status should be 0
|
24
|
+
|
25
|
+
Scenario: List starred gists for the authenticated user
|
26
|
+
Given the GitHub API server:
|
27
|
+
"""
|
28
|
+
get('/gists/starred') { status 200 }
|
29
|
+
"""
|
30
|
+
When I run `ghc gist ls --starred`
|
31
|
+
Then the exit status should be 0
|
32
|
+
|
33
|
+
Scenario: List public gists for the authenticated user
|
34
|
+
Given the GitHub API server:
|
35
|
+
"""
|
36
|
+
get('/gists/public') { status 200 }
|
37
|
+
"""
|
38
|
+
When I run `ghc gist ls`
|
39
|
+
Then the exit status should be 0
|
40
|
+
|
41
|
+
Scenario: Get gist
|
42
|
+
Given the GitHub API server:
|
43
|
+
"""
|
44
|
+
get('/gists/1') { status 200 }
|
45
|
+
"""
|
46
|
+
When I run `ghc gist get 1`
|
47
|
+
Then the exit status should be 0
|
48
|
+
|
49
|
+
Scenario: Create gist
|
50
|
+
Given the GitHub API server:
|
51
|
+
"""
|
52
|
+
post('/gists') { status 200 }
|
53
|
+
"""
|
54
|
+
When I run `ghc gist create --params=description:'desc' public:true files:'file' content:'string'`
|
55
|
+
Then the exit status should be 0
|
56
|
+
|
57
|
+
Scenario: Edit gist
|
58
|
+
Given the GitHub API server:
|
59
|
+
"""
|
60
|
+
patch('/gists/1') { status 200 }
|
61
|
+
"""
|
62
|
+
When I run `ghc gist edit`
|
63
|
+
Then the exit status should be 0
|
64
|
+
|
65
|
+
Scenario: Star gist
|
66
|
+
Given the GitHub API server:
|
67
|
+
"""
|
68
|
+
put('/gists/1/star') { status 200 }
|
69
|
+
"""
|
70
|
+
When I run `ghc gist star 1`
|
71
|
+
Then the exit status should be 0
|
72
|
+
|
73
|
+
Scenario: Unstar gist
|
74
|
+
Given the GitHub API server:
|
75
|
+
"""
|
76
|
+
delete('/gists/1/star') { status 200 }
|
77
|
+
"""
|
78
|
+
When I run `ghc gist unstar 1`
|
79
|
+
Then the exit status should be 0
|
80
|
+
|
81
|
+
Scenario: Starred gist
|
82
|
+
Given the GitHub API server:
|
83
|
+
"""
|
84
|
+
get('/gists/1/star') { status 200 }
|
85
|
+
"""
|
86
|
+
When I run `ghc gist starred 1`
|
87
|
+
Then the exit status should be 0
|
88
|
+
|
89
|
+
Scenario: Fork gist
|
90
|
+
Given the GitHub API server:
|
91
|
+
"""
|
92
|
+
post('/gists/1/fork') { status 200 }
|
93
|
+
"""
|
94
|
+
When I run `ghc gist fork 1`
|
95
|
+
Then the exit status should be 0
|
96
|
+
|
97
|
+
Scenario: Delete gist
|
98
|
+
Given the GitHub API server:
|
99
|
+
"""
|
100
|
+
delete('/gists/1') { status 200 }
|
101
|
+
"""
|
102
|
+
When I run `ghc gist del 1`
|
103
|
+
Then the exit status should be 0
|
data/features/hook.feature
CHANGED
@@ -10,3 +10,52 @@ Feature: ghc hook
|
|
10
10
|
And the output should contain "ghc hook get"
|
11
11
|
And the output should contain "ghc hook list"
|
12
12
|
And the output should contain "ghc hook test"
|
13
|
+
|
14
|
+
Scenario: List hooks
|
15
|
+
Given the GitHub API server:
|
16
|
+
"""
|
17
|
+
get('/repos/wycats/thor/hooks') { status 200 }
|
18
|
+
"""
|
19
|
+
When I run `ghc hook ls wycats thor`
|
20
|
+
Then the exit status should be 0
|
21
|
+
|
22
|
+
Scenario: Get hook
|
23
|
+
Given the GitHub API server:
|
24
|
+
"""
|
25
|
+
get('/repos/wycats/thor/hooks/1') { status 200 }
|
26
|
+
"""
|
27
|
+
When I run `ghc hook get wycats thor 1`
|
28
|
+
Then the exit status should be 0
|
29
|
+
|
30
|
+
Scenario: Create hook
|
31
|
+
Given the GitHub API server:
|
32
|
+
"""
|
33
|
+
post('/repos/wycats/thor/hooks') { status 200 }
|
34
|
+
"""
|
35
|
+
When I run `ghc hook create wycats thor --params=name:web config:{}`
|
36
|
+
Then the exit status should be 0
|
37
|
+
|
38
|
+
Scenario: Edit hook
|
39
|
+
Given the GitHub API server:
|
40
|
+
"""
|
41
|
+
patch('/repos/wycats/thor/hooks/1') { status 200 }
|
42
|
+
"""
|
43
|
+
When I run `ghc hook edit wycats thor 1 --params=name:web config:{}`
|
44
|
+
Then the exit status should be 0
|
45
|
+
|
46
|
+
Scenario: Test hook
|
47
|
+
Given the GitHub API server:
|
48
|
+
"""
|
49
|
+
post('/repos/wycats/thor/hooks/1/test') { status 200 }
|
50
|
+
"""
|
51
|
+
When I run `ghc hook test wycats thor 1`
|
52
|
+
Then the exit status should be 0
|
53
|
+
|
54
|
+
Scenario: Delete hook
|
55
|
+
Given the GitHub API server:
|
56
|
+
"""
|
57
|
+
delete('/repos/wycats/thor/hooks/1') { status 200 }
|
58
|
+
"""
|
59
|
+
When I run `ghc hook del wycats thor 1`
|
60
|
+
Then the exit status should be 0
|
61
|
+
|
data/features/label.feature
CHANGED
@@ -14,3 +14,92 @@ Feature: ghc label
|
|
14
14
|
And the output should contain "ghc label remove"
|
15
15
|
And the output should contain "ghc label replace"
|
16
16
|
And the output should contain "ghc label update"
|
17
|
+
|
18
|
+
Scenario: List labels
|
19
|
+
Given the GitHub API server:
|
20
|
+
"""
|
21
|
+
get('/repos/wycats/thor/labels') { status 200 }
|
22
|
+
"""
|
23
|
+
When I run `ghc label ls wycats thor`
|
24
|
+
Then the exit status should be 0
|
25
|
+
|
26
|
+
Scenario: Get label
|
27
|
+
Given the GitHub API server:
|
28
|
+
"""
|
29
|
+
get('/repos/wycats/thor/labels/1') { status 200 }
|
30
|
+
"""
|
31
|
+
When I run `ghc label get wycats thor 1`
|
32
|
+
Then the exit status should be 0
|
33
|
+
|
34
|
+
Scenario: Create label
|
35
|
+
Given the GitHub API server:
|
36
|
+
"""
|
37
|
+
post('/repos/wycats/thor/labels') { status 200 }
|
38
|
+
"""
|
39
|
+
When I run `ghc label create wycats thor --params=name:bug color:f3f3f3`
|
40
|
+
Then the exit status should be 0
|
41
|
+
|
42
|
+
Scenario: Update label
|
43
|
+
Given the GitHub API server:
|
44
|
+
"""
|
45
|
+
patch('/repos/wycats/thor/labels/1') { status 200 }
|
46
|
+
"""
|
47
|
+
When I run `ghc label update wycats thor 1 --params=name:bug color:f3f3f3`
|
48
|
+
Then the exit status should be 0
|
49
|
+
|
50
|
+
Scenario: Delete label
|
51
|
+
Given the GitHub API server:
|
52
|
+
"""
|
53
|
+
delete('/repos/wycats/thor/labels/1') { status 200 }
|
54
|
+
"""
|
55
|
+
When I run `ghc label delete wycats thor 1`
|
56
|
+
Then the exit status should be 0
|
57
|
+
|
58
|
+
Scenario: Add labels
|
59
|
+
Given the GitHub API server:
|
60
|
+
"""
|
61
|
+
post('/repos/wycats/thor/issues/1/labels') { status 200 }
|
62
|
+
"""
|
63
|
+
When I run `ghc label add wycats thor 1 'bug' 'feature'`
|
64
|
+
Then the exit status should be 0
|
65
|
+
|
66
|
+
Scenario: Remove label from an issue
|
67
|
+
Given the GitHub API server:
|
68
|
+
"""
|
69
|
+
delete('/repos/wycats/thor/issues/1/labels/2') { status 200 }
|
70
|
+
"""
|
71
|
+
When I run `ghc label remove wycats thor 2/1`
|
72
|
+
Then the exit status should be 0
|
73
|
+
|
74
|
+
Scenario: Remove label from an issue
|
75
|
+
Given the GitHub API server:
|
76
|
+
"""
|
77
|
+
delete('/repos/wycats/thor/issues/1/labels/2') { status 200 }
|
78
|
+
"""
|
79
|
+
When I run `ghc label remove wycats thor 2/1`
|
80
|
+
Then the exit status should be 0
|
81
|
+
|
82
|
+
Scenario: Remove all labels from an issue
|
83
|
+
Given the GitHub API server:
|
84
|
+
"""
|
85
|
+
delete('/repos/wycats/thor/issues/1/labels') { status 200 }
|
86
|
+
"""
|
87
|
+
When I run `ghc label remove wycats thor 1`
|
88
|
+
Then the exit status should be 0
|
89
|
+
|
90
|
+
Scenario: Replace labels
|
91
|
+
Given the GitHub API server:
|
92
|
+
"""
|
93
|
+
put('/repos/wycats/thor/issues/1/labels') { status 200 }
|
94
|
+
"""
|
95
|
+
When I run `ghc label replace wycats thor 1 'bug' 'feature'`
|
96
|
+
Then the exit status should be 0
|
97
|
+
|
98
|
+
Scenario: Milestone labels
|
99
|
+
Given the GitHub API server:
|
100
|
+
"""
|
101
|
+
get('/repos/wycats/thor/milestones/1/labels') { status 200 }
|
102
|
+
"""
|
103
|
+
When I run `ghc label milestone wycats thor 1`
|
104
|
+
Then the exit status should be 0
|
105
|
+
|
data/features/support/env.rb
CHANGED
data/features/support/hooks.rb
CHANGED
data/github_cli.gemspec
CHANGED
data/lib/github_cli/api.rb
CHANGED
@@ -22,6 +22,10 @@ module GithubCLI
|
|
22
22
|
@@api = Github.new
|
23
23
|
@@api.oauth_token = GithubCLI.config['oauth_token']
|
24
24
|
@@api.basic_auth = GithubCLI.config['basic_auth']
|
25
|
+
puts "#{ENV['TEST_HOST']}"
|
26
|
+
if ENV['TEST_HOST']
|
27
|
+
@@api.endpoint = 'http://' + ENV['TEST_HOST']
|
28
|
+
end
|
25
29
|
@@api
|
26
30
|
end
|
27
31
|
|
data/lib/github_cli/apis.rb
CHANGED
data/lib/github_cli/apis/blob.rb
CHANGED
@@ -5,65 +5,63 @@ module GithubCLI
|
|
5
5
|
|
6
6
|
class << self
|
7
7
|
|
8
|
-
def all(params, format)
|
8
|
+
def all(user, repo, params, format)
|
9
9
|
output format do
|
10
|
-
github_api.issues.labels params
|
10
|
+
github_api.issues.labels.list user, repo, params
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
def get(user, repo, name, params, format)
|
15
15
|
output format do
|
16
|
-
github_api.issues.
|
16
|
+
github_api.issues.labels.get user, repo, name, params
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
def create(user, repo, params, format)
|
21
21
|
output format do
|
22
|
-
github_api.issues.
|
22
|
+
github_api.issues.labels.create user, repo, params
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
def update(user, repo, name, params, format)
|
27
27
|
output format do
|
28
|
-
github_api.issues.
|
28
|
+
github_api.issues.labels.update user, repo, name, params
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
32
|
def delete(user, repo, name, params, format)
|
33
33
|
output format do
|
34
|
-
github_api.issues.
|
34
|
+
github_api.issues.labels.delete user, repo, name, params
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
-
def issue(user, repo,
|
38
|
+
def issue(user, repo, issue_id, params, format)
|
39
39
|
output format do
|
40
|
-
github_api.issues.
|
40
|
+
github_api.issues.labels.issue user, repo, issue_id, params
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
-
def add(user, repo,
|
45
|
-
|
46
|
-
|
47
|
-
github_api.issues.add_labels user, repo, args
|
44
|
+
def add(user, repo, issue_id, *args, params, format)
|
45
|
+
output format do
|
46
|
+
github_api.issues.labels.add user, repo, issue_id, *args, params
|
48
47
|
end
|
49
48
|
end
|
50
49
|
|
51
|
-
def remove(user, repo,
|
50
|
+
def remove(user, repo, issue_id, label_id, params, format)
|
52
51
|
output format do
|
53
|
-
github_api.issues.
|
52
|
+
github_api.issues.labels.remove user, repo, issue_id, label_id, params
|
54
53
|
end
|
55
54
|
end
|
56
55
|
|
57
|
-
def replace(user, repo,
|
58
|
-
|
59
|
-
|
60
|
-
github_api.issues.replace_labels user, repo, number, args
|
56
|
+
def replace(user, repo, issue_id, *args, params, format)
|
57
|
+
output format do
|
58
|
+
github_api.issues.labels.replace user, repo, issue_id, *args, params
|
61
59
|
end
|
62
60
|
end
|
63
61
|
|
64
62
|
def milestone(user, repo, number, params, format)
|
65
63
|
output format do
|
66
|
-
|
64
|
+
github_api.issues.labels.milestone user, repo, number, params
|
67
65
|
end
|
68
66
|
end
|
69
67
|
end
|
@@ -22,7 +22,7 @@ module GithubCLI
|
|
22
22
|
|
23
23
|
desc 'remove <user> <repo> <id>', 'Remove a collaborator'
|
24
24
|
def remove(user, repo, collab)
|
25
|
-
Collaborator.remove user, repo, collab, options[:params]
|
25
|
+
Collaborator.remove user, repo, collab, options[:params], options[:format]
|
26
26
|
end
|
27
27
|
|
28
28
|
end # Collaborators
|
@@ -23,7 +23,7 @@ module GithubCLI
|
|
23
23
|
|
24
24
|
desc 'follower <user>', 'Check if you are following a user'
|
25
25
|
def follower(user)
|
26
|
-
Follower.
|
26
|
+
Follower.follower user, options[:params], options[:format]
|
27
27
|
end
|
28
28
|
|
29
29
|
desc 'follow <user>', 'Follow a user'
|
@@ -13,12 +13,14 @@ module GithubCLI
|
|
13
13
|
:default => false,
|
14
14
|
:desc => 'List the authenticated users starred gists'
|
15
15
|
def list
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
if options[:starred]
|
17
|
+
Gist.starred options[:params], options[:format]
|
18
|
+
else
|
19
|
+
if options[:user]
|
20
|
+
options[:params]['user'] = options[:user]
|
21
|
+
end
|
22
|
+
Gist.all options[:params], options[:format]
|
20
23
|
end
|
21
|
-
Gist.all options[:params], options[:format]
|
22
24
|
end
|
23
25
|
|
24
26
|
desc 'get <id>', 'Get a single gist'
|
@@ -40,25 +40,20 @@ module GithubCLI
|
|
40
40
|
Label.issue user, repo, number, options[:params], options[:format]
|
41
41
|
end
|
42
42
|
|
43
|
-
desc 'add <user> <repo> <
|
44
|
-
|
45
|
-
|
46
|
-
def add(user, repo, number)
|
47
|
-
Label.add user, repo, number, options[:labels], options[:params]
|
43
|
+
desc 'add <user> <repo> <issue_id> <label>[<label>...]', 'Add labels to <issue_id>.'
|
44
|
+
def add(user, repo, issue_id, *args)
|
45
|
+
Label.add user, repo, issue_id, *args, options[:params], options[:format]
|
48
46
|
end
|
49
47
|
|
50
|
-
desc 'remove <user> <repo> <
|
51
|
-
method_option :name, :type => :string, :default => nil,
|
52
|
-
:desc => 'Label name'
|
48
|
+
desc 'remove <user> <repo> [<label_id>/]<issue_id>', 'Remove <label_id> from an <issue_id>'
|
53
49
|
def remove(user, repo, number)
|
54
|
-
|
50
|
+
label_id, issue_id = Arguments.new(number).parse
|
51
|
+
Label.remove user, repo, issue_id, label_id, options[:params], options[:format]
|
55
52
|
end
|
56
53
|
|
57
|
-
desc 'replace <user> <repo> <
|
58
|
-
|
59
|
-
|
60
|
-
def replace(user, repo, number)
|
61
|
-
Label.replace user, repo, number, options[:labels], options[:params]
|
54
|
+
desc 'replace <user> <repo> <issue_id> <label>[<label>...]', 'Replace all labels for an <issue_id>.'
|
55
|
+
def replace(user, repo, issue_id, *args)
|
56
|
+
Label.replace user, repo, issue_id, *args, options[:params], options[:format]
|
62
57
|
end
|
63
58
|
|
64
59
|
desc 'milestone <user> <repo> <number>', 'Get labels for every issue in a milestone.'
|
data/lib/github_cli/version.rb
CHANGED
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.4.
|
4
|
+
version: 0.4.3
|
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: 2012-07-
|
12
|
+
date: 2012-07-14 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: github_api
|
16
|
-
requirement: &
|
16
|
+
requirement: &2153314780 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0.6'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2153314780
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: thor
|
27
|
-
requirement: &
|
27
|
+
requirement: &2153314140 !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: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2153314140
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &2153313280 !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: *2153313280
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: aruba
|
49
|
-
requirement: &
|
49
|
+
requirement: &2153312620 !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: *2153312620
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rake
|
60
|
-
requirement: &
|
60
|
+
requirement: &2153311820 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,18 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2153311820
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: communist
|
71
|
+
requirement: &2153311020 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *2153311020
|
69
80
|
description: CLI-based access to GitHub API v3
|
70
81
|
email:
|
71
82
|
- ''
|