octokit 0.6.3 → 0.6.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 +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
|