octokit 2.1.1 → 2.1.2
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.
- checksums.yaml +7 -0
- data/README.md +31 -0
- data/lib/octokit/client/authorizations.rb +0 -1
- data/lib/octokit/client/commit_comments.rb +0 -1
- data/lib/octokit/client/commits.rb +1 -2
- data/lib/octokit/client/contents.rb +0 -1
- data/lib/octokit/client/downloads.rb +1 -0
- data/lib/octokit/client/emojis.rb +1 -0
- data/lib/octokit/client/events.rb +1 -1
- data/lib/octokit/client/gists.rb +0 -1
- data/lib/octokit/client/gitignore.rb +1 -2
- data/lib/octokit/client/labels.rb +0 -1
- data/lib/octokit/client/legacy_search.rb +0 -1
- data/lib/octokit/client/markdown.rb +0 -1
- data/lib/octokit/client/milestones.rb +0 -1
- data/lib/octokit/client/notifications.rb +0 -1
- data/lib/octokit/client/objects.rb +1 -0
- data/lib/octokit/client/organizations.rb +12 -11
- data/lib/octokit/client/pub_sub_hubbub.rb +3 -2
- data/lib/octokit/client/pull_requests.rb +1 -0
- data/lib/octokit/client/repositories.rb +0 -2
- data/lib/octokit/client/service_status.rb +0 -1
- data/lib/octokit/client/stats.rb +68 -69
- data/lib/octokit/client/users.rb +13 -6
- data/lib/octokit/error.rb +68 -33
- data/lib/octokit/version.rb +1 -1
- data/octokit.gemspec +1 -1
- data/spec/cassettes/Octokit_Client_Users/_starred_/checks_if_the_authenticated_user_has_starred_a_repository_deprecated_.json +1 -0
- data/spec/octokit/client/pub_sub_hubbub_spec.rb +12 -0
- data/spec/octokit/client/users_spec.rb +4 -0
- data/spec/octokit/client_spec.rb +39 -0
- metadata +11 -15
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA1:
         | 
| 3 | 
            +
              metadata.gz: 45f3f29fd88cdbbacdaee29a925b50d458d2557b
         | 
| 4 | 
            +
              data.tar.gz: 3ddfd44d5073cefef0c7944568cd06f5ece20db3
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: 8350be3c9efbd2eb298d4322f37986f2a4c7edb4e4a84e66995f501cae68335fb2d826aaaea87eb78268722d60b23f1f77fcc01f786961c91639e0ddc0989f1e
         | 
| 7 | 
            +
              data.tar.gz: d02327fef9bdad88627bf29a49b130e9c865b4661cc1704582aef7f692565b9886ebd60f97bc6b4a9729eddb02aae16a91054cde76e3430fececee80a63bd982
         | 
    
        data/README.md
    CHANGED
    
    | @@ -190,6 +190,37 @@ user = client.users 'defunkt' | |
| 190 190 | 
             
            [access scopes]: http://developer.github.com/v3/oauth/#scopes
         | 
| 191 191 | 
             
            [app-creds]: http://developer.github.com/v3/#unauthenticated-rate-limited-requests
         | 
| 192 192 |  | 
| 193 | 
            +
            ## Pagination
         | 
| 194 | 
            +
             | 
| 195 | 
            +
            Many GitHub API resources are [paginated][]. While you may be tempted to start
         | 
| 196 | 
            +
            adding `:page` parameters to your calls, the API returns links to the next,
         | 
| 197 | 
            +
            previous, and last pages for you in the `Link` response header as [Hypermedia
         | 
| 198 | 
            +
            link relations](docs/hypermedia.md).
         | 
| 199 | 
            +
             | 
| 200 | 
            +
            ```ruby
         | 
| 201 | 
            +
            issues = Octokit.issues 'rails/rails', :per_page => 100
         | 
| 202 | 
            +
            issues.concat Octokit.last_response.rels[:next].get.data
         | 
| 203 | 
            +
            ```
         | 
| 204 | 
            +
             | 
| 205 | 
            +
            ### Auto pagination
         | 
| 206 | 
            +
             | 
| 207 | 
            +
            For smallish resource lists, Octokit provides auto pagination. When this is
         | 
| 208 | 
            +
            enabled, calls for paginated resources will fetch and concatenate the results
         | 
| 209 | 
            +
            from every page into a single array:
         | 
| 210 | 
            +
             | 
| 211 | 
            +
            ```ruby
         | 
| 212 | 
            +
            Octokit.auto_paginate = true
         | 
| 213 | 
            +
            issues = Octokit.issues 'rails/rails'
         | 
| 214 | 
            +
            issues.length
         | 
| 215 | 
            +
             | 
| 216 | 
            +
            # => 702
         | 
| 217 | 
            +
            ```
         | 
| 218 | 
            +
             | 
| 219 | 
            +
            **Note:** While Octokit auto pagination will set the page size to the maximum
         | 
| 220 | 
            +
            `100`, and seek to not overstep your rate limit, you probably want to use a
         | 
| 221 | 
            +
            custom pattern for traversing large lists.
         | 
| 222 | 
            +
             | 
| 223 | 
            +
            [paginated]: http://developer.github.com/v3/#pagination
         | 
| 193 224 |  | 
| 194 225 | 
             
            ## Configuration and defaults
         | 
| 195 226 |  | 
| @@ -31,7 +31,7 @@ module Octokit | |
| 31 31 | 
             
                  alias :list_commits :commits
         | 
| 32 32 |  | 
| 33 33 | 
             
                  # Get commits after a specified date
         | 
| 34 | 
            -
             | 
| 34 | 
            +
                  #
         | 
| 35 35 | 
             
                  # @overload commits_since(repo, date, options = {})
         | 
| 36 36 | 
             
                  #   @param repo [String, Hash, Repository] A GitHub repository
         | 
| 37 37 | 
             
                  #   @param date [String] Date on which we want to compare
         | 
| @@ -311,7 +311,6 @@ module Octokit | |
| 311 311 | 
             
                  rescue ArgumentError
         | 
| 312 312 | 
             
                    raise ArgumentError, "#{date} is not a valid date"
         | 
| 313 313 | 
             
                  end
         | 
| 314 | 
            -
             | 
| 315 314 | 
             
                end
         | 
| 316 315 | 
             
              end
         | 
| 317 316 | 
             
            end
         | 
| @@ -6,6 +6,7 @@ module Octokit | |
| 6 6 | 
             
                # @see http://developer.github.com/v3/activity/events/
         | 
| 7 7 | 
             
                # @see http://developer.github.com/v3/issues/events/
         | 
| 8 8 | 
             
                module Events
         | 
| 9 | 
            +
             | 
| 9 10 | 
             
                  # List all public events for GitHub
         | 
| 10 11 | 
             
                  #
         | 
| 11 12 | 
             
                  # @return [Array<Sawyer::Resource>] A list of all public events from GitHub
         | 
| @@ -141,7 +142,6 @@ module Octokit | |
| 141 142 | 
             
                  def issue_event(repo, number, options = {})
         | 
| 142 143 | 
             
                    paginate "repos/#{Repository.new(repo)}/issues/events/#{number}", options
         | 
| 143 144 | 
             
                  end
         | 
| 144 | 
            -
             | 
| 145 145 | 
             
                end
         | 
| 146 146 | 
             
              end
         | 
| 147 147 | 
             
            end
         | 
    
        data/lib/octokit/client/gists.rb
    CHANGED
    
    
| @@ -27,7 +27,7 @@ module Octokit | |
| 27 27 | 
             
                  # the raw contents.
         | 
| 28 28 | 
             
                  #
         | 
| 29 29 | 
             
                  # @param template_name [String] Name of the template. Template names are
         | 
| 30 | 
            -
                  #   case sensitive, make sure to use a valid name from the | 
| 30 | 
            +
                  #   case sensitive, make sure to use a valid name from the
         | 
| 31 31 | 
             
                  #   .gitignore_templates list.
         | 
| 32 32 | 
             
                  #
         | 
| 33 33 | 
             
                  # @see http://developer.github.com/v3/gitignore/#get-a-single-template
         | 
| @@ -39,7 +39,6 @@ module Octokit | |
| 39 39 | 
             
                  def gitignore_template(template_name, options = {})
         | 
| 40 40 | 
             
                    get "gitignore/templates/#{template_name}", options
         | 
| 41 41 | 
             
                  end
         | 
| 42 | 
            -
             | 
| 43 42 | 
             
                end
         | 
| 44 43 | 
             
              end
         | 
| 45 44 | 
             
            end
         | 
| @@ -5,6 +5,7 @@ module Octokit | |
| 5 5 | 
             
                #
         | 
| 6 6 | 
             
                # @see http://developer.github.com/v3/git/
         | 
| 7 7 | 
             
                module Objects
         | 
| 8 | 
            +
             | 
| 8 9 | 
             
                  # Get a single tree, fetching information about its root-level objects
         | 
| 9 10 | 
             
                  #
         | 
| 10 11 | 
             
                  # Pass <tt>:recursive => true</tt> in <tt>options</tt> to fetch information about all of the tree's objects, including those in subdirectories.
         | 
| @@ -5,6 +5,7 @@ module Octokit | |
| 5 5 | 
             
                #
         | 
| 6 6 | 
             
                # @see http://developer.github.com/v3/orgs/
         | 
| 7 7 | 
             
                module Organizations
         | 
| 8 | 
            +
             | 
| 8 9 | 
             
                  # Get an organization
         | 
| 9 10 | 
             
                  #
         | 
| 10 11 | 
             
                  # @param org [String] Organization GitHub username.
         | 
| @@ -57,7 +58,7 @@ module Octokit | |
| 57 58 | 
             
                  #
         | 
| 58 59 | 
             
                  # Calling this method on a `@client` will return that users organizations.
         | 
| 59 60 | 
             
                  # Private organizations are included only if the `@client` is authenticated.
         | 
| 60 | 
            -
                  # | 
| 61 | 
            +
                  #
         | 
| 61 62 | 
             
                  # @param user [String] Username of the user to get list of organizations.
         | 
| 62 63 | 
             
                  # @return [Array<Sawyer::Resource>] Array of hashes representing organizations.
         | 
| 63 64 | 
             
                  # @see http://developer.github.com/v3/orgs/#list-user-organizations
         | 
| @@ -193,17 +194,17 @@ module Octokit | |
| 193 194 |  | 
| 194 195 | 
             
                  # Create team
         | 
| 195 196 | 
             
                  #
         | 
| 196 | 
            -
                  # Requires authenticated organization owner. | 
| 197 | 
            +
                  # Requires authenticated organization owner.
         | 
| 197 198 | 
             
                  #
         | 
| 198 199 | 
             
                  # @param org [String] Organization GitHub username.
         | 
| 199 200 | 
             
                  # @option options [String] :name Team name.
         | 
| 200 201 | 
             
                  # @option options [Array<String>] :repo_names Repositories for the team.
         | 
| 201 202 | 
             
                  # @option options [String, optional] :permission ('pull') Permissions the
         | 
| 202 | 
            -
                  #   team has for team repositories. | 
| 203 | 
            +
                  #   team has for team repositories.
         | 
| 203 204 | 
             
                  #
         | 
| 204 | 
            -
                  #   `pull` - team members can pull, but not push to or administer these repositories. | 
| 205 | 
            -
                  #   `push` - team members can pull and push, but not administer these repositories. | 
| 206 | 
            -
                  #   `admin` - team members can pull, push and administer these repositories. | 
| 205 | 
            +
                  #   `pull` - team members can pull, but not push to or administer these repositories.
         | 
| 206 | 
            +
                  #   `push` - team members can pull and push, but not administer these repositories.
         | 
| 207 | 
            +
                  #   `admin` - team members can pull, push and administer these repositories.
         | 
| 207 208 | 
             
                  # @return [Sawyer::Resource] Hash representing new team.
         | 
| 208 209 | 
             
                  # @see http://developer.github.com/v3/orgs/teams/#create-team
         | 
| 209 210 | 
             
                  # @example
         | 
| @@ -235,10 +236,10 @@ module Octokit | |
| 235 236 | 
             
                  #
         | 
| 236 237 | 
             
                  # @param team_id [Integer] Team id.
         | 
| 237 238 | 
             
                  # @option options [String] :name Team name.
         | 
| 238 | 
            -
                  # @option options [String] :permission Permissions the team has for team repositories. | 
| 239 | 
            +
                  # @option options [String] :permission Permissions the team has for team repositories.
         | 
| 239 240 | 
             
                  #
         | 
| 240 | 
            -
                  #   `pull` - team members can pull, but not push to or administer these repositories. | 
| 241 | 
            -
                  #   `push` - team members can pull and push, but not administer these repositories. | 
| 241 | 
            +
                  #   `pull` - team members can pull, but not push to or administer these repositories.
         | 
| 242 | 
            +
                  #   `push` - team members can pull and push, but not administer these repositories.
         | 
| 242 243 | 
             
                  #   `admin` - team members can pull, push and administer these repositories.
         | 
| 243 244 | 
             
                  # @return [Sawyer::Resource] Hash representing updated team.
         | 
| 244 245 | 
             
                  # @see http://developer.github.com/v3/orgs/teams/#edit-team
         | 
| @@ -279,7 +280,7 @@ module Octokit | |
| 279 280 |  | 
| 280 281 | 
             
                  # Add team member
         | 
| 281 282 | 
             
                  #
         | 
| 282 | 
            -
                  # Requires authenticated organization owner or member with team | 
| 283 | 
            +
                  # Requires authenticated organization owner or member with team
         | 
| 283 284 | 
             
                  # `admin` permission.
         | 
| 284 285 | 
             
                  #
         | 
| 285 286 | 
             
                  # @param team_id [Integer] Team id.
         | 
| @@ -297,7 +298,7 @@ module Octokit | |
| 297 298 |  | 
| 298 299 | 
             
                  # Remove team member
         | 
| 299 300 | 
             
                  #
         | 
| 300 | 
            -
                  # Requires authenticated organization owner or member with team | 
| 301 | 
            +
                  # Requires authenticated organization owner or member with team
         | 
| 301 302 | 
             
                  # `admin` permission.
         | 
| 302 303 | 
             
                  #
         | 
| 303 304 | 
             
                  # @param team_id [Integer] Team id.
         | 
| @@ -5,6 +5,7 @@ module Octokit | |
| 5 5 | 
             
                #
         | 
| 6 6 | 
             
                # @see http://developer.github.com/v3/repos/hooks/#pubsubhubbub
         | 
| 7 7 | 
             
                module PubSubHubbub
         | 
| 8 | 
            +
             | 
| 8 9 | 
             
                  # Subscribe to a pubsub topic
         | 
| 9 10 | 
             
                  #
         | 
| 10 11 | 
             
                  # @param topic [String] A recoginized and supported pubsub topic
         | 
| @@ -55,7 +56,7 @@ module Octokit | |
| 55 56 | 
             
                  #    client.subscribe_service_hook('joshk/device_imapable', 'Travis', { :token => "test", :domain => "domain", :user => "user" })
         | 
| 56 57 | 
             
                  def subscribe_service_hook(repo, service_name, service_arguments = {})
         | 
| 57 58 | 
             
                    topic = "#{Octokit.web_endpoint}#{Repository.new(repo)}/events/push"
         | 
| 58 | 
            -
                    callback = "github://#{service_name}?#{service_arguments.collect{ |k,v| [ k,v ].join("=") }.join("&") }"
         | 
| 59 | 
            +
                    callback = "github://#{service_name}?#{service_arguments.collect{ |k,v| [ k,v ].map{ |p| URI.encode_www_form_component(p) }.join("=") }.join("&") }"
         | 
| 59 60 | 
             
                    subscribe(topic, callback)
         | 
| 60 61 | 
             
                  end
         | 
| 61 62 |  | 
| @@ -76,7 +77,7 @@ module Octokit | |
| 76 77 | 
             
                  private
         | 
| 77 78 |  | 
| 78 79 | 
             
                  def pub_sub_hubbub_request(options = {})
         | 
| 79 | 
            -
                    # This method is janky, bypass normal stack so we don'tl | 
| 80 | 
            +
                    # This method is janky, bypass normal stack so we don'tl
         | 
| 80 81 | 
             
                    # serialize request as JSON
         | 
| 81 82 | 
             
                    conn = Faraday.new(:url => @api_endpoint) do |http|
         | 
| 82 83 | 
             
                      http.headers[:user_agent] = user_agent
         | 
| @@ -6,7 +6,6 @@ module Octokit | |
| 6 6 | 
             
                # @see http://developer.github.com/v3/repos/
         | 
| 7 7 | 
             
                module Repositories
         | 
| 8 8 |  | 
| 9 | 
            -
             | 
| 10 9 | 
             
                  # Check if a repository exists
         | 
| 11 10 | 
             
                  #
         | 
| 12 11 | 
             
                  # @see http://developer.github.com/v3/repos/#get
         | 
| @@ -647,7 +646,6 @@ module Octokit | |
| 647 646 | 
             
                  def delete_subscription(repo, options = {})
         | 
| 648 647 | 
             
                    boolean_from_response :delete, "repos/#{Repository.new repo}/subscription", options
         | 
| 649 648 | 
             
                  end
         | 
| 650 | 
            -
             | 
| 651 649 | 
             
                end
         | 
| 652 650 | 
             
              end
         | 
| 653 651 | 
             
            end
         | 
    
        data/lib/octokit/client/stats.rb
    CHANGED
    
    | @@ -6,82 +6,81 @@ module Octokit | |
| 6 6 | 
             
                # @see http://developer.github.com/v3/repos/statistics/
         | 
| 7 7 | 
             
                module Stats
         | 
| 8 8 |  | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 9 | 
            +
                  # Get contributors list with additions, deletions, and commit counts
         | 
| 10 | 
            +
                  #
         | 
| 11 | 
            +
                  # @param repo [String, Hash, Repository] A GitHub repository
         | 
| 12 | 
            +
                  # @return [Array<Sawyer::Resource>] Array of contributor stats
         | 
| 13 | 
            +
                  # @see http://developer.github.com/v3/repos/statistics/#get-contributors-list-with-additions-deletions-and-commit-counts
         | 
| 14 | 
            +
                  # @example Get contributor stats for octokit
         | 
| 15 | 
            +
                  #   @client.contributors_stats('octokit/octokit.rb')
         | 
| 16 | 
            +
                  def contributors_stats(repo, options = {})
         | 
| 17 | 
            +
                    get_stats(repo, "contributors", options)
         | 
| 18 | 
            +
                  end
         | 
| 19 | 
            +
                  alias :contributor_stats :contributors_stats
         | 
| 20 20 |  | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 21 | 
            +
                  # Get the last year of commit activity data
         | 
| 22 | 
            +
                  #
         | 
| 23 | 
            +
                  # @param repo [String, Hash, Repository] A GitHub repository
         | 
| 24 | 
            +
                  # @return [Array<Sawyer::Resource>] The last year of commit activity grouped by
         | 
| 25 | 
            +
                  #   week. The days array is a group of commits per day, starting on Sunday.
         | 
| 26 | 
            +
                  # @see http://developer.github.com/v3/repos/statistics/#get-the-last-year-of-commit-activity-data
         | 
| 27 | 
            +
                  # @example Get commit activity for octokit
         | 
| 28 | 
            +
                  #   @client.commit_activity_stats('octokit/octokit.rb')
         | 
| 29 | 
            +
                  def commit_activity_stats(repo, options = {})
         | 
| 30 | 
            +
                    get_stats(repo, "commit_activity", options)
         | 
| 31 | 
            +
                  end
         | 
| 32 32 |  | 
| 33 | 
            -
             | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 33 | 
            +
                  # Get the number of additions and deletions per week
         | 
| 34 | 
            +
                  #
         | 
| 35 | 
            +
                  # @param repo [String, Hash, Repository] A GitHub repository
         | 
| 36 | 
            +
                  # @return [Array<Sawyer::Resource>] Weekly aggregate of the number of additions
         | 
| 37 | 
            +
                  #   and deletions pushed to a repository.
         | 
| 38 | 
            +
                  # @see http://developer.github.com/v3/repos/statistics/#get-the-number-of-additions-and-deletions-per-week
         | 
| 39 | 
            +
                  # @example Get code frequency stats for octokit
         | 
| 40 | 
            +
                  #   @client.code_frequency_stats('octokit/octokit.rb')
         | 
| 41 | 
            +
                  def code_frequency_stats(repo, options = {})
         | 
| 42 | 
            +
                    get_stats(repo, "code_frequency", options)
         | 
| 43 | 
            +
                  end
         | 
| 44 44 |  | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
             | 
| 50 | 
            -
             | 
| 51 | 
            -
             | 
| 52 | 
            -
             | 
| 53 | 
            -
             | 
| 54 | 
            -
             | 
| 55 | 
            -
             | 
| 56 | 
            -
             | 
| 57 | 
            -
             | 
| 58 | 
            -
             | 
| 59 | 
            -
                # Get the number of commits per hour in each day
         | 
| 60 | 
            -
                #
         | 
| 61 | 
            -
                # @param repo [String, Hash, Repository] A GitHub repository
         | 
| 62 | 
            -
                # @return [Array<Array>] Arrays containing the day number, hour number, and
         | 
| 63 | 
            -
                #   number of commits 
         | 
| 64 | 
            -
                # @see http://developer.github.com/v3/repos/statistics/#get-the-number-of-commits-per-hour-in-each-day
         | 
| 65 | 
            -
                # @example Get octokit punch card
         | 
| 66 | 
            -
                #   @octokit.punch_card_stats
         | 
| 67 | 
            -
                def punch_card_stats(repo, options = {})
         | 
| 68 | 
            -
                  get_stats(repo, "punch_card", options)
         | 
| 69 | 
            -
                end
         | 
| 70 | 
            -
                alias :punch_card :punch_card_stats
         | 
| 45 | 
            +
                  # Get the weekly commit count for the repo owner and everyone else
         | 
| 46 | 
            +
                  #
         | 
| 47 | 
            +
                  # @param repo [String, Hash, Repository] A GitHub repository
         | 
| 48 | 
            +
                  # @return [Sawyer::Resource] Total commit counts for the owner and total commit
         | 
| 49 | 
            +
                  #   counts in all. all is everyone combined, including the owner in the last
         | 
| 50 | 
            +
                  #   52 weeks. If you’d like to get the commit counts for non-owners, you can
         | 
| 51 | 
            +
                  #   subtract all from owner.
         | 
| 52 | 
            +
                  # @see http://developer.github.com/v3/repos/statistics/#get-the-weekly-commit-count-for-the-repo-owner-and-everyone-else
         | 
| 53 | 
            +
                  # @example Get weekly commit counts for octokit
         | 
| 54 | 
            +
                  #   @client.participation_stats("octokit/octokit.rb")
         | 
| 55 | 
            +
                  def participation_stats(repo, options = {})
         | 
| 56 | 
            +
                    get_stats(repo, "participation", options)
         | 
| 57 | 
            +
                  end
         | 
| 71 58 |  | 
| 72 | 
            -
             | 
| 59 | 
            +
                  # Get the number of commits per hour in each day
         | 
| 60 | 
            +
                  #
         | 
| 61 | 
            +
                  # @param repo [String, Hash, Repository] A GitHub repository
         | 
| 62 | 
            +
                  # @return [Array<Array>] Arrays containing the day number, hour number, and
         | 
| 63 | 
            +
                  #   number of commits
         | 
| 64 | 
            +
                  # @see http://developer.github.com/v3/repos/statistics/#get-the-number-of-commits-per-hour-in-each-day
         | 
| 65 | 
            +
                  # @example Get octokit punch card
         | 
| 66 | 
            +
                  #   @octokit.punch_card_stats
         | 
| 67 | 
            +
                  def punch_card_stats(repo, options = {})
         | 
| 68 | 
            +
                    get_stats(repo, "punch_card", options)
         | 
| 69 | 
            +
                  end
         | 
| 70 | 
            +
                  alias :punch_card :punch_card_stats
         | 
| 73 71 |  | 
| 74 | 
            -
             | 
| 75 | 
            -
                #
         | 
| 76 | 
            -
                # @param repo [String, Hash, Repository] A GitHub repository
         | 
| 77 | 
            -
                # @param metric [String] The metrics you are looking for
         | 
| 78 | 
            -
                # @return [Array<Sawyer::Resource>] Magical unicorn stats
         | 
| 79 | 
            -
                def get_stats(repo, metric, options = {})
         | 
| 80 | 
            -
                  data = get("repos/#{Repository.new repo}/stats/#{metric}", options)
         | 
| 72 | 
            +
                  private
         | 
| 81 73 |  | 
| 82 | 
            -
                   | 
| 83 | 
            -
             | 
| 74 | 
            +
                  # @private Get stats for a repository
         | 
| 75 | 
            +
                  #
         | 
| 76 | 
            +
                  # @param repo [String, Hash, Repository] A GitHub repository
         | 
| 77 | 
            +
                  # @param metric [String] The metrics you are looking for
         | 
| 78 | 
            +
                  # @return [Array<Sawyer::Resource>] Magical unicorn stats
         | 
| 79 | 
            +
                  def get_stats(repo, metric, options = {})
         | 
| 80 | 
            +
                    data = get("repos/#{Repository.new repo}/stats/#{metric}", options)
         | 
| 84 81 |  | 
| 82 | 
            +
                    last_response.status == 202 ? nil : data
         | 
| 83 | 
            +
                  end
         | 
| 85 84 | 
             
                end
         | 
| 86 85 | 
             
              end
         | 
| 87 86 | 
             
            end
         | 
    
        data/lib/octokit/client/users.rb
    CHANGED
    
    | @@ -110,7 +110,7 @@ module Octokit | |
| 110 110 | 
             
                    get "users/#{user}/following", options
         | 
| 111 111 | 
             
                  end
         | 
| 112 112 |  | 
| 113 | 
            -
                  # Check if you are following a user. Alternatively, check if a given user | 
| 113 | 
            +
                  # Check if you are following a user. Alternatively, check if a given user
         | 
| 114 114 | 
             
                  # is following a target user.
         | 
| 115 115 | 
             
                  #
         | 
| 116 116 | 
             
                  # Requries an authenticated client.
         | 
| @@ -182,14 +182,21 @@ module Octokit | |
| 182 182 | 
             
                  #
         | 
| 183 183 | 
             
                  # Requires authenticated client.
         | 
| 184 184 | 
             
                  #
         | 
| 185 | 
            -
                  # @param  | 
| 186 | 
            -
                  # @param repo [String] Name of the repository.
         | 
| 185 | 
            +
                  # @param args [String, Hash, Repository] A GitHub repository
         | 
| 187 186 | 
             
                  # @return [Boolean] True if you are following the repo, false otherwise.
         | 
| 188 187 | 
             
                  # @see http://developer.github.com/v3/repos/starring/#check-if-you-are-starring-a-repository
         | 
| 189 188 | 
             
                  # @example
         | 
| 190 | 
            -
                  #   @client.starred?('pengwynn | 
| 191 | 
            -
                   | 
| 192 | 
            -
             | 
| 189 | 
            +
                  #   @client.starred?('pengwynn/octokit')
         | 
| 190 | 
            +
                  #   @client.starred?('pengwynn', 'octokit') # deprecated
         | 
| 191 | 
            +
                  def starred?(*args)
         | 
| 192 | 
            +
                    arguments = Octokit::Arguments.new(args)
         | 
| 193 | 
            +
                    options = arguments.options
         | 
| 194 | 
            +
                    name = name_with_owner = arguments.shift
         | 
| 195 | 
            +
                    if repo = arguments.shift
         | 
| 196 | 
            +
                      name_with_owner = "#{name}/#{repo}"
         | 
| 197 | 
            +
                      warn "`.starred?('#{name}', '#{repo}')` is deprecated. Please use `.starred?('#{name_with_owner}')` instead."
         | 
| 198 | 
            +
                    end
         | 
| 199 | 
            +
                    boolean_from_response :get, "user/starred/#{Repository.new name_with_owner}", options
         | 
| 193 200 | 
             
                  end
         | 
| 194 201 |  | 
| 195 202 | 
             
                  # Get a public key.
         | 
    
        data/lib/octokit/error.rb
    CHANGED
    
    | @@ -13,28 +13,19 @@ module Octokit | |
| 13 13 | 
             
                  headers = response[:response_headers]
         | 
| 14 14 |  | 
| 15 15 | 
             
                  if klass =  case status
         | 
| 16 | 
            -
                              when 400 | 
| 17 | 
            -
                              when 401
         | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
                              when  | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 29 | 
            -
                                  Octokit::Forbidden
         | 
| 30 | 
            -
                                end
         | 
| 31 | 
            -
                              when 404 then Octokit::NotFound
         | 
| 32 | 
            -
                              when 406 then Octokit::NotAcceptable
         | 
| 33 | 
            -
                              when 422 then Octokit::UnprocessableEntity
         | 
| 34 | 
            -
                              when 500 then Octokit::InternalServerError
         | 
| 35 | 
            -
                              when 501 then Octokit::NotImplemented
         | 
| 36 | 
            -
                              when 502 then Octokit::BadGateway
         | 
| 37 | 
            -
                              when 503 then Octokit::ServiceUnavailable
         | 
| 16 | 
            +
                              when 400      then Octokit::BadRequest
         | 
| 17 | 
            +
                              when 401      then error_for_401(headers)
         | 
| 18 | 
            +
                              when 403      then error_for_403(body)
         | 
| 19 | 
            +
                              when 404      then Octokit::NotFound
         | 
| 20 | 
            +
                              when 406      then Octokit::NotAcceptable
         | 
| 21 | 
            +
                              when 415      then Octokit::UnsupportedMediaType
         | 
| 22 | 
            +
                              when 422      then Octokit::UnprocessableEntity
         | 
| 23 | 
            +
                              when 400..499 then Octokit::ClientError
         | 
| 24 | 
            +
                              when 500      then Octokit::InternalServerError
         | 
| 25 | 
            +
                              when 501      then Octokit::NotImplemented
         | 
| 26 | 
            +
                              when 502      then Octokit::BadGateway
         | 
| 27 | 
            +
                              when 503      then Octokit::ServiceUnavailable
         | 
| 28 | 
            +
                              when 500..599 then Octokit::ServerError
         | 
| 38 29 | 
             
                              end
         | 
| 39 30 | 
             
                    klass.new(response)
         | 
| 40 31 | 
             
                  end
         | 
| @@ -45,6 +36,35 @@ module Octokit | |
| 45 36 | 
             
                  super(build_error_message)
         | 
| 46 37 | 
             
                end
         | 
| 47 38 |  | 
| 39 | 
            +
                # Documentation URL returned by the API for some errors
         | 
| 40 | 
            +
                #
         | 
| 41 | 
            +
                # @return [String]
         | 
| 42 | 
            +
                def documentation_url
         | 
| 43 | 
            +
                  data[:documentation_url] if data
         | 
| 44 | 
            +
                end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                # Returns most appropriate error for 401 HTTP status code
         | 
| 47 | 
            +
                # @private
         | 
| 48 | 
            +
                def self.error_for_401(headers)
         | 
| 49 | 
            +
                  if Octokit::OneTimePasswordRequired.required_header(headers)
         | 
| 50 | 
            +
                    Octokit::OneTimePasswordRequired
         | 
| 51 | 
            +
                  else
         | 
| 52 | 
            +
                    Octokit::Unauthorized
         | 
| 53 | 
            +
                  end
         | 
| 54 | 
            +
                end
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                # Returns most appropriate error for 403 HTTP status code
         | 
| 57 | 
            +
                # @private
         | 
| 58 | 
            +
                def self.error_for_403(body)
         | 
| 59 | 
            +
                  if body =~ /rate limit exceeded/i
         | 
| 60 | 
            +
                    Octokit::TooManyRequests
         | 
| 61 | 
            +
                  elsif body =~ /login attempts exceeded/i
         | 
| 62 | 
            +
                    Octokit::TooManyLoginAttempts
         | 
| 63 | 
            +
                  else
         | 
| 64 | 
            +
                    Octokit::Forbidden
         | 
| 65 | 
            +
                  end
         | 
| 66 | 
            +
                end
         | 
| 67 | 
            +
             | 
| 48 68 | 
             
                private
         | 
| 49 69 |  | 
| 50 70 | 
             
                def data
         | 
| @@ -96,32 +116,41 @@ module Octokit | |
| 96 116 | 
             
                  message << "#{response_message}" unless response_message.nil?
         | 
| 97 117 | 
             
                  message << "#{response_error}" unless response_error.nil?
         | 
| 98 118 | 
             
                  message << "#{response_error_summary}" unless response_error_summary.nil?
         | 
| 119 | 
            +
                  message << " // See: #{documentation_url}" unless documentation_url.nil?
         | 
| 99 120 | 
             
                  message
         | 
| 100 121 | 
             
                end
         | 
| 101 122 | 
             
              end
         | 
| 102 123 |  | 
| 124 | 
            +
              # Raised on errors in the 400-499 range
         | 
| 125 | 
            +
              class ClientError < Error; end
         | 
| 126 | 
            +
             | 
| 103 127 | 
             
              # Raised when GitHub returns a 400 HTTP status code
         | 
| 104 | 
            -
              class BadRequest <  | 
| 128 | 
            +
              class BadRequest < ClientError; end
         | 
| 105 129 |  | 
| 106 130 | 
             
              # Raised when GitHub returns a 401 HTTP status code
         | 
| 107 | 
            -
              class Unauthorized <  | 
| 131 | 
            +
              class Unauthorized < ClientError; end
         | 
| 108 132 |  | 
| 109 133 | 
             
              # Raised when GitHub returns a 401 HTTP status code
         | 
| 110 134 | 
             
              # and headers include "X-GitHub-OTP"
         | 
| 111 | 
            -
              class OneTimePasswordRequired <  | 
| 135 | 
            +
              class OneTimePasswordRequired < ClientError
         | 
| 136 | 
            +
                #@private
         | 
| 112 137 | 
             
                HEADER = /required; (?<delivery>\w+)/i
         | 
| 113 138 |  | 
| 139 | 
            +
                #@private
         | 
| 114 140 | 
             
                def self.required_header(headers)
         | 
| 115 141 | 
             
                  HEADER.match headers['X-GitHub-OTP'].to_s
         | 
| 116 142 | 
             
                end
         | 
| 117 143 |  | 
| 144 | 
            +
                # Delivery method for the user's OTP
         | 
| 145 | 
            +
                #
         | 
| 146 | 
            +
                # @return [String]
         | 
| 118 147 | 
             
                def password_delivery
         | 
| 119 148 | 
             
                  @password_delivery ||= self.class.required_header(@response[:response_headers])[:delivery]
         | 
| 120 149 | 
             
                end
         | 
| 121 150 | 
             
              end
         | 
| 122 151 |  | 
| 123 152 | 
             
              # Raised when GitHub returns a 403 HTTP status code
         | 
| 124 | 
            -
              class Forbidden <  | 
| 153 | 
            +
              class Forbidden < ClientError; end
         | 
| 125 154 |  | 
| 126 155 | 
             
              # Raised when GitHub returns a 403 HTTP status code
         | 
| 127 156 | 
             
              # and body matches 'rate limit exceeded'
         | 
| @@ -132,23 +161,29 @@ module Octokit | |
| 132 161 | 
             
              class TooManyLoginAttempts < Forbidden; end
         | 
| 133 162 |  | 
| 134 163 | 
             
              # Raised when GitHub returns a 404 HTTP status code
         | 
| 135 | 
            -
              class NotFound <  | 
| 164 | 
            +
              class NotFound < ClientError; end
         | 
| 136 165 |  | 
| 137 166 | 
             
              # Raised when GitHub returns a 406 HTTP status code
         | 
| 138 | 
            -
              class NotAcceptable <  | 
| 167 | 
            +
              class NotAcceptable < ClientError; end
         | 
| 168 | 
            +
             | 
| 169 | 
            +
              # Raised when GitHub returns a 414 HTTP status code
         | 
| 170 | 
            +
              class UnsupportedMediaType < ClientError; end
         | 
| 139 171 |  | 
| 140 172 | 
             
              # Raised when GitHub returns a 422 HTTP status code
         | 
| 141 | 
            -
              class UnprocessableEntity <  | 
| 173 | 
            +
              class UnprocessableEntity < ClientError; end
         | 
| 174 | 
            +
             | 
| 175 | 
            +
              # Raised on errors in the 500-599 range
         | 
| 176 | 
            +
              class ServerError < Error; end
         | 
| 142 177 |  | 
| 143 178 | 
             
              # Raised when GitHub returns a 500 HTTP status code
         | 
| 144 | 
            -
              class InternalServerError <  | 
| 179 | 
            +
              class InternalServerError < ServerError; end
         | 
| 145 180 |  | 
| 146 181 | 
             
              # Raised when GitHub returns a 501 HTTP status code
         | 
| 147 | 
            -
              class NotImplemented <  | 
| 182 | 
            +
              class NotImplemented < ServerError; end
         | 
| 148 183 |  | 
| 149 184 | 
             
              # Raised when GitHub returns a 502 HTTP status code
         | 
| 150 | 
            -
              class BadGateway <  | 
| 185 | 
            +
              class BadGateway < ServerError; end
         | 
| 151 186 |  | 
| 152 187 | 
             
              # Raised when GitHub returns a 503 HTTP status code
         | 
| 153 | 
            -
              class ServiceUnavailable <  | 
| 188 | 
            +
              class ServiceUnavailable < ServerError; end
         | 
| 154 189 | 
             
            end
         | 
    
        data/lib/octokit/version.rb
    CHANGED
    
    
    
        data/octokit.gemspec
    CHANGED
    
    | @@ -5,7 +5,7 @@ require 'octokit/version' | |
| 5 5 |  | 
| 6 6 | 
             
            Gem::Specification.new do |spec|
         | 
| 7 7 | 
             
              spec.add_development_dependency 'bundler', '~> 1.0'
         | 
| 8 | 
            -
              spec.add_dependency 'sawyer', '~> 0. | 
| 8 | 
            +
              spec.add_dependency 'sawyer', '~> 0.5.0'
         | 
| 9 9 | 
             
              spec.authors = ["Wynn Netherland", "Erik Michaels-Ober", "Clint Shryock"]
         | 
| 10 10 | 
             
              spec.description = %q{Simple wrapper for the GitHub API}
         | 
| 11 11 | 
             
              spec.email = ['wynn.netherland@gmail.com', 'sferik@gmail.com', 'clint@ctshryock.com']
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            {"http_interactions":[{"request":{"method":"get","uri":"https://api.github.com/user/starred/sferik/rails_admin","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Accept":["application/vnd.github.beta+json"],"User-Agent":["Octokit Ruby Gem 2.1.1"],"Authorization":["token <<ACCESS_TOKEN>>"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"]}},"response":{"status":{"code":404,"message":"Not Found"},"headers":{"Server":["GitHub.com"],"Date":["Sun, 08 Sep 2013 15:01:28 GMT"],"Content-Type":["application/json; charset=utf-8"],"Transfer-Encoding":["chunked"],"Status":["404 Not Found"],"X-Ratelimit-Limit":["5000"],"X-Ratelimit-Remaining":["4995"],"X-Ratelimit-Reset":["1378654817"],"X-Oauth-Scopes":["user, public_repo, repo, gist"],"X-Accepted-Oauth-Scopes":["repo, public_repo, repo:status, repo:deployment, delete_repo, site_admin"],"X-Github-Media-Type":["github.beta; format=json"],"X-Content-Type-Options":["nosniff"],"Access-Control-Allow-Credentials":["true"],"Access-Control-Expose-Headers":["ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes"],"Access-Control-Allow-Origin":["*"],"X-Github-Request-Id":["fec2764a-0d89-4c63-8645-0c8f89a4294b"]},"body":{"encoding":"UTF-8","base64_string":"eyJtZXNzYWdlIjoiTm90IEZvdW5kIn0=\n"},"http_version":null},"recorded_at":"Sun, 08 Sep 2013 15:01:28 GMT"}],"recorded_with":"VCR 2.4.0"}
         | 
| @@ -60,6 +60,18 @@ describe Octokit::Client::PubSubHubbub do | |
| 60 60 | 
             
                  assert_requested :post, github_url("/hub"), :body => subscribe_request_body, :times => 1,
         | 
| 61 61 | 
             
                    :headers => {'Content-type' => 'application/x-www-form-urlencoded'}
         | 
| 62 62 | 
             
                end
         | 
| 63 | 
            +
                it "encodes URL parameters" do
         | 
| 64 | 
            +
                  irc_request_body = {
         | 
| 65 | 
            +
                    :"hub.callback" => 'github://irc?server=chat.freenode.org&room=%23myproject',
         | 
| 66 | 
            +
                    :"hub.mode" => 'subscribe',
         | 
| 67 | 
            +
                    :"hub.topic" => 'https://github.com/joshk/completeness-fu/events/push'
         | 
| 68 | 
            +
                  }
         | 
| 69 | 
            +
                  stub_post("/hub").
         | 
| 70 | 
            +
                    with(irc_request_body).
         | 
| 71 | 
            +
                    to_return(:status => 204)
         | 
| 72 | 
            +
                  expect(@client.subscribe_service_hook("joshk/completeness-fu", "irc", { :server => "chat.freenode.org", :room => "#myproject"})).to eql(true)
         | 
| 73 | 
            +
                  assert_requested :post, "https://api.github.com/hub", :body => irc_request_body, :times => 1
         | 
| 74 | 
            +
                end
         | 
| 63 75 | 
             
              end # .subscribe_service_hook
         | 
| 64 76 |  | 
| 65 77 | 
             
              describe "unsubscribe_service_hook", :vcr do
         | 
| @@ -93,6 +93,10 @@ describe Octokit::Client::Users do | |
| 93 93 |  | 
| 94 94 | 
             
              describe ".starred?", :vcr do
         | 
| 95 95 | 
             
                it "checks if the authenticated user has starred a repository" do
         | 
| 96 | 
            +
                  starred = @client.starred?("sferik/rails_admin")
         | 
| 97 | 
            +
                  assert_requested :get, github_url("/user/starred/sferik/rails_admin")
         | 
| 98 | 
            +
                end
         | 
| 99 | 
            +
                it "checks if the authenticated user has starred a repository (deprecated)" do
         | 
| 96 100 | 
             
                  starred = @client.starred?("sferik", "rails_admin")
         | 
| 97 101 | 
             
                  assert_requested :get, github_url("/user/starred/sferik/rails_admin")
         | 
| 98 102 | 
             
                end
         | 
    
        data/spec/octokit/client_spec.rb
    CHANGED
    
    | @@ -478,6 +478,45 @@ describe Octokit::Client do | |
| 478 478 | 
             
                    :body => {:message => "Maximum number of login attempts exceeded"}.to_json
         | 
| 479 479 | 
             
                  expect { Octokit.get('/user') }.to raise_error Octokit::TooManyLoginAttempts
         | 
| 480 480 | 
             
                end
         | 
| 481 | 
            +
             | 
| 482 | 
            +
                it "raises on unknown client errors" do
         | 
| 483 | 
            +
                  stub_get('/user').to_return \
         | 
| 484 | 
            +
                    :status => 418,
         | 
| 485 | 
            +
                    :headers => {
         | 
| 486 | 
            +
                      :content_type => "application/json",
         | 
| 487 | 
            +
                    },
         | 
| 488 | 
            +
                    :body => {:message => "I'm a teapot"}.to_json
         | 
| 489 | 
            +
                  expect { Octokit.get('/user') }.to raise_error Octokit::ClientError
         | 
| 490 | 
            +
                end
         | 
| 491 | 
            +
             | 
| 492 | 
            +
                it "raises on unknown server errors" do
         | 
| 493 | 
            +
                  stub_get('/user').to_return \
         | 
| 494 | 
            +
                    :status => 509,
         | 
| 495 | 
            +
                    :headers => {
         | 
| 496 | 
            +
                      :content_type => "application/json",
         | 
| 497 | 
            +
                    },
         | 
| 498 | 
            +
                    :body => {:message => "Bandwidth exceeded"}.to_json
         | 
| 499 | 
            +
                  expect { Octokit.get('/user') }.to raise_error Octokit::ServerError
         | 
| 500 | 
            +
                end
         | 
| 501 | 
            +
             | 
| 502 | 
            +
                it "handles documentation URLs in error messages" do
         | 
| 503 | 
            +
                  stub_get('/user').to_return \
         | 
| 504 | 
            +
                    :status => 415,
         | 
| 505 | 
            +
                    :headers => {
         | 
| 506 | 
            +
                      :content_type => "application/json",
         | 
| 507 | 
            +
                    },
         | 
| 508 | 
            +
                    :body => {
         | 
| 509 | 
            +
                      :message => "Unsupported Media Type",
         | 
| 510 | 
            +
                      :documentation_url => "http://developer.github.com/v3"
         | 
| 511 | 
            +
                    }.to_json
         | 
| 512 | 
            +
                  begin
         | 
| 513 | 
            +
                    Octokit.get('/user')
         | 
| 514 | 
            +
                  rescue Octokit::UnsupportedMediaType => e
         | 
| 515 | 
            +
                    msg = "415 - Unsupported Media Type"
         | 
| 516 | 
            +
                    expect(e.message).to include(msg)
         | 
| 517 | 
            +
                    expect(e.documentation_url).to eq("http://developer.github.com/v3")
         | 
| 518 | 
            +
                  end
         | 
| 519 | 
            +
                end
         | 
| 481 520 | 
             
              end
         | 
| 482 521 |  | 
| 483 522 | 
             
              it "knows the difference between unauthorized and needs OTP" do
         | 
    
        metadata
    CHANGED
    
    | @@ -1,8 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: octokit
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2.1. | 
| 5 | 
            -
              prerelease: 
         | 
| 4 | 
            +
              version: 2.1.2
         | 
| 6 5 | 
             
            platform: ruby
         | 
| 7 6 | 
             
            authors:
         | 
| 8 7 | 
             
            - Wynn Netherland
         | 
| @@ -11,12 +10,11 @@ authors: | |
| 11 10 | 
             
            autorequire: 
         | 
| 12 11 | 
             
            bindir: bin
         | 
| 13 12 | 
             
            cert_chain: []
         | 
| 14 | 
            -
            date: 2013-09- | 
| 13 | 
            +
            date: 2013-09-22 00:00:00.000000000 Z
         | 
| 15 14 | 
             
            dependencies:
         | 
| 16 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 17 16 | 
             
              name: bundler
         | 
| 18 17 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 19 | 
            -
                none: false
         | 
| 20 18 | 
             
                requirements:
         | 
| 21 19 | 
             
                - - ~>
         | 
| 22 20 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -24,7 +22,6 @@ dependencies: | |
| 24 22 | 
             
              type: :development
         | 
| 25 23 | 
             
              prerelease: false
         | 
| 26 24 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 27 | 
            -
                none: false
         | 
| 28 25 | 
             
                requirements:
         | 
| 29 26 | 
             
                - - ~>
         | 
| 30 27 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -32,19 +29,17 @@ dependencies: | |
| 32 29 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 33 30 | 
             
              name: sawyer
         | 
| 34 31 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 35 | 
            -
                none: false
         | 
| 36 32 | 
             
                requirements:
         | 
| 37 33 | 
             
                - - ~>
         | 
| 38 34 | 
             
                  - !ruby/object:Gem::Version
         | 
| 39 | 
            -
                    version: 0. | 
| 35 | 
            +
                    version: 0.5.0
         | 
| 40 36 | 
             
              type: :runtime
         | 
| 41 37 | 
             
              prerelease: false
         | 
| 42 38 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 43 | 
            -
                none: false
         | 
| 44 39 | 
             
                requirements:
         | 
| 45 40 | 
             
                - - ~>
         | 
| 46 41 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version: 0. | 
| 42 | 
            +
                    version: 0.5.0
         | 
| 48 43 | 
             
            description: Simple wrapper for the GitHub API
         | 
| 49 44 | 
             
            email:
         | 
| 50 45 | 
             
            - wynn.netherland@gmail.com
         | 
| @@ -370,6 +365,7 @@ files: | |
| 370 365 | 
             
            - spec/cassettes/Octokit_Client_Users/_starred/returns_starred_repositories_for_a_user.json
         | 
| 371 366 | 
             
            - spec/cassettes/Octokit_Client_Users/_starred/returns_starred_repositories_for_the_authenticated_user.json
         | 
| 372 367 | 
             
            - spec/cassettes/Octokit_Client_Users/_starred_/checks_if_the_authenticated_user_has_starred_a_repository.json
         | 
| 368 | 
            +
            - spec/cassettes/Octokit_Client_Users/_starred_/checks_if_the_authenticated_user_has_starred_a_repository_deprecated_.json
         | 
| 373 369 | 
             
            - spec/cassettes/Octokit_Client_Users/_subscriptions/returns_the_repositories_a_user_watches_for_notifications.json
         | 
| 374 370 | 
             
            - spec/cassettes/Octokit_Client_Users/_subscriptions/returns_the_repositories_the_authenticated_user_watches_for_notifications.json
         | 
| 375 371 | 
             
            - spec/cassettes/Octokit_Client_Users/_unfollow/unfollows_a_user.json
         | 
| @@ -426,27 +422,26 @@ files: | |
| 426 422 | 
             
            homepage: https://github.com/octokit/octokit.rb
         | 
| 427 423 | 
             
            licenses:
         | 
| 428 424 | 
             
            - MIT
         | 
| 425 | 
            +
            metadata: {}
         | 
| 429 426 | 
             
            post_install_message: 
         | 
| 430 427 | 
             
            rdoc_options: []
         | 
| 431 428 | 
             
            require_paths:
         | 
| 432 429 | 
             
            - lib
         | 
| 433 430 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 434 | 
            -
              none: false
         | 
| 435 431 | 
             
              requirements:
         | 
| 436 | 
            -
              - -  | 
| 432 | 
            +
              - - '>='
         | 
| 437 433 | 
             
                - !ruby/object:Gem::Version
         | 
| 438 434 | 
             
                  version: '0'
         | 
| 439 435 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 440 | 
            -
              none: false
         | 
| 441 436 | 
             
              requirements:
         | 
| 442 | 
            -
              - -  | 
| 437 | 
            +
              - - '>='
         | 
| 443 438 | 
             
                - !ruby/object:Gem::Version
         | 
| 444 439 | 
             
                  version: 1.3.5
         | 
| 445 440 | 
             
            requirements: []
         | 
| 446 441 | 
             
            rubyforge_project: 
         | 
| 447 | 
            -
            rubygems_version:  | 
| 442 | 
            +
            rubygems_version: 2.0.3
         | 
| 448 443 | 
             
            signing_key: 
         | 
| 449 | 
            -
            specification_version:  | 
| 444 | 
            +
            specification_version: 4
         | 
| 450 445 | 
             
            summary: Ruby toolkit for working with the GitHub API
         | 
| 451 446 | 
             
            test_files:
         | 
| 452 447 | 
             
            - spec/cassettes/delete_authorization.json
         | 
| @@ -717,6 +712,7 @@ test_files: | |
| 717 712 | 
             
            - spec/cassettes/Octokit_Client_Users/_starred/returns_starred_repositories_for_a_user.json
         | 
| 718 713 | 
             
            - spec/cassettes/Octokit_Client_Users/_starred/returns_starred_repositories_for_the_authenticated_user.json
         | 
| 719 714 | 
             
            - spec/cassettes/Octokit_Client_Users/_starred_/checks_if_the_authenticated_user_has_starred_a_repository.json
         | 
| 715 | 
            +
            - spec/cassettes/Octokit_Client_Users/_starred_/checks_if_the_authenticated_user_has_starred_a_repository_deprecated_.json
         | 
| 720 716 | 
             
            - spec/cassettes/Octokit_Client_Users/_subscriptions/returns_the_repositories_a_user_watches_for_notifications.json
         | 
| 721 717 | 
             
            - spec/cassettes/Octokit_Client_Users/_subscriptions/returns_the_repositories_the_authenticated_user_watches_for_notifications.json
         | 
| 722 718 | 
             
            - spec/cassettes/Octokit_Client_Users/_unfollow/unfollows_a_user.json
         |