github_api 0.9.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +50 -5
- data/features/cassettes/git_data/commits/get.yml +69 -0
- data/features/git_data/commmits.feature +14 -0
- data/lib/github_api.rb +1 -0
- data/lib/github_api/activity/events.rb +42 -33
- data/lib/github_api/activity/notifications.rb +22 -22
- data/lib/github_api/activity/starring.rb +16 -21
- data/lib/github_api/activity/watching.rb +16 -19
- data/lib/github_api/api.rb +51 -8
- data/lib/github_api/arguments.rb +155 -0
- data/lib/github_api/authorizations.rb +19 -20
- data/lib/github_api/configuration.rb +5 -0
- data/lib/github_api/emojis.rb +3 -3
- data/lib/github_api/error/validations.rb +2 -2
- data/lib/github_api/gists.rb +32 -42
- data/lib/github_api/gists/comments.rb +21 -23
- data/lib/github_api/git_data/blobs.rb +13 -16
- data/lib/github_api/git_data/commits.rb +12 -10
- data/lib/github_api/git_data/references.rb +24 -28
- data/lib/github_api/git_data/tags.rb +9 -11
- data/lib/github_api/git_data/trees.rb +10 -13
- data/lib/github_api/gitignore.rb +4 -6
- data/lib/github_api/issues.rb +24 -32
- data/lib/github_api/issues/assignees.rb +11 -8
- data/lib/github_api/issues/comments.rb +21 -26
- data/lib/github_api/issues/events.rb +7 -9
- data/lib/github_api/issues/labels.rb +39 -53
- data/lib/github_api/issues/milestones.rb +26 -33
- data/lib/github_api/markdown.rb +5 -6
- data/lib/github_api/meta.rb +3 -3
- data/lib/github_api/orgs.rb +10 -11
- data/lib/github_api/orgs/members.rb +18 -20
- data/lib/github_api/orgs/teams.rb +54 -58
- data/lib/github_api/pull_requests.rb +40 -54
- data/lib/github_api/pull_requests/comments.rb +19 -26
- data/lib/github_api/repos.rb +146 -101
- data/lib/github_api/repos/collaborators.rb +29 -30
- data/lib/github_api/repos/comments.rb +20 -25
- data/lib/github_api/repos/commits.rb +12 -14
- data/lib/github_api/repos/contents.rb +22 -14
- data/lib/github_api/repos/downloads.rb +19 -23
- data/lib/github_api/repos/forks.rb +6 -11
- data/lib/github_api/repos/hooks.rb +25 -34
- data/lib/github_api/repos/keys.rb +25 -27
- data/lib/github_api/repos/merging.rb +7 -6
- data/lib/github_api/repos/pub_sub_hubbub.rb +14 -18
- data/lib/github_api/repos/statuses.rb +13 -14
- data/lib/github_api/say.rb +1 -3
- data/lib/github_api/search.rb +12 -21
- data/lib/github_api/users.rb +10 -9
- data/lib/github_api/users/emails.rb +11 -9
- data/lib/github_api/users/followers.rb +25 -23
- data/lib/github_api/users/keys.rb +27 -29
- data/lib/github_api/version.rb +1 -1
- data/spec/github/activity/events/org_spec.rb +6 -6
- data/spec/github/activity/events/performed_spec.rb +1 -1
- data/spec/github/activity/events/received_spec.rb +1 -1
- data/spec/github/activity/events/user_org_spec.rb +4 -2
- data/spec/github/activity/notifications/create_spec.rb +1 -1
- data/spec/github/activity/notifications/delete_spec.rb +1 -1
- data/spec/github/activity/notifications/get_spec.rb +1 -1
- data/spec/github/activity/notifications/subscribed_spec.rb +1 -1
- data/spec/github/activity/starring/list_spec.rb +2 -0
- data/spec/github/activity/starring/starring_spec.rb +1 -1
- data/spec/github/activity/watching/list_spec.rb +2 -0
- data/spec/github/activity/watching/watching_spec.rb +1 -3
- data/spec/github/api/set_spec.rb +18 -4
- data/spec/github/api/with_spec.rb +28 -0
- data/spec/github/api_spec.rb +11 -33
- data/spec/github/arguments/parse_spec.rb +68 -0
- data/spec/github/authorizations/delete_spec.rb +1 -1
- data/spec/github/authorizations/get_spec.rb +1 -1
- data/spec/github/error/validations_spec.rb +3 -3
- data/spec/github/gists/comments/list_spec.rb +1 -1
- data/spec/github/gists/delete_spec.rb +1 -1
- data/spec/github/gists/fork_spec.rb +1 -1
- data/spec/github/gists/get_spec.rb +1 -1
- data/spec/github/gists/is_starred_spec.rb +2 -0
- data/spec/github/gists/star_spec.rb +1 -1
- data/spec/github/gists/unstar_spec.rb +1 -1
- data/spec/github/git_data/blobs/create_spec.rb +2 -0
- data/spec/github/git_data/blobs/get_spec.rb +1 -1
- data/spec/github/git_data/commits/create_spec.rb +2 -0
- data/spec/github/git_data/commits/get_spec.rb +3 -3
- data/spec/github/git_data/references/create_spec.rb +1 -1
- data/spec/github/git_data/references/delete_spec.rb +3 -1
- data/spec/github/git_data/tags/create_spec.rb +2 -0
- data/spec/github/gitignore/get_spec.rb +1 -1
- data/spec/github/issues/events/get_spec.rb +3 -1
- data/spec/github/issues/events/list_spec.rb +3 -1
- data/spec/github/issues/labels/add_spec.rb +6 -6
- data/spec/github/issues/labels/list_spec.rb +3 -1
- data/spec/github/issues/labels/replace_spec.rb +6 -7
- data/spec/github/issues/milestones/get_spec.rb +2 -0
- data/spec/github/normalizer_spec.rb +18 -6
- data/spec/github/orgs/members/conceal_spec.rb +6 -4
- data/spec/github/orgs/members/delete_spec.rb +2 -0
- data/spec/github/orgs/members/list_spec.rb +1 -1
- data/spec/github/orgs/members/member_spec.rb +3 -1
- data/spec/github/orgs/members/publicize_spec.rb +2 -0
- data/spec/github/orgs/teams/add_member_spec.rb +2 -0
- data/spec/github/orgs/teams/create_spec.rb +1 -1
- data/spec/github/orgs/teams/delete_spec.rb +1 -1
- data/spec/github/orgs/teams/edit_spec.rb +1 -1
- data/spec/github/orgs/teams/get_spec.rb +1 -1
- data/spec/github/orgs/teams/list_spec.rb +1 -1
- data/spec/github/orgs/teams/team_member_spec.rb +3 -1
- data/spec/github/parameter_filter_spec.rb +19 -58
- data/spec/github/pull_requests/comments/create_spec.rb +3 -1
- data/spec/github/pull_requests/comments/delete_spec.rb +1 -1
- data/spec/github/pull_requests/comments/edit_spec.rb +2 -0
- data/spec/github/pull_requests/comments/get_spec.rb +3 -1
- data/spec/github/pull_requests/comments/list_spec.rb +3 -1
- data/spec/github/pull_requests/commits_spec.rb +3 -3
- data/spec/github/pull_requests/create_spec.rb +4 -0
- data/spec/github/pull_requests/files_spec.rb +4 -0
- data/spec/github/pull_requests/get_spec.rb +3 -3
- data/spec/github/pull_requests/list_spec.rb +3 -3
- data/spec/github/pull_requests/merge_spec.rb +2 -0
- data/spec/github/pull_requests/merged_spec.rb +3 -1
- data/spec/github/pull_requests/update_spec.rb +4 -0
- data/spec/github/repos/collaborators/add_spec.rb +3 -1
- data/spec/github/repos/collaborators/get_spec.rb +1 -3
- data/spec/github/repos/collaborators/list_spec.rb +5 -1
- data/spec/github/repos/collaborators/remove_spec.rb +3 -1
- data/spec/github/repos/comments/create_spec.rb +4 -0
- data/spec/github/repos/comments/delete_spec.rb +2 -2
- data/spec/github/repos/comments/get_spec.rb +6 -2
- data/spec/github/repos/commits/compare_spec.rb +3 -3
- data/spec/github/repos/commits/get_spec.rb +3 -3
- data/spec/github/repos/commits/list_spec.rb +3 -3
- data/spec/github/repos/contents/archive_spec.rb +12 -0
- data/spec/github/repos/contents/get_spec.rb +5 -0
- data/spec/github/repos/contributors_spec.rb +7 -2
- data/spec/github/repos/downloads/create_spec.rb +4 -0
- data/spec/github/repos/downloads/delete_spec.rb +5 -1
- data/spec/github/repos/downloads/get_spec.rb +3 -1
- data/spec/github/repos/downloads/list_spec.rb +3 -1
- data/spec/github/repos/forks/create_spec.rb +2 -0
- data/spec/github/repos/forks/list_spec.rb +3 -1
- data/spec/github/repos/hooks/edit_spec.rb +1 -1
- data/spec/github/repos/keys/delete_spec.rb +1 -1
- data/spec/github/repos/keys/edit_spec.rb +2 -0
- data/spec/github/repos/keys/get_spec.rb +3 -1
- data/spec/github/repos/keys/list_spec.rb +4 -2
- data/spec/github/repos/list_spec.rb +6 -1
- data/spec/github/repos/pub_sub_hubbub/subscribe_service_spec.rb +27 -0
- data/spec/github/repos/pub_sub_hubbub/subscribe_spec.rb +51 -0
- data/spec/github/repos/pub_sub_hubbub/unsubscribe_service_spec.rb +21 -0
- data/spec/github/repos/pub_sub_hubbub/unsubscribe_spec.rb +58 -0
- data/spec/github/repos/statuses/create_spec.rb +2 -0
- data/spec/github/search_spec.rb +25 -10
- data/spec/github/users/followers/follow_spec.rb +1 -1
- data/spec/github/users/followers/is_following_spec.rb +1 -1
- data/spec/github/users/followers/unfollow_spec.rb +1 -1
- data/spec/github/users/keys/delete_spec.rb +1 -1
- data/spec/github/users/keys/get_spec.rb +1 -1
- data/spec/github/users/keys/update_spec.rb +1 -1
- data/spec/github/users/update_spec.rb +1 -1
- data/spec/integration/arguments_spec.rb +76 -0
- data/spec/{github → integration}/authorizations_spec.rb +0 -0
- metadata +44 -35
- data/spec/github/repos/pub_sub_hubbub_spec.rb +0 -78
@@ -35,19 +35,16 @@ module Github
|
|
35
35
|
# github.pull_requests.list
|
36
36
|
# github.pull_requests.list { |req| ... }
|
37
37
|
#
|
38
|
-
#
|
39
|
-
#
|
38
|
+
# pulls = Github::PullRequests.new
|
39
|
+
# pulls.pull_requests.list 'user-name', 'repo-name'
|
40
40
|
#
|
41
|
-
def list(
|
42
|
-
|
43
|
-
|
41
|
+
def list(*args)
|
42
|
+
arguments(args, :required => [:user, :repo]) do
|
43
|
+
sift VALID_REQUEST_PARAM_NAMES
|
44
|
+
assert_values VALID_REQUEST_PARAM_VALUES
|
45
|
+
end
|
44
46
|
|
45
|
-
|
46
|
-
filter! VALID_REQUEST_PARAM_NAMES, params
|
47
|
-
# _merge_mime_type(:pull_request, params)
|
48
|
-
assert_valid_values(VALID_REQUEST_PARAM_VALUES, params)
|
49
|
-
|
50
|
-
response = get_request("/repos/#{user}/#{repo}/pulls", params)
|
47
|
+
response = get_request("/repos/#{user}/#{repo}/pulls", arguments.params)
|
51
48
|
return response unless block_given?
|
52
49
|
response.each { |el| yield el }
|
53
50
|
end
|
@@ -59,15 +56,13 @@ module Github
|
|
59
56
|
# github = Github.new
|
60
57
|
# github.pull_requests.get 'user-name', 'repo-name', 'number'
|
61
58
|
#
|
62
|
-
#
|
63
|
-
#
|
59
|
+
# pulls = Github::PullRequests.new
|
60
|
+
# pulls.get 'user-name', 'repo-name', 'number'
|
64
61
|
#
|
65
|
-
def get(
|
66
|
-
|
67
|
-
assert_presence_of user, repo, number
|
68
|
-
normalize! params
|
62
|
+
def get(*args)
|
63
|
+
arguments(args, :required => [:user, :repo, :number])
|
69
64
|
|
70
|
-
get_request("/repos/#{user}/#{repo}/pulls/#{number}", params)
|
65
|
+
get_request("/repos/#{user}/#{repo}/pulls/#{number}", arguments.params)
|
71
66
|
end
|
72
67
|
alias :find :get
|
73
68
|
|
@@ -100,14 +95,12 @@ module Github
|
|
100
95
|
# "head" => "octocat:new-feature",
|
101
96
|
# "base" => "master"
|
102
97
|
#
|
103
|
-
def create(
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
normalize! params
|
108
|
-
filter! VALID_REQUEST_PARAM_NAMES, params
|
98
|
+
def create(*args)
|
99
|
+
arguments(args, :required => [:user, :repo]) do
|
100
|
+
sift VALID_REQUEST_PARAM_NAMES
|
101
|
+
end
|
109
102
|
|
110
|
-
post_request("/repos/#{user}/#{repo}/pulls", params)
|
103
|
+
post_request("/repos/#{user}/#{repo}/pulls", arguments.params)
|
111
104
|
end
|
112
105
|
|
113
106
|
# Update a pull request
|
@@ -124,14 +117,13 @@ module Github
|
|
124
117
|
# "body" => "Update body",
|
125
118
|
# "state" => "open",
|
126
119
|
#
|
127
|
-
def update(
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
assert_valid_values(VALID_REQUEST_PARAM_VALUES, params)
|
120
|
+
def update(*args)
|
121
|
+
arguments(args, :required => [:user, :repo, :number]) do
|
122
|
+
sift VALID_REQUEST_PARAM_NAMES
|
123
|
+
assert_values VALID_REQUEST_PARAM_VALUES
|
124
|
+
end
|
133
125
|
|
134
|
-
patch_request("/repos/#{user}/#{repo}/pulls/#{number}", params)
|
126
|
+
patch_request("/repos/#{user}/#{repo}/pulls/#{number}", arguments.params)
|
135
127
|
end
|
136
128
|
|
137
129
|
# List commits on a pull request
|
@@ -140,12 +132,11 @@ module Github
|
|
140
132
|
# github = Github.new
|
141
133
|
# github.pull_requests.commits 'user-name', 'repo-name', 'number'
|
142
134
|
#
|
143
|
-
def commits(
|
144
|
-
|
145
|
-
assert_presence_of user, repo, number
|
146
|
-
normalize! params
|
135
|
+
def commits(*args)
|
136
|
+
arguments(args, :required => [:user, :repo, :number])
|
147
137
|
|
148
|
-
response = get_request("/repos/#{user}/#{repo}/pulls/#{number}/commits",
|
138
|
+
response = get_request("/repos/#{user}/#{repo}/pulls/#{number}/commits",
|
139
|
+
arguments.params)
|
149
140
|
return response unless block_given?
|
150
141
|
response.each { |el| yield el }
|
151
142
|
end
|
@@ -156,12 +147,11 @@ module Github
|
|
156
147
|
# github = Github.new
|
157
148
|
# github.pull_requests.files 'user-name', 'repo-name', 'number'
|
158
149
|
#
|
159
|
-
def files(
|
160
|
-
|
161
|
-
assert_presence_of user, repo, number
|
162
|
-
normalize! params
|
150
|
+
def files(*args)
|
151
|
+
arguments(args, :required => [:user, :repo, :number])
|
163
152
|
|
164
|
-
response = get_request("/repos/#{user}/#{repo}/pulls/#{number}/files",
|
153
|
+
response = get_request("/repos/#{user}/#{repo}/pulls/#{number}/files",
|
154
|
+
arguments.params)
|
165
155
|
return response unless block_given?
|
166
156
|
response.each { |el| yield el }
|
167
157
|
end
|
@@ -172,12 +162,10 @@ module Github
|
|
172
162
|
# github = Github.new
|
173
163
|
# github.pull_requests.merged? 'user-name', 'repo-name', 'number'
|
174
164
|
#
|
175
|
-
def merged?(
|
176
|
-
|
177
|
-
assert_presence_of user, repo, number
|
178
|
-
normalize! params
|
165
|
+
def merged?(*args)
|
166
|
+
arguments(args, :required => [:user, :repo, :number])
|
179
167
|
|
180
|
-
get_request("/repos/#{user}/#{repo}/pulls/#{number}/merge", params)
|
168
|
+
get_request("/repos/#{user}/#{repo}/pulls/#{number}/merge", arguments.params)
|
181
169
|
true
|
182
170
|
rescue Github::Error::NotFound
|
183
171
|
false
|
@@ -193,14 +181,12 @@ module Github
|
|
193
181
|
# github = Github.new
|
194
182
|
# github.pull_requests.merge 'user-name', 'repo-name', 'number'
|
195
183
|
#
|
196
|
-
def merge(
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
normalize! params
|
201
|
-
filter! VALID_REQUEST_PARAM_NAMES, params
|
184
|
+
def merge(*args)
|
185
|
+
arguments(args, :required => [:user, :repo, :number]) do
|
186
|
+
sift VALID_REQUEST_PARAM_NAMES
|
187
|
+
end
|
202
188
|
|
203
|
-
put_request("/repos/#{user}/#{repo}/pulls/#{number}/merge", params)
|
189
|
+
put_request("/repos/#{user}/#{repo}/pulls/#{number}/merge", arguments.params)
|
204
190
|
end
|
205
191
|
|
206
192
|
end # PullRequests
|
@@ -35,10 +35,9 @@ module Github
|
|
35
35
|
# github.pull_requests.comments.list 'user-name', 'repo-name'
|
36
36
|
# github.pull_requests.comments.list 'user-name', 'repo-name' { |comm| ... }
|
37
37
|
#
|
38
|
-
def list(
|
39
|
-
|
40
|
-
|
41
|
-
normalize! params
|
38
|
+
def list(*args)
|
39
|
+
arguments(args, :required => [:user, :repo])
|
40
|
+
params = arguments.params
|
42
41
|
|
43
42
|
response = if (request_id = params.delete('request_id'))
|
44
43
|
get_request("/repos/#{user}/#{repo}/pulls/#{request_id}/comments", params)
|
@@ -55,12 +54,10 @@ module Github
|
|
55
54
|
# github = Github.new
|
56
55
|
# github.pull_requests.comments.get 'user-name', 'repo-name', 'comment-id'
|
57
56
|
#
|
58
|
-
def get(
|
59
|
-
|
60
|
-
assert_presence_of user, repo, comment_id
|
61
|
-
normalize! params
|
57
|
+
def get(*args)
|
58
|
+
arguments(args, :required => [:user, :repo, :comment_id])
|
62
59
|
|
63
|
-
get_request("/repos/#{user}/#{repo}/pulls/comments/#{comment_id}", params)
|
60
|
+
get_request("/repos/#{user}/#{repo}/pulls/comments/#{comment_id}", arguments.params)
|
64
61
|
end
|
65
62
|
alias :find :get
|
66
63
|
|
@@ -92,14 +89,13 @@ module Github
|
|
92
89
|
# "body" => "Nice change",
|
93
90
|
# "in_reply_to" => 4
|
94
91
|
#
|
95
|
-
def create(
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
filter! VALID_REQUEST_COM_PARAM_NAMES, params
|
92
|
+
def create(*args)
|
93
|
+
arguments(args, :required => [:user, :repo, :request_id]) do
|
94
|
+
sift VALID_REQUEST_COM_PARAM_NAMES
|
95
|
+
end
|
100
96
|
# _validate_reply_to(params)
|
101
97
|
|
102
|
-
post_request("/repos/#{user}/#{repo}/pulls/#{request_id}/comments", params)
|
98
|
+
post_request("/repos/#{user}/#{repo}/pulls/#{request_id}/comments", arguments.params)
|
103
99
|
end
|
104
100
|
|
105
101
|
# Edit a pull request comment
|
@@ -112,13 +108,12 @@ module Github
|
|
112
108
|
# github.pull_requests.comments.edit 'user-name', 'repo-name','comment-id',
|
113
109
|
# "body" => "Nice change"
|
114
110
|
#
|
115
|
-
def edit(
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
filter! VALID_REQUEST_COM_PARAM_NAMES, params
|
111
|
+
def edit(*args)
|
112
|
+
arguments(args, :required => [:user, :repo, :comment_id]) do
|
113
|
+
sift VALID_REQUEST_COM_PARAM_NAMES
|
114
|
+
end
|
120
115
|
|
121
|
-
patch_request("/repos/#{user}/#{repo}/pulls/comments/#{comment_id}", params)
|
116
|
+
patch_request("/repos/#{user}/#{repo}/pulls/comments/#{comment_id}", arguments.params)
|
122
117
|
end
|
123
118
|
|
124
119
|
# Delete a pull request comment
|
@@ -127,12 +122,10 @@ module Github
|
|
127
122
|
# github = Github.new
|
128
123
|
# github.pull_requests.comments.delete 'user-name', 'repo-name','comment-id'
|
129
124
|
#
|
130
|
-
def delete(
|
131
|
-
|
132
|
-
assert_presence_of user, repo, comment_id
|
133
|
-
normalize! params
|
125
|
+
def delete(*args)
|
126
|
+
arguments(args, :required => [:user, :repo, :comment_id])
|
134
127
|
|
135
|
-
delete_request("/repos/#{user}/#{repo}/pulls/comments/#{comment_id}", params)
|
128
|
+
delete_request("/repos/#{user}/#{repo}/pulls/comments/#{comment_id}", arguments.params)
|
136
129
|
end
|
137
130
|
|
138
131
|
private
|
data/lib/github_api/repos.rb
CHANGED
@@ -26,6 +26,8 @@ module Github
|
|
26
26
|
"has_downloads" => true
|
27
27
|
}.freeze
|
28
28
|
|
29
|
+
REQUIRED_REPO_OPTIONS = %w[ name ]
|
30
|
+
|
29
31
|
VALID_REPO_OPTIONS = %w[
|
30
32
|
name
|
31
33
|
description
|
@@ -86,7 +88,7 @@ module Github
|
|
86
88
|
@mergin ||= ApiFactory.new('Repos::Merging', current_options.merge(options), &block)
|
87
89
|
end
|
88
90
|
|
89
|
-
# Access to Repos::
|
91
|
+
# Access to Repos::PubSubHubbub API
|
90
92
|
def pubsubhubbub(options={}, &block)
|
91
93
|
@pubsubhubbub ||= ApiFactory.new('Repos::PubSubHubbub', current_options.merge(options), &block)
|
92
94
|
end
|
@@ -96,41 +98,74 @@ module Github
|
|
96
98
|
@statuses ||= ApiFactory.new('Repos::Statuses', current_options.merge(options), &block)
|
97
99
|
end
|
98
100
|
|
99
|
-
# List
|
101
|
+
# List repositories for the authenticated user
|
100
102
|
#
|
101
103
|
# = Examples
|
104
|
+
# github = Github.new :oauth_token => '...'
|
105
|
+
# github.repos.list
|
106
|
+
# github.repos.list { |repo| ... }
|
107
|
+
#
|
108
|
+
# List all repositories
|
109
|
+
#
|
110
|
+
# This provides a dump of every repository, in the order that they were created.
|
111
|
+
# = Parameters
|
112
|
+
# * <tt>:since</tt> - the integer ID of the last Repository that you've seen.
|
102
113
|
#
|
114
|
+
# = Examples
|
103
115
|
# github = Github.new
|
104
|
-
# github.repos.
|
116
|
+
# github.repos.list
|
117
|
+
# github.repos.list { |repo| ... }
|
105
118
|
#
|
106
|
-
#
|
107
|
-
# repos.branches 'user-name', 'repo-name'
|
119
|
+
# List public repositories for the specified user.
|
108
120
|
#
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
121
|
+
# = Examples
|
122
|
+
# github = Github.new
|
123
|
+
# github.repos.list :user => 'user-name'
|
124
|
+
# github.repos.list :user => 'user-name', { |repo| ... }
|
125
|
+
#
|
126
|
+
# List repositories for the specified organisation.
|
127
|
+
#
|
128
|
+
# = Examples
|
129
|
+
# github = Github.new
|
130
|
+
# github.repos.list :org => 'org-name'
|
131
|
+
# github.repos.list :org => 'org-name', { |repo| ... }
|
132
|
+
#
|
133
|
+
def list(*args)
|
134
|
+
arguments(args) do
|
135
|
+
sift %w[ user org type sort direction ]
|
136
|
+
end
|
137
|
+
params = arguments.params
|
113
138
|
|
114
|
-
response =
|
139
|
+
response = if (user_name = (params.delete("user")))
|
140
|
+
get_request("/users/#{user_name}/repos", params)
|
141
|
+
elsif (org_name = (params.delete("org")))
|
142
|
+
get_request("/orgs/#{org_name}/repos", params)
|
143
|
+
elsif authenticated?
|
144
|
+
# For authenticated user
|
145
|
+
get_request("/user/repos", params)
|
146
|
+
else
|
147
|
+
get_request("/repositories", params)
|
148
|
+
end
|
115
149
|
return response unless block_given?
|
116
150
|
response.each { |el| yield el }
|
117
151
|
end
|
118
|
-
alias :
|
152
|
+
alias :all :list
|
119
153
|
|
120
|
-
# Get
|
154
|
+
# Get a repository
|
121
155
|
#
|
122
156
|
# = Examples
|
157
|
+
# github = Github.new
|
158
|
+
# github.repos.get 'user-name', 'repo-name'
|
159
|
+
# github.repos.get user: 'user-name', repo: 'repo-name'
|
160
|
+
# github.repos(user: 'user-name', repo: 'repo-name').get
|
123
161
|
#
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
def branch(user_name, repo_name, branch, params={})
|
128
|
-
set :user => user_name, :repo => repo_name
|
129
|
-
assert_presence_of user_name, repo_name, branch
|
130
|
-
normalize! params
|
162
|
+
def get(*args)
|
163
|
+
arguments(args, :required => [:user, :repo])
|
164
|
+
params = arguments.params
|
131
165
|
|
132
|
-
get_request("/repos/#{
|
166
|
+
get_request("/repos/#{user}/#{repo}", params)
|
133
167
|
end
|
168
|
+
alias :find :get
|
134
169
|
|
135
170
|
# Create a new repository for the autheticated user.
|
136
171
|
#
|
@@ -163,10 +198,11 @@ module Github
|
|
163
198
|
# github.repos.create :name => 'repo-name', :org => 'organisation-name'
|
164
199
|
#
|
165
200
|
def create(*args)
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
201
|
+
arguments(args) do
|
202
|
+
sift VALID_REPO_OPTIONS + %w[ org ]
|
203
|
+
assert_required %w[ name ]
|
204
|
+
end
|
205
|
+
params = arguments.params
|
170
206
|
|
171
207
|
# Requires authenticated user
|
172
208
|
if (org = params.delete("org"))
|
@@ -185,10 +221,9 @@ module Github
|
|
185
221
|
# github = Github.new :oauth_token => '...'
|
186
222
|
# github.repos.delete 'user-name', 'repo-name'
|
187
223
|
#
|
188
|
-
def delete(
|
189
|
-
|
190
|
-
|
191
|
-
normalize! params
|
224
|
+
def delete(*args)
|
225
|
+
arguments(args, :required => [:user, :repo])
|
226
|
+
params = arguments.params
|
192
227
|
|
193
228
|
delete_request("/repos/#{user}/#{repo}", params)
|
194
229
|
end
|
@@ -205,11 +240,11 @@ module Github
|
|
205
240
|
# github.repos.contributors 'user-name','repo-name'
|
206
241
|
# github.repos.contributors 'user-name','repo-name' { |cont| ... }
|
207
242
|
#
|
208
|
-
def contributors(
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
243
|
+
def contributors(*args)
|
244
|
+
arguments(args, :required => [:user, :repo]) do
|
245
|
+
sift %w[ anon ]
|
246
|
+
end
|
247
|
+
params = arguments.params
|
213
248
|
|
214
249
|
response = get_request("/repos/#{user}/#{repo}/contributors", params)
|
215
250
|
return response unless block_given?
|
@@ -238,101 +273,111 @@ module Github
|
|
238
273
|
# :homepage => "https://github.com",
|
239
274
|
# :public => true, :has_issues => true
|
240
275
|
#
|
241
|
-
def edit(
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
assert_required_keys(%w[ name ], params)
|
276
|
+
def edit(*args)
|
277
|
+
arguments(args, :required => [:user, :repo]) do
|
278
|
+
sift VALID_REPO_OPTIONS
|
279
|
+
assert_required %w[ name ]
|
280
|
+
end
|
281
|
+
params = arguments.params
|
248
282
|
|
249
283
|
patch_request("/repos/#{user}/#{repo}", DEFAULT_REPO_OPTIONS.merge(params))
|
250
284
|
end
|
251
285
|
|
252
|
-
#
|
286
|
+
# Delete a repository
|
287
|
+
#
|
288
|
+
# Deleting a repository requires admin access.
|
289
|
+
# If OAuth is used, the delete_repo scope is required.
|
253
290
|
#
|
254
291
|
# = Examples
|
255
|
-
# github = Github.new
|
256
|
-
# github.repos.
|
292
|
+
# github = Github.new :oauth_token => '...'
|
293
|
+
# github.repos.delete 'user-name', 'repo-name'
|
257
294
|
#
|
258
|
-
def
|
259
|
-
|
260
|
-
|
261
|
-
normalize! params
|
295
|
+
def delete(*args)
|
296
|
+
arguments(args, :required => [:user, :repo])
|
297
|
+
params = arguments.params
|
262
298
|
|
263
|
-
|
299
|
+
delete_request("/repos/#{user}/#{repo}", params)
|
264
300
|
end
|
265
|
-
alias :
|
301
|
+
alias :remove :delete
|
266
302
|
|
267
|
-
# List
|
303
|
+
# List branches
|
268
304
|
#
|
269
305
|
# = Examples
|
270
|
-
# github = Github.new
|
271
|
-
# github.repos.languages 'user-name', 'repo-name'
|
272
|
-
# github.repos.languages 'user-name', 'repo-name' { |lang| ... }
|
273
306
|
#
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
307
|
+
# github = Github.new
|
308
|
+
# github.repos.branches 'user-name', 'repo-name'
|
309
|
+
# github.repos(user: 'user-name', repo: 'repo-name').branches
|
310
|
+
#
|
311
|
+
# repos = Github::Repos.new
|
312
|
+
# repos.branches 'user-name', 'repo-name'
|
313
|
+
#
|
314
|
+
# def branches(user_name, repo_name, params={})
|
315
|
+
def branches(*args)
|
316
|
+
arguments(args, :required => [:user, :repo])
|
317
|
+
params = arguments.params
|
278
318
|
|
279
|
-
response = get_request("/repos/#{user}/#{repo}/
|
319
|
+
response = get_request("/repos/#{user}/#{repo}/branches", arguments.params)
|
280
320
|
return response unless block_given?
|
281
321
|
response.each { |el| yield el }
|
282
322
|
end
|
283
|
-
alias :
|
323
|
+
alias :list_branches :branches
|
284
324
|
|
285
|
-
#
|
325
|
+
# Get branch
|
286
326
|
#
|
287
327
|
# = Examples
|
288
|
-
# github = Github.new :oauth_token => '...'
|
289
|
-
# github.repos.list
|
290
|
-
# github.repos.list { |repo| ... }
|
291
328
|
#
|
292
|
-
#
|
329
|
+
# github = Github.new
|
330
|
+
# github.repos.branch 'user-name', 'repo-name', 'branch-name'
|
331
|
+
# github.repos.branch user: 'user-name', repo: 'repo-name', branch: 'branch-name'
|
332
|
+
# github.repos(user: 'user-name', repo: 'repo-name', branch: 'branch-name').branch
|
333
|
+
#
|
334
|
+
def branch(*args)
|
335
|
+
arguments(args, :required => [:user, :repo, :branch])
|
336
|
+
params = arguments.params
|
337
|
+
|
338
|
+
get_request("/repos/#{user}/#{repo}/branches/#{branch}", params)
|
339
|
+
end
|
340
|
+
|
341
|
+
# List contributors
|
293
342
|
#
|
294
|
-
# This provides a dump of every repository, in the order that they were created.
|
295
343
|
# = Parameters
|
296
|
-
#
|
344
|
+
# <tt>:anon</tt> - Optional flag. Set to 1 or true to include anonymous contributors.
|
297
345
|
#
|
298
346
|
# = Examples
|
299
|
-
# github = Github.new
|
300
|
-
# github.repos.list
|
301
|
-
# github.repos.list { |repo| ... }
|
302
|
-
#
|
303
|
-
# List public repositories for the specified user.
|
304
347
|
#
|
305
|
-
# =
|
306
|
-
#
|
307
|
-
#
|
308
|
-
# github.repos.list :user => 'user-name', { |repo| ... }
|
348
|
+
# github = Github.new
|
349
|
+
# github.repos.contributors 'user-name','repo-name'
|
350
|
+
# github.repos.contributors 'user-name','repo-name' { |cont| ... }
|
309
351
|
#
|
310
|
-
|
352
|
+
def contributors(*args)
|
353
|
+
arguments(args, :required => [:user, :repo]) do
|
354
|
+
sift ['anon']
|
355
|
+
end
|
356
|
+
params = arguments.params
|
357
|
+
|
358
|
+
response = get_request("/repos/#{user}/#{repo}/contributors", params)
|
359
|
+
return response unless block_given?
|
360
|
+
response.each { |el| yield el }
|
361
|
+
end
|
362
|
+
alias :list_contributors :contributors
|
363
|
+
alias :contribs :contributors
|
364
|
+
|
365
|
+
# List languages
|
311
366
|
#
|
312
367
|
# = Examples
|
313
368
|
# github = Github.new
|
314
|
-
# github.repos.
|
315
|
-
# github.repos.
|
369
|
+
# github.repos.languages 'user-name', 'repo-name'
|
370
|
+
# github.repos.languages 'user-name', 'repo-name' { |lang| ... }
|
316
371
|
#
|
317
|
-
def
|
318
|
-
|
319
|
-
|
320
|
-
filter! %w[ user org type sort direction ], params
|
372
|
+
def languages(*args)
|
373
|
+
arguments(args, :required => [:user, :repo])
|
374
|
+
params = arguments.params
|
321
375
|
|
322
|
-
response =
|
323
|
-
get_request("/users/#{user_name}/repos", params)
|
324
|
-
elsif (org_name = params.delete("org"))
|
325
|
-
get_request("/orgs/#{org_name}/repos", params)
|
326
|
-
elsif authenticated?
|
327
|
-
# For authenticated user
|
328
|
-
get_request("/user/repos", params)
|
329
|
-
else
|
330
|
-
get_request("/repositories", params)
|
331
|
-
end
|
376
|
+
response = get_request("/repos/#{user}/#{repo}/languages", params)
|
332
377
|
return response unless block_given?
|
333
378
|
response.each { |el| yield el }
|
334
379
|
end
|
335
|
-
alias :
|
380
|
+
alias :list_languages :languages
|
336
381
|
|
337
382
|
# List tags
|
338
383
|
#
|
@@ -341,10 +386,9 @@ module Github
|
|
341
386
|
# github.repos.tags 'user-name', 'repo-name'
|
342
387
|
# github.repos.tags 'user-name', 'repo-name' { |tag| ... }
|
343
388
|
#
|
344
|
-
def tags(
|
345
|
-
|
346
|
-
|
347
|
-
normalize! params
|
389
|
+
def tags(*args)
|
390
|
+
arguments(args, :required => [:user, :repo])
|
391
|
+
params = arguments.params
|
348
392
|
|
349
393
|
response = get_request("/repos/#{user}/#{repo}/tags", params)
|
350
394
|
return response unless block_given?
|
@@ -361,10 +405,11 @@ module Github
|
|
361
405
|
# github.repos.teams 'user-name', 'repo-name'
|
362
406
|
# github.repos.teams 'user-name', 'repo-name' { |team| ... }
|
363
407
|
#
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
408
|
+
# github.repos(user: 'user-name, repo: 'repo-name').teams
|
409
|
+
#
|
410
|
+
def teams(*args)
|
411
|
+
arguments(args, :required => [:user, :repo])
|
412
|
+
params = arguments.params
|
368
413
|
|
369
414
|
response = get_request("/repos/#{user}/#{repo}/teams", params)
|
370
415
|
return response unless block_given?
|