Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8ea623fd81 | ||
|
|
6e61dfb378 | ||
|
|
3fee4fca75 | ||
|
|
9fc00f3dc3 | ||
|
|
132ecf255c | ||
|
|
238f779d38 | ||
|
|
0b88c3bd54 | ||
|
|
9c0f7c723f | ||
|
|
881ecc161c | ||
|
|
88cbcd22ed | ||
|
|
07081ccf46 | ||
|
|
a9b49927ee | ||
|
|
4a74bd0ba6 | ||
|
|
879668b605 | ||
|
|
92137ba0b2 | ||
|
|
b2a29d7279 | ||
|
|
52d14f4b0a | ||
|
|
4d4e8ef5a4 | ||
|
|
d4dfc99127 | ||
|
|
88b23ba790 | ||
|
|
d122e00a1a | ||
|
|
3c39c0c178 | ||
|
|
c10c583509 | ||
|
|
f6466d7a22 | ||
|
|
aff1561042 | ||
|
|
289b2e1866 |
12
.codeclimate.yml
Normal file
12
.codeclimate.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
engines:
|
||||
duplication:
|
||||
enabled: true
|
||||
config:
|
||||
languages:
|
||||
- ruby
|
||||
rubocop:
|
||||
enabled: true
|
||||
ratings:
|
||||
paths:
|
||||
- "**.rb"
|
||||
exclude_paths:
|
||||
24
.travis.yml
24
.travis.yml
@@ -6,31 +6,25 @@ before_install:
|
||||
- gem install bundler
|
||||
matrix:
|
||||
include:
|
||||
- rvm: 2.2.2
|
||||
- rvm: 2.2.6
|
||||
install: true # This skips 'bundle install'
|
||||
script: gem build github_changelog_generator && gem install *.gem
|
||||
- rvm: 2.2.2
|
||||
- rvm: 2.2.6
|
||||
install: true # This skips 'bundle install'
|
||||
script: gem build github_changelog_generator && bundle install
|
||||
gemfile: spec/install-gem-in-bundler.gemfile
|
||||
- rvm: 2.1
|
||||
gemfile: gemfiles/Gemfile.2_1
|
||||
- rvm: 2.3.1
|
||||
gemfile: gemfiles/Gemfile.2_3_1
|
||||
- rvm: 2.4.0-preview2
|
||||
gemfile: gemfiles/Gemfile.2_4_0
|
||||
- rvm: jruby-9.1.5.0
|
||||
- rvm: 2.3.3
|
||||
- rvm: 2.4.0
|
||||
- rvm: jruby-9.1.6.0
|
||||
jdk: oraclejdk8
|
||||
env:
|
||||
- JRUBY_OPTS=--debug
|
||||
- rvm: jruby-head
|
||||
jdk: oraclejdk8
|
||||
gemfile: gemfiles/Gemfile.jruby-9.1.5.0
|
||||
env:
|
||||
- JRUBY_OPTS=--debug
|
||||
|
||||
notifications:
|
||||
email:
|
||||
recipients:
|
||||
- sky4winder+githubchangeloggenerator@gmail.com
|
||||
on_success: never
|
||||
on_failure: change
|
||||
addons:
|
||||
code_climate:
|
||||
repo_token:
|
||||
|
||||
63
CHANGELOG.md
63
CHANGELOG.md
@@ -1,5 +1,68 @@
|
||||
# Change Log
|
||||
|
||||
## [v1.14.2](https://github.com/skywinder/github-changelog-generator/tree/v1.14.2) (2016-11-12)
|
||||
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/v1.14.1...v1.14.2)
|
||||
|
||||
**Implemented enhancements:**
|
||||
|
||||
- We should add a git-generate-changelog command. [\#255](https://github.com/skywinder/github-changelog-generator/issues/255)
|
||||
- OctoFetcher: Moved repositories fail explicitly [\#449](https://github.com/skywinder/github-changelog-generator/pull/449) ([olleolleolle](https://github.com/olleolleolle))
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- Error: can't convert Sawyer::Resource to Array when iterating over a 301 Moved Permanently [\#448](https://github.com/skywinder/github-changelog-generator/issues/448)
|
||||
|
||||
## [v1.14.1](https://github.com/skywinder/github-changelog-generator/tree/v1.14.1) (2016-11-06)
|
||||
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/v1.14.0...v1.14.1)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- multi\_json is required but is listed as a test dependency [\#444](https://github.com/skywinder/github-changelog-generator/issues/444)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Add multi\_json as a runtime dependency [\#445](https://github.com/skywinder/github-changelog-generator/pull/445) ([rnelson0](https://github.com/rnelson0))
|
||||
|
||||
## [v1.14.0](https://github.com/skywinder/github-changelog-generator/tree/v1.14.0) (2016-11-05)
|
||||
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/v1.13.2...v1.14.0)
|
||||
|
||||
**Implemented enhancements:**
|
||||
|
||||
- On OctoKit::Forbidden error: retry with exponential backoff [\#434](https://github.com/skywinder/github-changelog-generator/pull/434) ([awaage](https://github.com/awaage))
|
||||
- Use octokit, carrying awaage commits [\#422](https://github.com/skywinder/github-changelog-generator/pull/422) ([olleolleolle](https://github.com/olleolleolle))
|
||||
- Add option to show selected labels in the issue line [\#418](https://github.com/skywinder/github-changelog-generator/pull/418) ([aih](https://github.com/aih))
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
- unreleased and unreleased-label [\#374](https://github.com/skywinder/github-changelog-generator/issues/374)
|
||||
- Problems installing 1.11.7 on Windows when git absent [\#349](https://github.com/skywinder/github-changelog-generator/issues/349)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- broken issue-line-labels in log [\#442](https://github.com/skywinder/github-changelog-generator/issues/442)
|
||||
- Broken multi hyphen options in param file [\#440](https://github.com/skywinder/github-changelog-generator/issues/440)
|
||||
- Install error on Mac: "rack requires Ruby version \>= 2.2.2" [\#425](https://github.com/skywinder/github-changelog-generator/issues/425)
|
||||
- Changelog includes issues going back months too far [\#394](https://github.com/skywinder/github-changelog-generator/issues/394)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Fixed issue \#442 - broken issue-line-labels in log. [\#443](https://github.com/skywinder/github-changelog-generator/pull/443) ([thorsteneckel](https://github.com/thorsteneckel))
|
||||
- Fixed issue \#440 - broken multi hyphen options in param file. [\#441](https://github.com/skywinder/github-changelog-generator/pull/441) ([thorsteneckel](https://github.com/thorsteneckel))
|
||||
- Option --unreleased-label explained [\#439](https://github.com/skywinder/github-changelog-generator/pull/439) ([olleolleolle](https://github.com/olleolleolle))
|
||||
- Fixed issue \#304 - entries of previous tags are included. [\#438](https://github.com/skywinder/github-changelog-generator/pull/438) ([thorsteneckel](https://github.com/thorsteneckel))
|
||||
- man page: Add undescribed options [\#437](https://github.com/skywinder/github-changelog-generator/pull/437) ([olleolleolle](https://github.com/olleolleolle))
|
||||
- On GitHub MAX\_THREAD\_NUMBER is 25 [\#433](https://github.com/skywinder/github-changelog-generator/pull/433) ([olleolleolle](https://github.com/olleolleolle))
|
||||
- OctoFetcher, Options: Refactoring [\#432](https://github.com/skywinder/github-changelog-generator/pull/432) ([olleolleolle](https://github.com/olleolleolle))
|
||||
- Fix typo in Readme [\#431](https://github.com/skywinder/github-changelog-generator/pull/431) ([rmtheis](https://github.com/rmtheis))
|
||||
- Fix: Turn Sawyer method into String-keyed hash access [\#429](https://github.com/skywinder/github-changelog-generator/pull/429) ([olleolleolle](https://github.com/olleolleolle))
|
||||
- Spec: Test a url helper function [\#428](https://github.com/skywinder/github-changelog-generator/pull/428) ([olleolleolle](https://github.com/olleolleolle))
|
||||
- Rubocop TODO file regenerated [\#427](https://github.com/skywinder/github-changelog-generator/pull/427) ([olleolleolle](https://github.com/olleolleolle))
|
||||
- Drop a stray Markdown file [\#426](https://github.com/skywinder/github-changelog-generator/pull/426) ([olleolleolle](https://github.com/olleolleolle))
|
||||
- Travis: Add JRuby 9.1.5.0 to matrix [\#424](https://github.com/skywinder/github-changelog-generator/pull/424) ([olleolleolle](https://github.com/olleolleolle))
|
||||
|
||||
## [v1.13.2](https://github.com/skywinder/github-changelog-generator/tree/v1.13.2) (2016-09-29)
|
||||
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.13.2...v1.13.2)
|
||||
|
||||
## [1.13.2](https://github.com/skywinder/github-changelog-generator/tree/1.13.2) (2016-09-29)
|
||||
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.13.1...1.13.2)
|
||||
|
||||
|
||||
18
Gemfile
18
Gemfile
@@ -1,12 +1,14 @@
|
||||
# frozen_string_literal: true
|
||||
source "https://rubygems.org"
|
||||
|
||||
ruby RUBY_VERSION
|
||||
|
||||
gemspec
|
||||
|
||||
group :development, :test do
|
||||
gem "rake"
|
||||
gem "bundler"
|
||||
gem "overcommit", ">= 0.31"
|
||||
gem "rake"
|
||||
gem "rubocop", ">= 0.43"
|
||||
end
|
||||
|
||||
@@ -15,16 +17,12 @@ group :development do
|
||||
end
|
||||
|
||||
group :test do
|
||||
gem "vcr"
|
||||
gem "multi_json"
|
||||
gem "webmock"
|
||||
gem "coveralls", "~>0.8", require: false
|
||||
gem "simplecov", "~>0.10", require: false
|
||||
gem "codeclimate-test-reporter", "~>0.4"
|
||||
if RUBY_VERSION > "2"
|
||||
gem "json", "~> 2.0", ">= 2.0.2"
|
||||
else
|
||||
gem "coveralls", "~>0.8", require: false
|
||||
gem "json"
|
||||
end
|
||||
gem "multi_json"
|
||||
gem "rspec", "< 4"
|
||||
gem "simplecov", "~>0.10", require: false
|
||||
gem "vcr"
|
||||
gem "webmock"
|
||||
end
|
||||
|
||||
@@ -151,6 +151,8 @@ end
|
||||
|
||||
All command line options can be passed to the `rake` task as `config` parameters. And since you're naming the `rake` task yourself, you can create as many as you want.
|
||||
|
||||
You can look for params names from the [parser source code (#setup_parser)](https://github.com/skywinder/github-changelog-generator/blob/master/lib/github_changelog_generator/parser.rb). For example, to translate the bugs label to Portuguese, instead of setting `config.bugs_label`, you have to set `config.bug_prefix`, and so on.
|
||||
|
||||
## Features and advantages of this project
|
||||
- Generate canonical, neat change log file, followed by [basic change log guidelines](http://keepachangelog.com) :gem:
|
||||
- Optionally generate **Unreleased** changes (closed issues that have not released yet) :dizzy:
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
eval_gemfile File.expand_path('../../Gemfile', __FILE__)
|
||||
gem 'rack', '~> 1.6'
|
||||
gem 'activesupport', '~> 4'
|
||||
@@ -1,3 +0,0 @@
|
||||
eval_gemfile File.expand_path('../../Gemfile', __FILE__)
|
||||
gem 'rack', '>= 2'
|
||||
gem 'activesupport', '>= 4'
|
||||
@@ -1,3 +0,0 @@
|
||||
eval_gemfile File.expand_path('../../Gemfile', __FILE__)
|
||||
gem 'rack', '>= 2'
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
eval_gemfile File.expand_path('../../Gemfile', __FILE__)
|
||||
gem 'rack', '>= 2'
|
||||
|
||||
@@ -26,8 +26,9 @@ Gem::Specification.new do |spec|
|
||||
|
||||
spec.add_runtime_dependency "rake", ">= 10.0"
|
||||
spec.add_runtime_dependency "rainbow", ">= 2.1"
|
||||
spec.add_runtime_dependency("octokit", ["~> 4.0"])
|
||||
spec.add_runtime_dependency("octokit", ["~> 4.6"])
|
||||
spec.add_runtime_dependency("faraday-http-cache")
|
||||
spec.add_runtime_dependency("activesupport")
|
||||
spec.add_runtime_dependency("retriable", ["~> 2.1"])
|
||||
spec.add_runtime_dependency("multi_json")
|
||||
end
|
||||
|
||||
@@ -23,7 +23,7 @@ module GitHubChangelogGenerator
|
||||
# @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
|
||||
def initialize(options = {})
|
||||
@options = options || {}
|
||||
@user = @options[:user]
|
||||
@project = @options[:project]
|
||||
@@ -40,8 +40,7 @@ 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)
|
||||
@client = Octokit::Client.new(@github_options)
|
||||
end
|
||||
|
||||
def init_cache
|
||||
@@ -244,38 +243,49 @@ Make sure, that you push tags to remote repo via 'git push --tags'"
|
||||
end
|
||||
end
|
||||
|
||||
MovedPermanentlyError = Class.new(RuntimeError)
|
||||
|
||||
# Iterates through all pages until there are no more :next pages to follow
|
||||
# yields the result per page
|
||||
#
|
||||
# @param [Octokit::Client] client
|
||||
# @param [String] method (eg. 'tags')
|
||||
#
|
||||
# @yield [Sawyer::Resource] An OctoKit-provided response (which can be empty)
|
||||
#
|
||||
# @return [Integer] total number of pages
|
||||
def iterate_pages(client, method, *args)
|
||||
if args.size == 1 && args.first.is_a?(Hash)
|
||||
request_options = args.delete_at(0)
|
||||
elsif args.size > 1 && args.last.is_a?(Hash)
|
||||
request_options = args.delete_at(args.length - 1)
|
||||
end
|
||||
request_opts = extract_request_args(args)
|
||||
args.push(@request_options.merge(request_opts))
|
||||
|
||||
args.push(@request_options.merge(request_options))
|
||||
number_of_pages = 1
|
||||
|
||||
pages = 1
|
||||
|
||||
check_github_response do
|
||||
client.send(method, user_project, *args)
|
||||
end
|
||||
check_github_response { client.send(method, user_project, *args) }
|
||||
last_response = client.last_response
|
||||
if last_response.status == 301
|
||||
raise MovedPermanentlyError, last_response.data[:url]
|
||||
end
|
||||
|
||||
yield last_response.data
|
||||
yield(last_response.data)
|
||||
|
||||
until (next_one = last_response.rels[:next]).nil?
|
||||
pages += 1
|
||||
number_of_pages += 1
|
||||
|
||||
last_response = check_github_response { next_one.get }
|
||||
yield last_response.data
|
||||
yield(last_response.data)
|
||||
end
|
||||
|
||||
pages
|
||||
number_of_pages
|
||||
end
|
||||
|
||||
def extract_request_args(args)
|
||||
if args.size == 1 && args.first.is_a?(Hash)
|
||||
args.delete_at(0)
|
||||
elsif args.size > 1 && args.last.is_a?(Hash)
|
||||
args.delete_at(args.length - 1)
|
||||
else
|
||||
{}
|
||||
end
|
||||
end
|
||||
|
||||
# This is wrapper with rescue block
|
||||
@@ -285,7 +295,9 @@ Make sure, that you push tags to remote repo via 'git push --tags'"
|
||||
Retriable.retriable(retry_options) do
|
||||
yield
|
||||
end
|
||||
|
||||
rescue MovedPermanentlyError => e
|
||||
Helper.log.error("#{e.class}: #{e.message}")
|
||||
sys_abort("The repository has moved, please update your configuration")
|
||||
rescue Octokit::Forbidden => e
|
||||
Helper.log.error("#{e.class}: #{e.message}")
|
||||
sys_abort("Exceeded retry limit")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# frozen_string_literal: true
|
||||
module GitHubChangelogGenerator
|
||||
VERSION = "1.14.0"
|
||||
VERSION = "1.14.3"
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user