Linting
This commit is contained in:
parent
88bcb872a6
commit
d8b34169a3
|
@ -1,3 +1,4 @@
|
|||
# frozen_string_literal: true
|
||||
class Array
|
||||
def stringify_keys_deep!
|
||||
new_ar = []
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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|
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# frozen_string_literal: true
|
||||
class Hash
|
||||
def stringify_keys_deep!
|
||||
new_hash = {}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -48,9 +48,9 @@ VCR.configure do |c|
|
|||
preserve_exact_body_bytes: true,
|
||||
decode_compressed_response: true
|
||||
}
|
||||
c.filter_sensitive_data('<GITHUB_TOKEN>') {
|
||||
c.filter_sensitive_data("<GITHUB_TOKEN>") do
|
||||
"token #{ENV.fetch('CHANGELOG_GITHUB_TOKEN')}"
|
||||
}
|
||||
end
|
||||
|
||||
c.configure_rspec_metadata!
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
describe GitHubChangelogGenerator::Generator do
|
||||
def tag_with_name(tag)
|
||||
{
|
||||
'name' => tag
|
||||
"name" => tag
|
||||
}
|
||||
end
|
||||
|
||||
|
|
|
@ -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|
|
||||
|
|
Loading…
Reference in New Issue
Block a user