github_api 0.9.0 → 0.9.1
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/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?
|