octokit 0.6.3 → 0.6.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +1 -0
- data/CHANGELOG.md +18 -18
- data/README.md +5 -3
- data/Rakefile +2 -0
- data/lib/faraday/response/{raise_error.rb → raise_octokit_error.rb} +11 -2
- data/lib/octokit.rb +18 -46
- data/lib/octokit/authentication.rb +21 -0
- data/lib/octokit/client.rb +13 -6
- data/lib/octokit/client/commits.rb +2 -2
- data/lib/octokit/client/issues.rb +184 -21
- data/lib/octokit/client/milestones.rb +87 -0
- data/lib/octokit/client/network.rb +2 -4
- data/lib/octokit/client/objects.rb +6 -8
- data/lib/octokit/client/organizations.rb +18 -19
- data/lib/octokit/client/pub_sub_hubbub.rb +41 -0
- data/lib/octokit/client/pub_sub_hubbub/service_hooks.rb +41 -0
- data/lib/octokit/client/pulls.rb +12 -3
- data/lib/octokit/client/repositories.rb +28 -30
- data/lib/octokit/client/timelines.rb +3 -5
- data/lib/octokit/client/users.rb +40 -18
- data/lib/octokit/connection.rb +42 -0
- data/lib/octokit/error.rb +34 -0
- data/lib/octokit/request.rb +44 -0
- data/lib/octokit/version.rb +1 -1
- data/octokit.gemspec +33 -28
- data/puppeteer.jpg +0 -0
- data/spec/faraday/response_spec.rb +2 -1
- data/spec/fixtures/v2/commit.json +1 -1
- data/spec/fixtures/v3/comment.json +14 -0
- data/spec/fixtures/v3/comments.json +44 -0
- data/spec/fixtures/v3/label.json +5 -0
- data/spec/fixtures/v3/labels.json +17 -0
- data/spec/fixtures/v3/milestone.json +12 -0
- data/spec/fixtures/v3/milestones.json +28 -0
- data/spec/fixtures/v3/not_found.json +3 -0
- data/spec/fixtures/v3/user.json +20 -0
- data/spec/helper.rb +14 -11
- data/spec/octokit/client/commits_spec.rb +3 -3
- data/spec/octokit/client/issues_spec.rb +82 -44
- data/spec/octokit/client/milestones_spec.rb +67 -0
- data/spec/octokit/client/objects_spec.rb +6 -6
- data/spec/octokit/client/organizations_spec.rb +19 -19
- data/spec/octokit/client/pub_sub_hubbub/service_hooks_spec.rb +45 -0
- data/spec/octokit/client/pub_sub_hubbub_spec.rb +49 -0
- data/spec/octokit/client/pulls_spec.rb +15 -3
- data/spec/octokit/client/repositories_spec.rb +30 -30
- data/spec/octokit/client/users_spec.rb +26 -26
- data/spec/octokit/client_spec.rb +2 -2
- data/spec/octokit_spec.rb +12 -3
- metadata +147 -55
- data/lib/octokit/client/authentication.rb +0 -23
- data/lib/octokit/client/connection.rb +0 -33
- data/lib/octokit/client/request.rb +0 -42
@@ -0,0 +1,87 @@
|
|
1
|
+
module Octokit
|
2
|
+
class Client
|
3
|
+
module Milestones
|
4
|
+
|
5
|
+
# List milestones for a repository
|
6
|
+
#
|
7
|
+
# @param repository [String, Repository, Hash] A GitHub repository.
|
8
|
+
# @param options [Hash] A customizable set of options.
|
9
|
+
# @option options [Integer] :milestone Milestone number.
|
10
|
+
# @option options [String] :state (open) State: <tt>open</tt> or <tt>closed</tt>.
|
11
|
+
# @option options [String] :sort (created) Sort: <tt>created</tt>, <tt>updated</tt>, or <tt>comments</tt>.
|
12
|
+
# @option options [String] :direction (desc) Direction: <tt>asc</tt> or <tt>desc</tt>.
|
13
|
+
# @return [Array] A list of milestones for a repository.
|
14
|
+
# @see http://developer.github.com/v3/issues/milestones/#List-Milestones-for-an-Issue
|
15
|
+
# @example List milestones for a repository
|
16
|
+
# Octokit.list_milestones("pengwynn/octokit")
|
17
|
+
def list_milestones(repository, options={})
|
18
|
+
get("/repos/#{Repository.new(repository)}/milestones", options, 3)
|
19
|
+
end
|
20
|
+
alias :milestones :list_milestones
|
21
|
+
|
22
|
+
# Get a single milestone for a repository
|
23
|
+
#
|
24
|
+
# @param repository [String, Repository, Hash] A GitHub repository.
|
25
|
+
# @param options [Hash] A customizable set of options.
|
26
|
+
# @option options [Integer] :milestone Milestone number.
|
27
|
+
# @option options [String] :state (open) State: <tt>open</tt> or <tt>closed</tt>.
|
28
|
+
# @option options [String] :sort (created) Sort: <tt>created</tt>, <tt>updated</tt>, or <tt>comments</tt>.
|
29
|
+
# @option options [String] :direction (desc) Direction: <tt>asc</tt> or <tt>desc</tt>.
|
30
|
+
# @return [Milestone] A single milestone from a repository.
|
31
|
+
# @see http://developer.github.com/v3/issues/milestones/#get-a-single-milestone
|
32
|
+
# @example Get a single milestone for a repository
|
33
|
+
# Octokit.milestone("pengwynn/octokit", 1)
|
34
|
+
def milestone(repository, number, options={})
|
35
|
+
get("/repos/#{Repository.new(repository)}/milestones/#{number}", options, 3)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Create a milestone for a repository
|
39
|
+
#
|
40
|
+
# @param repository [String, Repository, Hash] A GitHub repository.
|
41
|
+
# @param title [String] A unique title.
|
42
|
+
# @param options [Hash] A customizable set of options.
|
43
|
+
# @option options [String] :state (open) State: <tt>open</tt> or <tt>closed</tt>.
|
44
|
+
# @option options [String] :description A meaningful description
|
45
|
+
# @option options [Time] :due_on Set if the milestone has a due date
|
46
|
+
# @return [Milestone] A single milestone object
|
47
|
+
# @see http://developer.github.com/v3/issues/milestones/#create-a-milestone
|
48
|
+
# @example Create a milestone for a repository
|
49
|
+
# Octokit.create_milestone("pengwynn/octokit", "0.7.0", {:description => 'Add support for v3 of Github API'})
|
50
|
+
def create_milestone(repository, title, options={})
|
51
|
+
post("/repos/#{Repository.new(repository)}/milestones", options.merge({:title => title}), 3)
|
52
|
+
end
|
53
|
+
|
54
|
+
# Update a milestone for a repository
|
55
|
+
#
|
56
|
+
# @param repository [String, Repository, Hash] A GitHub repository.
|
57
|
+
# @param number [String, Integer] Number ID of a milestone
|
58
|
+
# @param options [Hash] A customizable set of options.
|
59
|
+
# @option options [String] :title A unique title.
|
60
|
+
# @option options [String] :state (open) State: <tt>open</tt> or <tt>closed</tt>.
|
61
|
+
# @option options [String] :description A meaningful description
|
62
|
+
# @option options [Time] :due_on Set if the milestone has a due date
|
63
|
+
# @return [Milestone] A single milestone object
|
64
|
+
# @see http://developer.github.com/v3/issues/milestones/#update-a-milestone
|
65
|
+
# @example Update a milestone for a repository
|
66
|
+
# Octokit.update_milestone("pengwynn/octokit", 1, {:description => 'Add support for v3 of Github API'})
|
67
|
+
def update_milestone(repository, number, options={})
|
68
|
+
post("/repos/#{Repository.new(repository)}/milestones/#{number}", options, 3)
|
69
|
+
end
|
70
|
+
alias :edit_milestone :update_milestone
|
71
|
+
|
72
|
+
# Delete a single milestone for a repository
|
73
|
+
#
|
74
|
+
# @param repository [String, Repository, Hash] A GitHub repository.
|
75
|
+
# @param options [Hash] A customizable set of options.
|
76
|
+
# @option options [Integer] :milestone Milestone number.
|
77
|
+
# @return [Response] Response with status 204, no content
|
78
|
+
# @see http://developer.github.com/v3/issues/milestones/#delete-a-milestone
|
79
|
+
# @example Delete a single milestone from a repository
|
80
|
+
# Octokit.delete_milestone("pengwynn/octokit", 1)
|
81
|
+
def delete_milestone(repository, number, options={})
|
82
|
+
delete("/repos/#{Repository.new(repository)}/milestones/#{number}", options, 3, true, true)
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
@@ -1,15 +1,13 @@
|
|
1
1
|
module Octokit
|
2
2
|
class Client
|
3
3
|
module Network
|
4
|
-
|
5
4
|
def network_meta(repo, options={})
|
6
|
-
get("
|
5
|
+
get("/#{Repository.new(repo)}/network_meta", options, 2, false)
|
7
6
|
end
|
8
7
|
|
9
8
|
def network_data(repo, options={})
|
10
|
-
get("
|
9
|
+
get("/#{Repository.new(repo)}/network_data_chunk", options, 2, false)['commits']
|
11
10
|
end
|
12
|
-
|
13
11
|
end
|
14
12
|
end
|
15
13
|
end
|
@@ -1,33 +1,31 @@
|
|
1
1
|
module Octokit
|
2
2
|
class Client
|
3
3
|
module Objects
|
4
|
-
|
5
4
|
def tree(repo, tree_sha, options={})
|
6
|
-
get("api/v2/json/tree/show/#{Repository.new(repo)}/#{tree_sha}", options)['tree']
|
5
|
+
get("/api/v2/json/tree/show/#{Repository.new(repo)}/#{tree_sha}", options)['tree']
|
7
6
|
end
|
8
7
|
|
9
8
|
def blob(repo, tree_sha, path, options={})
|
10
|
-
get("api/v2/json/blob/show/#{Repository.new(repo)}/#{tree_sha}/#{path}", options)['blob']
|
9
|
+
get("/api/v2/json/blob/show/#{Repository.new(repo)}/#{tree_sha}/#{path}", options)['blob']
|
11
10
|
end
|
12
11
|
|
13
12
|
def blobs(repo, tree_sha, options={})
|
14
|
-
get("api/v2/json/blob/all/#{Repository.new(repo)}/#{tree_sha}", options)['blobs']
|
13
|
+
get("/api/v2/json/blob/all/#{Repository.new(repo)}/#{tree_sha}", options)['blobs']
|
15
14
|
end
|
16
15
|
|
17
16
|
def blob_metadata(repo, tree_sha, options={})
|
18
|
-
get("api/v2/json/blob/full/#{Repository.new(repo)}/#{tree_sha}", options)['blobs']
|
17
|
+
get("/api/v2/json/blob/full/#{Repository.new(repo)}/#{tree_sha}", options)['blobs']
|
19
18
|
end
|
20
19
|
alias :blob_meta :blob_metadata
|
21
20
|
|
22
21
|
def tree_metadata(repo, tree_sha, options={})
|
23
|
-
get("api/v2/json/tree/full/#{Repository.new(repo)}/#{tree_sha}", options)['tree']
|
22
|
+
get("/api/v2/json/tree/full/#{Repository.new(repo)}/#{tree_sha}", options)['tree']
|
24
23
|
end
|
25
24
|
alias :tree_meta :tree_metadata
|
26
25
|
|
27
26
|
def raw(repo, sha, options={})
|
28
|
-
get("api/v2/json/blob/show/#{Repository.new(repo)}/#{sha}", options, 2, true, true).body
|
27
|
+
get("/api/v2/json/blob/show/#{Repository.new(repo)}/#{sha}", options, 2, true, true).body
|
29
28
|
end
|
30
|
-
|
31
29
|
end
|
32
30
|
end
|
33
31
|
end
|
@@ -1,22 +1,21 @@
|
|
1
1
|
module Octokit
|
2
2
|
class Client
|
3
3
|
module Organizations
|
4
|
-
|
5
4
|
def organization(org, options={})
|
6
|
-
get("api/v2/json/organizations/#{org}", options)['organization']
|
5
|
+
get("/api/v2/json/organizations/#{org}", options)['organization']
|
7
6
|
end
|
8
7
|
alias :org :organization
|
9
8
|
|
10
9
|
def update_organization(org, values, options={})
|
11
|
-
put("api/v2/json/organizations/#{org}", options.merge({:organization => values}))['organization']
|
10
|
+
put("/api/v2/json/organizations/#{org}", options.merge({:organization => values}))['organization']
|
12
11
|
end
|
13
12
|
alias :update_org :update_organization
|
14
13
|
|
15
14
|
def organizations(user=nil, options={})
|
16
15
|
if user
|
17
|
-
get("api/v2/json/user/show/#{user}/organizations", options)
|
16
|
+
get("/api/v2/json/user/show/#{user}/organizations", options)
|
18
17
|
else
|
19
|
-
get("api/v2/json/organizations", options)
|
18
|
+
get("/api/v2/json/organizations", options)
|
20
19
|
end['organizations']
|
21
20
|
end
|
22
21
|
alias :list_organizations :organizations
|
@@ -25,64 +24,64 @@ module Octokit
|
|
25
24
|
|
26
25
|
def organization_repositories(org=nil, options={})
|
27
26
|
if org
|
28
|
-
get("api/v2/json/organizations/#{org}/public_repositories", options)
|
27
|
+
get("/api/v2/json/organizations/#{org}/public_repositories", options)
|
29
28
|
else
|
30
|
-
get("api/v2/json/organizations/repositories", options)
|
29
|
+
get("/api/v2/json/organizations/repositories", options)
|
31
30
|
end['repositories']
|
32
31
|
end
|
33
32
|
alias :org_repositories :organization_repositories
|
34
33
|
alias :org_repos :organization_repositories
|
35
34
|
|
36
35
|
def organization_members(org, options={})
|
37
|
-
get("api/v2/json/organizations/#{org}/public_members", options)['users']
|
36
|
+
get("/api/v2/json/organizations/#{org}/public_members", options)['users']
|
38
37
|
end
|
39
38
|
alias :org_members :organization_members
|
40
39
|
|
41
40
|
def organization_teams(org, options={})
|
42
|
-
get("api/v2/json/organizations/#{org}/teams", options)['teams']
|
41
|
+
get("/api/v2/json/organizations/#{org}/teams", options)['teams']
|
43
42
|
end
|
44
43
|
alias :org_teams :organization_teams
|
45
44
|
|
46
45
|
def create_team(org, values, options={})
|
47
|
-
post("api/v2/json/organizations/#{org}/teams", options.merge({:team => values}))['team']
|
46
|
+
post("/api/v2/json/organizations/#{org}/teams", options.merge({:team => values}))['team']
|
48
47
|
end
|
49
48
|
|
50
49
|
def team(team_id, options={})
|
51
|
-
get("api/v2/json/teams/#{team_id}", options)['team']
|
50
|
+
get("/api/v2/json/teams/#{team_id}", options)['team']
|
52
51
|
end
|
53
52
|
|
54
53
|
def update_team(team_id, values, options={})
|
55
|
-
put("api/v2/json/teams/#{team_id}", options.merge({:team => values}))['team']
|
54
|
+
put("/api/v2/json/teams/#{team_id}", options.merge({:team => values}))['team']
|
56
55
|
end
|
57
56
|
|
58
57
|
def delete_team(team_id, options={})
|
59
|
-
delete("api/v2/json/teams/#{team_id}", options)['team']
|
58
|
+
delete("/api/v2/json/teams/#{team_id}", options)['team']
|
60
59
|
end
|
61
60
|
|
62
61
|
def team_members(team_id, options={})
|
63
|
-
get("api/v2/json/teams/#{team_id}/members", options)['users']
|
62
|
+
get("/api/v2/json/teams/#{team_id}/members", options)['users']
|
64
63
|
end
|
65
64
|
|
66
65
|
def add_team_member(team_id, user, options={})
|
67
|
-
post("api/v2/json/teams/#{team_id}/members", options.merge({:name => user}))['user']
|
66
|
+
post("/api/v2/json/teams/#{team_id}/members", options.merge({:name => user}))['user']
|
68
67
|
end
|
69
68
|
|
70
69
|
def remove_team_member(team_id, user, options={})
|
71
|
-
delete("api/v2/json/teams/#{team_id}/members", options.merge({:name => user}))['user']
|
70
|
+
delete("/api/v2/json/teams/#{team_id}/members", options.merge({:name => user}))['user']
|
72
71
|
end
|
73
72
|
|
74
73
|
def team_repositories(team_id, options={})
|
75
|
-
get("api/v2/json/teams/#{team_id}/repositories", options)['repositories']
|
74
|
+
get("/api/v2/json/teams/#{team_id}/repositories", options)['repositories']
|
76
75
|
end
|
77
76
|
alias :team_repos :team_repositories
|
78
77
|
|
79
78
|
def add_team_repository(team_id, repo, options={})
|
80
|
-
post("api/v2/json/teams/#{team_id}/repositories", options.merge(:name => Repository.new(repo)))['repositories']
|
79
|
+
post("/api/v2/json/teams/#{team_id}/repositories", options.merge(:name => Repository.new(repo)))['repositories']
|
81
80
|
end
|
82
81
|
alias :add_team_repo :add_team_repository
|
83
82
|
|
84
83
|
def remove_team_repository(team_id, repo, options={})
|
85
|
-
delete("api/v2/json/teams/#{team_id}/repositories", options.merge(:name => Repository.new(repo)))['repositories']
|
84
|
+
delete("/api/v2/json/teams/#{team_id}/repositories", options.merge(:name => Repository.new(repo)))['repositories']
|
86
85
|
end
|
87
86
|
alias :remove_team_repo :remove_team_repository
|
88
87
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Octokit
|
2
|
+
class Client
|
3
|
+
module PubSubHubbub
|
4
|
+
# Subscribe to a pubsub topic
|
5
|
+
#
|
6
|
+
# @param topic [String] A recoginized and supported pubsub topic
|
7
|
+
# @param callback [String] A callback url to be posted to when the topic event is fired
|
8
|
+
# @return [boolean] true if the subscribe was successful, otherwise an error is raised
|
9
|
+
# @example Subscribe to push events from one of your repositories, having an email sent when fired
|
10
|
+
# client = Octokit::Client.new(:oauth_token = "token")
|
11
|
+
# client.subscribe("https://github.com/joshk/devise_imapable/events/push", "github://Email?address=josh.kalderimis@gmail.com")
|
12
|
+
def subscribe(topic, callback)
|
13
|
+
options = {
|
14
|
+
:"hub.mode" => "subscribe",
|
15
|
+
:"hub.topic" => topic,
|
16
|
+
:"hub.callback" => callback,
|
17
|
+
}
|
18
|
+
post("/hub", options, 3, true, true, true)
|
19
|
+
true
|
20
|
+
end
|
21
|
+
|
22
|
+
# Unsubscribe from a pubsub topic
|
23
|
+
#
|
24
|
+
# @param topic [String] A recoginized pubsub topic
|
25
|
+
# @param callback [String] A callback url to be unsubscribed from
|
26
|
+
# @return [boolean] true if the unsubscribe was successful, otherwise an error is raised
|
27
|
+
# @example Unsubscribe to push events from one of your repositories, no longer having an email sent when fired
|
28
|
+
# client = Octokit::Client.new(:oauth_token = "token")
|
29
|
+
# client.unsubscribe("https://github.com/joshk/devise_imapable/events/push", "github://Email?address=josh.kalderimis@gmail.com")
|
30
|
+
def unsubscribe(topic, callback)
|
31
|
+
options = {
|
32
|
+
:"hub.mode" => "unsubscribe",
|
33
|
+
:"hub.topic" => topic,
|
34
|
+
:"hub.callback" => callback,
|
35
|
+
}
|
36
|
+
post("/hub", options, 3, true, true, true)
|
37
|
+
true
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Octokit
|
2
|
+
class Client
|
3
|
+
module PubSubHubbub
|
4
|
+
module ServiceHooks
|
5
|
+
# Subscribe to a repository through pubsub
|
6
|
+
#
|
7
|
+
# @param owner [String] owner of mentioned repository
|
8
|
+
# @param repository [String] repository name
|
9
|
+
# @param service_name [String] service name owner
|
10
|
+
# @param service_arguments [Hash] params that will be passed by subscibed hook.
|
11
|
+
# List of services is available @ https://github.com/github/github-services/tree/master/docs.
|
12
|
+
# Please refer Data node for complete list of arguments.
|
13
|
+
# @example Subscribe to push events to one of your repositories to Travis-CI
|
14
|
+
# client = Octokit::Client.new(:oauth_token = "token")
|
15
|
+
# client.subscribe_service_hook('joshk', 'device_imapable', 'Travis', { :token => "test", :domain => "domain", :user => "user" })
|
16
|
+
def subscribe_service_hook(repo, service_name, service_arguments = {})
|
17
|
+
topic = "https://github.com/#{Repository.new(repo)}/events/push"
|
18
|
+
callback = "github://#{service_name}?#{service_arguments.collect{ |k,v| [ k,v ].join("=") }.join("&") }"
|
19
|
+
subscribe(topic, callback)
|
20
|
+
true
|
21
|
+
end
|
22
|
+
|
23
|
+
# Unsubscribe repository through pubsub
|
24
|
+
#
|
25
|
+
# @param owner [String] owner of mentioned repository
|
26
|
+
# @param repository [String] repository name
|
27
|
+
# @param service_name [String] service name owner
|
28
|
+
# List of services is available @ https://github.com/github/github-services/tree/master/docs.
|
29
|
+
# @example Subscribe to push events to one of your repositories to Travis-CI
|
30
|
+
# client = Octokit::Client.new(:oauth_token = "token")
|
31
|
+
# client.unsubscribe_service_hook('joshk', 'device_imapable', 'Travis')
|
32
|
+
def unsubscribe_service_hook(repo, service_name)
|
33
|
+
topic = "https://github.com/#{Repository.new(repo)}/events/push"
|
34
|
+
callback = "github://#{service_name}"
|
35
|
+
unsubscribe(topic, callback)
|
36
|
+
true
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/lib/octokit/client/pulls.rb
CHANGED
@@ -8,16 +8,25 @@ module Octokit
|
|
8
8
|
:title => title,
|
9
9
|
:body => body,
|
10
10
|
}
|
11
|
-
post("api/v2/json/pulls/#{Repository.new(repo)}", options.merge({:pull => pull}))['pulls']
|
11
|
+
post("/api/v2/json/pulls/#{Repository.new(repo)}", options.merge({:pull => pull}))['pulls']
|
12
|
+
end
|
13
|
+
|
14
|
+
def create_pull_request_for_issue(repo, base, head, issue, options={})
|
15
|
+
pull = {
|
16
|
+
:base => base,
|
17
|
+
:head => head,
|
18
|
+
:issue => issue
|
19
|
+
}
|
20
|
+
post("/api/v2/json/pulls/#{Repository.new(repo)}", options.merge({:pull => pull}))['pulls']
|
12
21
|
end
|
13
22
|
|
14
23
|
def pull_requests(repo, state='open', options={})
|
15
|
-
get("api/v2/json/pulls/#{Repository.new(repo)}/#{state}", options)['pulls']
|
24
|
+
get("/api/v2/json/pulls/#{Repository.new(repo)}/#{state}", options)['pulls']
|
16
25
|
end
|
17
26
|
alias :pulls :pull_requests
|
18
27
|
|
19
28
|
def pull_request(repo, number, options={})
|
20
|
-
get("api/v2/json/pulls/#{Repository.new(repo)}/#{number}", options)['pull']
|
29
|
+
get("/api/v2/json/pulls/#{Repository.new(repo)}/#{number}", options)['pull']
|
21
30
|
end
|
22
31
|
alias :pull :pull_request
|
23
32
|
end
|
@@ -1,49 +1,48 @@
|
|
1
1
|
module Octokit
|
2
2
|
class Client
|
3
3
|
module Repositories
|
4
|
-
|
5
4
|
def search_repositories(q, options={})
|
6
|
-
get("api/v2/json/repos/search/#{q}", options)['repositories']
|
5
|
+
get("/api/v2/json/repos/search/#{q}", options)['repositories']
|
7
6
|
end
|
8
7
|
alias :search_repos :search_repositories
|
9
8
|
|
10
9
|
def repository(repo, options={})
|
11
|
-
get("api/v2/json/repos/show/#{Repository.new(repo)}", options)['repository']
|
10
|
+
get("/api/v2/json/repos/show/#{Repository.new(repo)}", options)['repository']
|
12
11
|
end
|
13
12
|
alias :repo :repository
|
14
13
|
|
15
14
|
def update_repository(repo, values, options={})
|
16
|
-
post("api/v2/json/repos/show/#{Repository.new(repo)}", options.merge({:values => values}))['repository']
|
15
|
+
post("/api/v2/json/repos/show/#{Repository.new(repo)}", options.merge({:values => values}))['repository']
|
17
16
|
end
|
18
17
|
alias :update_repo :update_repository
|
19
18
|
|
20
19
|
def repositories(username=login, options={})
|
21
|
-
get(["api/v2/json/repos/show", username].compact.join('/'), options)['repositories']
|
20
|
+
get(["/api/v2/json/repos/show", username].compact.join('/'), options)['repositories']
|
22
21
|
end
|
23
22
|
alias :list_repositories :repositories
|
24
23
|
alias :list_repos :repositories
|
25
24
|
alias :repos :repositories
|
26
25
|
|
27
26
|
def watch(repo, options={})
|
28
|
-
post("api/v2/json/repos/watch/#{Repository.new(repo)}", options)['repository']
|
27
|
+
post("/api/v2/json/repos/watch/#{Repository.new(repo)}", options)['repository']
|
29
28
|
end
|
30
29
|
|
31
30
|
def unwatch(repo, options={})
|
32
|
-
post("api/v2/json/repos/unwatch/#{Repository.new(repo)}", options)['repository']
|
31
|
+
post("/api/v2/json/repos/unwatch/#{Repository.new(repo)}", options)['repository']
|
33
32
|
end
|
34
33
|
|
35
34
|
def fork(repo, options={})
|
36
|
-
post("api/v2/json/repos/fork/#{Repository.new(repo)}", options)['repository']
|
35
|
+
post("/api/v2/json/repos/fork/#{Repository.new(repo)}", options)['repository']
|
37
36
|
end
|
38
37
|
|
39
38
|
def create_repository(name, options={})
|
40
|
-
post("api/v2/json/repos/create", options.merge(:name => name))['repository']
|
39
|
+
post("/api/v2/json/repos/create", options.merge(:name => name))['repository']
|
41
40
|
end
|
42
41
|
alias :create_repo :create_repository
|
43
42
|
alias :create :create_repository
|
44
43
|
|
45
44
|
def delete_repository(repo, options={})
|
46
|
-
response = post("api/v2/json/repos/delete/#{Repository.new(repo)}", options)
|
45
|
+
response = post("/api/v2/json/repos/delete/#{Repository.new(repo)}", options)
|
47
46
|
if response.respond_to?(:delete_token)
|
48
47
|
response['delete_token']
|
49
48
|
else
|
@@ -53,86 +52,85 @@ module Octokit
|
|
53
52
|
alias :delete_repo :delete_repository
|
54
53
|
|
55
54
|
def delete_repository!(repo, options={})
|
56
|
-
delete_token = post("api/v2/json/repos/delete/#{Repository.new(repo)}", options)
|
57
|
-
post("api/v2/json/repos/delete/#{Repository.new(repo)}", options.merge(:delete_token => delete_token))
|
55
|
+
delete_token = post("/api/v2/json/repos/delete/#{Repository.new(repo)}", options)
|
56
|
+
post("/api/v2/json/repos/delete/#{Repository.new(repo)}", options.merge(:delete_token => delete_token))
|
58
57
|
end
|
59
58
|
alias :delete_repo! :delete_repository!
|
60
59
|
|
61
60
|
def set_private(repo, options={})
|
62
|
-
post("api/v2/json/repos/set/private/#{Repository.new(repo)}", options)['repository']
|
61
|
+
post("/api/v2/json/repos/set/private/#{Repository.new(repo)}", options)['repository']
|
63
62
|
end
|
64
63
|
|
65
64
|
def set_public(repo, options={})
|
66
|
-
post("api/v2/json/repos/set/public/#{Repository.new(repo)}", options)['repository']
|
65
|
+
post("/api/v2/json/repos/set/public/#{Repository.new(repo)}", options)['repository']
|
67
66
|
end
|
68
67
|
|
69
68
|
def deploy_keys(repo, options={})
|
70
|
-
get("api/v2/json/repos/keys/#{Repository.new(repo)}", options)['public_keys']
|
69
|
+
get("/api/v2/json/repos/keys/#{Repository.new(repo)}", options)['public_keys']
|
71
70
|
end
|
72
71
|
alias :list_deploy_keys :deploy_keys
|
73
72
|
|
74
73
|
def add_deploy_key(repo, title, key, options={})
|
75
|
-
post("api/v2/json/repos/key/#{Repository.new(repo)}/add", options)['public_keys']
|
74
|
+
post("/api/v2/json/repos/key/#{Repository.new(repo)}/add", options)['public_keys']
|
76
75
|
end
|
77
76
|
|
78
77
|
def remove_deploy_key(repo, id, options={})
|
79
|
-
post("api/v2/json/repos/key/#{Repository.new(repo)}/remove", options.merge(:id => id))['public_keys']
|
78
|
+
post("/api/v2/json/repos/key/#{Repository.new(repo)}/remove", options.merge(:id => id))['public_keys']
|
80
79
|
end
|
81
80
|
|
82
81
|
def collaborators(repo, options={})
|
83
|
-
get("api/v2/json/repos/show/#{Repository.new(repo)}/collaborators", options)['collaborators']
|
82
|
+
get("/api/v2/json/repos/show/#{Repository.new(repo)}/collaborators", options)['collaborators']
|
84
83
|
end
|
85
84
|
alias :collabs :collaborators
|
86
85
|
|
87
86
|
def add_collaborator(repo, collaborator, options={})
|
88
|
-
post("api/v2/json/repos/collaborators/#{Repository.new(repo)}/add/#{collaborator}")['collaborators']
|
87
|
+
post("/api/v2/json/repos/collaborators/#{Repository.new(repo)}/add/#{collaborator}")['collaborators']
|
89
88
|
end
|
90
89
|
alias :add_collab :add_collaborator
|
91
90
|
|
92
91
|
def remove_collaborator(repo, collaborator, options={})
|
93
|
-
post("api/v2/json/repos/collaborators/#{Repository.new(repo)}/remove/#{collaborator}")['collaborators']
|
92
|
+
post("/api/v2/json/repos/collaborators/#{Repository.new(repo)}/remove/#{collaborator}")['collaborators']
|
94
93
|
end
|
95
94
|
alias :remove_collab :remove_collaborator
|
96
95
|
|
97
96
|
def pushable(options={})
|
98
|
-
get("api/v2/json/repos/pushable", options)['repositories']
|
97
|
+
get("/api/v2/json/repos/pushable", options)['repositories']
|
99
98
|
end
|
100
99
|
|
101
100
|
def repository_teams(repo, options={})
|
102
|
-
get("api/v2/json/repos/show/#{Repository.new(repo)}/teams", options)['teams']
|
101
|
+
get("/api/v2/json/repos/show/#{Repository.new(repo)}/teams", options)['teams']
|
103
102
|
end
|
104
103
|
alias :repo_teams :repository_teams
|
105
104
|
alias :teams :repository_teams
|
106
105
|
|
107
106
|
def contributors(repo, anon=false, options={})
|
108
107
|
if anon
|
109
|
-
get("api/v2/json/repos/show/#{Repository.new(repo)}/contributors/anon", options)
|
108
|
+
get("/api/v2/json/repos/show/#{Repository.new(repo)}/contributors/anon", options)
|
110
109
|
else
|
111
|
-
get("api/v2/json/repos/show/#{Repository.new(repo)}/contributors", options)
|
110
|
+
get("/api/v2/json/repos/show/#{Repository.new(repo)}/contributors", options)
|
112
111
|
end['contributors']
|
113
112
|
end
|
114
113
|
alias :contribs :contributors
|
115
114
|
|
116
115
|
def watchers(repo, options={})
|
117
|
-
get("api/v2/json/repos/show/#{Repository.new(repo)}/watchers", options)['watchers']
|
116
|
+
get("/api/v2/json/repos/show/#{Repository.new(repo)}/watchers", options)['watchers']
|
118
117
|
end
|
119
118
|
|
120
119
|
def network(repo, options={})
|
121
|
-
get("api/v2/json/repos/show/#{Repository.new(repo)}/network", options)['network']
|
120
|
+
get("/api/v2/json/repos/show/#{Repository.new(repo)}/network", options)['network']
|
122
121
|
end
|
123
122
|
|
124
123
|
def languages(repo, options={})
|
125
|
-
get("api/v2/json/repos/show/#{Repository.new(repo)}/languages", options)['languages']
|
124
|
+
get("/api/v2/json/repos/show/#{Repository.new(repo)}/languages", options)['languages']
|
126
125
|
end
|
127
126
|
|
128
127
|
def tags(repo, options={})
|
129
|
-
get("api/v2/json/repos/show/#{Repository.new(repo)}/tags", options)['tags']
|
128
|
+
get("/api/v2/json/repos/show/#{Repository.new(repo)}/tags", options)['tags']
|
130
129
|
end
|
131
130
|
|
132
131
|
def branches(repo, options={})
|
133
|
-
get("api/v2/json/repos/show/#{Repository.new(repo)}/branches", options)['branches']
|
132
|
+
get("/api/v2/json/repos/show/#{Repository.new(repo)}/branches", options)['branches']
|
134
133
|
end
|
135
|
-
|
136
134
|
end
|
137
135
|
end
|
138
136
|
end
|