Compare commits

...

36 Commits

Author SHA1 Message Date
Olle Jonsson
d3da434e4a Use ruby-2.4.1 in CI 2017-03-23 00:00:03 +01:00
Olle Jonsson
9cb6306b47 Travis: jruby-9.1.8.0 (#485) 2017-03-10 10:12:33 +01:00
Olle Jonsson
d334aa01f2 Option parsing: Remove tag1, tag2 cruft (#479) 2017-02-08 21:58:30 +01:00
Olle Jonsson
1e9e72f1a5 Update to latest CodeClimate (#478)
* Update to latest CodeClimate
* SpecHelper: drop CodeClimate formatter
2017-02-08 21:09:23 +01:00
Olle Jonsson
acf1c1604a Gemspec: update retriable to 3.0 (#477) 2017-02-08 20:45:19 +01:00
Olle Jonsson
d29c117454 Travis: new JRuby, develop on 2.4.0 (#476)
* Travis: new JRuby, develop on 2.4.0
* CircleCI: ensure new rubygems
* Rubocop: RegexpMatch too edgy; long blocks OK in specs
* Travis: JRuby head fails bundle install
* Travis: Allow failures for jruby-head
2017-02-08 19:52:53 +01:00
Olle Jonsson
8d74965019 Create temporary cache files in Dir.tmpdir (#459)
* OctoFetcher: http_cache options conditional
* Locate cache directory using Dir.tmpdir
* Cache files options can not have defaults
2017-02-08 18:14:02 +01:00
Danny Guo
17702543ef Fix readme typos (#467) 2016-12-31 18:38:03 +01:00
Olle Jonsson
4ec3ad4a54 Gemspec: demand rainbow 2.2.1+ (#466) 2016-12-31 11:01:43 +01:00
Olle Jonsson
08e7a954ff Generated CHANGELOG.md 2016-12-31 10:41:00 +01:00
Olle Jonsson
8ea623fd81 v1.14.3 2016-12-31 10:33:06 +01:00
Olle Jonsson
6e61dfb378 CodeClimate configuration file (#465) 2016-12-30 01:31:40 +01:00
Olle Jonsson
3fee4fca75 Build against 2.4.0 2016-12-27 19:59:53 +01:00
Olle Jonsson
9fc00f3dc3 Travis: add jruby-head, 2.4.0-rc1 (#463) 2016-12-21 16:14:07 +01:00
Olle Jonsson
132ecf255c Gemfiles for building versions separately dropped (#461)
- simpler build by using the ruby version marker in shared gemfile
2016-12-03 13:51:28 +01:00
Olle Jonsson
238f779d38 Order Gemfile gems (#460)
Order Gemfile gems A-Z; add ruby version marker
2016-12-02 22:25:45 +01:00
Olle Jonsson
0b88c3bd54 Travis: Use ruby 2.3.3 and 2.2.6 (#452)
* Travis: Use ruby 2.3.3 and 2.2.6
2016-11-22 21:14:04 +01:00
Olle Jonsson
9c0f7c723f Merge pull request #455 from eliperkins/fix-enterprise
Use Octokit::Client for both .com and Enterprise
2016-11-22 20:57:27 +01:00
Eli Perkins
881ecc161c Use Octokit::Client for both .com and Enterprise
Octokit:EnterpriseAdminClient is only meant to be used for GHE admin
panel endpoints, such as Admin Stats, Management Console, etc.

This repairs GHE functionality by passing the API endpoint parameters
into Octokit::Client and letting it handle the rest.
2016-11-22 13:07:48 -05:00
Olle Jonsson
88cbcd22ed Merge pull request #454 from edusantana/show-where-task-param-are
README: Documentation update about RakeTask params and how to translate labels
2016-11-21 14:28:48 +01:00
Eduardo de Santana Medeiros Alexandre
07081ccf46 capitalize Portuguese 2016-11-20 20:16:04 -03:00
Eduardo de Santana Medeiros Alexandre
a9b49927ee Say where params come from 2016-11-20 12:47:07 -03:00
Olle Jonsson
4a74bd0ba6 CHANGELOG for v0.14.2 2016-11-12 10:10:28 +01:00
Olle Jonsson
879668b605 v1.14.2 2016-11-12 10:04:18 +01:00
Olle Jonsson
92137ba0b2 Merge pull request #449 from skywinder/fix/can-not-convert-sawyer-resource-to-array-448
OctoFetcher: Moved repositories fail explicitly
2016-11-11 00:44:09 +01:00
Olle Jonsson
b2a29d7279 Travis: Use a Gemfile name that won't outdate 2016-11-10 21:09:19 +01:00
Olle Jonsson
52d14f4b0a Travis: gemfile pointing right 2016-11-10 21:08:14 +01:00
Olle Jonsson
4d4e8ef5a4 Travis: Use jruby-9.1.6.0 and 2.4.0-preview3 2016-11-10 20:48:23 +01:00
Olle Jonsson
d4dfc99127 OctoFetcher: Moved repositories fail explicitly 2016-11-10 20:37:46 +01:00
Olle Jonsson
88b23ba790 Bump OctoKit dep 2016-11-10 19:32:42 +01:00
Olle Jonsson
d122e00a1a OctoFetcher#iterate_pages: extract method 2016-11-10 19:32:24 +01:00
Olle Jonsson
3c39c0c178 v1.14.1 2016-11-06 20:30:11 +01:00
Olle Jonsson
c10c583509 Merge pull request #445 from rnelson0/patch-1
Add multi_json as a runtime dependency
2016-11-06 17:58:58 +01:00
Rob Nelson
f6466d7a22 Update github_changelog_generator.gemspec
Typo
2016-11-06 11:20:03 -05:00
Rob Nelson
aff1561042 Add multi_json as a runtime dependency
Fixes #444
2016-11-06 09:53:30 -05:00
Olle Jonsson
289b2e1866 CHANGELOG for v1.14.0 2016-11-05 10:24:51 +01:00
21 changed files with 191 additions and 98 deletions

12
.codeclimate.yml Normal file
View File

@@ -0,0 +1,12 @@
engines:
duplication:
enabled: true
config:
languages:
- ruby
rubocop:
enabled: true
ratings:
paths:
- "**.rb"
exclude_paths:

View File

@@ -10,6 +10,9 @@ AllCops:
Metrics/LineLength: Metrics/LineLength:
Enabled: false Enabled: false
Performance/RegexpMatch:
Enabled: false
#http://viget.com/extend/just-use-double-quoted-ruby-strings #http://viget.com/extend/just-use-double-quoted-ruby-strings
Style/StringLiterals: Style/StringLiterals:
EnforcedStyle: double_quotes EnforcedStyle: double_quotes
@@ -66,4 +69,8 @@ Style/NumericPredicate:
Enabled: false Enabled: false
Style/SafeNavigation: Style/SafeNavigation:
Enabled: false Enabled: false
Metrics/BlockLength:
Exclude:
- 'spec/**/*'

View File

@@ -1 +1 @@
2.3.1 2.4.0

View File

@@ -6,32 +6,31 @@ before_install:
- gem install bundler - gem install bundler
matrix: matrix:
include: include:
- rvm: 2.2.2 - rvm: 2.2.6
install: true # This skips 'bundle install' install: true # This skips 'bundle install'
script: gem build github_changelog_generator && gem install *.gem script: gem build github_changelog_generator && gem install *.gem
- rvm: 2.2.2 - rvm: 2.2.6
install: true # This skips 'bundle install' install: true # This skips 'bundle install'
script: gem build github_changelog_generator && bundle install script: gem build github_changelog_generator && bundle install
gemfile: spec/install-gem-in-bundler.gemfile gemfile: spec/install-gem-in-bundler.gemfile
- rvm: 2.1 - rvm: 2.1
gemfile: gemfiles/Gemfile.2_1 - rvm: 2.3.3
- rvm: 2.3.1 - rvm: 2.4.1
gemfile: gemfiles/Gemfile.2_3_1 - rvm: jruby-9.1.8.0
- rvm: 2.4.0-preview2
gemfile: gemfiles/Gemfile.2_4_0
- rvm: jruby-9.1.5.0
jdk: oraclejdk8 jdk: oraclejdk8
gemfile: gemfiles/Gemfile.jruby-9.1.5.0
env: env:
- JRUBY_OPTS=--debug - JRUBY_OPTS=--debug
- rvm: jruby-head
jdk: oraclejdk8
env:
- JRUBY_OPTS=--debug
- DEBUG=1
allow_failures:
- rvm: jruby-head
notifications:
email:
recipients:
- sky4winder+githubchangeloggenerator@gmail.com
on_success: never
on_failure: change
addons: addons:
code_climate: code_climate:
repo_token: repo_token:
secure: iMpV5IAvH+/EVGZrpWnt2BnmNFzSbsRcIumsr4ZyLC8N5nrCSXyjCSy0g48btL3Sj0bSgK9hcrJsmrFd2bkqFleyAcPAzNyUQzBuIRZx47O8yFmbZ+Pj+l3+KOlmcbzJNHfDfxkxuWTmTAcSDfsiyApin721T/ey3SUuwKpZNUc= secure: iMpV5IAvH+/EVGZrpWnt2BnmNFzSbsRcIumsr4ZyLC8N5nrCSXyjCSy0g48btL3Sj0bSgK9hcrJsmrFd2bkqFleyAcPAzNyUQzBuIRZx47O8yFmbZ+Pj+l3+KOlmcbzJNHfDfxkxuWTmTAcSDfsiyApin721T/ey3SUuwKpZNUc=
after_success:
- bundle exec codeclimate-test-reporter

View File

@@ -1,5 +1,88 @@
# Change Log # Change Log
## [v1.14.3](https://github.com/skywinder/github-changelog-generator/tree/v1.14.3) (2016-12-31)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/v1.14.2...v1.14.3)
**Fixed bugs:**
- Use Octokit::Client for both .com and Enterprise [\#455](https://github.com/skywinder/github-changelog-generator/pull/455) ([eliperkins](https://github.com/eliperkins))
**Closed issues:**
- Last tag contains too many PRs [\#291](https://github.com/skywinder/github-changelog-generator/issues/291)
**Merged pull requests:**
- CodeClimate configuration file [\#465](https://github.com/skywinder/github-changelog-generator/pull/465) ([olleolleolle](https://github.com/olleolleolle))
- Travis: Build against 2.4.0 [\#464](https://github.com/skywinder/github-changelog-generator/pull/464) ([olleolleolle](https://github.com/olleolleolle))
- Travis: add jruby-head, 2.4.0-rc1 [\#463](https://github.com/skywinder/github-changelog-generator/pull/463) ([olleolleolle](https://github.com/olleolleolle))
- Gemfiles for building versions separately dropped [\#461](https://github.com/skywinder/github-changelog-generator/pull/461) ([olleolleolle](https://github.com/olleolleolle))
- Order Gemfile gems A-Z; add ruby version marker [\#460](https://github.com/skywinder/github-changelog-generator/pull/460) ([olleolleolle](https://github.com/olleolleolle))
- README: Documentation update about RakeTask params and how to translate labels [\#454](https://github.com/skywinder/github-changelog-generator/pull/454) ([edusantana](https://github.com/edusantana))
- Travis: Use ruby 2.3.3 and 2.2.6 [\#452](https://github.com/skywinder/github-changelog-generator/pull/452) ([olleolleolle](https://github.com/olleolleolle))
## [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:**
- 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) ## [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) [Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.13.1...1.13.2)
@@ -211,6 +294,7 @@
**Implemented enhancements:** **Implemented enhancements:**
- We should add a git-generate-changelog command. [\#255](https://github.com/skywinder/github-changelog-generator/issues/255)
- YAML front matter [\#322](https://github.com/skywinder/github-changelog-generator/pull/322) ([retorquere](https://github.com/retorquere)) - YAML front matter [\#322](https://github.com/skywinder/github-changelog-generator/pull/322) ([retorquere](https://github.com/retorquere))
- Git Subcommand [\#288](https://github.com/skywinder/github-changelog-generator/pull/288) ([dlanileonardo](https://github.com/dlanileonardo)) - Git Subcommand [\#288](https://github.com/skywinder/github-changelog-generator/pull/288) ([dlanileonardo](https://github.com/dlanileonardo))

20
Gemfile
View File

@@ -1,12 +1,14 @@
# frozen_string_literal: true # frozen_string_literal: true
source "https://rubygems.org" source "https://rubygems.org"
ruby RUBY_VERSION
gemspec gemspec
group :development, :test do group :development, :test do
gem "rake"
gem "bundler" gem "bundler"
gem "overcommit", ">= 0.31" gem "overcommit", ">= 0.31"
gem "rake"
gem "rubocop", ">= 0.43" gem "rubocop", ">= 0.43"
end end
@@ -15,16 +17,12 @@ group :development do
end end
group :test do group :test do
gem "vcr" gem "codeclimate-test-reporter", "~> 1.0"
gem "multi_json"
gem "webmock"
gem "coveralls", "~>0.8", require: false gem "coveralls", "~>0.8", require: false
gem "simplecov", "~>0.10", require: false gem "json"
gem "codeclimate-test-reporter", "~>0.4" gem "multi_json"
if RUBY_VERSION > "2"
gem "json", "~> 2.0", ">= 2.0.2"
else
gem "json"
end
gem "rspec", "< 4" gem "rspec", "< 4"
gem "simplecov", "~>0.10", require: false
gem "vcr"
gem "webmock"
end end

View File

@@ -24,7 +24,7 @@ GitHub Changelog Generator ![GitHub Logo](../master/images/logo.jpg)
### Changelog generation has never been so easy ### Changelog generation has never been so easy
**Fully automate changelog generation** - This gem generates change log file based on **tags**, **issues** and merged **pull requests** (and splits them into separate lists according to labels) from :octocat: GitHub Issue Tracker. **Fully automated changelog generation** - This gem generates a change log file based on **tags**, **issues** and merged **pull requests** (and splits them into separate lists according to labels) from :octocat: GitHub Issue Tracker.
Since now you don't have to fill your `CHANGELOG.md` manually: just run the script, relax and take a cup of :coffee: before your next release! :tada: Since now you don't have to fill your `CHANGELOG.md` manually: just run the script, relax and take a cup of :coffee: before your next release! :tada:
@@ -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. 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 ## Features and advantages of this project
- Generate canonical, neat change log file, followed by [basic change log guidelines](http://keepachangelog.com) :gem: - 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: - Optionally generate **Unreleased** changes (closed issues that have not released yet) :dizzy:

View File

@@ -1,3 +1,6 @@
dependencies:
pre:
- gem update --system
notify: notify:
webhooks: webhooks:
# A list of hook hashes, containing the url field # A list of hook hashes, containing the url field

View File

@@ -1,3 +0,0 @@
eval_gemfile File.expand_path('../../Gemfile', __FILE__)
gem 'rack', '~> 1.6'
gem 'activesupport', '~> 4'

View File

@@ -1,3 +0,0 @@
eval_gemfile File.expand_path('../../Gemfile', __FILE__)
gem 'rack', '>= 2'
gem 'activesupport', '>= 4'

View File

@@ -1,3 +0,0 @@
eval_gemfile File.expand_path('../../Gemfile', __FILE__)
gem 'rack', '>= 2'

View File

@@ -1,3 +0,0 @@
eval_gemfile File.expand_path('../../Gemfile', __FILE__)
gem 'rack', '>= 2'

View File

@@ -25,9 +25,10 @@ Gem::Specification.new do |spec|
spec.require_paths = ["lib"] spec.require_paths = ["lib"]
spec.add_runtime_dependency "rake", ">= 10.0" spec.add_runtime_dependency "rake", ">= 10.0"
spec.add_runtime_dependency "rainbow", ">= 2.1" spec.add_runtime_dependency "rainbow", ">= 2.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("faraday-http-cache")
spec.add_runtime_dependency("activesupport") spec.add_runtime_dependency("activesupport")
spec.add_runtime_dependency("retriable", ["~> 2.1"]) spec.add_runtime_dependency("retriable", ["~> 3.0"])
spec.add_runtime_dependency("multi_json")
end end

View File

@@ -1,4 +1,5 @@
# frozen_string_literal: true # frozen_string_literal: true
require "tmpdir"
require "retriable" require "retriable"
module GitHubChangelogGenerator module GitHubChangelogGenerator
# A Fetcher responsible for all requests to GitHub and all basic manipulation with related data # A Fetcher responsible for all requests to GitHub and all basic manipulation with related data
@@ -23,16 +24,17 @@ module GitHubChangelogGenerator
# @option options [Boolean] :http_cache Use ActiveSupport::Cache::FileStore to cache http requests # @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_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 # @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 || {} @options = options || {}
@user = @options[:user] @user = @options[:user]
@project = @options[:project] @project = @options[:project]
@since = @options[:since] @since = @options[:since]
@http_cache = @options[:http_cache] @http_cache = @options[:http_cache]
@cache_file = @options.fetch(:cache_file, "/tmp/github-changelog-http-cache") if @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) { File.join(Dir.tmpdir, "github-changelog-http-cache") }
init_cache if @http_cache @cache_log = @options.fetch(:cache_log) { File.join(Dir.tmpdir, "github-changelog-logger.log") }
init_cache
end
@github_token = fetch_github_token @github_token = fetch_github_token
@request_options = { per_page: PER_PAGE_NUMBER } @request_options = { per_page: PER_PAGE_NUMBER }
@@ -40,8 +42,7 @@ module GitHubChangelogGenerator
@github_options[:access_token] = @github_token unless @github_token.nil? @github_options[:access_token] = @github_token unless @github_token.nil?
@github_options[:api_endpoint] = @options[:github_endpoint] unless @options[:github_endpoint].nil? @github_options[:api_endpoint] = @options[:github_endpoint] unless @options[:github_endpoint].nil?
client_type = @options[:github_endpoint].nil? ? Octokit::Client : Octokit::EnterpriseAdminClient @client = Octokit::Client.new(@github_options)
@client = client_type.new(@github_options)
end end
def init_cache def init_cache
@@ -103,7 +104,7 @@ module GitHubChangelogGenerator
print_empty_line print_empty_line
if tags.count == 0 if tags.count == 0
Helper.log.warn "Warning: Can't find any tags in repo.\ Helper.log.warn "Warning: Can't find any tags in repo. \
Make sure, that you push tags to remote repo via 'git push --tags'" Make sure, that you push tags to remote repo via 'git push --tags'"
else else
Helper.log.info "Found #{tags.count} tags" Helper.log.info "Found #{tags.count} tags"
@@ -244,38 +245,49 @@ Make sure, that you push tags to remote repo via 'git push --tags'"
end end
end end
MovedPermanentlyError = Class.new(RuntimeError)
# Iterates through all pages until there are no more :next pages to follow # Iterates through all pages until there are no more :next pages to follow
# yields the result per page # yields the result per page
# #
# @param [Octokit::Client] client # @param [Octokit::Client] client
# @param [String] method (eg. 'tags') # @param [String] method (eg. 'tags')
#
# @yield [Sawyer::Resource] An OctoKit-provided response (which can be empty)
#
# @return [Integer] total number of pages # @return [Integer] total number of pages
def iterate_pages(client, method, *args) def iterate_pages(client, method, *args)
if args.size == 1 && args.first.is_a?(Hash) request_opts = extract_request_args(args)
request_options = args.delete_at(0) args.push(@request_options.merge(request_opts))
elsif args.size > 1 && args.last.is_a?(Hash)
request_options = args.delete_at(args.length - 1)
end
args.push(@request_options.merge(request_options)) number_of_pages = 1
pages = 1 check_github_response { client.send(method, user_project, *args) }
check_github_response do
client.send(method, user_project, *args)
end
last_response = client.last_response 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? until (next_one = last_response.rels[:next]).nil?
pages += 1 number_of_pages += 1
last_response = check_github_response { next_one.get } last_response = check_github_response { next_one.get }
yield last_response.data yield(last_response.data)
end 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 end
# This is wrapper with rescue block # This is wrapper with rescue block
@@ -285,7 +297,9 @@ Make sure, that you push tags to remote repo via 'git push --tags'"
Retriable.retriable(retry_options) do Retriable.retriable(retry_options) do
yield yield
end 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 rescue Octokit::Forbidden => e
Helper.log.error("#{e.class}: #{e.message}") Helper.log.error("#{e.class}: #{e.message}")
sys_abort("Exceeded retry limit") sys_abort("Exceeded retry limit")

View File

@@ -52,11 +52,6 @@ module GitHubChangelogGenerator
:verbose :verbose
] ]
THESE_ARE_DIFFERENT = [
:tag1,
:tag2
]
def initialize(values) def initialize(values)
super(values) super(values)
unsupported_options.any? && raise(UnsupportedOptionError, unsupported_options.inspect) unsupported_options.any? && raise(UnsupportedOptionError, unsupported_options.inspect)
@@ -78,15 +73,11 @@ module GitHubChangelogGenerator
end end
def unsupported_options def unsupported_options
values.keys - supported_options values.keys - KNOWN_OPTIONS
end end
def supported_option?(key) def supported_option?(key)
supported_options.include?(key) KNOWN_OPTIONS.include?(key)
end
def supported_options
KNOWN_OPTIONS + THESE_ARE_DIFFERENT
end end
end end
end end

View File

@@ -167,10 +167,10 @@ module GitHubChangelogGenerator
opts.on("--[no-]http-cache", "Use HTTP Cache to cache Github API requests (useful for large repos) Default is true.") do |http_cache| opts.on("--[no-]http-cache", "Use HTTP Cache to cache Github API requests (useful for large repos) Default is true.") do |http_cache|
options[:http_cache] = http_cache options[:http_cache] = http_cache
end end
opts.on("--cache-file [CACHE-FILE]", "Filename to use for cache. Default is /tmp/github-changelog-http-cache") do |cache_file| opts.on("--cache-file [CACHE-FILE]", "Filename to use for cache. Default is github-changelog-http-cache in a temporary directory.") do |cache_file|
options[:cache_file] = cache_file options[:cache_file] = cache_file
end end
opts.on("--cache-log [CACHE-LOG]", "Filename to use for cache log. Default is /tmp/github-changelog-logger.log") do |cache_log| opts.on("--cache-log [CACHE-LOG]", "Filename to use for cache log. Default is github-changelog-logger.log in a temporary directory.") do |cache_log|
options[:cache_log] = cache_log options[:cache_log] = cache_log
end end
opts.on("--[no-]verbose", "Run verbosely. Default is true") do |v| opts.on("--[no-]verbose", "Run verbosely. Default is true") do |v|
@@ -191,8 +191,6 @@ module GitHubChangelogGenerator
# @return [Hash] Default options # @return [Hash] Default options
def self.default_options def self.default_options
Options.new( Options.new(
tag1: nil,
tag2: nil,
date_format: "%Y-%m-%d", date_format: "%Y-%m-%d",
output: "CHANGELOG.md", output: "CHANGELOG.md",
base: "HISTORY.md", base: "HISTORY.md",
@@ -218,9 +216,7 @@ module GitHubChangelogGenerator
bug_prefix: "**Fixed bugs:**", bug_prefix: "**Fixed bugs:**",
enhancement_prefix: "**Implemented enhancements:**", enhancement_prefix: "**Implemented enhancements:**",
git_remote: "origin", git_remote: "origin",
http_cache: true, http_cache: true
cache_file: "/tmp/github-changelog-http-cache",
cache_log: "/tmp/github-changelog-logger.log"
) )
end end

View File

@@ -1,4 +1,4 @@
# frozen_string_literal: true # frozen_string_literal: true
module GitHubChangelogGenerator module GitHubChangelogGenerator
VERSION = "1.14.0" VERSION = "1.14.3"
end end

View File

@@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "GIT\-GENERATE\-CHANGELOG" "1" "November 2016" "" "" .TH "GIT\-GENERATE\-CHANGELOG" "1" "December 2016" "" ""
. .
.SH "NAME" .SH "NAME"
\fBgit\-generate\-changelog\fR \- Generate changelog from github \fBgit\-generate\-changelog\fR \- Generate changelog from github
@@ -256,13 +256,13 @@ Use HTTP Cache to cache Github API requests (useful for large repos) Default is
\-\-[no\-]cache\-file [CACHE\-FILE] \-\-[no\-]cache\-file [CACHE\-FILE]
. .
.P .P
Filename to use for cache\. Default is /tmp/github\-changelog\-http\-cache Filename to use for cache\. Default is github\-changelog\-http\-cache in a temporary directory\.
. .
.P .P
\-\-cache\-log [CACHE\-LOG] \-\-cache\-log [CACHE\-LOG]
. .
.P .P
Filename to use for cache log\. Default is /tmp/github\-changelog\-logger\.log Filename to use for cache log\. Default is github\-changelog\-logger\.log in a temporary directory\.
. .
.P .P
\-\-[no\-]verbose \-\-[no\-]verbose

View File

@@ -246,11 +246,11 @@
<p> --[no-]cache-file [CACHE-FILE]</p> <p> --[no-]cache-file [CACHE-FILE]</p>
<p> Filename to use for cache. Default is /tmp/github-changelog-http-cache</p> <p> Filename to use for cache. Default is github-changelog-http-cache in a temporary directory.</p>
<p> --cache-log [CACHE-LOG]</p> <p> --cache-log [CACHE-LOG]</p>
<p> Filename to use for cache log. Default is /tmp/github-changelog-logger.log</p> <p> Filename to use for cache log. Default is github-changelog-logger.log in a temporary directory.</p>
<p> --[no-]verbose</p> <p> --[no-]verbose</p>
@@ -281,7 +281,7 @@
<ol class='man-decor man-foot man foot'> <ol class='man-decor man-foot man foot'>
<li class='tl'></li> <li class='tl'></li>
<li class='tc'>November 2016</li> <li class='tc'>December 2016</li>
<li class='tr'>git-generate-changelog(1)</li> <li class='tr'>git-generate-changelog(1)</li>
</ol> </ol>

View File

@@ -173,11 +173,11 @@ Automatically generate change log from your tags, issues, labels and pull reques
--[no-]cache-file [CACHE-FILE] --[no-]cache-file [CACHE-FILE]
Filename to use for cache. Default is /tmp/github-changelog-http-cache Filename to use for cache. Default is github-changelog-http-cache in a temporary directory.
--cache-log [CACHE-LOG] --cache-log [CACHE-LOG]
Filename to use for cache log. Default is /tmp/github-changelog-logger.log Filename to use for cache log. Default is github-changelog-logger.log in a temporary directory.
--[no-]verbose --[no-]verbose

View File

@@ -16,7 +16,6 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
# #
require "codeclimate-test-reporter"
require "simplecov" require "simplecov"
require "coveralls" require "coveralls"
require "vcr" require "vcr"
@@ -28,8 +27,7 @@ end
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
Coveralls::SimpleCov::Formatter, Coveralls::SimpleCov::Formatter,
SimpleCov::Formatter::HTMLFormatter, SimpleCov::Formatter::HTMLFormatter
CodeClimate::TestReporter::Formatter
]) ])
SimpleCov.start do SimpleCov.start do
add_filter "gemfiles/" add_filter "gemfiles/"