Module: Octokit::Client::Authorizations
- Included in:
- Octokit::Client
- Defined in:
- lib/octokit/client/authorizations.rb
Overview
Methods for the Authorizations API
Instance Method Summary collapse
-
#authorization(number, options = {}) ⇒ Sawyer::Resource
Get a single authorization for the authenticated user.
-
#authorizations(options = {}) ⇒ Array<Sawyer::Resource>
List the authenticated user’s authorizations.
-
#authorize_url(app_id = client_id, options = {}) ⇒ String
Get the URL to authorize a user for an application via the web flow.
-
#check_application_authorization(token, options = {}) ⇒ Sawyer::Resource
Check if a token is valid.
-
#create_authorization(options = {}) ⇒ Sawyer::Resource
Create an authorization for the authenticated user.
-
#delete_authorization(number, options = {}) ⇒ Boolean
Delete an authorization for the authenticated user.
-
#reset_application_authorization(token, options = {}) ⇒ Sawyer::Resource
Reset a token.
-
#revoke_all_application_authorizations(options = {}) ⇒ Boolean
Revoke all tokens for an app.
-
#revoke_application_authorization(token, options = {}) ⇒ Boolean
(also: #delete_application_authorization)
Revoke a token.
-
#scopes(token = @access_token) ⇒ Array<String>
Check scopes for a token.
-
#update_authorization(number, options = {}) ⇒ Sawyer::Resource
Update an authorization for the authenticated user.
Instance Method Details
#authorization(number, options = {}) ⇒ Sawyer::Resource
Get a single authorization for the authenticated user.
You can only access your own tokens, and only through Basic Authentication.
34 35 36 |
# File 'lib/octokit/client/authorizations.rb', line 34 def (number, = {}) get "authorizations/#{number}", end |
#authorizations(options = {}) ⇒ Array<Sawyer::Resource>
List the authenticated user’s authorizations
API for users to manage their own tokens. You can only access your own tokens, and only through Basic Authentication.
20 21 22 |
# File 'lib/octokit/client/authorizations.rb', line 20 def ( = {}) paginate 'authorizations', end |
#authorize_url(app_id = client_id, options = {}) ⇒ String
Get the URL to authorize a user for an application via the web flow
232 233 234 235 236 237 238 239 240 241 242 243 244 |
# File 'lib/octokit/client/authorizations.rb', line 232 def (app_id = client_id, = {}) if app_id.to_s.empty? raise Octokit::ApplicationCredentialsRequired.new "client_id required" end = .delete(:endpoint) || Octokit.web_endpoint += "login/oauth/authorize?client_id=" + app_id .each do |key, value| += "&" + key.to_s + "=" + value end end |
#check_application_authorization(token, options = {}) ⇒ Sawyer::Resource
Check if a token is valid.
Applications can check if a token is valid without rate limits.
140 141 142 143 144 145 146 147 148 |
# File 'lib/octokit/client/authorizations.rb', line 140 def (token, = {}) opts = .dup key = opts.delete(:client_id) || client_id secret = opts.delete(:client_secret) || client_secret as_app(key, secret) do |app_client| app_client.get "/applications/#{client_id}/tokens/#{token}", opts end end |
#create_authorization(options = {}) ⇒ Sawyer::Resource
Create an authorization for the authenticated user.
You can create your own tokens, and only through Basic Authentication.
61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/octokit/client/authorizations.rb', line 61 def ( = {}) # Techincally we can omit scopes as GitHub has a default, however the # API will reject us if we send a POST request with an empty body. if .delete :idempotent client_id, client_secret = fetch_client_id_and_secret() raise ArgumentError.new("Client ID and Secret required for idempotent authorizations") unless client_id && client_secret put "authorizations/clients/#{client_id}", .merge(:client_secret => client_secret) else post 'authorizations', end end |
#delete_authorization(number, options = {}) ⇒ Boolean
Delete an authorization for the authenticated user.
You can delete your own tokens, and only through Basic Authentication.
109 110 111 |
# File 'lib/octokit/client/authorizations.rb', line 109 def (number, = {}) boolean_from_response :delete, "authorizations/#{number}", end |
#reset_application_authorization(token, options = {}) ⇒ Sawyer::Resource
Reset a token
Applications can reset a token without requiring a user to re-authorize.
161 162 163 164 165 166 167 168 169 |
# File 'lib/octokit/client/authorizations.rb', line 161 def (token, = {}) opts = .dup key = opts.delete(:client_id) || client_id secret = opts.delete(:client_secret) || client_secret as_app(key, secret) do |app_client| app_client.post "/applications/#{client_id}/tokens/#{token}", opts end end |
#revoke_all_application_authorizations(options = {}) ⇒ Boolean
Revoke all tokens for an app
Applications can revoke all of their tokens in a single request
206 207 208 209 210 211 212 213 214 215 216 217 218 |
# File 'lib/octokit/client/authorizations.rb', line 206 def ( = {}) opts = .dup key = opts.delete(:client_id) || client_id secret = opts.delete(:client_secret) || client_secret as_app(key, secret) do |app_client| app_client.delete "/applications/#{client_id}/tokens", opts app_client.last_response.status == 204 end rescue Octokit::NotFound false end |
#revoke_application_authorization(token, options = {}) ⇒ Boolean Also known as:
Revoke a token
Applications can revoke (delete) a token
182 183 184 185 186 187 188 189 190 191 192 193 194 |
# File 'lib/octokit/client/authorizations.rb', line 182 def (token, = {}) opts = .dup key = opts.delete(:client_id) || client_id secret = opts.delete(:client_secret) || client_secret as_app(key, secret) do |app_client| app_client.delete "/applications/#{client_id}/tokens/#{token}", opts app_client.last_response.status == 204 end rescue Octokit::NotFound false end |
#scopes(token = @access_token) ⇒ Array<String>
Check scopes for a token
118 119 120 121 122 123 124 125 126 127 |
# File 'lib/octokit/client/authorizations.rb', line 118 def scopes(token = @access_token) raise ArgumentError.new("Access token required") if token.nil? agent.call(:get, "user", :headers => {"Authorization" => "token #{token}" }). headers['X-OAuth-Scopes']. to_s. split(','). map(&:strip). sort end |
#update_authorization(number, options = {}) ⇒ Sawyer::Resource
Update an authorization for the authenticated user.
You can update your own tokens, but only through Basic Authentication.
93 94 95 |
# File 'lib/octokit/client/authorizations.rb', line 93 def (number, = {}) patch "authorizations/#{number}", end |