github_cli 0.5.3 → 0.5.4
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/.travis.yml +14 -3
- data/CHANGELOG.md +15 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +41 -44
- data/README.md +77 -14
- data/Rakefile +4 -2
- data/features/assignee.feature +1 -0
- data/features/blob.feature +1 -0
- data/features/collaborator.feature +1 -0
- data/features/commit.feature +2 -1
- data/features/config.feature +27 -28
- data/features/event.feature +1 -0
- data/features/init.feature +20 -23
- data/features/key.feature +5 -5
- data/features/milestone.feature +3 -2
- data/features/reference.feature +3 -2
- data/features/starring.feature +1 -0
- data/features/support/hooks.rb +1 -1
- data/features/tag.feature +2 -1
- data/features/tree.feature +17 -0
- data/features/watching.feature +1 -0
- data/fixtures/simple_config +3 -5
- data/github_cli.gemspec +1 -1
- data/lib/github_cli/api.rb +11 -6
- data/lib/github_cli/apis/event.rb +8 -8
- data/lib/github_cli/apis/label.rb +0 -12
- data/lib/github_cli/apis/starring.rb +5 -5
- data/lib/github_cli/apis/watching.rb +5 -5
- data/lib/github_cli/cli.rb +21 -30
- data/lib/github_cli/command.rb +1 -1
- data/lib/github_cli/commands/authorizations.rb +28 -2
- data/lib/github_cli/commands/collaborators.rb +12 -12
- data/lib/github_cli/commands/commits.rb +18 -2
- data/lib/github_cli/commands/events.rb +6 -8
- data/lib/github_cli/commands/followers.rb +1 -1
- data/lib/github_cli/commands/labels.rb +22 -20
- data/lib/github_cli/commands/milestones.rb +43 -13
- data/lib/github_cli/commands/references.rb +21 -6
- data/lib/github_cli/commands/starring.rb +3 -2
- data/lib/github_cli/commands/tags.rb +16 -1
- data/lib/github_cli/commands/trees.rb +11 -5
- data/lib/github_cli/commands/watching.rb +3 -2
- data/lib/github_cli/config.rb +15 -6
- data/lib/github_cli/dsl.rb +2 -2
- data/lib/github_cli/formatter.rb +2 -3
- data/lib/github_cli/formatters/csv.rb +29 -14
- data/lib/github_cli/formatters/table.rb +2 -3
- data/lib/github_cli/man/gcli-config.1 +17 -13
- data/lib/github_cli/man/gcli-config.1.txt +23 -21
- data/lib/github_cli/vendor/thor/actions/create_link.rb +3 -0
- data/lib/github_cli/vendor/thor/actions/directory.rb +29 -10
- data/lib/github_cli/vendor/thor/actions/file_manipulation.rb +9 -3
- data/lib/github_cli/vendor/thor/actions.rb +18 -18
- data/lib/github_cli/vendor/thor/base.rb +97 -89
- data/lib/github_cli/vendor/thor/{task.rb → command.rb} +16 -12
- data/lib/github_cli/vendor/thor/core_ext/hash_with_indifferent_access.rb +5 -0
- data/lib/github_cli/vendor/thor/core_ext/io_binary_read.rb +12 -0
- data/lib/github_cli/vendor/thor/error.rb +4 -7
- data/lib/github_cli/vendor/thor/group.rb +34 -32
- data/lib/github_cli/vendor/thor/invocation.rb +28 -26
- data/lib/github_cli/vendor/thor/parser/options.rb +66 -26
- data/lib/github_cli/vendor/thor/rake_compat.rb +3 -2
- data/lib/github_cli/vendor/thor/runner.rb +21 -20
- data/lib/github_cli/vendor/thor/shell/basic.rb +20 -16
- data/lib/github_cli/vendor/thor/shell/color.rb +13 -9
- data/lib/github_cli/vendor/thor/shell/html.rb +13 -9
- data/lib/github_cli/vendor/thor/util.rb +214 -210
- data/lib/github_cli/vendor/thor/version.rb +1 -1
- data/lib/github_cli/vendor/thor.rb +232 -153
- data/lib/github_cli/version.rb +1 -1
- data/man/gcli-config.1.ronn +14 -11
- data/spec/github_cli/commands/assignees_spec.rb +20 -0
- data/spec/github_cli/commands/blobs_spec.rb +21 -0
- data/spec/github_cli/commands/collaborators_spec.rb +31 -0
- data/spec/github_cli/commands/commits_spec.rb +26 -0
- data/spec/github_cli/commands/emails_spec.rb +24 -0
- data/spec/github_cli/commands/events_spec.rb +56 -0
- data/spec/github_cli/commands/followers_spec.rb +44 -0
- data/spec/github_cli/commands/keys_spec.rb +36 -0
- data/spec/github_cli/commands/labels_spec.rb +61 -0
- data/spec/github_cli/commands/milestones_spec.rb +47 -0
- data/spec/github_cli/commands/references_spec.rb +42 -0
- data/spec/github_cli/commands/starring_spec.rb +40 -0
- data/spec/github_cli/commands/tags_spec.rb +26 -0
- data/spec/github_cli/commands/trees_spec.rb +32 -0
- data/spec/github_cli/commands/watching_spec.rb +40 -0
- data/spec/github_cli/config_spec.rb +109 -116
- data/spec/github_cli/util/convert_value_spec.rb +19 -0
- data/spec/github_cli/util/convert_values_spec.rb +14 -0
- data/spec/github_cli/util_spec.rb +0 -29
- metadata +51 -19
- data/lib/github_cli/vendor/thor/core_ext/dir_escape.rb +0 -0
- data/lib/github_cli/vendor/thor/core_ext/file_binary_read.rb +0 -9
- data/lib/github_cli/vendor/thor/empty.txt +0 -0
data/features/tree.feature
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
Feature: gcli tree
|
2
2
|
|
3
|
+
@ci-run
|
3
4
|
Scenario: Available commands
|
4
5
|
|
5
6
|
When I run `gcli tree`
|
@@ -14,3 +15,19 @@ Feature: gcli tree
|
|
14
15
|
"""
|
15
16
|
When I run `gcli tree get wycats thor 827efc6d5`
|
16
17
|
Then the exit status should be 0
|
18
|
+
|
19
|
+
Scenario: Get tree recursively
|
20
|
+
Given the GitHub API server:
|
21
|
+
"""
|
22
|
+
get('/repos/wycats/thor/git/trees/827efc6d5') { status 200 }
|
23
|
+
"""
|
24
|
+
When I run `gcli tree get wycats thor 827efc6d5 --recursive`
|
25
|
+
Then the exit status should be 0
|
26
|
+
|
27
|
+
Scenario: Create tree
|
28
|
+
Given the Github API server:
|
29
|
+
"""
|
30
|
+
post('/repos/wycats/thor/git/trees') { status 200 }
|
31
|
+
"""
|
32
|
+
When I run `gcli tree create wycats thor --tree='path:file1 mode:00111'`
|
33
|
+
Then the exit status should be 0
|
data/features/watching.feature
CHANGED
data/fixtures/simple_config
CHANGED
@@ -1,9 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
core.user:
|
6
|
-
core.repo:
|
2
|
+
user.token: ad7f9asdf97as98df7as9fd7
|
3
|
+
user.login: login
|
4
|
+
user.password: password
|
7
5
|
commands.issue.list:
|
8
6
|
title: 'ticket'
|
9
7
|
commands.issue.get:
|
data/github_cli.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.require_paths = ["lib"]
|
18
18
|
gem.version = GithubCLI::VERSION
|
19
19
|
|
20
|
-
gem.add_dependency 'github_api', '~> 0.
|
20
|
+
gem.add_dependency 'github_api', '~> 0.9'
|
21
21
|
|
22
22
|
gem.add_development_dependency 'rspec'
|
23
23
|
gem.add_development_dependency 'aruba'
|
data/lib/github_cli/api.rb
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
module GithubCLI
|
4
|
+
|
4
5
|
# The API class is the main entry point for creating GithubCLI APIs.
|
5
6
|
class API
|
6
7
|
|
7
|
-
ENDPOINT = ''
|
8
|
-
|
9
8
|
@@api = nil
|
10
9
|
|
11
10
|
class << self
|
@@ -20,9 +19,15 @@ module GithubCLI
|
|
20
19
|
|
21
20
|
def configure_api
|
22
21
|
@@api = Github.new
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
config = GithubCLI.config.data
|
23
|
+
|
24
|
+
if config['user.token']
|
25
|
+
@@api.oauth_token = config['user.token']
|
26
|
+
end
|
27
|
+
if config['user.login'] && config['user.password']
|
28
|
+
@@api.basic_auth = "#{config['user.login']}:#{config['user.password']}"
|
29
|
+
end
|
30
|
+
@@api.endpoint = GithubCLI.config['core.endpoint'] || @@api.endpoint
|
26
31
|
if ENV['TEST_HOST']
|
27
32
|
@@api.endpoint = 'http://' + ENV['TEST_HOST']
|
28
33
|
end
|
@@ -30,7 +35,7 @@ module GithubCLI
|
|
30
35
|
end
|
31
36
|
|
32
37
|
def output(format=:table, &block)
|
33
|
-
response
|
38
|
+
response = block.call
|
34
39
|
formatter = Formatter.new response, :format => format
|
35
40
|
formatter.render_output
|
36
41
|
end
|
@@ -7,49 +7,49 @@ module GithubCLI
|
|
7
7
|
|
8
8
|
def public(params, format)
|
9
9
|
output format do
|
10
|
-
github_api.events.public params
|
10
|
+
github_api.activity.events.public params
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
def repository(user, repo, params, format)
|
15
15
|
output format do
|
16
|
-
github_api.events.repository user, repo, params
|
16
|
+
github_api.activity.events.repository user, repo, params
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
def issue(user, repo, params, format)
|
21
21
|
output format do
|
22
|
-
github_api.events.issue user, repo, params
|
22
|
+
github_api.activity.events.issue user, repo, params
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
def network(user, repo, params, format)
|
27
27
|
output format do
|
28
|
-
github_api.events.network user, repo, params
|
28
|
+
github_api.activity.events.network user, repo, params
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
32
|
def organization(org, params, format)
|
33
33
|
output format do
|
34
|
-
github_api.events.organization org, params
|
34
|
+
github_api.activity.events.organization org, params
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
38
|
def received(user, params, format)
|
39
39
|
output format do
|
40
|
-
github_api.events.received user, params
|
40
|
+
github_api.activity.events.received user, params
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
44
|
def performed(user, params, format)
|
45
45
|
output format do
|
46
|
-
github_api.events.performed user, params
|
46
|
+
github_api.activity.events.performed user, params
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
50
|
def user_org(user, org, params, format)
|
51
51
|
output format do
|
52
|
-
github_api.events.user_org user, org, params
|
52
|
+
github_api.activity.events.user_org user, org, params
|
53
53
|
end
|
54
54
|
end
|
55
55
|
end
|
@@ -35,12 +35,6 @@ module GithubCLI
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
-
def issue(user, repo, issue_id, params, format)
|
39
|
-
output format do
|
40
|
-
github_api.issues.labels.issue user, repo, issue_id, params
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
38
|
def add(user, repo, issue_id, *args)
|
45
39
|
format, params = args.pop, args.pop
|
46
40
|
|
@@ -62,12 +56,6 @@ module GithubCLI
|
|
62
56
|
github_api.issues.labels.replace user, repo, issue_id, args.flatten, params
|
63
57
|
end
|
64
58
|
end
|
65
|
-
|
66
|
-
def milestone(user, repo, number, params, format)
|
67
|
-
output format do
|
68
|
-
github_api.issues.labels.milestone user, repo, number, params
|
69
|
-
end
|
70
|
-
end
|
71
59
|
end
|
72
60
|
|
73
61
|
end # Label
|
@@ -7,31 +7,31 @@ module GithubCLI
|
|
7
7
|
|
8
8
|
def list(user, repo, params, format)
|
9
9
|
output format do
|
10
|
-
github_api.
|
10
|
+
github_api.activity.starring.list user, repo, params
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
def starred(params, format)
|
15
15
|
output format do
|
16
|
-
github_api.
|
16
|
+
github_api.activity.starring.starred params
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
def starring?(user, repo, params, format)
|
21
21
|
output format do
|
22
|
-
github_api.
|
22
|
+
github_api.activity.starring.starring? user, repo, params
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
def star(user, repo, params, format)
|
27
27
|
output format do
|
28
|
-
github_api.
|
28
|
+
github_api.activity.starring.star user, repo, params
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
32
|
def unstar(user, repo, params, format)
|
33
33
|
output format do
|
34
|
-
github_api.
|
34
|
+
github_api.activity.starring.unstar user, repo, params
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
@@ -7,31 +7,31 @@ module GithubCLI
|
|
7
7
|
|
8
8
|
def list(user, repo, params, format)
|
9
9
|
output format do
|
10
|
-
github_api.
|
10
|
+
github_api.activity.watching.list user, repo, params
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
def watched(params, format)
|
15
15
|
output format do
|
16
|
-
github_api.
|
16
|
+
github_api.activity.watching.watched params
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
def watching?(user, repo, params, format)
|
21
21
|
output format do
|
22
|
-
github_api.
|
22
|
+
github_api.activity.watching.watching? user, repo, params
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
def start(user, repo, params, format)
|
27
27
|
output format do
|
28
|
-
github_api.
|
28
|
+
github_api.activity.watching.watch user, repo, params
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
32
|
def stop(user, repo, params, format)
|
33
33
|
output format do
|
34
|
-
github_api.
|
34
|
+
github_api.activity.watching.unwatch user, repo, params
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
data/lib/github_cli/cli.rb
CHANGED
@@ -24,8 +24,8 @@ module GithubCLI
|
|
24
24
|
|
25
25
|
map ALIASES
|
26
26
|
|
27
|
-
class_option :
|
28
|
-
:desc => "Configuration file.", :banner => "<filename>",
|
27
|
+
class_option :filename, :type => :string,
|
28
|
+
:desc => "Configuration file name.", :banner => "<filename>",
|
29
29
|
:default => ".githubrc"
|
30
30
|
class_option :token, :type => :string,
|
31
31
|
:desc => 'Authentication token.',
|
@@ -45,18 +45,23 @@ module GithubCLI
|
|
45
45
|
no_tasks do
|
46
46
|
def defaults
|
47
47
|
{
|
48
|
-
'
|
49
|
-
'
|
50
|
-
'
|
51
|
-
'
|
52
|
-
'
|
48
|
+
'user.token' => nil,
|
49
|
+
'user.login' => nil,
|
50
|
+
'user.password' => nil,
|
51
|
+
'user.name' => nil,
|
52
|
+
'user.repo' => nil,
|
53
|
+
'user.org' => nil,
|
54
|
+
'core.adapter' => :net_http,
|
55
|
+
'core.endpoint' => 'https://api.github.com',
|
56
|
+
'core.ssl' => nil,
|
57
|
+
'core.mime' => :json,
|
53
58
|
'core.editor' => 'vi',
|
54
59
|
'core.pager' => 'less',
|
55
60
|
'core.no-pager' => false,
|
56
61
|
'core.no-color' => false,
|
57
|
-
'core.format' => '
|
58
|
-
'core.
|
59
|
-
'core.aliases' =>
|
62
|
+
'core.format' => 'table',
|
63
|
+
'core.auto_pagination' => false,
|
64
|
+
'core.aliases' => nil,
|
60
65
|
}
|
61
66
|
end
|
62
67
|
end
|
@@ -72,18 +77,11 @@ module GithubCLI
|
|
72
77
|
DESC
|
73
78
|
method_option :force, :type => :boolean, :default => false, :aliases => "-f",
|
74
79
|
:banner => "Overwrite configuration file. "
|
75
|
-
method_option :global, :type => :boolean, :default => false,
|
76
|
-
:desc => 'Create global config file'
|
77
80
|
method_option :local, :type => :boolean, :default => false,
|
78
|
-
:desc => 'Create local
|
81
|
+
:desc => 'Create local configuration file, otherwise a global configuration file in user home is created.'
|
79
82
|
def init(filename=nil)
|
80
|
-
config_filename =
|
81
|
-
|
82
|
-
if !options[:global] and !options[:local]
|
83
|
-
GithubCLI.ui.error 'Invalid scope given. Please use --local or --global.'
|
84
|
-
exit 1
|
85
|
-
end
|
86
|
-
|
83
|
+
config_filename = filename ? filename : options[:filename]
|
84
|
+
GithubCLI.config.filename = config_filename
|
87
85
|
GithubCLI.config.location = options[:local] ? 'local' : 'global'
|
88
86
|
|
89
87
|
if File.exists?(GithubCLI.config.path) && !options[:force]
|
@@ -91,8 +89,7 @@ module GithubCLI
|
|
91
89
|
exit 1
|
92
90
|
end
|
93
91
|
|
94
|
-
|
95
|
-
GithubCLI.config.save(defaults.merge({'auth.token' => oauth_token}))
|
92
|
+
GithubCLI.config.save(defaults)
|
96
93
|
GithubCLI.ui.confirm "Writing new configuration file to #{GithubCLI.config.path}"
|
97
94
|
end
|
98
95
|
|
@@ -106,8 +103,6 @@ module GithubCLI
|
|
106
103
|
There two types of config files, global and project specific. When modifying
|
107
104
|
options ensure that you modifying the correct config.
|
108
105
|
DESC
|
109
|
-
method_option :global, :type => :boolean, :default => false,
|
110
|
-
:desc => 'use global config file'
|
111
106
|
method_option :local, :type => :boolean, :default => false,
|
112
107
|
:desc => 'use local config file'
|
113
108
|
method_option :list, :type => :boolean, :default => false, :aliases => '-l',
|
@@ -116,14 +111,10 @@ module GithubCLI
|
|
116
111
|
:desc => 'opens an editor'
|
117
112
|
def config(*args)
|
118
113
|
name, value = args.shift, args.shift
|
119
|
-
|
120
114
|
GithubCLI.config.location = options[:local] ? 'local' : 'global'
|
121
115
|
|
122
|
-
if !
|
123
|
-
GithubCLI.ui.error
|
124
|
-
exit 1
|
125
|
-
elsif !File.exists?(GithubCLI.config.path)
|
126
|
-
GithubCLI.ui.error "#{GithubCLI.config.location} configuration file does not exist. Please use `#{GithubCLI.executable_name} init --#{GithubCLI.config.location}`"
|
116
|
+
if !File.exists?(GithubCLI.config.path)
|
117
|
+
GithubCLI.ui.error "Configuration file does not exist. Please use `#{GithubCLI.executable_name} init` to create one."
|
127
118
|
exit 1
|
128
119
|
end
|
129
120
|
|
data/lib/github_cli/command.rb
CHANGED
@@ -58,7 +58,7 @@ module GithubCLI
|
|
58
58
|
Thor::Base.subclasses.each do |klass|
|
59
59
|
namespace = extract_namespace(klass)
|
60
60
|
next unless is_api_command?(namespace)
|
61
|
-
namespace = "" if namespace.index
|
61
|
+
namespace = "" if namespace.index(API_CLASSES.first)
|
62
62
|
|
63
63
|
klass.tasks.each do |task|
|
64
64
|
next if task.last.name.index HELP_COMMAND
|
@@ -22,6 +22,12 @@ module GithubCLI
|
|
22
22
|
end
|
23
23
|
|
24
24
|
desc 'create', 'Create a new authorization'
|
25
|
+
option :scopes, :type => :array, :banner => "user public_repo repo...",
|
26
|
+
:desc => "A list of scopes that this authorization is in."
|
27
|
+
option :note, :type => :string,
|
28
|
+
:desc => "A note to remind you what the OAuth token is for."
|
29
|
+
option :note_url, :type => :string,
|
30
|
+
:desc => "A URL to remind you what the OAuth token is for."
|
25
31
|
long_desc <<-DESC
|
26
32
|
You can only create your own token, and only through Basic Authentication.\n
|
27
33
|
|
@@ -32,10 +38,24 @@ module GithubCLI
|
|
32
38
|
note_url - Optional string - A URL to remind you what the OAuth token is for.
|
33
39
|
DESC
|
34
40
|
def create
|
35
|
-
|
41
|
+
params = options[:params].dup
|
42
|
+
params['scopes'] = options[:scopes] if options[:scopes]
|
43
|
+
params['note'] = options[:note] if options[:note]
|
44
|
+
params['note_url'] = options[:note_url] if options[:note_url]
|
45
|
+
Authorization.create params, options[:format]
|
36
46
|
end
|
37
47
|
|
38
48
|
desc 'update <id>', 'Update an existing authorization'
|
49
|
+
option :scopes, :type => :array, :banner => "user public_repo repo...",
|
50
|
+
:desc => "A list of scopes that this authorization is in."
|
51
|
+
option :add_scopes, :type => :array,
|
52
|
+
:desc => "A list of scopes to add to this authorization."
|
53
|
+
option :remove_scopes, :type => :array,
|
54
|
+
:desc => "A list of scopes to remove from this authorization."
|
55
|
+
option :note, :type => :string,
|
56
|
+
:desc => "A note to remind you what the OAuth token is for."
|
57
|
+
option :note_url, :type => :string,
|
58
|
+
:desc => "A URL to remind you what the OAuth token is for."
|
39
59
|
long_desc <<-DESC
|
40
60
|
Inputs
|
41
61
|
|
@@ -46,7 +66,13 @@ module GithubCLI
|
|
46
66
|
note_url - Optional string - A URL to remind you what the OAuth token is for.
|
47
67
|
DESC
|
48
68
|
def update(id)
|
49
|
-
|
69
|
+
params = options[:params].dup
|
70
|
+
params['scopes'] = options[:scopes] if options[:scopes]
|
71
|
+
params['add_scopes'] = options[:add_scopes] if options[:add_scopes]
|
72
|
+
params['remove_scopes'] = options[:remove_scopes] if options[:remove_scopes]
|
73
|
+
params['note'] = options[:note] if options[:note]
|
74
|
+
params['note_url'] = options[:note_url] if options[:note_url]
|
75
|
+
Authorization.update id, params, options[:format]
|
50
76
|
end
|
51
77
|
|
52
78
|
desc 'delete <id>', 'Delete an authorization'
|
@@ -5,24 +5,24 @@ module GithubCLI
|
|
5
5
|
|
6
6
|
namespace :collab
|
7
7
|
|
8
|
-
desc 'list <
|
9
|
-
def list(
|
10
|
-
Collaborator.all
|
8
|
+
desc 'list <owner> <repo>', 'Lists collaborators'
|
9
|
+
def list(owner, repo)
|
10
|
+
Collaborator.all owner, repo, options[:params], options[:format]
|
11
11
|
end
|
12
12
|
|
13
|
-
desc 'add <
|
14
|
-
def add(
|
15
|
-
Collaborator.add
|
13
|
+
desc 'add <owner> <repo> <user>', 'Add a collaborator'
|
14
|
+
def add(owner, repo, user)
|
15
|
+
Collaborator.add owner, repo, user, options[:params], options[:format]
|
16
16
|
end
|
17
17
|
|
18
|
-
desc 'collab <
|
19
|
-
def collab(
|
20
|
-
Collaborator.collaborator?
|
18
|
+
desc 'collab <owner> <repo> <user>', 'Checks if user is a collaborator on a given repo'
|
19
|
+
def collab(owner, repo, user)
|
20
|
+
Collaborator.collaborator? owner, repo, user, options[:params], options[:format]
|
21
21
|
end
|
22
22
|
|
23
|
-
desc 'remove <
|
24
|
-
def remove(
|
25
|
-
Collaborator.remove
|
23
|
+
desc 'remove <owner> <repo> <user>', 'Remove a collaborator'
|
24
|
+
def remove(owner, repo, user)
|
25
|
+
Collaborator.remove owner, repo, user, options[:params], options[:format]
|
26
26
|
end
|
27
27
|
|
28
28
|
end # Collaborators
|
@@ -11,6 +11,16 @@ module GithubCLI
|
|
11
11
|
end
|
12
12
|
|
13
13
|
desc 'create <user> <repo>', 'Create a Commit'
|
14
|
+
option :message, :type => :string, :aliases => ["-m"],
|
15
|
+
:desc => "String of the commit message."
|
16
|
+
option :tree, :type => :string, :aliases => ["-t"], :banner => "<sha>",
|
17
|
+
:desc => "String of the SHA of the tree object this commit points to."
|
18
|
+
option :parents, :type => :array, :banner => "<sha1> <sha2> ...",
|
19
|
+
:desc => "Array of the SHAs of the commits that were the parents of this commit. "
|
20
|
+
option :author, :type => :hash,
|
21
|
+
:desc => "If the author section is omitted, it will be filled in with the authenticated user’s information and the current date."
|
22
|
+
option :committer, :type => :hash,
|
23
|
+
:desc => "The committer section is optional and will be filled with the author data if omitted."
|
14
24
|
long_desc <<-DESC
|
15
25
|
Parameters
|
16
26
|
|
@@ -27,10 +37,16 @@ module GithubCLI
|
|
27
37
|
author.date - Timestamp of when this commit was authored \n
|
28
38
|
committer.name - String of the name of the committer of the commit \n
|
29
39
|
committer.email - String of the email of the committer of the commit \n
|
30
|
-
committer.date
|
40
|
+
committer.date - Timestamp of when this commit was committed
|
31
41
|
DESC
|
32
42
|
def create(user, repo)
|
33
|
-
|
43
|
+
params = options[:params].dup
|
44
|
+
params['message'] = options[:message] if options[:message]
|
45
|
+
params['tree'] = options[:tree] if options[:tree]
|
46
|
+
params['parents'] = options[:parents] if options[:parents]
|
47
|
+
params['author'] = options[:author] if options[:author]
|
48
|
+
params['committer'] = options[:committer] if options[:committer]
|
49
|
+
Commit.create user, repo, params, options[:format]
|
34
50
|
end
|
35
51
|
|
36
52
|
end # Commit
|
@@ -39,10 +39,9 @@ module GithubCLI
|
|
39
39
|
Otherwise, you’ll only see public events.
|
40
40
|
DESC
|
41
41
|
def received(user)
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
Event.received user, options[:params], options[:format]
|
42
|
+
params = options[:params].dup
|
43
|
+
params['public'] = options[:public] if options[:public]
|
44
|
+
Event.received user, params, options[:format]
|
46
45
|
end
|
47
46
|
|
48
47
|
desc 'performed <user>', 'Lists all events that a user has performed'
|
@@ -53,10 +52,9 @@ module GithubCLI
|
|
53
52
|
events. Otherwise, you’ll only see public events.
|
54
53
|
DESC
|
55
54
|
def performed(user)
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
Event.performed user, options[:params], options[:format]
|
55
|
+
params = options[:params].dup
|
56
|
+
params['public'] = true if options[:public]
|
57
|
+
Event.performed user, params, options[:format]
|
60
58
|
end
|
61
59
|
|
62
60
|
desc 'user_org <user> <org>', "Lists all events for a user's organization"
|
@@ -13,7 +13,7 @@ module GithubCLI
|
|
13
13
|
Follower.all options[:user], options[:params], options[:format]
|
14
14
|
end
|
15
15
|
|
16
|
-
desc 'following', 'List who the authenticated user is following'
|
16
|
+
desc 'following', 'List who a user/the authenticated user is following'
|
17
17
|
method_option :user, :type => :string, :aliases => ["-u"],
|
18
18
|
:desc => 'List who a <user> is following',
|
19
19
|
:banner => '<user>'
|
@@ -6,8 +6,20 @@ module GithubCLI
|
|
6
6
|
namespace :label
|
7
7
|
|
8
8
|
desc 'list <user> <repo>', 'Listing all labels for this repository.'
|
9
|
+
method_option :milestone, :type => :string, :aliases => ["-m"],
|
10
|
+
:desc => 'List labels for every issue in a milestone.',
|
11
|
+
:banner => '<milestone>'
|
12
|
+
method_option :issue, :type => :string, :aliases => ["-i"],
|
13
|
+
:desc => 'List labels on an issue.',
|
14
|
+
:banner => '<issue>'
|
9
15
|
def list(user, repo)
|
10
|
-
|
16
|
+
params = options[:params].dup
|
17
|
+
if (milestone_id = options[:milestone])
|
18
|
+
params['milestone_id'] = milestone_id
|
19
|
+
elsif (issue_id = options[:issue])
|
20
|
+
params['issue_id'] = issue_id
|
21
|
+
end
|
22
|
+
Label.all user, repo, params, options[:format]
|
11
23
|
end
|
12
24
|
|
13
25
|
desc 'get <user> <repo> <name>', 'Get a single label.'
|
@@ -35,30 +47,20 @@ module GithubCLI
|
|
35
47
|
Label.delete user, repo, name, options[:params], options[:format]
|
36
48
|
end
|
37
49
|
|
38
|
-
desc '
|
39
|
-
def
|
40
|
-
Label.
|
50
|
+
desc 'add <user> <repo> <number> <label>[<label>...]', 'Add labels to issue <number>.'
|
51
|
+
def add(user, repo, number, *args)
|
52
|
+
Label.add user, repo, number, args, options[:params], options[:format]
|
41
53
|
end
|
42
54
|
|
43
|
-
desc '
|
44
|
-
def add(user, repo, issue_id, *args)
|
45
|
-
Label.add user, repo, issue_id, args, options[:params], options[:format]
|
46
|
-
end
|
47
|
-
|
48
|
-
desc 'remove <user> <repo> [<label_id>/]<issue_id>', 'Remove <label_id> from an <issue_id>'
|
55
|
+
desc 'remove <user> <repo> [<name>/]<number>', 'Remove label<name> from an issue<number>'
|
49
56
|
def remove(user, repo, number)
|
50
|
-
|
51
|
-
Label.remove user, repo,
|
52
|
-
end
|
53
|
-
|
54
|
-
desc 'replace <user> <repo> <issue_id> <label>[<label>...]', 'Replace all labels for an <issue_id>.'
|
55
|
-
def replace(user, repo, issue_id, *args)
|
56
|
-
Label.replace user, repo, issue_id, args, options[:params], options[:format]
|
57
|
+
name, number = Arguments.new(number).parse
|
58
|
+
Label.remove user, repo, number, name, options[:params], options[:format]
|
57
59
|
end
|
58
60
|
|
59
|
-
desc '
|
60
|
-
def
|
61
|
-
Label.
|
61
|
+
desc 'replace <user> <repo> <number> <label>[<label>...]', 'Replace all labels for an issue <number>.'
|
62
|
+
def replace(user, repo, number, *args)
|
63
|
+
Label.replace user, repo, number, args, options[:params], options[:format]
|
62
64
|
end
|
63
65
|
|
64
66
|
end # Labels
|