Module: Octokit

Extended by:
Configurable
Defined in:
lib/octokit.rb,
lib/octokit/gist.rb,
lib/octokit/user.rb,
lib/octokit/error.rb,
lib/octokit/client.rb,
lib/octokit/version.rb,
lib/octokit/preview.rb,
lib/octokit/default.rb,
lib/octokit/warnable.rb,
lib/octokit/rate_limit.rb,
lib/octokit/client/say.rb,
lib/octokit/repository.rb,
lib/octokit/connection.rb,
lib/octokit/client/refs.rb,
lib/octokit/client/meta.rb,
lib/octokit/client/feeds.rb,
lib/octokit/client/stats.rb,
lib/octokit/client/users.rb,
lib/octokit/organization.rb,
lib/octokit/client/hooks.rb,
lib/octokit/configurable.rb,
lib/octokit/client/pages.rb,
lib/octokit/client/gists.rb,
lib/octokit/client/events.rb,
lib/octokit/client/issues.rb,
lib/octokit/client/labels.rb,
lib/octokit/client/search.rb,
lib/octokit/client/emojis.rb,
lib/octokit/authentication.rb,
lib/octokit/client/objects.rb,
lib/octokit/client/commits.rb,
lib/octokit/client/contents.rb,
lib/octokit/client/releases.rb,
lib/octokit/client/markdown.rb,
lib/octokit/client/licenses.rb,
lib/octokit/client/statuses.rb,
lib/octokit/client/reactions.rb,
lib/octokit/client/gitignore.rb,
lib/octokit/client/downloads.rb,
lib/octokit/client/milestones.rb,
lib/octokit/client/rate_limit.rb,
lib/octokit/client/deployments.rb,
lib/octokit/client/repositories.rb,
lib/octokit/client/source_import.rb,
lib/octokit/client/legacy_search.rb,
lib/octokit/client/pull_requests.rb,
lib/octokit/client/organizations.rb,
lib/octokit/client/notifications.rb,
lib/octokit/client/authorizations.rb,
lib/octokit/client/service_status.rb,
lib/octokit/client/pub_sub_hubbub.rb,
lib/octokit/client/commit_comments.rb,
lib/octokit/enterprise_admin_client.rb,
lib/octokit/middleware/follow_redirects.rb,
lib/octokit/enterprise_admin_client/orgs.rb,
lib/octokit/client/repository_invitations.rb,
lib/octokit/enterprise_admin_client/users.rb,
lib/octokit/enterprise_admin_client/license.rb,
lib/octokit/enterprise_admin_client/admin_stats.rb,
lib/octokit/enterprise_management_console_client.rb,
lib/octokit/enterprise_admin_client/search_indexing.rb,
lib/octokit/enterprise_management_console_client/management_console.rb

Overview

Adapted from lostisland/faraday_middleware. Trimmed down to just the logic that we need for octokit.rb.

https://github.com/lostisland/faraday_middleware/blob/138766e/lib/faraday_middleware/response/follow_redirects.rb

Defined Under Namespace

Modules: Authentication, Configurable, Connection, Default, Middleware, Preview, Warnable Classes: AbuseDetected, AccountSuspended, ApplicationCredentialsRequired, BadGateway, BadRequest, BranchNotProtected, Client, ClientError, Conflict, EnterpriseAdminClient, EnterpriseManagementConsoleClient, Error, Forbidden, Gist, InternalServerError, InvalidRepository, MethodNotAllowed, MissingContentType, NotAcceptable, NotFound, NotImplemented, OneTimePasswordRequired, Organization, RateLimit, Repository, RepositoryUnavailable, ServerError, ServiceUnavailable, TooManyLoginAttempts, TooManyRequests, Unauthorized, UnavailableForLegalReasons, UnprocessableEntity, UnsupportedMediaType, UnverifiedEmail, User

Constant Summary

MAJOR =

Current major release.

Returns:

  • (Integer)
4
MINOR =

Current minor release.

Returns:

  • (Integer)
4
PATCH =

Current patch level.

Returns:

  • (Integer)
0
VERSION =

Full release version.

Returns:

  • (String)
[MAJOR, MINOR, PATCH].join('.').freeze

Instance Attribute Summary (collapse)

Attributes included from Configurable

#access_token, #api_endpoint, #auto_paginate, #client_id, #client_secret, #connection_options, #default_media_type, #login, #management_console_endpoint, #management_console_password, #middleware, #netrc, #netrc_file, #password, #per_page, #proxy, #user_agent, #web_endpoint

Class Method Summary (collapse)

Methods included from Configurable

configure, keys, netrc?, reset!, same_options?

Instance Attribute Details

- (Fixnum) limit=(value) (writeonly)

Returns Max tries per rate limit period

Returns:

  • (Fixnum)

    Max tries per rate limit period



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/octokit/rate_limit.rb', line 15

class RateLimit < Struct.new(:limit, :remaining, :resets_at, :resets_in)

  # Get rate limit info from HTTP response
  #
  # @param response [#headers] HTTP response
  # @return [RateLimit]
  def self.from_response(response)
    info = new
    if response && !response.headers.nil?
      info.limit = (response.headers['X-RateLimit-Limit'] || 1).to_i
      info.remaining = (response.headers['X-RateLimit-Remaining'] || 1).to_i
      info.resets_at = Time.at((response.headers['X-RateLimit-Reset'] || Time.now).to_i)
      info.resets_in = [(info.resets_at - Time.now).to_i, 0].max
    end

    info
  end
end

- (Fixnum) remaining=(value) (writeonly)

Returns Remaining tries per rate limit period

Returns:

  • (Fixnum)

    Remaining tries per rate limit period



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/octokit/rate_limit.rb', line 15

class RateLimit < Struct.new(:limit, :remaining, :resets_at, :resets_in)

  # Get rate limit info from HTTP response
  #
  # @param response [#headers] HTTP response
  # @return [RateLimit]
  def self.from_response(response)
    info = new
    if response && !response.headers.nil?
      info.limit = (response.headers['X-RateLimit-Limit'] || 1).to_i
      info.remaining = (response.headers['X-RateLimit-Remaining'] || 1).to_i
      info.resets_at = Time.at((response.headers['X-RateLimit-Reset'] || Time.now).to_i)
      info.resets_in = [(info.resets_at - Time.now).to_i, 0].max
    end

    info
  end
end

- (Time) resets_at=(value) (writeonly)

Returns Indicates when rate limit resets

Returns:

  • (Time)

    Indicates when rate limit resets



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/octokit/rate_limit.rb', line 15

class RateLimit < Struct.new(:limit, :remaining, :resets_at, :resets_in)

  # Get rate limit info from HTTP response
  #
  # @param response [#headers] HTTP response
  # @return [RateLimit]
  def self.from_response(response)
    info = new
    if response && !response.headers.nil?
      info.limit = (response.headers['X-RateLimit-Limit'] || 1).to_i
      info.remaining = (response.headers['X-RateLimit-Remaining'] || 1).to_i
      info.resets_at = Time.at((response.headers['X-RateLimit-Reset'] || Time.now).to_i)
      info.resets_in = [(info.resets_at - Time.now).to_i, 0].max
    end

    info
  end
end

- (Fixnum) resets_in=(value) (writeonly)

Returns Number of seconds when rate limit resets

Returns:

  • (Fixnum)

    Number of seconds when rate limit resets



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/octokit/rate_limit.rb', line 15

class RateLimit < Struct.new(:limit, :remaining, :resets_at, :resets_in)

  # Get rate limit info from HTTP response
  #
  # @param response [#headers] HTTP response
  # @return [RateLimit]
  def self.from_response(response)
    info = new
    if response && !response.headers.nil?
      info.limit = (response.headers['X-RateLimit-Limit'] || 1).to_i
      info.remaining = (response.headers['X-RateLimit-Remaining'] || 1).to_i
      info.resets_at = Time.at((response.headers['X-RateLimit-Reset'] || Time.now).to_i)
      info.resets_in = [(info.resets_at - Time.now).to_i, 0].max
    end

    info
  end
end

Class Method Details

+ (Octokit::Client) client

API client based on configured options Configurable

Returns:



15
16
17
18
# File 'lib/octokit.rb', line 15

def client
  return @client if defined?(@client) && @client.same_options?(options)
  @client = Octokit::Client.new(options)
end

+ (Octokit::EnterpriseAdminClient) enterprise_admin_client

EnterpriseAdminClient client based on configured options Configurable

Returns:



23
24
25
26
# File 'lib/octokit.rb', line 23

def enterprise_admin_client
  return @enterprise_admin_client if defined?(@enterprise_admin_client) && @enterprise_admin_client.same_options?(options)
  @enterprise_admin_client = Octokit::EnterpriseAdminClient.new(options)
end

+ (Octokit::EnterpriseManagementConsoleClient) enterprise_management_console_client

EnterpriseManagementConsoleClient client based on configured options Configurable

Returns:



31
32
33
34
# File 'lib/octokit.rb', line 31

def enterprise_management_console_client
  return @enterprise_management_console_client if defined?(@enterprise_management_console_client) && @enterprise_management_console_client.same_options?(options)
  @enterprise_management_console_client = Octokit::EnterpriseManagementConsoleClient.new(options)
end