github_cli 0.3.1 → 0.4.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 (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