Sha256: 4bb18b3cfcabce30393d990fda49b663dd99ad08381e28764c5680c92e585977

Contents?: true

Size: 1.03 KB

Versions: 1

Compression:

Stored size: 1.03 KB

Contents

require "licensed/version"
require "licensed/configuration"
require "licensed/license"
require "licensed/dependency"
require "licensed/source/bundler"
require "licensed/source/bower"
require "licensed/source/npm"
require "licensed/command/cache"
require "licensed/command/verify"
require "licensed/ui/shell"
require "octokit"

module Licensed
  class << self
    attr_accessor :use_github
  end

  self.use_github = true

  GITHUB_URL = %r{\Ahttps://github.com/([a-z0-9]+(-[a-z0-9]+)*/(\w|\.|\-)+)}
  LICENSE_CONTENT_TYPE = "application/vnd.github.drax-preview+json"

  def self.from_github(url)
    return unless use_github && match = GITHUB_URL.match(url)

    license_url = Octokit::Repository.path(match[1]) + "/license"
    response = octokit.get license_url, :accept => LICENSE_CONTENT_TYPE
    [
      response["license"]["key"],
      Base64.decode64(response["content"]).force_encoding('UTF-8')
    ]
  rescue Octokit::NotFound
    nil
  end

  def self.octokit
    @octokit ||=  Octokit::Client.new(:access_token => ENV["GITHUB_TOKEN"])
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
licensed-0.6.0 lib/licensed.rb