github_cli 0.5.6 → 0.5.7

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 CHANGED
@@ -1,3 +1,12 @@
1
+ 0.5.7 (April 4, 2013)
2
+
3
+ * Change apis.rb to dynamically load api files
4
+ * Change interface to remove command options and clean up descriptions
5
+ * Add notify command for Notifications API access
6
+ * Change error handling for output to provided common error type
7
+ * Change hooks commands to take specific options and add tests
8
+ * Fix error on empty response bodies
9
+
1
10
  0.5.6 (April 1, 2013)
2
11
 
3
12
  * Change gcli interface to be more concise and not include gcli name
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- github_cli (0.5.6)
4
+ github_cli (0.5.7)
5
5
  github_api (~> 0.9)
6
6
 
7
7
  GEM
@@ -1,15 +1,16 @@
1
1
  Feature: gcli hook
2
2
 
3
+ @ci-run
3
4
  Scenario: Available commands
4
5
 
5
6
  When I run `gcli hook`
6
7
  Then the exit status should be 0
7
- And the output should contain "gcli hook create"
8
- And the output should contain "gcli hook delete"
9
- And the output should contain "gcli hook edit"
10
- And the output should contain "gcli hook get"
11
- And the output should contain "gcli hook list"
12
- And the output should contain "gcli hook test"
8
+ And the output should contain "hook create"
9
+ And the output should contain "hook delete"
10
+ And the output should contain "hook edit"
11
+ And the output should contain "hook get"
12
+ And the output should contain "hook list"
13
+ And the output should contain "hook test"
13
14
 
14
15
  Scenario: List hooks
15
16
  Given the GitHub API server:
@@ -32,7 +33,7 @@ Feature: gcli hook
32
33
  """
33
34
  post('/repos/wycats/thor/hooks') { status 200 }
34
35
  """
35
- When I run `gcli hook create wycats thor --params=name:web config:{}`
36
+ When I run `gcli hook create wycats thor --name=web --config="url:http://example.com/webhook" --events=status`
36
37
  Then the exit status should be 0
37
38
 
38
39
  Scenario: Edit hook
@@ -0,0 +1,33 @@
1
+ Feature: gcli notify
2
+
3
+ @ci-run
4
+ Scenario: Available commands
5
+
6
+ When I run `gcli notify`
7
+ Then the exit status should be 0
8
+ And the output should contain "notify list"
9
+ And the output should contain "notify get"
10
+
11
+ Scenario: List notifications
12
+ Given the GitHub API server:
13
+ """
14
+ get('/notifications') { status 200 }
15
+ """
16
+ When I successfully run `gcli notify ls`
17
+ Then the exit status should be 0
18
+
19
+ Scenario: List repo notifications
20
+ Given the GitHub API server:
21
+ """
22
+ get('/repos/wycats/thor/notifications') { status 200 }
23
+ """
24
+ When I successfully run `gcli notify ls -u wycats -r thor`
25
+ Then the exit status should be 0
26
+
27
+ Scenario: View thread
28
+ Given the GitHub API server:
29
+ """
30
+ get('/notifications/threads/1') { status 200 }
31
+ """
32
+ When I run `gcli notify get 1`
33
+ Then the exit status should be 0
@@ -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 < Thor
6
+ class API
7
7
 
8
8
  @@api = nil
9
9
 
@@ -39,12 +39,14 @@ module GithubCLI
39
39
  end
40
40
 
41
41
  def output(format=:table, &block)
42
- response = block.call
43
- if response.respond_to?(:body)
44
- formatter = Formatter.new response, :format => format
45
- formatter.render_output
46
- else
47
- response
42
+ GithubCLI.on_error do
43
+ response = block.call
44
+ if response.respond_to?(:body)
45
+ formatter = Formatter.new response, :format => format
46
+ formatter.render_output
47
+ else
48
+ response
49
+ end
48
50
  end
49
51
  end
50
52
 
@@ -0,0 +1,22 @@
1
+ # encoding: utf-8
2
+
3
+ module GithubCLI
4
+ class Notification < API
5
+
6
+ class << self
7
+
8
+ def all(params, format)
9
+ output format do
10
+ github_api.activity.notifications.list params
11
+ end
12
+ end
13
+
14
+ def get(id, params, format)
15
+ output format do
16
+ github_api.activity.notifications.get id, params
17
+ end
18
+ end
19
+ end
20
+
21
+ end # Notification
22
+ end # GithubCLI
@@ -8,38 +8,7 @@ else
8
8
  end
9
9
  end
10
10
 
11
- %w[
12
- assignee
13
- authorization
14
- blob
15
- collaborator
16
- commit
17
- content
18
- download
19
- email
20
- event
21
- follower
22
- fork
23
- gist
24
- hook
25
- issue
26
- key
27
- label
28
- member
29
- merging
30
- milestone
31
- organization
32
- pull_request
33
- reference
34
- repository
35
- search
36
- starring
37
- status
38
- tag
39
- team
40
- tree
41
- user
42
- watching
43
- ].each do |api|
44
- require_api api
11
+ Dir[File.dirname(__FILE__) + '/apis/*.rb'].sort.each do |path|
12
+ filename = File.basename(path)
13
+ require_api(filename)
45
14
  end
@@ -68,7 +68,7 @@ module GithubCLI
68
68
  end
69
69
  end
70
70
 
71
- desc 'init [<filename>]', 'Create a configuration file or overwirte existing one'
71
+ desc 'init', 'Create a configuration file or overwirte existing one'
72
72
  long_desc <<-DESC
73
73
  Initializes a configuration file where you can set default options for
74
74
  interacting with GitHub API.\n
@@ -95,7 +95,7 @@ module GithubCLI
95
95
  GithubCLI.ui.confirm "Writing new configuration file to #{GithubCLI.config.path}"
96
96
  end
97
97
 
98
- desc 'config <name> [<value>]', 'Get and set GitHub configuration options'
98
+ desc 'config', 'Get and set GitHub configuration options'
99
99
  long_desc <<-DESC
100
100
  You can query/set options with this command. The name is actually a hash key
101
101
  string that is a composite one, nested with dots. If only name is provided, a
@@ -140,7 +140,7 @@ module GithubCLI
140
140
  return
141
141
  end
142
142
 
143
- desc 'list <pattern>', 'List all available commands limited by pattern'
143
+ desc 'list', 'List all available commands limited by pattern'
144
144
  def list(pattern="")
145
145
  pattern = /^#{pattern}.*$/i
146
146
  Terminal.print_commands pattern
@@ -49,6 +49,15 @@ module GithubCLI
49
49
 
50
50
  class << self
51
51
 
52
+ def api(name=nil)
53
+ @api = case name
54
+ when nil
55
+ @api || GithubCLI.const_get(name.to_s.capitalize)
56
+ else
57
+ @pi
58
+ end
59
+ end
60
+
52
61
  def banner(task, namespace=true, subcommand=true)
53
62
  "#{basename} #{task.formatted_usage(self, true, subcommand)}"
54
63
  end
@@ -5,7 +5,7 @@ module GithubCLI
5
5
 
6
6
  namespace :hook
7
7
 
8
- desc 'list <user> <repo>', 'Lists hooks'
8
+ desc 'list <user> <repo>', 'List repository hooks'
9
9
  def list(user, repo)
10
10
  Hook.all user, repo, options[:params], options[:format]
11
11
  end
@@ -15,6 +15,14 @@ module GithubCLI
15
15
  Hook.get user, repo, id, options[:params], options[:format]
16
16
  end
17
17
 
18
+ option :name, :type => :string, :required => true, :banner => "service",
19
+ :desc => "the name of the service that is being called"
20
+ option :config, :type => :hash, :required => :true, :banner => "",
21
+ :desc => "a hash containing key/value pairs to provide settings for this hook"
22
+ option :events, :type => :array,
23
+ :desc => "Determines what events the hook is triggered for. Default: ['push']"
24
+ option :active, :type => :boolean, :default => true,
25
+ :desc => "determines whether the hook is actually triggered on pushes"
18
26
  desc 'create <user> <repo>', 'Create a hook'
19
27
  long_desc <<-DESC
20
28
  Inputs
@@ -25,9 +33,27 @@ module GithubCLI
25
33
  active - Optional boolean - Determines whether the hook is actually triggered on pushes.
26
34
  DESC
27
35
  def create(user, repo)
28
- Hook.create user, repo, options[:params], options[:format]
36
+ params = options[:params].dup
37
+ params['name'] = options[:name]
38
+ params['config'] = options[:config]
39
+ params['events'] = options[:events] if options[:events]
40
+ params['active'] = options[:active] if options[:active]
41
+
42
+ Hook.create user, repo, params, options[:format]
29
43
  end
30
44
 
45
+ option :name, :type => :string, :required => true, :banner => "service",
46
+ :desc => "the name of the service that is being called"
47
+ option :config, :type => :hash, :required => :true, :banner => "",
48
+ :desc => "a hash containing key/value pairs to provide settings for this hook"
49
+ option :events, :type => :array,
50
+ :desc => "Determines what events the hook is triggered for. Default: ['push']"
51
+ option :add_events, :type => :array,
52
+ :desc => "Determines a list of events to be added to the list of events that the Hook triggers for."
53
+ option :remove_events, :type => :array,
54
+ :desc => "Determines a list of events to be removed from the list of events that the Hook triggers for."
55
+ option :active, :type => :boolean, :default => true,
56
+ :desc => "determines whether the hook is actually triggered on pushes"
31
57
  desc 'edit <user> <repo> <id>', 'Edit a hook'
32
58
  long_desc <<-DESC
33
59
  Inputs
@@ -40,7 +66,15 @@ module GithubCLI
40
66
  active - Optional boolean - Determines whether the hook is actually triggered on pushes. \n
41
67
  DESC
42
68
  def edit(user, repo, id)
43
- Hook.edit user, repo, id, options[:params], options[:format]
69
+ params = options[:params].dup
70
+ params['name'] = options[:name]
71
+ params['config'] = options[:config]
72
+ params['events'] = options[:events] if options[:events]
73
+ params['add_events'] = options[:add_events] if options[:add_events]
74
+ params['remove_events'] = options[:remove_events] if options[:remove_events]
75
+ params['active'] = options[:active] if options[:active]
76
+
77
+ Hook.edit user, repo, id, params, options[:format]
44
78
  end
45
79
 
46
80
  desc 'test <user> <repo> <id>', 'Test a hook'
@@ -0,0 +1,38 @@
1
+ # encoding: utf-8
2
+
3
+ module GithubCLI
4
+ class Commands::Notifications < Command
5
+
6
+ namespace :notify
7
+
8
+ option :all, :type => :boolean,
9
+ :desc => "true to show notifications marked as read."
10
+ option :participating, :type => :boolean,
11
+ :desc => "true to show only notifications in which the user is directly participating or mentioned."
12
+ option :since, :type => :string,
13
+ :desc => "filters out any notifications updated before the given time"
14
+ option :user, :type => :string, :aliases => ["-u"]
15
+ option :repo, :type => :string, :aliases => ["-r"]
16
+ desc 'list', 'List your notifications'
17
+ long_desc <<-DESC
18
+ Parameters
19
+
20
+ all - Optional boolean - true to show notifications marked as read.\n
21
+ participating - Optional boolean - true to show only notifications in which the user is directly participating or mentioned.\n
22
+ since - Optional time - filters out any notifications updated before the given time.\n
23
+ DESC
24
+ def list
25
+ params = options[:params].dup
26
+ params['user'] = options[:user] if options[:user]
27
+ params['repo'] = options[:repo] if options[:repo]
28
+
29
+ Notification.all params, options[:format]
30
+ end
31
+
32
+ desc 'get <id>', 'View a single thread'
33
+ def get(id)
34
+ Notification.get id, options[:params], options[:format]
35
+ end
36
+
37
+ end # Notifications
38
+ end # GithubCLI
@@ -21,6 +21,7 @@ module GithubCLI
21
21
  autoload :Members, 'github_cli/commands/members'
22
22
  autoload :Merging, 'github_cli/commands/merging'
23
23
  autoload :Milestones, 'github_cli/commands/milestones'
24
+ autoload :Notifications, 'github_cli/commands/notifications'
24
25
  autoload :Organizations, 'github_cli/commands/organizations'
25
26
  autoload :PullRequests, 'github_cli/commands/pull_requests'
26
27
  autoload :References, 'github_cli/commands/references'
@@ -19,7 +19,14 @@ module GithubCLI
19
19
  def on_error
20
20
  yield
21
21
  rescue Exception => error
22
- raise GithubCLI::GithubCLIError, "Rescued: #{error}"
22
+ case error
23
+ when Github::Error::NotFound
24
+ terminal.newline
25
+ ui.error 'Resource Not Found'
26
+ terminal.newline
27
+ else
28
+ raise GithubCLI::GithubCLIError, "Rescued: #{error}"
29
+ end
23
30
  end
24
31
 
25
32
  def before(&block)
@@ -5,10 +5,11 @@ module GithubCLI
5
5
  # It delegates to other objects like Formatter::Table
6
6
  # to perform actual rendering.
7
7
  class Formatter
8
- attr_reader :response, :format
8
+ attr_reader :response, :format, :message
9
9
 
10
10
  def initialize(response, options={})
11
11
  @response = response
12
+ @message = options[:message]
12
13
  @format = options[:format]
13
14
  end
14
15
 
@@ -16,14 +17,17 @@ module GithubCLI
16
17
  render_status
17
18
  Terminal.paged_output
18
19
  determine_output_formatter
20
+ render_message
19
21
  end
20
22
 
21
23
  def determine_output_formatter
22
24
  case format.to_s
23
25
  when 'table', /table:v.*/, /table:h.*/
24
- formatter = Formatters::Table.new(response.body,
25
- :transform => format.to_s.split(':').last)
26
- formatter.format
26
+ if response.body && !response.body.empty?
27
+ formatter = Formatters::Table.new(response.body,
28
+ :transform => format.to_s.split(':').last)
29
+ formatter.format
30
+ end
27
31
  when 'csv'
28
32
  formatter = Formatters::CSV.new(response)
29
33
  formatter.format
@@ -42,5 +46,11 @@ module GithubCLI
42
46
  end
43
47
  end
44
48
 
49
+ def render_message
50
+ if message
51
+ Terminal.line message
52
+ end
53
+ end
54
+
45
55
  end # Formatter
46
56
  end # GithubCLi
@@ -3,97 +3,100 @@
3
3
  module GithubCLI
4
4
  class CLI
5
5
 
6
- desc "assignee <command>", "Leverage Assignees API"
6
+ desc "assignee", "Leverage Assignees API"
7
7
  subcommand "assignee", GithubCLI::Commands::Assignees
8
8
 
9
- desc "auth <command>", "Leverage Authorizations API"
9
+ desc "auth", "Leverage Authorizations API"
10
10
  subcommand "auth", GithubCLI::Commands::Authorizations
11
11
 
12
- desc "blob <command>", "Leverage Blobs API"
12
+ desc "blob", "Leverage Blobs API"
13
13
  subcommand "blob", GithubCLI::Commands::Blobs
14
14
 
15
- desc "collab <command>", "Leverage Collaborators API"
15
+ desc "collab", "Leverage Collaborators API"
16
16
  subcommand "collab", GithubCLI::Commands::Collaborators
17
17
 
18
- desc "commit <command>", "Leverage Commits API"
18
+ desc "commit", "Leverage Commits API"
19
19
  subcommand "commit", GithubCLI::Commands::Commits
20
20
 
21
- desc "content <command>", "Leverage Contents API"
21
+ desc "content", "Leverage Contents API"
22
22
  subcommand "content", GithubCLI::Commands::Contents
23
23
 
24
- desc "download <command>", "Leverage Downloads API"
24
+ desc "download", "Leverage Downloads API"
25
25
  subcommand "download", GithubCLI::Commands::Downloads
26
26
 
27
- desc "email <command>", "Leverage Emails API"
27
+ desc "email", "Leverage Emails API"
28
28
  subcommand "email", GithubCLI::Commands::Emails
29
29
 
30
- desc "event <command>", "Leverage Events API"
30
+ desc "event", "Leverage Events API"
31
31
  subcommand "event", GithubCLI::Commands::Events
32
32
 
33
- desc "follower <command>", "Leverage Followers API"
33
+ desc "follower", "Leverage Followers API"
34
34
  subcommand "follower", GithubCLI::Commands::Followers
35
35
 
36
- desc "fork <command>", "Leverage Forks API"
36
+ desc "fork", "Leverage Forks API"
37
37
  subcommand "fork", GithubCLI::Commands::Forks
38
38
 
39
- desc "gist <command>", "Leverage Gists API"
39
+ desc "gist", "Leverage Gists API"
40
40
  subcommand "gist", GithubCLI::Commands::Gists
41
41
 
42
- desc "hook <command>", "Leverage Hooks API"
42
+ desc "hook", "Leverage Hooks API"
43
43
  subcommand "hook", GithubCLI::Commands::Hooks
44
44
 
45
- desc "issue <command>", "Leverage Issues API"
45
+ desc "issue", "Leverage Issues API"
46
46
  subcommand "issue", GithubCLI::Commands::Issues
47
47
 
48
- desc "key <command>", "Leverage Keys API"
48
+ desc "key", "Leverage Keys API"
49
49
  subcommand "key", GithubCLI::Commands::Keys
50
50
 
51
- desc "label <command>", "Leverage Labels API"
51
+ desc "label", "Leverage Labels API"
52
52
  subcommand "label", GithubCLI::Commands::Labels
53
53
 
54
- desc "member <command>", "Leverage Members API"
54
+ desc "member", "Leverage Members API"
55
55
  subcommand "member", GithubCLI::Commands::Members
56
56
 
57
- desc "merge <command>", "Leverage Merging API"
57
+ desc "merge", "Leverage Merging API"
58
58
  subcommand "merge", GithubCLI::Commands::Merging
59
59
 
60
- desc "milestone <command>", "Leverage Milestones API"
60
+ desc "milestone", "Leverage Milestones API"
61
61
  subcommand "milestone", GithubCLI::Commands::Milestones
62
62
 
63
- desc "org <command>", "Leverage Organizations API"
63
+ desc "notify", "Leverage Notifications API"
64
+ subcommand "notify", GithubCLI::Commands::Notifications
65
+
66
+ desc "org", "Leverage Organizations API"
64
67
  subcommand "org", GithubCLI::Commands::Organizations
65
68
 
66
- desc "pull <command>", "Leverage Pull Requests API"
69
+ desc "pull", "Leverage Pull Requests API"
67
70
  subcommand "pull", GithubCLI::Commands::PullRequests
68
71
 
69
- desc "ref <command>", "Leverage References API"
72
+ desc "ref", "Leverage References API"
70
73
  subcommand "ref", GithubCLI::Commands::References
71
74
 
72
- desc "repo <command>", "Leverage Repositories API"
75
+ desc "repo", "Leverage Repositories API"
73
76
  subcommand "repo", GithubCLI::Commands::Repositories
74
77
 
75
- desc "search <command>", "Leverage Search API"
78
+ desc "search", "Leverage Search API"
76
79
  subcommand "search", GithubCLI::Commands::Search
77
80
 
78
- desc "star <command>", "Leverage Starring API"
81
+ desc "star", "Leverage Starring API"
79
82
  subcommand "star", GithubCLI::Commands::Starring
80
83
 
81
- desc "status <command>", "Leverage Statuses API"
84
+ desc "status", "Leverage Statuses API"
82
85
  subcommand "status", GithubCLI::Commands::Statuses
83
86
 
84
- desc "tag <command>", "Leverage Tags API"
87
+ desc "tag", "Leverage Tags API"
85
88
  subcommand "tag", GithubCLI::Commands::Tags
86
89
 
87
- desc "team <command>", "Leverage Teams API"
90
+ desc "team", "Leverage Teams API"
88
91
  subcommand "team", GithubCLI::Commands::Teams
89
92
 
90
- desc "tree <command>", "Leverage Trees API"
93
+ desc "tree", "Leverage Trees API"
91
94
  subcommand "tree", GithubCLI::Commands::Trees
92
95
 
93
- desc "user <command>", "Leverage Users API"
96
+ desc "user", "Leverage Users API"
94
97
  subcommand "user", GithubCLI::Commands::Users
95
98
 
96
- desc "watch <command>", "Leverage Watching API"
99
+ desc "watch", "Leverage Watching API"
97
100
  subcommand "watch", GithubCLI::Commands::Watching
98
101
 
99
102
  end # CLI
@@ -5,10 +5,6 @@ class Thor
5
5
 
6
6
  class << self
7
7
 
8
- def banner(command, namespace=nil, subcommand=false)
9
- "#{command.formatted_usage(self, $thor_runner, subcommand)}"
10
- end
11
-
12
8
  def help(shell, subcommand = false)
13
9
  list = printable_commands(true, subcommand)
14
10
  Thor::Util.thor_classes_in(self).each do |klass|
@@ -30,7 +26,7 @@ class Thor
30
26
  next if command.hidden?
31
27
  item = []
32
28
  item << banner(command, false, subcommand).gsub(/#{basename} /, '')
33
- item << (command.description ? "# #{command.description.gsub(/\s+/m,' ')}" : "")
29
+ item << (command.description ? " #{command.description.gsub(/\s+/m,' ')}" : "")
34
30
  item
35
31
  end.compact
36
32
  end
@@ -71,7 +67,7 @@ class Thor
71
67
  gcli-config.1
72
68
  ]
73
69
 
74
- desc "help <command>", "Describe available commands or one specific command"
70
+ desc "help", "Describe available commands or one specific command"
75
71
  def help(task = nil, subcommand = false)
76
72
  command = "gcli-#{task}.1"
77
73
 
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module GithubCLI
4
- VERSION = "0.5.6"
4
+ VERSION = "0.5.7"
5
5
  end
data/lib/github_cli.rb CHANGED
@@ -62,5 +62,9 @@ module GithubCLI
62
62
  def commands
63
63
  @commands ||= GithubCLI::Command.all
64
64
  end
65
+
66
+ def terminal
67
+ @terminal ||= GithubCLI::Terminal
68
+ end
65
69
  end
66
70
  end # GithubCLI
@@ -0,0 +1,45 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe GithubCLI::Commands::Hooks do
6
+ let(:format) { 'table' }
7
+ let(:user) { 'peter-murach' }
8
+ let(:repo) { 'github_cli' }
9
+ let(:id) { 1 }
10
+ let(:api_class) { GithubCLI::Hook }
11
+
12
+ it "invokes hook:list" do
13
+ api_class.should_receive(:all).with(user, repo, {}, format)
14
+ subject.invoke "hook:list", [user, repo]
15
+ end
16
+
17
+ it "invokes hook:get" do
18
+ api_class.should_receive(:get).with(user, repo, id, {}, format)
19
+ subject.invoke "hook:get", [user, repo, id]
20
+ end
21
+
22
+ it "invokes hook:create --name --config" do
23
+ api_class.should_receive(:create).with(user, repo, {'name' => 'web',
24
+ "config" => { :url => "http://example.com/webhook" } }, format)
25
+ subject.invoke "hook:create", [user, repo], :name => 'web',
26
+ :config => {:url => "http://example.com/webhook" }
27
+ end
28
+
29
+ it "invokes hook:edit --name --config" do
30
+ api_class.should_receive(:edit).with(user, repo, id, {'name' => 'web',
31
+ "config" => { :url => "http://example.com/webhook" } }, format)
32
+ subject.invoke "hook:edit", [user, repo, id], :name => 'web',
33
+ :config => {:url => "http://example.com/webhook" }
34
+ end
35
+
36
+ it "invokes hook:test" do
37
+ api_class.should_receive(:test).with(user, repo, id, {}, format)
38
+ subject.invoke "hook:test", [user, repo, id]
39
+ end
40
+
41
+ it "invokes hook:delete" do
42
+ api_class.should_receive(:delete).with(user, repo, id, {}, format)
43
+ subject.invoke "hook:delete", [user, repo, id]
44
+ end
45
+ end
@@ -0,0 +1,26 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe GithubCLI::Commands::Notifications do
6
+ let(:format) { 'table' }
7
+ let(:user) { 'peter-murach' }
8
+ let(:repo) { 'github_cli' }
9
+ let(:id) { 1 }
10
+ let(:api_class) { GithubCLI::Notification }
11
+
12
+ it "invokes notify:list" do
13
+ api_class.should_receive(:all).with({}, format)
14
+ subject.invoke "notify:list", []
15
+ end
16
+
17
+ it "invokes notify:list --user --repo" do
18
+ api_class.should_receive(:all).with({'user' => user, 'repo' => repo}, format)
19
+ subject.invoke "notify:list", [], :user => user, :repo => repo
20
+ end
21
+
22
+ it "invokes notify:get" do
23
+ api_class.should_receive(:get).with(id, {}, format)
24
+ subject.invoke "notify:get", [id]
25
+ end
26
+ 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.6
4
+ version: 0.5.7
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-04-01 00:00:00.000000000Z
12
+ date: 2013-04-04 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: github_api
16
- requirement: &2153408520 !ruby/object:Gem::Requirement
16
+ requirement: &2156751040 !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: *2153408520
24
+ version_requirements: *2156751040
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &2153408000 !ruby/object:Gem::Requirement
27
+ requirement: &2156750320 !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: *2153408000
35
+ version_requirements: *2156750320
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: aruba
38
- requirement: &2153407340 !ruby/object:Gem::Requirement
38
+ requirement: &2156749380 !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: *2153407340
46
+ version_requirements: *2156749380
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &2153406720 !ruby/object:Gem::Requirement
49
+ requirement: &2156748600 !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: *2153406720
57
+ version_requirements: *2156748600
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: communist
60
- requirement: &2153405940 !ruby/object:Gem::Requirement
60
+ requirement: &2156748040 !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: *2153405940
68
+ version_requirements: *2156748040
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: ronn
71
- requirement: &2153405400 !ruby/object:Gem::Requirement
71
+ requirement: &2156747420 !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: *2153405400
79
+ version_requirements: *2156747420
80
80
  description: CLI-based access to GitHub API v3
81
81
  email:
82
82
  - ''
@@ -119,6 +119,7 @@ files:
119
119
  - features/member.feature
120
120
  - features/merging.feature
121
121
  - features/milestone.feature
122
+ - features/notification.feature
122
123
  - features/organization.feature
123
124
  - features/pull_request.feature
124
125
  - features/reference.feature
@@ -159,6 +160,7 @@ files:
159
160
  - lib/github_cli/apis/member.rb
160
161
  - lib/github_cli/apis/merging.rb
161
162
  - lib/github_cli/apis/milestone.rb
163
+ - lib/github_cli/apis/notification.rb
162
164
  - lib/github_cli/apis/organization.rb
163
165
  - lib/github_cli/apis/pull_request.rb
164
166
  - lib/github_cli/apis/reference.rb
@@ -196,6 +198,7 @@ files:
196
198
  - lib/github_cli/commands/members.rb
197
199
  - lib/github_cli/commands/merging.rb
198
200
  - lib/github_cli/commands/milestones.rb
201
+ - lib/github_cli/commands/notifications.rb
199
202
  - lib/github_cli/commands/organizations.rb
200
203
  - lib/github_cli/commands/pull_requests.rb
201
204
  - lib/github_cli/commands/references.rb
@@ -273,10 +276,12 @@ files:
273
276
  - spec/github_cli/commands/events_spec.rb
274
277
  - spec/github_cli/commands/followers_spec.rb
275
278
  - spec/github_cli/commands/gists_spec.rb
279
+ - spec/github_cli/commands/hooks_spec.rb
276
280
  - spec/github_cli/commands/issues_spec.rb
277
281
  - spec/github_cli/commands/keys_spec.rb
278
282
  - spec/github_cli/commands/labels_spec.rb
279
283
  - spec/github_cli/commands/milestones_spec.rb
284
+ - spec/github_cli/commands/notifications_spec.rb
280
285
  - spec/github_cli/commands/pull_requests_spec.rb
281
286
  - spec/github_cli/commands/references_spec.rb
282
287
  - spec/github_cli/commands/repositories_spec.rb
@@ -348,6 +353,7 @@ test_files:
348
353
  - features/member.feature
349
354
  - features/merging.feature
350
355
  - features/milestone.feature
356
+ - features/notification.feature
351
357
  - features/organization.feature
352
358
  - features/pull_request.feature
353
359
  - features/reference.feature
@@ -376,10 +382,12 @@ test_files:
376
382
  - spec/github_cli/commands/events_spec.rb
377
383
  - spec/github_cli/commands/followers_spec.rb
378
384
  - spec/github_cli/commands/gists_spec.rb
385
+ - spec/github_cli/commands/hooks_spec.rb
379
386
  - spec/github_cli/commands/issues_spec.rb
380
387
  - spec/github_cli/commands/keys_spec.rb
381
388
  - spec/github_cli/commands/labels_spec.rb
382
389
  - spec/github_cli/commands/milestones_spec.rb
390
+ - spec/github_cli/commands/notifications_spec.rb
383
391
  - spec/github_cli/commands/pull_requests_spec.rb
384
392
  - spec/github_cli/commands/references_spec.rb
385
393
  - spec/github_cli/commands/repositories_spec.rb