github_cli 0.4.4 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. data/.gitignore +1 -0
  2. data/.travis.yml +0 -2
  3. data/CHANGELOG.md +14 -0
  4. data/Gemfile.lock +9 -3
  5. data/README.md +68 -48
  6. data/Rakefile +47 -1
  7. data/bin/gcli +18 -0
  8. data/bin/ghc +1 -17
  9. data/features/blob.feature +6 -6
  10. data/features/collaborator.feature +10 -10
  11. data/features/commit.feature +6 -6
  12. data/features/completion.feature +3 -3
  13. data/features/config.feature +55 -0
  14. data/features/content.feature +9 -9
  15. data/features/download.feature +11 -11
  16. data/features/email.feature +8 -8
  17. data/features/errors.feature +11 -9
  18. data/features/event.feature +20 -20
  19. data/features/executable.feature +4 -4
  20. data/features/follower.feature +13 -13
  21. data/features/fork.feature +6 -6
  22. data/features/gist.feature +22 -22
  23. data/features/hook.feature +14 -14
  24. data/features/init.feature +48 -0
  25. data/features/issue.feature +12 -12
  26. data/features/key.feature +12 -12
  27. data/features/label.feature +23 -23
  28. data/features/member.feature +13 -13
  29. data/features/milestone.feature +12 -12
  30. data/features/organization.feature +9 -9
  31. data/features/pull_request.feature +18 -18
  32. data/features/reference.feature +13 -13
  33. data/features/repository.feature +20 -20
  34. data/features/search.feature +10 -10
  35. data/features/search_commands.feature +4 -4
  36. data/features/support/hooks.rb +3 -1
  37. data/features/tag.feature +6 -6
  38. data/features/team.feature +28 -28
  39. data/features/tree.feature +5 -5
  40. data/features/usage.feature +3 -3
  41. data/features/user.feature +7 -7
  42. data/features/watching.feature +13 -13
  43. data/fixtures/simple_config +9 -8
  44. data/github_cli.gemspec +2 -2
  45. data/lib/github_cli/api.rb +3 -3
  46. data/lib/github_cli/cli.rb +96 -17
  47. data/lib/github_cli/config.rb +30 -9
  48. data/lib/github_cli/editor.rb +11 -6
  49. data/lib/github_cli/man/gcli-config.1 +102 -0
  50. data/lib/github_cli/man/gcli-config.1.txt +96 -0
  51. data/lib/github_cli/man/gcli-repo.1 +16 -0
  52. data/lib/github_cli/man/gcli-repo.1.txt +15 -0
  53. data/lib/github_cli/man/gcli.1 +34 -0
  54. data/lib/github_cli/man/gcli.1.txt +33 -0
  55. data/lib/github_cli/manpage.rb +42 -0
  56. data/lib/github_cli/pager.rb +1 -1
  57. data/lib/github_cli/terminal.rb +8 -2
  58. data/lib/github_cli/thor_ext.rb +12 -1
  59. data/lib/github_cli/vendor.rb +10 -0
  60. data/lib/github_cli/version.rb +1 -1
  61. data/lib/github_cli.rb +7 -2
  62. data/man/gcli-config.1.ronn +82 -0
  63. data/man/gcli-repo.1.ronn +7 -0
  64. data/man/gcli.1.ronn +29 -0
  65. data/spec/github_cli/config_spec.rb +21 -7
  66. metadata +43 -22
  67. data/features/settings.feature +0 -35
data/.gitignore CHANGED
@@ -7,3 +7,4 @@ pkg
7
7
  *.swp
8
8
  log
9
9
  *.sqlite3
10
+ lib/github_cli/man
data/.travis.yml CHANGED
@@ -3,11 +3,9 @@ before_install:
3
3
  matrix:
4
4
  allow_failures:
5
5
  - rvm: ruby-head
6
- - rvm: rbx-19mode
7
6
  rvm:
8
7
  - 1.9.2
9
8
  - 1.9.3
10
- - rbx-19mode
11
9
  - ruby-head
12
10
  branches:
13
11
  only: master
data/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ 0.5.0 (August 17, 2012) - IMPORTANT!!!
2
+
3
+ * Change editor settings to seek first local config before system properties.
4
+ * Change config key format and add config file location setup.
5
+ * Change init command to allow for local and global config files.
6
+ * Add new default configuration options to .githubrc file.
7
+ * Fix bug with setting config file options.
8
+ * Add pretty printing of config entries with pattern matching.
9
+ * Add config command for setting, unsetting and listing of options with tests.
10
+ * Change executable command name from *ghc* to *gcli*
11
+ * Add manpages for gcli executable and config command.
12
+ * Setup automatic manpage trigger on help command.
13
+ * Add raketask for vendoring gems and vendor thor.
14
+
1
15
  0.4.4 (July 15, 2012)
2
16
 
3
17
  * Fix bug with tree retrieval and add feature tests.
data/Gemfile.lock CHANGED
@@ -1,9 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- github_cli (0.4.4)
4
+ github_cli (0.5.0)
5
5
  github_api (~> 0.6)
6
- thor
7
6
 
8
7
  GEM
9
8
  remote: https://rubygems.org/
@@ -37,10 +36,12 @@ GEM
37
36
  nokogiri (~> 1.5.2)
38
37
  oauth2
39
38
  hashie (1.2.0)
39
+ hpricot (0.8.6)
40
40
  httpauth (0.1)
41
41
  json (1.7.3)
42
42
  multi_json (1.3.6)
43
43
  multipart-post (1.1.5)
44
+ mustache (0.99.4)
44
45
  nokogiri (1.5.3)
45
46
  oauth2 (0.7.1)
46
47
  faraday (~> 0.8)
@@ -51,6 +52,11 @@ GEM
51
52
  rack-protection (1.2.0)
52
53
  rack
53
54
  rake (0.9.2.2)
55
+ rdiscount (1.6.8)
56
+ ronn (0.7.3)
57
+ hpricot (>= 0.8.2)
58
+ mustache (>= 0.7.0)
59
+ rdiscount (>= 1.5.8)
54
60
  rspec (2.10.0)
55
61
  rspec-core (~> 2.10.0)
56
62
  rspec-expectations (~> 2.10.0)
@@ -63,7 +69,6 @@ GEM
63
69
  rack (~> 1.3, >= 1.3.6)
64
70
  rack-protection (~> 1.2)
65
71
  tilt (~> 1.3, >= 1.3.3)
66
- thor (0.15.2)
67
72
  tilt (1.3.3)
68
73
 
69
74
  PLATFORMS
@@ -74,4 +79,5 @@ DEPENDENCIES
74
79
  communist
75
80
  github_cli!
76
81
  rake
82
+ ronn
77
83
  rspec
data/README.md CHANGED
@@ -26,41 +26,61 @@ Or install it yourself as:
26
26
  Run it:
27
27
 
28
28
  ```shell
29
- $ ghc
29
+ $ gcli
30
30
  ```
31
31
 
32
32
  ### Initialize a configuration file
33
33
 
34
- The first step is to create a configuration file:
34
+ The first step is to create a configuration file, either global in home directory or local inside the project:
35
35
 
36
36
  ```shell
37
- $ ghc init
37
+ $ gcli init [--global|--local]
38
38
  ```
39
39
 
40
- This will setup a `.githubrc` configuration file in your home directory with
41
- all the global settings. During the install process you will be prompted for your
42
- `authentication token`.
40
+ This will setup a `.githubrc` configuration file in your home/project directory
41
+ with all the global settings. During the install process you will be prompted
42
+ for your `authentication token`.
43
+
44
+ Moreover, `gcli config` command allows you to set/get any configuration option such as output format, editor or oauth token.
45
+
46
+ For instance, to check value for your `token` do
47
+
48
+ ```shell
49
+ $ gcli config [--global|--local] auth.token
50
+ ```
51
+
52
+ and to set the value do
53
+
54
+ ```shell
55
+ $ gcli config [--global|--local] auth.token lh23l4kj234....
56
+ ```
57
+
58
+ To list specific options
59
+
60
+ ```shell
61
+ $ gcli config [--global|--local] --list [regex]
62
+ ```
43
63
 
44
64
  ### Arguments
45
65
 
46
- The required arguments come first as per command description, then follow the optional arguments inside a `params` flag.
66
+ The required arguments come first as per command description, then are followed by the optional arguments supplied inside a `params` flag.
47
67
 
48
- You can create repository by supplying parameters in the following way:
68
+ For instance, one can create repository by supplying parameters in the following way:
49
69
 
50
70
  ```shell
51
- ghc repo create octokit --params=description:'Test repo for kitty.'
71
+ $ gcli repo create octokit --params=description:'Test repo for kitty.'
52
72
  ```
53
73
 
54
74
  To create repository inside organization:
55
75
 
56
76
  ```shell
57
- ghc repo create github/octokit --params=description:'Test repo for kitty.'
77
+ $ gcli repo create github/octokit --params=description:'Test repo for kitty.'
58
78
  ```
59
79
 
60
- To find out which options are required and optional type:
80
+ To find out which options are required and which are optional - type:
61
81
 
62
82
  ```shell
63
- ghc repo help create
83
+ $ gcli repo help create
64
84
  ```
65
85
 
66
86
  ### Getting a list of commands
@@ -68,13 +88,13 @@ ghc repo help create
68
88
  You can list all GitHub APIs comamnds:
69
89
 
70
90
  ```shell
71
- $ ghc list
91
+ $ gcli list
72
92
  ```
73
93
 
74
94
  to limit returned results pass `pattern`
75
95
 
76
96
  ```shell
77
- $ ghc list re* # Returns all commands matching the pattern
97
+ $ gcli list re* # Returns all commands matching the pattern
78
98
  ```
79
99
 
80
100
  ### Output Format
@@ -84,19 +104,19 @@ The API responses can be formatted as `csv`, `json`, `pretty`, `table`.
84
104
  By default responses are in tabular format. Tables are available in `horizontal` and `vertical` mode. To enforce table display pass `:h` and `:v` respectively. Otherwise a default orientation will be picked depending on the request made and terminal size.
85
105
 
86
106
  ```shell
87
- ghc user get -u peter-murach --format=table:h
107
+ gcli user get -u peter-murach --format=table:h
88
108
 
89
- ┏━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳
90
- ┃ type ┃ login ┃ public_… ┃ blog ┃ hireable ┃ followe… ┃ followi… ┃ location ┃ html_url ┃ name ┃
91
- ┣━━━━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━╋
92
- ┃ User ┃ peter-m… ┃ 14 ┃ peter-m… ┃ false ┃ 18 ┃ 52 ┃ Sheffie… ┃ https:/… ┃ Piotr M… ┃
93
- ┗━━━━━━━━━━┻━━━━━━━━━━┻━━━━━━━━━━┻━━━━━━━━━━┻━━━━━━━━━━┻━━━━━━━━━━┻━━━━━━━━━━┻━━━━━━━━━━┻━━━━━━━━━━┻━━━━━━━━━━┻
109
+ ┏━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳
110
+ ┃ type ┃ login ┃ public_… ┃ blog ┃ hireable ┃ followe… ┃ followi… ┃ location ┃ html_url ┃
111
+ ┣━━━━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━╋━━━━━━━━━━╋
112
+ ┃ User ┃ peter-m… ┃ 14 ┃ peter-m… ┃ false ┃ 18 ┃ 52 ┃ Sheffie… ┃ https:/… ┃
113
+ ┗━━━━━━━━━━┻━━━━━━━━━━┻━━━━━━━━━━┻━━━━━━━━━━┻━━━━━━━━━━┻━━━━━━━━━━┻━━━━━━━━━━┻━━━━━━━━━━┻━━━━━━━━━━┻
94
114
  ```
95
115
 
96
116
  To get `csv` formatting for easy command piping do
97
117
 
98
118
  ```shell
99
- ghc repo ls -u wycats --format=csv
119
+ gcli repo ls -u wycats --format=csv
100
120
  ```
101
121
 
102
122
  ### Output Paging
@@ -104,7 +124,7 @@ ghc repo ls -u wycats --format=csv
104
124
  By default all responses are paged. You can switch off paging by supplying `no-pager` flag.
105
125
 
106
126
  ```shell
107
- ghc --no-pager user ls -u wycats
127
+ gcli --no-pager user ls -u wycats
108
128
  ```
109
129
 
110
130
  Also you can supply you preferred `pager`, otherwise the paging program is taken from environment variable PAGER if defined or defaults to "less".
@@ -114,67 +134,67 @@ Also you can supply you preferred `pager`, otherwise the paging program is taken
114
134
  Interact with git data:
115
135
 
116
136
  ```shell
117
- $ ghc blob
118
- $ ghc commit
119
- $ ghc ref
120
- $ ghc tag
121
- $ ghc tree
137
+ $ gcli blob
138
+ $ gcli commit
139
+ $ gcli ref
140
+ $ gcli tag
141
+ $ gcli tree
122
142
  ```
123
143
 
124
144
  Interact with issues:
125
145
 
126
146
  ```shell
127
- $ ghc issue
128
- $ ghc label
129
- $ ghc milestone
130
- $ ghc comment
147
+ $ gcli issue
148
+ $ gcli label
149
+ $ gcli milestone
150
+ $ gcli comment
131
151
  ```
132
152
 
133
153
  Interact with repositories:
134
154
 
135
155
  ```shell
136
- $ ghc repo
137
- $ ghc collab
138
- $ ghc content
139
- $ ghc download
140
- $ ghc fork
141
- $ ghc hook
142
- $ ghc key
143
- $ ghc watching
156
+ $ gcli repo
157
+ $ gcli collab
158
+ $ gcli content
159
+ $ gcli download
160
+ $ gcli fork
161
+ $ gcli hook
162
+ $ gcli key
163
+ $ gcli watching
144
164
  ```
145
165
 
146
166
  Interact with gists:
147
167
 
148
168
  ```shell
149
- $ ghc gist
169
+ $ gcli gist
150
170
  ```
151
171
 
152
172
  Interact with users:
153
173
 
154
174
  ```shell
155
- $ ghc user
156
- $ ghc email
157
- $ ghc follower
175
+ $ gcli user
176
+ $ gcli email
177
+ $ gcli follower
158
178
  ```
159
179
 
160
180
  Interact with organizations:
161
181
 
162
182
  ```shell
163
- $ ghc org
164
- $ ghc member
165
- $ ghc team
183
+ $ gcli org
184
+ $ gcli member
185
+ $ gcli team
166
186
  ```
167
187
 
168
188
  Interact with authorizations:
169
189
 
170
190
  ```shell
171
- $ ghc auth
191
+ $ gcli auth
172
192
  ```
173
193
 
174
194
  Interact with search:
175
195
 
176
196
  ```shell
177
- $ ghc search
197
+ $ gcli search
178
198
  ```
179
199
 
180
200
  ## Contributing
data/Rakefile CHANGED
@@ -1,4 +1,5 @@
1
- #!/usr/bin/env rake
1
+ # -*- encoding: utf-8 -*-
2
+ $:.unshift File.expand_path('../lib', __FILE__)
2
3
  require "bundler/gem_tasks"
3
4
  require "rspec/core/rake_task"
4
5
  require "cucumber/rake/task"
@@ -10,3 +11,48 @@ end
10
11
  Cucumber::Rake::Task.new(:features)
11
12
 
12
13
  task :default => [:spec, :features]
14
+
15
+ task :release => ["man:clean", "man:build"]
16
+
17
+ begin
18
+ require 'ronn'
19
+
20
+ namespace :man do
21
+
22
+ directory "lib/github_cli/man"
23
+
24
+ FileList["man/*.ronn"].each do |ronn|
25
+ basename = File.basename(ronn, ".ronn")
26
+ roff = "lib/github_cli/man/#{basename}"
27
+
28
+ file roff => ["lib/github_cli/man", ronn] do
29
+ sh "#{Gem.ruby} -S ronn --roff --pipe #{ronn} > #{roff}"
30
+ end
31
+
32
+ file "#{roff}.txt" => roff do
33
+ sh "groff -Wall -mtty-char -mandoc -Tascii #{roff} | col -b > #{roff}.txt"
34
+ end
35
+
36
+ task :build_all_pages => "#{roff}.txt"
37
+ end
38
+
39
+ desc "Build the man pages"
40
+ task :build => "man:build_all_pages"
41
+
42
+ desc 'Clean up the buit man pages'
43
+ task :clean do
44
+ rm_rf "lib/github_cli/man"
45
+ end
46
+ end
47
+ end
48
+
49
+ namespace :vendor do
50
+ desc "Build"
51
+ task :build => :clean do
52
+ sh "git clone git://github.com/wycats/thor.git lib/github_cli/vendor/thor"
53
+ end
54
+
55
+ task :clean do
56
+ rm_rf "lib/github_cli/vendor"
57
+ end
58
+ end
data/bin/gcli ADDED
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+ lib_dir = File.expand_path("../../lib", __FILE__)
3
+ $LOAD_PATH.unshift lib_dir if File.directory?(lib_dir)
4
+
5
+ require "github_cli"
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.to_s
16
+ GithubCLI.ui.debug e.backtrace.join("\n")
17
+ exit 1
18
+ end
data/bin/ghc CHANGED
@@ -1,18 +1,2 @@
1
1
  #!/usr/bin/env ruby
2
- lib_dir = File.expand_path("../../lib", __FILE__)
3
- $LOAD_PATH.unshift lib_dir if File.directory?(lib_dir)
4
-
5
- require "github_cli"
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
2
+ $stdout.print "[DEPRECATED] Please use `gcli` instead."
@@ -1,18 +1,18 @@
1
- Feature: ghc blob
1
+ Feature: gcli blob
2
2
 
3
3
  Scenario: Available commands
4
4
 
5
- When I run `ghc blob`
5
+ When I run `gcli blob`
6
6
  Then the exit status should be 0
7
- And the output should contain "ghc blob get"
8
- And the output should contain "ghc blob create"
7
+ And the output should contain "gcli blob get"
8
+ And the output should contain "gcli blob create"
9
9
 
10
10
  Scenario: Get blob
11
11
  Given the GitHub API server:
12
12
  """
13
13
  get('/repos/wycats/thor/git/blobs/59b23de9b91d') { status 200 }
14
14
  """
15
- When I run `ghc blob get wycats thor 59b23de9b91d`
15
+ When I run `gcli blob get wycats thor 59b23de9b91d`
16
16
  Then the exit status should be 0
17
17
 
18
18
  Scenario: Create blob
@@ -20,5 +20,5 @@ Feature: ghc blob
20
20
  """
21
21
  post('/repos/wycats/thor/git/blobs') { status 200 }
22
22
  """
23
- When I run `ghc blob create wycats thor --params=content:'Content' encoding:'utf-8'`
23
+ When I run `gcli blob create wycats thor --params=content:'Content' encoding:'utf-8'`
24
24
  Then the exit status should be 0
@@ -1,20 +1,20 @@
1
- Feature: ghc collab
1
+ Feature: gcli collab
2
2
 
3
3
  Scenario: Available commands
4
4
 
5
- When I run `ghc collab`
5
+ When I run `gcli collab`
6
6
  Then the exit status should be 0
7
- And the output should contain "ghc collab list"
8
- And the output should contain "ghc collab add"
9
- And the output should contain "ghc collab collab"
10
- And the output should contain "ghc collab remove"
7
+ And the output should contain "gcli collab list"
8
+ And the output should contain "gcli collab add"
9
+ And the output should contain "gcli collab collab"
10
+ And the output should contain "gcli collab remove"
11
11
 
12
12
  Scenario: List collaborators
13
13
  Given the GitHub API server:
14
14
  """
15
15
  get('/repos/wycats/thor/collaborators') { status 200 }
16
16
  """
17
- When I run `ghc collab ls wycats thor`
17
+ When I run `gcli collab ls wycats thor`
18
18
  Then the exit status should be 0
19
19
 
20
20
  Scenario: Add collaborator
@@ -22,7 +22,7 @@ Feature: ghc collab
22
22
  """
23
23
  put('/repos/wycats/thor/collaborators/octocat') { status 200 }
24
24
  """
25
- When I run `ghc collab add wycats thor octocat`
25
+ When I run `gcli collab add wycats thor octocat`
26
26
  Then the exit status should be 0
27
27
 
28
28
  Scenario: Remove collaborator
@@ -30,7 +30,7 @@ Feature: ghc collab
30
30
  """
31
31
  delete('/repos/wycats/thor/collaborators/octocat') { status 200 }
32
32
  """
33
- When I run `ghc collab remove wycats thor octocat`
33
+ When I run `gcli collab remove wycats thor octocat`
34
34
  Then the exit status should be 0
35
35
 
36
36
  Scenario: Check if collaborator
@@ -38,6 +38,6 @@ Feature: ghc collab
38
38
  """
39
39
  delete('/repos/wycats/thor/collaborators/octocat') { status 200 }
40
40
  """
41
- When I run `ghc collab collab wycats thor octocat`
41
+ When I run `gcli collab collab wycats thor octocat`
42
42
  Then the exit status should be 0
43
43
 
@@ -1,18 +1,18 @@
1
- Feature: ghc commit
1
+ Feature: gcli commit
2
2
 
3
3
  Scenario: Available commands
4
4
 
5
- When I run `ghc commit`
5
+ When I run `gcli commit`
6
6
  Then the exit status should be 0
7
- And the output should contain "ghc commit get"
8
- And the output should contain "ghc commit create"
7
+ And the output should contain "gcli commit get"
8
+ And the output should contain "gcli commit create"
9
9
 
10
10
  Scenario: Get commit
11
11
  Given the GitHub API server:
12
12
  """
13
13
  get('/repos/wycats/thor/git/commits/59b23de9b91d') { status 200 }
14
14
  """
15
- When I run `ghc commit get wycats thor 59b23de9b91d`
15
+ When I run `gcli commit get wycats thor 59b23de9b91d`
16
16
  Then the exit status should be 0
17
17
 
18
18
  Scenario: Create commit
@@ -20,5 +20,5 @@ Feature: ghc commit
20
20
  """
21
21
  post('/repos/wycats/thor/git/commits') { status 200 }
22
22
  """
23
- When I run `ghc commit create wycats thor --params=message:'my commit' tree:827efc parents:['7d1b31e']`
23
+ When I run `gcli commit create wycats thor --params=message:'my commit' tree:827efc parents:['7d1b31e']`
24
24
  Then the exit status should be 0
@@ -2,7 +2,7 @@ Feature: Command Completion
2
2
 
3
3
  Scenario: Suggest alternative
4
4
 
5
- When I run `ghc blah`
5
+ When I run `gcli blah`
6
6
  Then the exit status should be 0
7
7
  And the output should contain:
8
8
  """
@@ -12,7 +12,7 @@ Feature: Command Completion
12
12
 
13
13
  Scenario: Suggest more than one
14
14
 
15
- When I run `ghc convent`
15
+ When I run `gcli convent`
16
16
  Then the exit status should be 0
17
17
  And the output should contain:
18
18
  """
@@ -24,7 +24,7 @@ Feature: Command Completion
24
24
 
25
25
  Scenario: Suggset nothing
26
26
 
27
- When I run `ghc xen`
27
+ When I run `gcli xen`
28
28
  Then the exit status should be 0
29
29
  And the output should not contain:
30
30
  """
@@ -0,0 +1,55 @@
1
+ Feature: Configuration file
2
+
3
+ Scenario: Config requires scope
4
+ When I run `gcli config`
5
+ Then the output should contain:
6
+ """
7
+ Invalid scope given. Please use --local or --global.
8
+ """
9
+
10
+ Scenario: Missing global file
11
+ When I run `gcli config --global`
12
+ Then the output should contain:
13
+ """
14
+ global configuration file does not exist. Please use `gcli init --global`
15
+ """
16
+
17
+ Scenario: Missing local file
18
+ When I run `gcli config --local`
19
+ Then the output should contain:
20
+ """
21
+ local configuration file does not exist. Please use `gcli init --local`
22
+ """
23
+
24
+ Scenario: List global file options
25
+ Given I run `gcli init --global` interactively
26
+ And I type "token"
27
+ When I run `gcli config --global`
28
+ Then the output should contain:
29
+ """
30
+ Configuration options:
31
+ """
32
+
33
+ Scenario: Read existing option
34
+ Given I run `gcli init --global` interactively
35
+ And I type "abc123"
36
+ When I successfully run `gcli config --global auth.token`
37
+ Then the stdout should contain "abc123"
38
+
39
+ Scenario: Read missing option
40
+ Given I run `gcli init --global` interactively
41
+ And I type "abc123"
42
+ When I run `gcli config --global missing.key`
43
+ Then the exit status should be 0
44
+
45
+ Scenario: Write existing option
46
+ Given I run `gcli init --global` interactively
47
+ And I type "abc123"
48
+ When I successfully run `gcli config --global auth.token eee555`
49
+ Then the stdout should contain "eee555"
50
+
51
+ Scenario: Write missing option
52
+ Given I run `gcli init --global` interactively
53
+ And I type "abc123"
54
+ When I successfully run `gcli config --global core.token eee555`
55
+ Then the stdout should contain "eee555"
@@ -1,19 +1,19 @@
1
- Feature: ghc content
1
+ Feature: gcli content
2
2
 
3
3
  Scenario: Available commands
4
4
 
5
- When I run `ghc content`
5
+ When I run `gcli content`
6
6
  Then the exit status should be 0
7
- And the output should contain "ghc content get"
8
- And the output should contain "ghc content readme"
9
- And the output should contain "ghc content archive"
7
+ And the output should contain "gcli content get"
8
+ And the output should contain "gcli content readme"
9
+ And the output should contain "gcli content archive"
10
10
 
11
11
  Scenario: Readme
12
12
  Given the GitHub API server:
13
13
  """
14
14
  get('/repos/wycats/thor/readme') { status 200 }
15
15
  """
16
- When I run `ghc content readme wycats thor`
16
+ When I run `gcli content readme wycats thor`
17
17
  Then the exit status should be 0
18
18
 
19
19
  Scenario: Get content
@@ -21,7 +21,7 @@ Feature: ghc content
21
21
  """
22
22
  get('/repos/wycats/thor/contents/lib') { status 200 }
23
23
  """
24
- When I run `ghc content get wycats thor lib`
24
+ When I run `gcli content get wycats thor lib`
25
25
  Then the exit status should be 0
26
26
 
27
27
  Scenario: Archive
@@ -29,7 +29,7 @@ Feature: ghc content
29
29
  """
30
30
  get('/repos/wycats/thor/zipball/master') { status 200 }
31
31
  """
32
- When I run `ghc content archive wycats thor`
32
+ When I run `gcli content archive wycats thor`
33
33
  Then the exit status should be 0
34
34
 
35
35
  Scenario: Archive with params
@@ -37,5 +37,5 @@ Feature: ghc content
37
37
  """
38
38
  get('/repos/wycats/thor/tarball/new_feature') { status 200 }
39
39
  """
40
- When I run `ghc content archive wycats thor --params=archive_format:tarball ref:new_feature`
40
+ When I run `gcli content archive wycats thor --params=archive_format:tarball ref:new_feature`
41
41
  Then the exit status should be 0