github_cli 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/CHANGELOG.md +21 -0
  2. data/Gemfile.lock +20 -22
  3. data/README.md +29 -4
  4. data/bin/ghc +1 -1
  5. data/features/download.feature +11 -0
  6. data/features/email.feature +9 -0
  7. data/features/errors.feature +10 -0
  8. data/features/event.feature +14 -0
  9. data/features/executable.feature +44 -17
  10. data/features/follower.feature +11 -0
  11. data/features/fork.feature +13 -0
  12. data/features/hook.feature +12 -0
  13. data/features/label.feature +16 -0
  14. data/features/member.feature +18 -0
  15. data/features/milestone.feature +11 -0
  16. data/features/organization.feature +9 -0
  17. data/features/reference.feature +11 -0
  18. data/features/repositories.feature +16 -7
  19. data/features/tag.feature +8 -0
  20. data/features/team.feature +18 -0
  21. data/features/tree.feature +8 -0
  22. data/features/user.feature +8 -0
  23. data/ghc_logo.png +0 -0
  24. data/github_cli.gemspec +2 -2
  25. data/lib/github_cli/api.rb +14 -11
  26. data/lib/github_cli/apis/follower.rb +40 -0
  27. data/lib/github_cli/apis/member.rb +52 -0
  28. data/lib/github_cli/apis/organization.rb +28 -0
  29. data/lib/github_cli/apis/team.rb +89 -0
  30. data/lib/github_cli/apis/user.rb +22 -0
  31. data/lib/github_cli/apis.rb +5 -0
  32. data/lib/github_cli/cli.rb +11 -4
  33. data/lib/github_cli/command.rb +40 -28
  34. data/lib/github_cli/commands/followers.rb +50 -0
  35. data/lib/github_cli/commands/members.rb +70 -0
  36. data/lib/github_cli/commands/organizations.rb +42 -0
  37. data/lib/github_cli/commands/teams.rb +148 -0
  38. data/lib/github_cli/commands/users.rb +26 -0
  39. data/lib/github_cli/commands.rb +5 -0
  40. data/lib/github_cli/editor.rb +27 -0
  41. data/lib/github_cli/errors.rb +6 -1
  42. data/lib/github_cli/formatter.rb +47 -0
  43. data/lib/github_cli/formatters/csv.rb +8 -8
  44. data/lib/github_cli/formatters/table.rb +237 -11
  45. data/lib/github_cli/pager.rb +66 -0
  46. data/lib/github_cli/subcommands.rb +15 -0
  47. data/lib/github_cli/system.rb +33 -0
  48. data/lib/github_cli/terminal.rb +60 -30
  49. data/lib/github_cli/thor_ext.rb +15 -0
  50. data/lib/github_cli/ui.rb +8 -0
  51. data/lib/github_cli/util.rb +55 -12
  52. data/lib/github_cli/version.rb +1 -1
  53. data/lib/github_cli.rb +3 -0
  54. data/spec/github_cli/pager_spec.rb +69 -0
  55. data/spec/github_cli/util_spec.rb +14 -4
  56. metadata +64 -14
@@ -0,0 +1,28 @@
1
+ # encoding: utf-8
2
+
3
+ module GithubCLI
4
+ class Organization < API
5
+
6
+ class << self
7
+
8
+ def list(user, params, format)
9
+ output format do
10
+ github_api.orgs.list user, params
11
+ end
12
+ end
13
+
14
+ def get(org, params, format)
15
+ output format do
16
+ github_api.orgs.get org, params
17
+ end
18
+ end
19
+
20
+ def edit(org, params, format)
21
+ output format do
22
+ github_api.orgs.edit org, params
23
+ end
24
+ end
25
+ end
26
+
27
+ end # Organization
28
+ end # GithubCLI
@@ -0,0 +1,89 @@
1
+ # encoding: utf-8
2
+
3
+ module GithubCLI
4
+ class Team < API
5
+
6
+ class << self
7
+
8
+ def all(org, params, format)
9
+ output format do
10
+ github_api.orgs.teams.list org, params
11
+ end
12
+ end
13
+
14
+
15
+ def get(id, params, format)
16
+ output format do
17
+ github_api.orgs.teams.get id, params
18
+ end
19
+ end
20
+
21
+ def create(org, params, format)
22
+ output format do
23
+ github_api.orgs.teams.create org, params
24
+ end
25
+ end
26
+
27
+ def edit(id, params, format)
28
+ output format do
29
+ github_api.orgs.teams.edit id, params
30
+ end
31
+ end
32
+
33
+ def delete(id, params, format)
34
+ output format do
35
+ github_api.orgs.teams.delete id, params
36
+ end
37
+ end
38
+
39
+ def all_member(id, params, format)
40
+ output format do
41
+ github_api.orgs.teams.list_members id, params
42
+ end
43
+ end
44
+
45
+ def member(id, user, params, format)
46
+ output format do
47
+ github_api.orgs.teams.team_member? id, user, params
48
+ end
49
+ end
50
+
51
+ def add_member(id, user, params, format)
52
+ output format do
53
+ github_api.orgs.teams.add_member id, user, params
54
+ end
55
+ end
56
+
57
+ def remove_member(id, user, params, format)
58
+ output format do
59
+ github_api.orgs.teams.remove_member id, user, params
60
+ end
61
+ end
62
+
63
+ def all_repo(id, params, format)
64
+ output format do
65
+ github_api.orgs.teams.list_repos id, params
66
+ end
67
+ end
68
+
69
+ def repo(id, user, repo, params, format)
70
+ output format do
71
+ github_api.orgs.teams.team_repo? id, user, repo, params
72
+ end
73
+ end
74
+
75
+ def add_repo(id, user, repo, params, format)
76
+ output format do
77
+ github_api.orgs.teams.add_member id, user, repo, params
78
+ end
79
+ end
80
+
81
+ def remove_repo(id, user, repo, params, format)
82
+ output format do
83
+ github_api.orgs.teams.remove_repo id, user, repo, params
84
+ end
85
+ end
86
+ end
87
+
88
+ end # Team
89
+ end # GithubCLI
@@ -0,0 +1,22 @@
1
+ # encoding: utf-8
2
+
3
+ module GithubCLI
4
+ class User < API
5
+
6
+ class << self
7
+
8
+ def get(user, params, format)
9
+ output format do
10
+ github_api.users.get params.update(:user => user)
11
+ end
12
+ end
13
+
14
+ def update(params, format)
15
+ output format do
16
+ github_api.users.update params
17
+ end
18
+ end
19
+ end
20
+
21
+ end # User
22
+ end # GithubCLI
@@ -15,18 +15,23 @@ end
15
15
  commit
16
16
  download
17
17
  email
18
+ follower
18
19
  fork
19
20
  gist
20
21
  hook
21
22
  issue
22
23
  key
23
24
  label
25
+ member
24
26
  milestone
27
+ organization
25
28
  pull_request
26
29
  reference
27
30
  repository
28
31
  tag
32
+ team
29
33
  tree
34
+ user
30
35
  watching
31
36
  ].each do |api|
32
37
  require_api api
@@ -10,13 +10,13 @@ module GithubCLI
10
10
  the_shell = (options["no-color"] ? Thor::Shell::Basic.new : shell)
11
11
  GithubCLI.ui = UI.new(the_shell)
12
12
  GithubCLi.ui.debug! if options["verbose"]
13
- Terminal.print_program_name
13
+ options["no-pager"] ? Pager.disable : Pager.enable
14
14
  end
15
15
 
16
16
  map "repository" => :repo,
17
17
  "reference" => :ref,
18
18
  "is" => :issue,
19
- "-v" => :version,
19
+ "--version" => :version,
20
20
  "ls" => :list
21
21
 
22
22
  class_option :config, :type => :string,
@@ -26,9 +26,16 @@ module GithubCLI
26
26
  :desc => 'Authentication token.',
27
27
  :banner => 'Set authentication token'
28
28
  class_option "no-color", :type => :boolean,
29
- :banner => "Disable colorization in output."
29
+ :desc => "Disable colorization in output."
30
+ class_option "no-pager", :type => :boolean,
31
+ :desc => "Disable pagination of the output."
32
+ class_option :pager, :type => :string, :aliases => '-p',
33
+ :desc => "Command to be used for paging. Command can have options after it i.e. 'less -r'. Defaults to common pagers i.e. less if detected.",
34
+ :banner => "less, more etc..."
30
35
  class_option :verbose, :type => :boolean,
31
- :banner => "Enable verbose output mode."
36
+ :desc => "Enable verbose output mode."
37
+ class_option :version, :type => :boolean,
38
+ :desc => "Show program version"
32
39
 
33
40
  desc 'init', 'Generates a configuration file in your home directory'
34
41
  long_desc <<-DESC
@@ -10,7 +10,8 @@ module GithubCLI
10
10
  issue label milestone
11
11
  tag tree blob reference commit
12
12
  pull
13
- email
13
+ user email follower
14
+ org member team
14
15
  event
15
16
  )
16
17
 
@@ -31,44 +32,55 @@ module GithubCLI
31
32
  "all" => :list,
32
33
  "del" => :delete
33
34
 
35
+ class_option :params, :type => :hash, :default => {}, :aliases => '-p',
36
+ :desc => 'Request parameters e.i per_page:100'
37
+
34
38
  class_option :format, :type => :string, :aliases => '-f',
35
39
  :default => 'table',
36
40
  :banner => output_formats.keys.join('|'),
37
- :desc => "Format of the output"
38
- class_option :pager, :type => :boolean, :aliases => '-p',
39
- :default => true,
40
- :desc => "Determines if the output is paged."
41
+ :desc => "Format of the output. Type table:h to display table horizontally."
41
42
 
42
- def self.banner(task, namespace=true, subcommand=true)
43
- "#{basename} #{task.formatted_usage(self, true, subcommand)}"
44
- end
43
+ class << self
45
44
 
45
+ def banner(task, namespace=true, subcommand=true)
46
+ "#{basename} #{task.formatted_usage(self, true, subcommand)}"
47
+ end
46
48
 
47
- def self.all
48
- commands = []
49
- Base.subclasses.each do |klass|
50
- namespace = extract_namespace(klass)
51
- next unless is_api_command?(namespace)
52
- namespace = "" if namespace.index API_CLASSES.first
49
+ def all
50
+ commands = []
51
+ Thor::Base.subclasses.each do |klass|
52
+ namespace = extract_namespace(klass)
53
+ next unless is_api_command?(namespace)
54
+ namespace = "" if namespace.index API_CLASSES.first
53
55
 
54
- klass.tasks.each do |task|
55
- next if task.last.name.index HELP_COMMAND
56
- commands << Comm.new(namespace,
57
- task.last.name,
58
- task.last.description,
59
- task.last.usage)
56
+ klass.tasks.each do |task|
57
+ next if task.last.name.index HELP_COMMAND
58
+ commands << Comm.new(namespace,
59
+ task.last.name,
60
+ task.last.description,
61
+ task.last.usage)
62
+ end
60
63
  end
64
+ commands
61
65
  end
62
- commands
63
- end
64
66
 
65
- def self.is_api_command?(klass)
66
- return false unless API_CLASSES.include?(klass.to_s)
67
- return true
68
- end
67
+ def is_api_command?(klass)
68
+ return false unless API_CLASSES.include?(klass.to_s)
69
+ return true
70
+ end
71
+
72
+ def extract_namespace(klass)
73
+ klass.namespace.split(':').last
74
+ end
75
+
76
+ def command_to_show(command)
77
+ command_token = Command.all.find do |cmd|
78
+ end_index = command.index('<').nil? ? -1 : command.index('<')
79
+ !cmd.namespace.empty? && command[0..end_index].include?(cmd.namespace)
80
+ end
81
+ command_token ? command_token.namespace : '<command>'
82
+ end
69
83
 
70
- def self.extract_namespace(klass)
71
- klass.namespace.split(':').last
72
84
  end
73
85
 
74
86
  end # Command
@@ -0,0 +1,50 @@
1
+ # encoding: utf-8
2
+
3
+ module GithubCLI
4
+ class Commands::Followers < Command
5
+
6
+ namespace :follower
7
+
8
+ desc 'list', "Lists an authenticated user's followers"
9
+ method_option :user, :type => :string, :aliases => ["-u"],
10
+ :desc => 'List a <user> followers',
11
+ :banner => '<user>'
12
+ method_option :params, :type => :hash, :default => {},
13
+ :desc => 'Additional request parameters e.i per_page:100'
14
+ def list
15
+ Follower.all options[:user], options[:params], options[:format]
16
+ end
17
+
18
+ desc 'following', 'List who the authenticated user is following'
19
+ method_option :user, :type => :string, :aliases => ["-u"],
20
+ :desc => 'List who a <user> is following',
21
+ :banner => '<user>'
22
+ method_option :params, :type => :hash, :default => {},
23
+ :desc => 'Additional request parameters e.i per_page:100'
24
+ def following
25
+ Follower.following options[:user], options[:params], options[:format]
26
+ end
27
+
28
+ desc 'follower <user>', 'Check if you are following a user'
29
+ method_option :params, :type => :hash, :default => {},
30
+ :desc => 'Additional request parameters e.i per_page:100'
31
+ def follower(user)
32
+ Follower.following? user, options[:params], options[:format]
33
+ end
34
+
35
+ desc 'follow <user>', 'Follow a user'
36
+ method_option :params, :type => :hash, :default => {},
37
+ :desc => 'Additional request parameters e.i per_page:100'
38
+ def follow(user)
39
+ Follower.follow user, options[:params], options[:format]
40
+ end
41
+
42
+ desc 'unfollow <user>', 'Unfollow a user'
43
+ method_option :params, :type => :hash, :default => {},
44
+ :desc => 'Additional request parameters e.i per_page:100'
45
+ def unfollow(user)
46
+ Follower.unfollow user, options[:params], options[:format]
47
+ end
48
+
49
+ end # Followers
50
+ end # GithubCLI
@@ -0,0 +1,70 @@
1
+ # encoding: utf-8
2
+
3
+ module GithubCLI
4
+ class Commands::Members < Command
5
+
6
+ namespace :member
7
+
8
+ desc 'list <org>', "Lists an organization members"
9
+ long_desc <<-DESC
10
+ List all users who are members of an organization. A member is a user
11
+ that belongs to at least 1 team in the organization.
12
+
13
+ If the authenticated user is also a member of this organization then
14
+ both concealed and public members will be returned.
15
+ Otherwise only public members are returned.
16
+
17
+ Members of an organization can choose to have their membership publicized or not.
18
+ DESC
19
+ method_option :public, :type => :boolean, :default => false,
20
+ :desc => 'List public members'
21
+ method_option :params, :type => :hash, :default => {},
22
+ :desc => 'Additional request parameters e.i per_page:100'
23
+ def list(org)
24
+ if options[:public]
25
+ Member.all_public org, options[:params], options[:format]
26
+ else
27
+ Member.all org, options[:params], options[:format]
28
+ end
29
+ end
30
+
31
+ desc 'member <org> <user>', 'Checks if user is a member of an organization'
32
+ method_option :public, :type => :boolean, :default => false,
33
+ :desc => 'Get if a user is a public member of an organization'
34
+ method_option :params, :type => :hash, :default => {},
35
+ :desc => 'Additional request parameters e.i per_page:100'
36
+ def member(org, user)
37
+ if options[:public]
38
+ Member.public_member? org, user, options[:params], options[:format]
39
+ else
40
+ Member.member? org, user, options[:params], options[:format]
41
+ end
42
+ end
43
+
44
+ desc 'delete <org> <user>', 'Remove a member from an organization'
45
+ long_desc <<-DESC
46
+ Removing a user from this list will remove them from all teams and they
47
+ will no longer have any access to the organization’s repositories.
48
+ DESC
49
+ method_option :params, :type => :hash, :default => {},
50
+ :desc => 'Additional request parameters e.i per_page:100'
51
+ def delete(org, user)
52
+ Member.delete org, user, options[:params], options[:format]
53
+ end
54
+
55
+ desc 'publicize <org> <user>', "Publicize a user’s membership"
56
+ method_option :params, :type => :hash, :default => {},
57
+ :desc => 'Additional request parameters e.i per_page:100'
58
+ def publicize(org, user)
59
+ Member.publicize org, user, options[:params], options[:format]
60
+ end
61
+
62
+ desc 'conceal <org> <user>', "Conceal a user’s membership"
63
+ method_option :params, :type => :hash, :default => {},
64
+ :desc => 'Additional request parameters e.i per_page:100'
65
+ def conceal(org, user)
66
+ Member.conceal org, user, options[:params], options[:format]
67
+ end
68
+
69
+ end # Members
70
+ end # GithubCLI
@@ -0,0 +1,42 @@
1
+ # encoding: utf-8
2
+
3
+ module GithubCLI
4
+ class Commands::Organizations < Command
5
+
6
+ namespace :org
7
+
8
+ desc 'list', 'List public and private organizations for the authenticated user'
9
+ method_option :user, :type => :string, :aliases => ["-u"],
10
+ :desc => 'List all public organizations for a user',
11
+ :banner => '<user>'
12
+ method_option :params, :type => :hash, :default => {},
13
+ :desc => 'Additional request parameters e.i per_page:100'
14
+ def list
15
+ Organization.list options[:user], options[:params], options[:format]
16
+ end
17
+
18
+ desc 'get <org>', 'Get properties for a single organization'
19
+ method_option :params, :type => :hash, :default => {},
20
+ :desc => 'Additional request parameters e.i per_page:100'
21
+ def get(org)
22
+ Organization.get org, options[:params], options[:format]
23
+ end
24
+
25
+ desc 'edit <org>', 'Edit organization'
26
+ method_option :params, :type => :hash, :default => {},
27
+ :desc => 'Additonal request parameters e.i per_page:100'
28
+ long_desc <<-DESC
29
+ Parameters
30
+
31
+ billing_email - Optional string - Billing email address. This address is not publicized.\n
32
+ company - Optional string\n
33
+ email - Optional string\n
34
+ location - Optional string\n
35
+ name - Optional string\n
36
+ DESC
37
+ def edit(org)
38
+ Oraanization.edit org, options[:params], options[:format]
39
+ end
40
+
41
+ end # Organizations
42
+ end # GithubCLI
@@ -0,0 +1,148 @@
1
+ # encoding: utf-8
2
+
3
+ module GithubCLI
4
+ class Commands::Teams < Command
5
+
6
+ namespace :team
7
+
8
+ desc 'list <org>', "List teams"
9
+ method_option :params, :type => :hash, :default => {},
10
+ :desc => 'Additional request parameters e.i per_page:100'
11
+ def list(org)
12
+ Team.all org, options[:params], options[:format]
13
+ end
14
+
15
+ desc 'get <id>', "Get a team"
16
+ method_option :params, :type => :hash, :default => {},
17
+ :desc => 'Additional request parameters e.i per_page:100'
18
+ def get(id)
19
+ Team.get id, options[:params], options[:format]
20
+ end
21
+
22
+ desc 'create <org>', "Create a team"
23
+ long_desc <<-DESC
24
+ In order to create a team, the authenticated user must be an owner of :org.
25
+
26
+ Input
27
+
28
+ name - Required string\n
29
+ repo_names - Optional array of strings\n
30
+ permission - Optional string\n
31
+ * pull - team members can pull, but not push or administor this repositories. Default\n
32
+ * push - team members can pull and push, but not administor this repositores.\n
33
+ * admin - team members can pull, push and administor these repositories.\n
34
+ DESC
35
+ method_option :params, :type => :hash, :default => {},
36
+ :desc => 'Additional request parameters e.i per_page:100'
37
+ def create(org)
38
+ Team.create org, options[:params], options[:format]
39
+ end
40
+
41
+ desc 'edit <id>', "Edit team <id>"
42
+ long_desc <<-DESC
43
+ In order to edit a team, the authenticated user must be an owner of the org that the team is associated with.
44
+
45
+ Input
46
+
47
+ name - Required string\n
48
+ permission - Optional string\n
49
+ * pull - team members can pull, but not push or administor this repositories. Default\n
50
+ * push - team members can pull and push, but not administor this repositores.\n
51
+ * admin - team members can pull, push and administor these repositories.\n
52
+ DESC
53
+ method_option :params, :type => :hash, :default => {},
54
+ :desc => 'Additional request parameters e.i per_page:100'
55
+ def edit(id)
56
+ Team.edit id, options[:params], options[:format]
57
+ end
58
+
59
+ desc 'delete <id>', 'Delete team'
60
+ long_desc <<-DESC
61
+ In order to delete a team, the authenticated user must be an owner of the org that the team is associated with.
62
+ DESC
63
+ method_option :params, :type => :hash, :default => {},
64
+ :desc => 'Additional request parameters e.i per_page:100'
65
+ def delete(id)
66
+ Team.delete id, options[:params], options[:format]
67
+ end
68
+
69
+ desc 'list_member <id>', "List team <id> members"
70
+ method_option :params, :type => :hash, :default => {},
71
+ :desc => 'Additional request parameters e.i per_page:100'
72
+ def list_member(id)
73
+ Team.all_member id, options[:params], options[:format]
74
+ end
75
+
76
+ desc 'member <id> <user>', 'Check if <user> is a team member'
77
+ long_desc <<-DESC
78
+ In order to get if a user is a member of a team, the authenticated user must be a member of the team.
79
+ DESC
80
+ method_option :params, :type => :hash, :default => {},
81
+ :desc => 'Additional request parameters e.i per_page:100'
82
+ def member(id, user)
83
+ Team.member id, user, options[:params], options[:format]
84
+ end
85
+
86
+ desc 'add_member <id> <user>', 'Add team member'
87
+ long_desc <<-DESC
88
+ In order to add a user to a team, the authenticated user must have ‘admin’ permissions to the team or be an owner of the org that the team is associated with.
89
+ DESC
90
+ method_option :params, :type => :hash, :default => {},
91
+ :desc => 'Additional request parameters e.i per_page:100'
92
+ def add_member(id, user)
93
+ Team.add_member id, user, options[:params], options[:format]
94
+ end
95
+
96
+ desc 'remove_member <id> <user>', 'Remove team member'
97
+ long_desc <<-DESC
98
+ In order to remove a user from a team, the authenticated user must have
99
+ ‘admin’ permissions to the team or be an owner of the org that the team
100
+ is associated with. NOTE: This does not delete the user, it just remove
101
+ them from the team.
102
+ DESC
103
+ method_option :params, :type => :hash, :default => {},
104
+ :desc => 'Additional request parameters e.i per_page:100'
105
+ def remove_member(id, user)
106
+ Team.remove_member id, user, options[:params], options[:format]
107
+ end
108
+
109
+ desc 'list_repo <id>', "List team <id> repositories"
110
+ method_option :params, :type => :hash, :default => {},
111
+ :desc => 'Additional request parameters e.i per_page:100'
112
+ def list_repo(id)
113
+ Team.all_repo id, options[:params], options[:format]
114
+ end
115
+
116
+ desc 'repo <id> <user> <repo>', 'Check if <repo> is managed by <id> team'
117
+ method_option :params, :type => :hash, :default => {},
118
+ :desc => 'Additional request parameters e.i per_page:100'
119
+ def repo(id, user, repo)
120
+ Team.repo id, user, repo, options[:params], options[:format]
121
+ end
122
+
123
+ desc 'add_repo <id> <user> <repo>', 'Add team <repo>'
124
+ long_desc <<-DESC
125
+ In order to add a repo to a team, the authenticated user must be an owner
126
+ of the org that the team is associated with. Also, the repo must be owned
127
+ by the organization, or a direct for of a repo owned by the organization.
128
+ DESC
129
+ method_option :params, :type => :hash, :default => {},
130
+ :desc => 'Additional request parameters e.i per_page:100'
131
+ def add_repo(id, user, repo)
132
+ Team.add_repo id, user, repo, options[:params], options[:format]
133
+ end
134
+
135
+ desc 'remove_repo <id> <user> <repo>', 'Remove team <repo>'
136
+ long_desc <<-DESC
137
+ In order to remove a repo from a team, the authenticated user must be an
138
+ owner of the org that the team is associated with. NOTE: This does not
139
+ delete the repo, it just removes it from the team.
140
+ DESC
141
+ method_option :params, :type => :hash, :default => {},
142
+ :desc => 'Additional request parameters e.i per_page:100'
143
+ def remove_repo(id, user, repo)
144
+ Team.remove_repo id, user, repo, options[:params], options[:format]
145
+ end
146
+
147
+ end # Teams
148
+ end # GithubCLI
@@ -0,0 +1,26 @@
1
+ # encoding: utf-8
2
+
3
+ module GithubCLI
4
+ class Commands::Users < Command
5
+
6
+ namespace :user
7
+
8
+ desc 'get', 'Get the authenticated user'
9
+ method_option :user, :type => :string, :aliases => ["-u"],
10
+ :desc => 'Get a single unauthenticated <user>',
11
+ :banner => '<user>'
12
+ method_option :params, :type => :hash, :default => {},
13
+ :desc => 'Additional request parameters e.i per_page:100'
14
+ def get
15
+ User.get options[:user], options[:params], options[:format]
16
+ end
17
+
18
+ desc 'update', 'Update the authenticated user'
19
+ method_option :params, :type => :hash, :default => {},
20
+ :desc => 'Additonal request parameters e.i per_page:100'
21
+ def update
22
+ User.update options[:params], options[:format]
23
+ end
24
+
25
+ end # Users
26
+ end # GithubCLI
@@ -9,18 +9,23 @@ module GithubCLI
9
9
  autoload :Downloads, 'github_cli/commands/downloads'
10
10
  autoload :Emails, 'github_cli/commands/emails'
11
11
  autoload :Events, 'github_cli/commands/events'
12
+ autoload :Followers, 'github_cli/commands/followers'
12
13
  autoload :Forks, 'github_cli/commands/forks'
13
14
  autoload :Gists, 'github_cli/commands/gists'
14
15
  autoload :Hooks, 'github_cli/commands/hooks'
15
16
  autoload :Issues, 'github_cli/commands/issues'
16
17
  autoload :Keys, 'github_cli/commands/keys'
17
18
  autoload :Labels, 'github_cli/commands/labels'
19
+ autoload :Members, 'github_cli/commands/members'
18
20
  autoload :Milestones, 'github_cli/commands/milestones'
21
+ autoload :Organizations, 'github_cli/commands/organizations'
19
22
  autoload :PullRequests, 'github_cli/commands/pull_requests'
20
23
  autoload :References, 'github_cli/commands/references'
21
24
  autoload :Repositories, 'github_cli/commands/repositories'
22
25
  autoload :Tags, 'github_cli/commands/tags'
26
+ autoload :Teams, 'github_cli/commands/teams'
23
27
  autoload :Trees, 'github_cli/commands/trees'
28
+ autoload :Users, 'github_cli/commands/users'
24
29
  autoload :Watching, 'github_cli/commands/watching'
25
30
  end # Commands
26
31
  end # GithubCLI