move @github to fetcher
Conflicts: lib/github_changelog_generator.rb
This commit is contained in:
		
							parent
							
								
									a2cf6810ad
								
							
						
					
					
						commit
						7c29f3ddd2
					
				@ -9,6 +9,7 @@ require_relative 'github_changelog_generator/parser'
 | 
			
		||||
require_relative 'github_changelog_generator/generator'
 | 
			
		||||
require_relative 'github_changelog_generator/version'
 | 
			
		||||
require_relative 'github_changelog_generator/reader'
 | 
			
		||||
require_relative 'github_changelog_generator/fetcher'
 | 
			
		||||
 | 
			
		||||
module GitHubChangelogGenerator
 | 
			
		||||
  class ChangelogGenerator
 | 
			
		||||
@ -21,18 +22,7 @@ module GitHubChangelogGenerator
 | 
			
		||||
    def initialize
 | 
			
		||||
      @options = Parser.parse_options
 | 
			
		||||
 | 
			
		||||
      fetch_github_token
 | 
			
		||||
 | 
			
		||||
      github_options = { per_page: PER_PAGE_NUMBER }
 | 
			
		||||
      github_options[:oauth_token] = @github_token unless @github_token.nil?
 | 
			
		||||
      github_options[:endpoint] = options[:github_endpoint] unless options[:github_endpoint].nil?
 | 
			
		||||
      github_options[:site] = options[:github_endpoint] unless options[:github_site].nil?
 | 
			
		||||
 | 
			
		||||
      begin
 | 
			
		||||
        @github = Github.new github_options
 | 
			
		||||
      rescue
 | 
			
		||||
        puts GH_RATE_LIMIT_EXCEEDED_MSG.yellow
 | 
			
		||||
      end
 | 
			
		||||
      @fetcher = GitHubChangelogGenerator::Fetcher.new @options
 | 
			
		||||
 | 
			
		||||
      @generator = Generator.new(@options)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,40 @@
 | 
			
		||||
module GitHubChangelogGenerator
 | 
			
		||||
  # A Fetcher responsible for all requests to GitHub and all basic manipulation with related data (such as filtering, validating, e.t.c)
 | 
			
		||||
  #
 | 
			
		||||
  # Example:
 | 
			
		||||
  # fetcher = GitHubChangelogGenerator::Fetcher.new options
 | 
			
		||||
  class Fetcher
 | 
			
		||||
    def initialize(options = {})
 | 
			
		||||
      @options = options
 | 
			
		||||
 | 
			
		||||
      @user = @options[:user]
 | 
			
		||||
      @project = @options[:project]
 | 
			
		||||
      @github_token = fetch_github_token
 | 
			
		||||
 | 
			
		||||
      github_options = { per_page: PER_PAGE_NUMBER }
 | 
			
		||||
      github_options[:oauth_token] = @github_token unless @github_token.nil?
 | 
			
		||||
      github_options[:endpoint] = options[:github_endpoint] unless options[:github_endpoint].nil?
 | 
			
		||||
      github_options[:site] = options[:github_endpoint] unless options[:github_site].nil?
 | 
			
		||||
 | 
			
		||||
      begin
 | 
			
		||||
        @github = Github.new github_options
 | 
			
		||||
      rescue
 | 
			
		||||
        puts GH_RATE_LIMIT_EXCEEDED_MSG.yellow
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Returns GitHub token. First try to use variable, provided by --token option, otherwise try to fetch it from CHANGELOG_GITHUB_TOKEN env variable.
 | 
			
		||||
    #
 | 
			
		||||
    # @return [String]
 | 
			
		||||
    def fetch_github_token
 | 
			
		||||
      env_var = @options[:token] ? @options[:token] : (ENV.fetch 'CHANGELOG_GITHUB_TOKEN', nil)
 | 
			
		||||
 | 
			
		||||
      unless env_var
 | 
			
		||||
        puts 'Warning: No token provided (-t option) and variable $CHANGELOG_GITHUB_TOKEN was not found.'.yellow
 | 
			
		||||
        puts 'This script can make only 50 requests to GitHub API per hour without token!'.yellow
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      env_var
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user