github_api 0.3.4 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- metadata +4 -140
- data/LICENSE.txt +0 -20
- data/README.rdoc +0 -228
- data/Rakefile +0 -52
- data/features/github_api.feature +0 -50
- data/features/step_definitions/github_api_steps.rb +0 -11
- data/features/support/env.rb +0 -13
- data/lib/github_api.rb +0 -73
- data/lib/github_api/api.rb +0 -175
- data/lib/github_api/api/utils.rb +0 -9
- data/lib/github_api/authorization.rb +0 -73
- data/lib/github_api/authorizations.rb +0 -119
- data/lib/github_api/cache_control.rb +0 -19
- data/lib/github_api/client.rb +0 -55
- data/lib/github_api/compatibility.rb +0 -23
- data/lib/github_api/configuration.rb +0 -96
- data/lib/github_api/connection.rb +0 -81
- data/lib/github_api/core_ext/array.rb +0 -14
- data/lib/github_api/core_ext/hash.rb +0 -42
- data/lib/github_api/error.rb +0 -35
- data/lib/github_api/events.rb +0 -202
- data/lib/github_api/gists.rb +0 -200
- data/lib/github_api/gists/comments.rb +0 -86
- data/lib/github_api/git_data.rb +0 -26
- data/lib/github_api/git_data/blobs.rb +0 -51
- data/lib/github_api/git_data/commits.rb +0 -78
- data/lib/github_api/git_data/references.rb +0 -113
- data/lib/github_api/git_data/tags.rb +0 -78
- data/lib/github_api/git_data/trees.rb +0 -89
- data/lib/github_api/issues.rb +0 -215
- data/lib/github_api/issues/comments.rb +0 -110
- data/lib/github_api/issues/events.rb +0 -50
- data/lib/github_api/issues/labels.rb +0 -191
- data/lib/github_api/issues/milestones.rb +0 -119
- data/lib/github_api/mime_type.rb +0 -55
- data/lib/github_api/orgs.rb +0 -95
- data/lib/github_api/orgs/members.rb +0 -120
- data/lib/github_api/orgs/teams.rb +0 -245
- data/lib/github_api/pull_requests.rb +0 -224
- data/lib/github_api/pull_requests/comments.rb +0 -144
- data/lib/github_api/repos.rb +0 -286
- data/lib/github_api/repos/collaborators.rb +0 -81
- data/lib/github_api/repos/commits.rb +0 -180
- data/lib/github_api/repos/downloads.rb +0 -155
- data/lib/github_api/repos/forks.rb +0 -48
- data/lib/github_api/repos/hooks.rb +0 -173
- data/lib/github_api/repos/keys.rb +0 -104
- data/lib/github_api/repos/pub_sub_hubbub.rb +0 -102
- data/lib/github_api/repos/watching.rb +0 -94
- data/lib/github_api/request.rb +0 -84
- data/lib/github_api/request/basic_auth.rb +0 -31
- data/lib/github_api/request/caching.rb +0 -33
- data/lib/github_api/request/oauth2.rb +0 -33
- data/lib/github_api/response.rb +0 -28
- data/lib/github_api/response/helpers.rb +0 -14
- data/lib/github_api/response/jsonize.rb +0 -26
- data/lib/github_api/response/mashify.rb +0 -24
- data/lib/github_api/response/raise_error.rb +0 -33
- data/lib/github_api/result.rb +0 -42
- data/lib/github_api/users.rb +0 -84
- data/lib/github_api/users/emails.rb +0 -49
- data/lib/github_api/users/followers.rb +0 -98
- data/lib/github_api/users/keys.rb +0 -84
- data/lib/github_api/version.rb +0 -12
- data/spec/README.rdoc +0 -22
- data/spec/coverage_adapter.rb +0 -14
- data/spec/fixtures/auths/authorization.json +0 -14
- data/spec/fixtures/auths/authorizations.json +0 -16
- data/spec/fixtures/events/events.json +0 -29
- data/spec/fixtures/issues/issue.json +0 -56
- data/spec/fixtures/issues/issues.json +0 -58
- data/spec/fixtures/orgs/members.json +0 -9
- data/spec/fixtures/orgs/org.json +0 -18
- data/spec/fixtures/orgs/orgs.json +0 -8
- data/spec/fixtures/orgs/team.json +0 -8
- data/spec/fixtures/orgs/team_repos.json +0 -29
- data/spec/fixtures/orgs/teams.json +0 -7
- data/spec/fixtures/repos/branches.json +0 -9
- data/spec/fixtures/repos/collaborators.json +0 -8
- data/spec/fixtures/repos/commit.json +0 -53
- data/spec/fixtures/repos/commit_comment.json +0 -16
- data/spec/fixtures/repos/commit_comments.json +0 -18
- data/spec/fixtures/repos/commits.json +0 -27
- data/spec/fixtures/repos/contributors.json +0 -8
- data/spec/fixtures/repos/download.json +0 -10
- data/spec/fixtures/repos/download_s3.json +0 -21
- data/spec/fixtures/repos/downloads.json +0 -12
- data/spec/fixtures/repos/fork.json +0 -27
- data/spec/fixtures/repos/forks.json +0 -29
- data/spec/fixtures/repos/hook.json +0 -15
- data/spec/fixtures/repos/hooks.json +0 -10
- data/spec/fixtures/repos/key.json +0 -6
- data/spec/fixtures/repos/keys.json +0 -8
- data/spec/fixtures/repos/languages.json +0 -4
- data/spec/fixtures/repos/repo.json +0 -90
- data/spec/fixtures/repos/repo_comments.json +0 -18
- data/spec/fixtures/repos/repos.json +0 -29
- data/spec/fixtures/repos/tags.json +0 -11
- data/spec/fixtures/repos/teams.json +0 -7
- data/spec/fixtures/repos/watched.json +0 -29
- data/spec/fixtures/repos/watchers.json +0 -8
- data/spec/fixtures/users/user.json +0 -32
- data/spec/github/api_spec.rb +0 -25
- data/spec/github/authorization_spec.rb +0 -176
- data/spec/github/authorizations_spec.rb +0 -242
- data/spec/github/client_spec.rb +0 -50
- data/spec/github/core_ext/hash_spec.rb +0 -44
- data/spec/github/events_spec.rb +0 -491
- data/spec/github/gists/comments_spec.rb +0 -5
- data/spec/github/gists_spec.rb +0 -5
- data/spec/github/git_data/blobs_spec.rb +0 -5
- data/spec/github/git_data/commits_spec.rb +0 -5
- data/spec/github/git_data/references_spec.rb +0 -5
- data/spec/github/git_data/tags_spec.rb +0 -5
- data/spec/github/git_data/trees_spec.rb +0 -5
- data/spec/github/git_data_spec.rb +0 -5
- data/spec/github/issues/comments_spec.rb +0 -5
- data/spec/github/issues/events_spec.rb +0 -5
- data/spec/github/issues/labels_spec.rb +0 -5
- data/spec/github/issues/milestones_spec.rb +0 -5
- data/spec/github/issues_spec.rb +0 -287
- data/spec/github/mime_type_spec.rb +0 -70
- data/spec/github/orgs/members_spec.rb +0 -275
- data/spec/github/orgs/teams_spec.rb +0 -563
- data/spec/github/orgs_spec.rb +0 -160
- data/spec/github/repos/collaborators_spec.rb +0 -169
- data/spec/github/repos/commits_spec.rb +0 -424
- data/spec/github/repos/downloads_spec.rb +0 -236
- data/spec/github/repos/forks_spec.rb +0 -103
- data/spec/github/repos/hooks_spec.rb +0 -307
- data/spec/github/repos/keys_spec.rb +0 -216
- data/spec/github/repos/pub_sub_hubbub_spec.rb +0 -83
- data/spec/github/repos/watching_spec.rb +0 -222
- data/spec/github/repos_spec.rb +0 -571
- data/spec/github/result_spec.rb +0 -43
- data/spec/github/users_spec.rb +0 -140
- data/spec/github_spec.rb +0 -109
- data/spec/spec_helper.rb +0 -86
data/features/github_api.feature
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
Feature: Github API components
|
2
|
-
|
3
|
-
In order to interact with full Github API
|
4
|
-
A user needs to request a Github class instance
|
5
|
-
|
6
|
-
Scenario: Accessing repositories API
|
7
|
-
Given I have github instance
|
8
|
-
When I fetch "repos"
|
9
|
-
Then I will have access to "Github::Repos" API
|
10
|
-
|
11
|
-
Scenario: Accessing organizations API
|
12
|
-
Given I have github instance
|
13
|
-
When I fetch "orgs"
|
14
|
-
Then I will have access to "Github::Orgs" API
|
15
|
-
|
16
|
-
Scenario: Accessing gists API
|
17
|
-
Given I have github instance
|
18
|
-
When I fetch "gists"
|
19
|
-
Then I will have access to "Github::Gists" API
|
20
|
-
|
21
|
-
Scenario: Accessing issues API
|
22
|
-
Given I have github instance
|
23
|
-
When I fetch "issues"
|
24
|
-
Then I will have access to "Github::Issues" API
|
25
|
-
|
26
|
-
Scenario: Accessing pull requests API
|
27
|
-
Given I have github instance
|
28
|
-
When I fetch "pull_requests"
|
29
|
-
Then I will have access to "Github::PullRequests" API
|
30
|
-
|
31
|
-
Scenario: Accessing git data API
|
32
|
-
Given I have github instance
|
33
|
-
When I fetch "git_data"
|
34
|
-
Then I will have access to "Github::GitData" API
|
35
|
-
|
36
|
-
Scenario: Accessing users API
|
37
|
-
Given I have github instance
|
38
|
-
When I fetch "users"
|
39
|
-
Then I will have access to "Github::Users" API
|
40
|
-
|
41
|
-
Scenario: Accessing users API
|
42
|
-
Given I have github instance
|
43
|
-
When I fetch "events"
|
44
|
-
Then I will have access to "Github::Events" API
|
45
|
-
|
46
|
-
Scenario: Accessing authorizations API
|
47
|
-
Given I have github instance
|
48
|
-
When I fetch "oauth"
|
49
|
-
Then I will have access to "Github::Authorizations" API
|
50
|
-
|
@@ -1,11 +0,0 @@
|
|
1
|
-
Given /^I have github instance$/ do
|
2
|
-
@github = Github.new
|
3
|
-
end
|
4
|
-
|
5
|
-
When /^I fetch "([^"]*)"$/ do |method|
|
6
|
-
@response = @github.send(method.to_sym)
|
7
|
-
end
|
8
|
-
|
9
|
-
When /^I will have access to "([^"]*)" API$/ do |api|
|
10
|
-
@response.class.to_s.should match api
|
11
|
-
end
|
data/features/support/env.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'bundler'
|
2
|
-
begin
|
3
|
-
Bundler.setup(:default, :development)
|
4
|
-
rescue Bundler::BundlerError => e
|
5
|
-
$stderr.puts e.message
|
6
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
7
|
-
exit e.status_code
|
8
|
-
end
|
9
|
-
|
10
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../lib')
|
11
|
-
require 'github_api'
|
12
|
-
|
13
|
-
require 'rspec/expectations'
|
data/lib/github_api.rb
DELETED
@@ -1,73 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'github_api/version'
|
4
|
-
require 'github_api/configuration'
|
5
|
-
require 'github_api/connection'
|
6
|
-
|
7
|
-
module Github
|
8
|
-
extend Configuration
|
9
|
-
|
10
|
-
class << self
|
11
|
-
# Alias for Github::Client.new
|
12
|
-
#
|
13
|
-
# @return [Github::Client]
|
14
|
-
def new(options = {})
|
15
|
-
Github::Client.new(options)
|
16
|
-
end
|
17
|
-
|
18
|
-
# Delegate to Github::Client
|
19
|
-
#
|
20
|
-
def method_missing(method, *args, &block)
|
21
|
-
return super unless new.respond_to?(method)
|
22
|
-
new.send(method, *args, &block)
|
23
|
-
end
|
24
|
-
|
25
|
-
def respond_to?(method, include_private = false)
|
26
|
-
new.respond_to?(method, include_private) || super(method, include_private)
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
|
31
|
-
module AutoloadHelper
|
32
|
-
|
33
|
-
def autoload_all(prefix, options)
|
34
|
-
options.each do |const_name, path|
|
35
|
-
autoload const_name, File.join(prefix, path)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
def register_constant(options)
|
40
|
-
options.each do |const_name, value|
|
41
|
-
const_set const_name.upcase.to_s, value
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def lookup_constant(const_name)
|
46
|
-
const_get const_name.upcase.to_s
|
47
|
-
end
|
48
|
-
|
49
|
-
end
|
50
|
-
|
51
|
-
extend AutoloadHelper
|
52
|
-
|
53
|
-
autoload_all 'github_api',
|
54
|
-
:API => 'api',
|
55
|
-
:Client => 'client',
|
56
|
-
:Repos => 'repos',
|
57
|
-
:Request => 'request',
|
58
|
-
:Response => 'response',
|
59
|
-
:Result => 'result',
|
60
|
-
:Error => 'error',
|
61
|
-
:Issues => 'issues',
|
62
|
-
:Gists => 'gists',
|
63
|
-
:GitData => 'git_data',
|
64
|
-
:Orgs => 'orgs',
|
65
|
-
:PullRequests => 'pull_requests',
|
66
|
-
:Users => 'users',
|
67
|
-
:Events => 'events',
|
68
|
-
:CoreExt => 'core_ext',
|
69
|
-
:MimeType => 'mime_type',
|
70
|
-
:Authorization => 'authorization',
|
71
|
-
:Authorizations => 'authorizations'
|
72
|
-
|
73
|
-
end # Github
|
data/lib/github_api/api.rb
DELETED
@@ -1,175 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'github_api/configuration'
|
4
|
-
require 'github_api/connection'
|
5
|
-
require 'github_api/request'
|
6
|
-
require 'github_api/mime_type'
|
7
|
-
require 'github_api/core_ext/hash'
|
8
|
-
require 'github_api/core_ext/array'
|
9
|
-
require 'github_api/compatibility'
|
10
|
-
|
11
|
-
module Github
|
12
|
-
|
13
|
-
# @private
|
14
|
-
class API
|
15
|
-
include Authorization
|
16
|
-
include MimeType
|
17
|
-
include Connection
|
18
|
-
include Request
|
19
|
-
|
20
|
-
VALID_API_KEYS = [
|
21
|
-
:per_page,
|
22
|
-
:pagination
|
23
|
-
]
|
24
|
-
|
25
|
-
attr_reader *Configuration::VALID_OPTIONS_KEYS
|
26
|
-
attr_accessor *VALID_API_KEYS
|
27
|
-
|
28
|
-
# Callback to update global configuration options
|
29
|
-
class_eval do
|
30
|
-
Configuration::VALID_OPTIONS_KEYS.each do |key|
|
31
|
-
define_method "#{key}=" do |arg|
|
32
|
-
self.instance_variable_set("@#{key}", arg)
|
33
|
-
Github.send("#{key}=", arg)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
# Creates new API
|
39
|
-
def initialize(options = {})
|
40
|
-
options = Github.options.merge(options)
|
41
|
-
Configuration::VALID_OPTIONS_KEYS.each do |key|
|
42
|
-
send("#{key}=", options[key])
|
43
|
-
end
|
44
|
-
_process_basic_auth(options[:basic_auth])
|
45
|
-
client if client_id? && client_secret?
|
46
|
-
end
|
47
|
-
|
48
|
-
private
|
49
|
-
|
50
|
-
# Extract login and password from basic_auth parameter
|
51
|
-
def _process_basic_auth(auth)
|
52
|
-
case auth
|
53
|
-
when String
|
54
|
-
login = auth.split(':').first
|
55
|
-
password = auth.split(':').last
|
56
|
-
when Hash
|
57
|
-
login = auth[:login]
|
58
|
-
password = auth[:password]
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
# Responds to attribute query
|
63
|
-
def method_missing(method, *args, &block) # :nodoc:
|
64
|
-
if method.to_s =~ /^(.*)\?$/
|
65
|
-
return !self.send($1.to_s).nil?
|
66
|
-
else
|
67
|
-
super
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
def _validate_inputs(required, provided) # :nodoc:
|
72
|
-
required.all? do |key|
|
73
|
-
provided.has_key? key
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
def _validate_presence_of(*params) # :nodoc:
|
78
|
-
params.each do |param|
|
79
|
-
raise ArgumentError, "parameter cannot be nil" if param.nil?
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
def _validate_user_repo_params(user_name, repo_name) # :nodoc:
|
84
|
-
raise ArgumentError, "[user] parameter cannot be nil" if user_name.nil?
|
85
|
-
raise ArgumentError, "[repo] parameter cannot be nil" if repo_name.nil?
|
86
|
-
end
|
87
|
-
|
88
|
-
def _update_user_repo_params(user_name, repo_name=nil) # :nodoc:
|
89
|
-
self.user = user_name || self.user
|
90
|
-
self.repo = repo_name || self.repo
|
91
|
-
end
|
92
|
-
|
93
|
-
def _merge_user_into_params!(params) # :nodoc:
|
94
|
-
params.merge!({ 'user' => self.user }) if user?
|
95
|
-
end
|
96
|
-
|
97
|
-
def _merge_user_repo_into_params!(params) # :nodoc:
|
98
|
-
{ 'user' => self.user, 'repo' => self.repo }.merge!(params)
|
99
|
-
end
|
100
|
-
|
101
|
-
# Turns any keys from nested hashes including nested arrays into strings
|
102
|
-
def _normalize_params_keys(params) # :nodoc:
|
103
|
-
case params
|
104
|
-
when Hash
|
105
|
-
params.keys.each do |k|
|
106
|
-
params[k.to_s] = params.delete(k)
|
107
|
-
_normalize_params_keys(params[k.to_s])
|
108
|
-
end
|
109
|
-
when Array
|
110
|
-
params.map! do |el|
|
111
|
-
_normalize_params_keys(el)
|
112
|
-
end
|
113
|
-
else
|
114
|
-
params.to_s
|
115
|
-
end
|
116
|
-
return params
|
117
|
-
end
|
118
|
-
|
119
|
-
def _filter_params_keys(keys, params) # :nodoc:
|
120
|
-
params.reject! { |k,v| !keys.include? k }
|
121
|
-
end
|
122
|
-
|
123
|
-
def _hash_traverse(hash, &block)
|
124
|
-
hash.each do |key, val|
|
125
|
-
block.call(key)
|
126
|
-
case val
|
127
|
-
when Hash
|
128
|
-
val.keys.each do |k|
|
129
|
-
_hash_traverse(val, &block)
|
130
|
-
end
|
131
|
-
when Array
|
132
|
-
val.each do |item|
|
133
|
-
_hash_traverse(item, &block)
|
134
|
-
end
|
135
|
-
end
|
136
|
-
end
|
137
|
-
return hash
|
138
|
-
end
|
139
|
-
|
140
|
-
def _validate_params_values(options, params) # :nodoc:
|
141
|
-
params.each do |k, v|
|
142
|
-
next unless options.keys.include?(k)
|
143
|
-
if options[k].is_a?(Array) && !options[k].include?(params[k])
|
144
|
-
raise ArgumentError, "Wrong value for #{k}, allowed: #{options[k].join(', ')}"
|
145
|
-
elsif options[k].is_a?(Regexp) && !(options[k] =~ params[k])
|
146
|
-
raise ArgumentError, "String does not match the parameter value."
|
147
|
-
end
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
def _merge_mime_type(resource, params) # :nodoc:
|
152
|
-
params['resource'] = resource
|
153
|
-
params['mime_type'] = params['mime_type'] || :raw
|
154
|
-
end
|
155
|
-
|
156
|
-
# TODO add to core extensions
|
157
|
-
def _extract_parameters(array)
|
158
|
-
if array.last.is_a?(Hash) && array.last.instance_of?(Hash)
|
159
|
-
pop
|
160
|
-
else
|
161
|
-
{}
|
162
|
-
end
|
163
|
-
end
|
164
|
-
|
165
|
-
# Passes configuration options to instantiated class
|
166
|
-
def _create_instance(klass, options)
|
167
|
-
options.symbolize_keys!
|
168
|
-
klass.new(options)
|
169
|
-
end
|
170
|
-
|
171
|
-
def _token_required
|
172
|
-
end
|
173
|
-
|
174
|
-
end # API
|
175
|
-
end # Github
|
data/lib/github_api/api/utils.rb
DELETED
@@ -1,73 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Github
|
4
|
-
module Authorization
|
5
|
-
|
6
|
-
attr_accessor :scopes
|
7
|
-
|
8
|
-
# Setup OAuth2 instance
|
9
|
-
def client
|
10
|
-
@client ||= ::OAuth2::Client.new(client_id, client_secret,
|
11
|
-
:site => 'https://github.com',
|
12
|
-
:authorize_url => 'login/oauth/authorize',
|
13
|
-
:token_url => 'login/oauth/access_token'
|
14
|
-
)
|
15
|
-
end
|
16
|
-
|
17
|
-
# Strategy token
|
18
|
-
def auth_code
|
19
|
-
_verify_client
|
20
|
-
@client.auth_code
|
21
|
-
end
|
22
|
-
|
23
|
-
# Sends authorization request to GitHub.
|
24
|
-
# = Parameters
|
25
|
-
# * <tt>:redirect_uri</tt> - Required string.
|
26
|
-
# * <tt>:scope</tt> - Optional string. Comma separated list of scopes.
|
27
|
-
# Available scopes:
|
28
|
-
# * (no scope) - public read-only access (includes public user profile info, public repo info, and gists).
|
29
|
-
# * <tt>user</tt> - DB read/write access to profile info only.
|
30
|
-
# * <tt>public_repo</tt> - DB read/write access, and Git read access to public repos.
|
31
|
-
# * <tt>repo</tt> - DB read/write access, and Git read access to public and private repos.
|
32
|
-
# * <tt>gist</tt> - write access to gists.
|
33
|
-
#
|
34
|
-
def authorize_url(params = {})
|
35
|
-
_verify_client
|
36
|
-
@client.auth_code.authorize_url(params)
|
37
|
-
end
|
38
|
-
|
39
|
-
# Makes request to token endpoint and retrieves access token value
|
40
|
-
def get_token(authorization_code, params = {})
|
41
|
-
_verify_client
|
42
|
-
@client.auth_code.get_token(authorization_code, params)
|
43
|
-
end
|
44
|
-
|
45
|
-
# Check whether authentication credentials are present
|
46
|
-
def authenticated?
|
47
|
-
basic_authed? || oauth_token?
|
48
|
-
end
|
49
|
-
|
50
|
-
# Check whether basic authentication credentials are present
|
51
|
-
def basic_authed?
|
52
|
-
basic_auth? || (login? && password?)
|
53
|
-
end
|
54
|
-
|
55
|
-
# Select authentication parameters
|
56
|
-
def authentication
|
57
|
-
if login? && password?
|
58
|
-
{ :login => login, :password => password }
|
59
|
-
elsif basic_auth?
|
60
|
-
{ :basic_auth => basic_auth }
|
61
|
-
else
|
62
|
-
{ }
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
private
|
67
|
-
|
68
|
-
def _verify_client # :nodoc:
|
69
|
-
raise ArgumentError, 'Need to provide client_id and client_secret' unless client_id? && client_secret?
|
70
|
-
end
|
71
|
-
|
72
|
-
end # Authorization
|
73
|
-
end # Github
|
@@ -1,119 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Github
|
4
|
-
class Authorizations < API
|
5
|
-
|
6
|
-
VALID_AUTH_PARAM_NAMES = %w[
|
7
|
-
scopes
|
8
|
-
add_scopes
|
9
|
-
remove_scopes
|
10
|
-
].freeze
|
11
|
-
|
12
|
-
# Creates new OAuth Authorizations API
|
13
|
-
def initialize(options = {})
|
14
|
-
super(options)
|
15
|
-
end
|
16
|
-
|
17
|
-
# List authorizations
|
18
|
-
#
|
19
|
-
# = Examples
|
20
|
-
# @github = Github.new :basic_auth => 'login:password'
|
21
|
-
# @github.oauth.authorizations
|
22
|
-
# @github.oauth.authorizations { |auth| ... }
|
23
|
-
#
|
24
|
-
def authorizations(params={})
|
25
|
-
_check_if_authenticated
|
26
|
-
_normalize_params_keys(params)
|
27
|
-
|
28
|
-
response = get("/authorizations", params)
|
29
|
-
return response unless block_given?
|
30
|
-
response.each { |el| yield el }
|
31
|
-
end
|
32
|
-
alias :auths :authorizations
|
33
|
-
alias :list_auths :authorizations
|
34
|
-
alias :list_authorizations :authorizations
|
35
|
-
|
36
|
-
# Get a single authorization
|
37
|
-
#
|
38
|
-
# = Examples
|
39
|
-
# @github = Github.new :basic_auth => 'login:password'
|
40
|
-
# @github.oauth.authorization 'authorization-id'
|
41
|
-
#
|
42
|
-
def authorization(authorization_id, params={})
|
43
|
-
_validate_presence_of(authorization_id)
|
44
|
-
_check_if_authenticated
|
45
|
-
_normalize_params_keys params
|
46
|
-
|
47
|
-
get "/authorizations/#{authorization_id}", params
|
48
|
-
end
|
49
|
-
alias :auth :authorization
|
50
|
-
alias :get_auth :authorization
|
51
|
-
alias :get_authorization :authorization
|
52
|
-
|
53
|
-
# Create a new authorization
|
54
|
-
#
|
55
|
-
# = Inputs
|
56
|
-
# * <tt>:scopes</tt> - Optional array - A list of scopes that this authorization is in.
|
57
|
-
# = Examples
|
58
|
-
# @github = Github.new :basic_auth => 'login:password'
|
59
|
-
# @github.oauth.create_authorization
|
60
|
-
# "scopes" => ["public_repo"]
|
61
|
-
#
|
62
|
-
def create_authorization(params={})
|
63
|
-
_check_if_authenticated
|
64
|
-
_normalize_params_keys(params)
|
65
|
-
_filter_params_keys(VALID_AUTH_PARAM_NAMES, params)
|
66
|
-
|
67
|
-
post("/authorizations", params)
|
68
|
-
end
|
69
|
-
alias :create_auth :create_authorization
|
70
|
-
|
71
|
-
# Update an existing authorization
|
72
|
-
#
|
73
|
-
# = Inputs
|
74
|
-
# * <tt>:scopes</tt> - Optional array - A list of scopes that this authorization is in.
|
75
|
-
# * <tt>:add_scopes</tt> - Optional array - A list of scopes to add to this authorization.
|
76
|
-
# * <tt>:remove_scopes</tt> - Optional array - A list of scopes to remove from this authorization.
|
77
|
-
#
|
78
|
-
# = Examples
|
79
|
-
# @github = Github.new :basic_auth => 'login:password'
|
80
|
-
# @github.oauth.update_authorization
|
81
|
-
# "add_scopes" => ["repo"],
|
82
|
-
#
|
83
|
-
def update_authorization(authorization_id, params={})
|
84
|
-
_check_if_authenticated
|
85
|
-
_validate_presence_of(authorization_id)
|
86
|
-
|
87
|
-
_normalize_params_keys(params)
|
88
|
-
_filter_params_keys(VALID_AUTH_PARAM_NAMES, params)
|
89
|
-
|
90
|
-
patch("/authorizations/#{authorization_id}", params)
|
91
|
-
end
|
92
|
-
alias :update_auth :update_authorization
|
93
|
-
|
94
|
-
# Delete an authorization
|
95
|
-
#
|
96
|
-
# = Examples
|
97
|
-
# @github.oauth.delete_authorization 'authorization-id'
|
98
|
-
#
|
99
|
-
def delete_authorization(authorization_id, params={})
|
100
|
-
_check_if_authenticated
|
101
|
-
_validate_presence_of(authorization_id)
|
102
|
-
|
103
|
-
_normalize_params_keys(params)
|
104
|
-
_filter_params_keys(VALID_AUTH_PARAM_NAMES, params)
|
105
|
-
|
106
|
-
delete("/authorizations/#{authorization_id}", params)
|
107
|
-
end
|
108
|
-
alias :delete_auth :delete_authorization
|
109
|
-
alias :remove_auth :delete_authorization
|
110
|
-
alias :remove_authorization :delete_authorization
|
111
|
-
|
112
|
-
private
|
113
|
-
|
114
|
-
def _check_if_authenticated
|
115
|
-
raise ArgumentError, 'You can only access authentication tokens through Basic Authentication' unless authenticated?
|
116
|
-
end
|
117
|
-
|
118
|
-
end # Authorizations
|
119
|
-
end # Github
|