diff --git a/lib/github_changelog_generator/array.rb b/lib/github_changelog_generator/array.rb index 752e2df..398e8de 100644 --- a/lib/github_changelog_generator/array.rb +++ b/lib/github_changelog_generator/array.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true class Array def stringify_keys_deep! new_ar = [] diff --git a/lib/github_changelog_generator/generator/generator_fetcher.rb b/lib/github_changelog_generator/generator/generator_fetcher.rb index 7f2f232..1425fb7 100644 --- a/lib/github_changelog_generator/generator/generator_fetcher.rb +++ b/lib/github_changelog_generator/generator/generator_fetcher.rb @@ -75,7 +75,7 @@ module GitHubChangelogGenerator begin commit = @fetcher.fetch_commit(event) issue["actual_date"] = commit["commit"]["author"]["date"] - + # issue['actual_date'] = commit['author']['date'] rescue puts "Warning: Can't fetch commit #{event['commit_id']}. It is probably referenced from another repo." diff --git a/lib/github_changelog_generator/generator/generator_generation.rb b/lib/github_changelog_generator/generator/generator_generation.rb index 7fd59c7..d3f0c53 100644 --- a/lib/github_changelog_generator/generator/generator_generation.rb +++ b/lib/github_changelog_generator/generator/generator_generation.rb @@ -178,9 +178,9 @@ module GitHubChangelogGenerator return "#{line} ({Null user})" unless user if @options[:usernames_as_github_logins] - "#{line} (@#{user["login"]})" + "#{line} (@#{user['login']})" else - "#{line} ([#{user["login"]}](#{user["html_url"]}))" + "#{line} ([#{user['login']}](#{user['html_url']}))" end end end diff --git a/lib/github_changelog_generator/generator/generator_tags.rb b/lib/github_changelog_generator/generator/generator_tags.rb index d9507a6..97aaab4 100644 --- a/lib/github_changelog_generator/generator/generator_tags.rb +++ b/lib/github_changelog_generator/generator/generator_tags.rb @@ -101,7 +101,7 @@ module GitHubChangelogGenerator def get_filtered_tags(all_tags) filtered_tags = filter_since_tag(all_tags) filtered_tags = filter_due_tag(filtered_tags) - filtered_tags = filter_between_tags(filtered_tags) + filter_between_tags(filtered_tags) end # @param [Array] all_tags all tags @@ -148,7 +148,7 @@ module GitHubChangelogGenerator # @return [Array] filtered tags according :between_tags option def filter_between_tags(all_tags) filtered_tags = all_tags - tag_names = filtered_tags.map { |ft| ft['name'] } + tag_names = filtered_tags.map { |ft| ft["name"] } if @options[:between_tags] @options[:between_tags].each do |tag| diff --git a/lib/github_changelog_generator/hash.rb b/lib/github_changelog_generator/hash.rb index 3a7349e..b84d845 100644 --- a/lib/github_changelog_generator/hash.rb +++ b/lib/github_changelog_generator/hash.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true class Hash def stringify_keys_deep! new_hash = {} diff --git a/lib/github_changelog_generator/octo_fetcher.rb b/lib/github_changelog_generator/octo_fetcher.rb index 3d6d258..150e6be 100644 --- a/lib/github_changelog_generator/octo_fetcher.rb +++ b/lib/github_changelog_generator/octo_fetcher.rb @@ -1,10 +1,10 @@ +# frozen_string_literal: true 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::OctoFetcher.new options - + # fetcher = GitHubChangelogGenerator::OctoFetcher.new(options) class OctoFetcher PER_PAGE_NUMBER = 100 MAX_THREAD_NUMBER = 1 @@ -14,16 +14,21 @@ module GitHubChangelogGenerator NO_TOKEN_PROVIDED = "Warning: No token provided (-t option) and variable $CHANGELOG_GITHUB_TOKEN was not found. " \ "This script can make only 50 requests to GitHub API per hour without token!" - def initialize(options = {}) + # @param options [Hash] Options passed in + # @option options [String] :user GitHub username + # @option options [String] :project GitHub project + # @option options [String] :since Only issues updated at or after this time are returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ. eg. Time.parse("2016-01-01 10:00:00").iso8601 + # @option options [Boolean] :http_cache Use ActiveSupport::Cache::FileStore to cache http requests + # @option options [Boolean] :cache_file If using http_cache, this is the cache file path + # @option options [Boolean] :cache_log If using http_cache, this is the cache log file path + def initialize(options = {}) # rubocop:disable Metrics/CyclomaticComplexity @options = options || {} @user = @options[:user] @project = @options[:project] - # Only issues updated at or after this time are returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ. - @since = @options[:since] # eg. Time.parse("2016-01-01 10:00:00").iso8601 - # Use ActiveSupport::Cache::FileStore to cache http requests + @since = @options[:since] @http_cache = @options[:http_cache] - @cache_file = @options.fetch(:cache_file, '/tmp/github-changelog-http-cache') if @http_cache - @cache_log = @options.fetch(:cache_log, '/tmp/github-changelog-logger.log') if @http_cache + @cache_file = @options.fetch(:cache_file, "/tmp/github-changelog-http-cache") if @http_cache + @cache_log = @options.fetch(:cache_log, "/tmp/github-changelog-logger.log") if @http_cache init_cache if @http_cache @github_token = fetch_github_token @@ -33,17 +38,16 @@ module GitHubChangelogGenerator @github_options[:access_token] = @github_token unless @github_token.nil? @github_options[:api_endpoint] = @options[:github_endpoint] unless @options[:github_endpoint].nil? - client_type = @options[:github_endpoint].nil? ? Octokit::Client : Octokit::EnterpriseAdminClient @client = client_type.new(@github_options) end def init_cache middleware_opts = { - :serializer => Marshal, - :store => ActiveSupport::Cache::FileStore.new(@cache_file), - :logger => Logger.new(@cache_log), - :shared_cache => false + serializer: Marshal, + store: ActiveSupport::Cache::FileStore.new(@cache_file), + logger: Logger.new(@cache_log), + shared_cache: false } stack = Faraday::RackBuilder.new do |builder| builder.use Faraday::HttpCache, middleware_opts @@ -98,7 +102,7 @@ module GitHubChangelogGenerator if tags.count == 0 Helper.log.warn "Warning: Can't find any tags in repo.\ -Make sure, that you push tags to remote repo via 'git push --tags'".yellow +Make sure, that you push tags to remote repo via 'git push --tags'" else Helper.log.info "Found #{tags.count} tags" end @@ -264,11 +268,11 @@ Make sure, that you push tags to remote repo via 'git push --tags'".yellow begin value = yield rescue Octokit::Unauthorized => e - Helper.log.error e.message.red + Helper.log.error e.message abort "Error: wrong GitHub token" rescue Octokit::Forbidden => e - Helper.log.warn e.message.red - Helper.log.warn GH_RATE_LIMIT_EXCEEDED_MSG.yellow + Helper.log.warn e.message + Helper.log.warn GH_RATE_LIMIT_EXCEEDED_MSG Helper.log.warn @client.rate_limit end value @@ -293,7 +297,7 @@ Make sure, that you push tags to remote repo via 'git push --tags'".yellow def fetch_github_token env_var = @options[:token] ? @options[:token] : (ENV.fetch CHANGELOG_GITHUB_TOKEN, nil) - Helper.log.warn NO_TOKEN_PROVIDED.yellow unless env_var + Helper.log.warn NO_TOKEN_PROVIDED unless env_var env_var end diff --git a/lib/github_changelog_generator/parser.rb b/lib/github_changelog_generator/parser.rb index 14deb0a..b907383 100755 --- a/lib/github_changelog_generator/parser.rb +++ b/lib/github_changelog_generator/parser.rb @@ -215,8 +215,8 @@ module GitHubChangelogGenerator enhancement_prefix: "**Implemented enhancements:**", git_remote: "origin", http_cache: true, - cache_file: '/tmp/github-changelog-http-cache', - cache_log: '/tmp/github-changelog-logger.log', + cache_file: "/tmp/github-changelog-http-cache", + cache_log: "/tmp/github-changelog-logger.log" } end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 16f26ee..bb0aaed 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -46,9 +46,9 @@ VCR.configure do |c| preserve_exact_body_bytes: true, decode_compressed_response: true } - c.filter_sensitive_data('') { + c.filter_sensitive_data("") do "token #{ENV.fetch('CHANGELOG_GITHUB_TOKEN')}" - } + end c.configure_rspec_metadata! diff --git a/spec/unit/generator/generator_tags_spec.rb b/spec/unit/generator/generator_tags_spec.rb index d13fb34..64dab24 100644 --- a/spec/unit/generator/generator_tags_spec.rb +++ b/spec/unit/generator/generator_tags_spec.rb @@ -2,7 +2,7 @@ describe GitHubChangelogGenerator::Generator do def tag_with_name(tag) { - 'name' => tag + "name" => tag } end diff --git a/spec/unit/octo_fetcher_spec.rb b/spec/unit/octo_fetcher_spec.rb index bb5eecc..4db2ba6 100644 --- a/spec/unit/octo_fetcher_spec.rb +++ b/spec/unit/octo_fetcher_spec.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true VALID_TOKEN = "0123456789abcdef" INVALID_TOKEN = "0000000000000000" @@ -60,7 +61,6 @@ describe GitHubChangelogGenerator::OctoFetcher do describe "#github_fetch_tags" do context "when wrong token provided", :vcr do - let(:options) do { user: "skywinder", @@ -75,7 +75,6 @@ describe GitHubChangelogGenerator::OctoFetcher do end context "when API call is valid", :vcr do - it "should return tags" do expected_tags = [{ "name" => "v0.0.3", "zipball_url" => @@ -125,8 +124,7 @@ describe GitHubChangelogGenerator::OctoFetcher do end describe "#fetch_closed_issues_and_pr" do - context "when API call is valid", :vcr do - + context "when API call is valid", :vcr do it "returns issues" do issues, pull_requests = fetcher.fetch_closed_issues_and_pr expect(issues.size).to eq(7) @@ -173,7 +171,7 @@ describe GitHubChangelogGenerator::OctoFetcher do "state" => "closed", "locked" => false, "assignee" => nil, - "assignees" => [], + "assignees" => [], "milestone" => nil, "comments" => 0, "created_at" => "2015-07-16T12:06:08Z", @@ -229,7 +227,7 @@ describe GitHubChangelogGenerator::OctoFetcher do "state" => "closed", "locked" => false, "assignee" => nil, - "assignees" => [], + "assignees" => [], "milestone" => nil, "comments" => 0, "created_at" => "2016-01-05T09:24:08Z", @@ -322,7 +320,7 @@ describe GitHubChangelogGenerator::OctoFetcher do "state" => "closed", "locked" => false, "assignee" => nil, - "assignees" => [], + "assignees" => [], "milestone" => nil, "comments" => 0, "created_at" => "2015-07-16T12:06:08Z", @@ -411,7 +409,6 @@ describe GitHubChangelogGenerator::OctoFetcher do describe "#fetch_date_of_tag" do context "when API call is valid", :vcr do - it "returns date" do tag = { "name" => "v0.0.3", "zipball_url" => @@ -431,7 +428,6 @@ describe GitHubChangelogGenerator::OctoFetcher do describe "#fetch_commit" do context "when API call is valid", :vcr do - it "returns commit" do event = { "id" => 357_462_189, "url" => @@ -481,8 +477,7 @@ describe GitHubChangelogGenerator::OctoFetcher do "https://api.github.com/repos/skywinder/changelog_test/commits/7ec095e5e3caceacedabf44d0b9b10da17c92e51", # OLD API: "https://api.github.com/repos/skywinder/changelog_test/git/commits/7ec095e5e3caceacedabf44d0b9b10da17c92e51", "html_url" => - "https://github.com/skywinder/changelog_test/commit/7ec095e5e3caceacedabf44d0b9b10da17c92e51" }] - ] + "https://github.com/skywinder/changelog_test/commit/7ec095e5e3caceacedabf44d0b9b10da17c92e51" }]] ] expectations.each do |property, val|