class GemMiner::GithubClient

A Github client with GemMiner-specific extensions.

Public Class Methods

new(github_access_token = nil) click to toggle source
# File lib/gem-miner/github_client.rb, line 8
def initialize(github_access_token = nil)
  @internal_client = Octokit::Client.new(
    auto_paginate: true,
    access_token: github_access_token
  )
end

Public Instance Methods

files(query) click to toggle source

Gets the files from a code search.

# File lib/gem-miner/github_client.rb, line 16
def files(query)
  @internal_client.search_code(query)['items']
    .map do |item|
      {
        name: name_of(item),
        content: raw_content(item),
      }
    end
end

Private Instance Methods

name_of(item) click to toggle source
# File lib/gem-miner/github_client.rb, line 28
def name_of(item)
  item[:repository][:full_name]
end
raw_content(item) click to toggle source
# File lib/gem-miner/github_client.rb, line 32
def raw_content(item)
  content_request = @internal_client.contents(name_of(item), path: item[:path])
  Base64.decode64 content_request[:content]
end