Compare commits

...

91 Commits

Author SHA1 Message Date
Petr Korolev
76df82fe0b Merge branch 'release/1.11.4' 2016-02-26 13:18:14 +02:00
Petr Korolev
12734dbbe1 Update gemspec to version 1.11.4 2016-02-26 13:18:11 +02:00
Olle Jonsson
d33dcced8f Rake task: enable the default task again 2016-02-26 13:17:54 +02:00
Olle Jonsson
4a9f6fdd43 Gemfile now with test deps, too 2016-02-26 13:17:54 +02:00
Olle Jonsson
32f14e685b Rake task: Try finding a writable manpath
- OS X, Ubuntu manpath files checked
2016-02-26 13:17:54 +02:00
Olle Jonsson
85d5352e6e Look in /etc/manpaths for writable paths 2016-02-26 13:17:54 +02:00
Olle Jonsson
637de14699 Check if man path is writable before writing 2016-02-26 13:17:54 +02:00
Olle Jonsson
925f6fd3f0 Man page copying: only copy .1
- check if possible first
2016-02-26 13:17:54 +02:00
Petr Korolev
568db9e519 Merge pull request #338 from olleolleolle/feature/neutralize-man-page-generation
Man page copying: only copy .1
2016-02-26 13:17:19 +02:00
Olle Jonsson
9b7273f009 Rake task: enable the default task again 2016-02-25 20:29:01 +01:00
Olle Jonsson
08cacdc5ec Gemfile now with test deps, too 2016-02-25 20:26:03 +01:00
Olle Jonsson
159173d86a Rake task: Try finding a writable manpath
- OS X, Ubuntu manpath files checked
2016-02-25 20:13:32 +01:00
Olle Jonsson
c111488376 Look in /etc/manpaths for writable paths 2016-02-25 19:56:25 +01:00
Olle Jonsson
5bc90a32ae Check if man path is writable before writing 2016-02-25 19:43:10 +01:00
Olle Jonsson
772e403e40 Man page copying: only copy .1
- check if possible first
2016-02-25 19:43:10 +01:00
Petr Korolev
fe2162030b Merge branch 'hotfix/update-changelog' into develop 2016-02-25 20:20:15 +02:00
Petr Korolev
ee86b35068 Merge branch 'hotfix/update-changelog' 2016-02-25 20:20:15 +02:00
Petr Korolev
93e29e8e81 Update changelog for version 1.11.3 2016-02-25 20:20:15 +02:00
Petr Korolev
5bff64de19 Merge branch 'release/1.11.3' into develop 2016-02-25 20:18:23 +02:00
Petr Korolev
780ebdf0eb Merge branch 'release/1.11.3' 2016-02-25 20:18:22 +02:00
Petr Korolev
c5837ad9f0 Update gemspec to version 1.11.3 2016-02-25 20:18:22 +02:00
Petr Korolev
17a1b23059 comment out Rakefile to temporary solve installation issue #329 2016-02-25 20:17:34 +02:00
Petr Korolev
7205a060b3 Merge branch 'hotfix/update-changelog' 2016-02-25 15:42:19 +02:00
Petr Korolev
471fe6f312 Merge branch 'hotfix/update-changelog' into develop 2016-02-25 15:42:19 +02:00
Petr Korolev
40df2c7dac Update changelog for version 1.11.2 2016-02-25 15:42:18 +02:00
Petr Korolev
aa87c803ca Merge branch 'release/1.11.2' into develop 2016-02-25 15:41:37 +02:00
Petr Korolev
6962b5e7b2 Merge branch 'release/1.11.2' 2016-02-25 15:41:36 +02:00
Petr Korolev
407bf86e57 Update gemspec to version 1.11.2 2016-02-25 15:41:34 +02:00
Petr Korolev
cff1e8c5ed create manual only by default 2016-02-25 15:41:15 +02:00
Petr Korolev
8e9ff4cb8a Merge pull request #337 from skywinder/fix-install
Fix installation by not running the specs - which have dependencies
2016-02-25 15:35:29 +02:00
Petr Korolev
3e045e3b42 create manual only by default 2016-02-25 15:28:11 +02:00
Petr Korolev
0bfd702d21 Merge branch 'hotfix/update-changelog' into develop 2016-02-25 12:03:31 +02:00
Petr Korolev
c762f82917 Merge branch 'hotfix/update-changelog' 2016-02-25 12:03:30 +02:00
Petr Korolev
b510b2c3fb Update changelog for version 1.11.1 2016-02-25 12:03:28 +02:00
Petr Korolev
f45dc26aba Merge branch 'release/1.11.1' into develop 2016-02-25 12:02:46 +02:00
Petr Korolev
78361faaa9 Merge branch 'release/1.11.1' 2016-02-25 12:02:46 +02:00
Petr Korolev
5898dd4eb9 Update gemspec to version 1.11.1 2016-02-25 12:02:42 +02:00
Petr Korolev
6706b10311 rubocop autofix 2016-02-25 12:00:45 +02:00
Petr Korolev
827afcda02 Merge branch 'master' into develop 2016-02-25 11:56:17 +02:00
Petr Korolev
94c52a17e2 bump to yanked version 2016-02-25 11:50:24 +02:00
Petr Korolev
4af3d1cb06 Merge pull request #336 from jkeiser/jk/rubocop-dep
Add rubocop and rspec as runtime dependencies
2016-02-25 11:48:47 +02:00
John Keiser
b5df8e1e76 Use less restrictive versioning so we don't block other projects 2016-02-24 12:55:39 -08:00
John Keiser
2f179649b9 Add rubocop and rspec as runtime dependencies 2016-02-24 11:05:54 -08:00
Petr Korolev
9a217e3468 rubocop correction 2016-02-24 16:31:18 +02:00
Petr Korolev
035e160f5e Merge pull request #332 from olleolleolle/feature/exclude-issues-by-labels
[Refactor] Generator#exclude_issues_by_labels simpler, tested
2016-02-24 16:30:14 +02:00
Petr Korolev
60517bffe9 Merge pull request #334 from olleolleolle/feature/refactor-parser-file-to-pathname
[Refactor] ParserFile class use Pathname
2016-02-24 16:16:17 +02:00
Petr Korolev
402e70f677 Merge branch 'release/1.10.4' into develop 2016-02-24 15:13:35 +02:00
Petr Korolev
5b192f9e43 Merge branch 'release/1.10.4' 2016-02-24 15:13:14 +02:00
Petr Korolev
1167706335 Update gemspec to version 1.10.4 2016-02-24 15:11:01 +02:00
Petr Korolev
63c70edb25 add pending message 2016-02-24 15:10:32 +02:00
Petr Korolev
0b3e8429c4 rubocop fixes 2016-02-24 15:10:32 +02:00
Olle Jonsson
20c22defc2 Rake and Bundler as runtime deps
To support Rakefile running at install. See #329
2016-02-24 15:10:32 +02:00
Olle Jonsson
bc6bfac2a3 Typo 2016-02-24 15:10:32 +02:00
Olle Jonsson
fb502c0ac7 Spec: Avoid a deprecation 2016-02-24 15:10:32 +02:00
Olle Jonsson
575f42f652 Test case for #327 2016-02-24 15:10:32 +02:00
John Keiser
92fbf47960 If Rakefile is an extension, any requires are runtime deps 2016-02-24 15:10:32 +02:00
Petr Korolev
32ab582797 Merge pull request #333 from skywinder/feature/bug-329-promote-rake-and-bundler-to-runtime-deps
Rake and Bundler as runtime deps
2016-02-24 14:56:50 +02:00
Olle Jonsson
4e6906dccf Add default options filename as constant 2016-02-23 23:54:20 +01:00
Olle Jonsson
179f110b8a Pathnames to iterate over lines, check existence 2016-02-23 23:46:23 +01:00
Olle Jonsson
06585b1c69 Rake and Bundler as runtime deps
To support Rakefile running at install. See #329
2016-02-23 23:39:53 +01:00
Olle Jonsson
89d1b5393d Generator#exclude_issues_by_labels spec clearer 2016-02-23 23:23:54 +01:00
Olle Jonsson
87b9962a8d Refactoring: introduce local, return early
- use #reject
  - add basic spec around it
2016-02-23 23:17:37 +01:00
Petr Korolev
4ceb065cae Merge pull request #331 from olleolleolle/feature/bug-327
Test case for #327
2016-02-23 23:56:34 +02:00
Petr Korolev
cf55352620 Merge pull request #330 from jkeiser/jk/rakefile-dep
Fix crash installing on systems without overcommit
2016-02-23 23:48:20 +02:00
Olle Jonsson
540251ab60 Typo 2016-02-23 22:28:24 +01:00
Olle Jonsson
74f93460bc Spec: Avoid a deprecation 2016-02-23 22:25:07 +01:00
Olle Jonsson
b8f7dbaa2e Test case for #327 2016-02-23 22:24:10 +01:00
John Keiser
74655cce06 If Rakefile is an extension, any requires are runtime deps 2016-02-23 12:25:59 -08:00
Petr Korolev
bc13534d88 Merge branch 'hotfix/update-changelog' into develop 2016-02-23 17:46:05 +02:00
Petr Korolev
e27a471fc8 Merge branch 'hotfix/update-changelog' 2016-02-23 17:46:04 +02:00
Petr Korolev
af90816a96 Update changelog for version 1.10.3 2016-02-23 17:46:02 +02:00
Petr Korolev
1f330a3c18 Merge branch 'release/1.10.3' into develop 2016-02-23 17:45:17 +02:00
Petr Korolev
0627b6c701 Merge branch 'release/1.10.3' 2016-02-23 17:45:17 +02:00
Petr Korolev
bfdb5debec Update gemspec to version 1.10.3 2016-02-23 17:45:13 +02:00
Petr Korolev
e871613d62 Fix #329 ? 2016-02-23 17:44:16 +02:00
Petr Korolev
589dc13938 Merge branch 'hotfix/update-changelog' into develop 2016-02-23 17:21:46 +02:00
Petr Korolev
9a842dae26 Merge branch 'hotfix/update-changelog' 2016-02-23 17:21:45 +02:00
Petr Korolev
bf84a6b479 Update changelog for version 1.10.2 2016-02-23 17:21:43 +02:00
Petr Korolev
843470273c Merge branch 'release/1.10.2' into develop 2016-02-23 17:21:01 +02:00
Petr Korolev
1e405b48ff Merge branch 'release/1.10.2' 2016-02-23 17:20:42 +02:00
Petr Korolev
3a7dbf8138 Update gemspec to version 1.10.2 2016-02-23 17:19:38 +02:00
Petr Korolev
857b9e6f53 rubocop updates 2016-02-23 17:19:14 +02:00
Petr Korolev
2691a3ef96 Revert "Rubocop fixes"
This reverts commit fa0267b586.
2016-02-23 17:19:14 +02:00
Petr Korolev
62623ff2dd update changelog 2016-02-23 17:19:14 +02:00
Petr Korolev
a0f28d3393 update gemfile 2016-02-23 17:19:13 +02:00
Petr Korolev
88e9a3ec88 update gemscpec 2016-02-23 17:19:13 +02:00
Petr Korolev
4fcde1eb28 update rakefile 2016-02-23 17:19:13 +02:00
Petr Korolev
b3cfe76702 update rubocop todo 2016-02-23 17:19:13 +02:00
Petr Korolev
6edf473e25 update changelog 2016-02-23 12:45:14 +02:00
Petr Korolev
13315f4c9d Merge branch 'develop' 2016-02-23 12:43:12 +02:00
Petr Korolev
70035737cf Merge branch 'release/1.11.0' into develop 2016-02-23 12:26:50 +02:00
17 changed files with 214 additions and 43 deletions

View File

@@ -18,3 +18,39 @@ Metrics/MethodLength:
Style/FileName: Style/FileName:
Exclude: Exclude:
- 'bin/git-generate-changelog' - 'bin/git-generate-changelog'
#TODOS
# Offense count: 14
Metrics/AbcSize:
Enabled: false
# Offense count: 1
Style/AccessorMethodName:
Enabled: false
# Offense count: 10
Style/Documentation:
Enabled: false
# Offense count: 1
# Configuration parameters: MinBodyLength.
Style/GuardClause:
Enabled: false
# Offense count: 2
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, MinBodyLength, SupportedStyles.
# SupportedStyles: skip_modifier_ifs, always
Style/Next:
Enabled: false
# Offense count: 3
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles, AllowInnerSlashes.
# SupportedStyles: slashes, percent_r, mixed
Style/RegexpLiteral:
Enabled: false
Style/MutableConstant:
Enabled: false

View File

@@ -1,6 +1,6 @@
# This configuration was generated by # This configuration was generated by
# `rubocop --auto-gen-config` # `rubocop --auto-gen-config`
# on 2016-02-23 12:36:44 +0200 using RuboCop version 0.37.2. # on 2016-02-23 17:18:27 +0200 using RuboCop version 0.37.2.
# The point is for the user to remove these configuration records # The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base. # one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new # Note that changes in the inspected code, or installation of new

View File

@@ -1,5 +1,72 @@
# Change Log # Change Log
## [1.11.3](https://github.com/skywinder/github-changelog-generator/tree/1.11.3) (2016-02-25)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.11.2...1.11.3)
**Closed issues:**
- Cannot install gem [\#335](https://github.com/skywinder/github-changelog-generator/issues/335)
## [1.11.2](https://github.com/skywinder/github-changelog-generator/tree/1.11.2) (2016-02-25)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.11.1...1.11.2)
**Fixed bugs:**
- Getting an error on install [\#329](https://github.com/skywinder/github-changelog-generator/issues/329)
**Merged pull requests:**
- Fix installation by not running the specs - which have dependencies [\#337](https://github.com/skywinder/github-changelog-generator/pull/337) ([skywinder](https://github.com/skywinder))
## [1.11.1](https://github.com/skywinder/github-changelog-generator/tree/1.11.1) (2016-02-25)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.11.0...1.11.1)
**Merged pull requests:**
- Add rubocop and rspec as runtime dependencies [\#336](https://github.com/skywinder/github-changelog-generator/pull/336) ([jkeiser](https://github.com/jkeiser))
- \[Refactor\] ParserFile class use Pathname [\#334](https://github.com/skywinder/github-changelog-generator/pull/334) ([olleolleolle](https://github.com/olleolleolle))
- \[Refactor\] Generator\#exclude\_issues\_by\_labels simpler, tested [\#332](https://github.com/skywinder/github-changelog-generator/pull/332) ([olleolleolle](https://github.com/olleolleolle))
## [1.11.0](https://github.com/skywinder/github-changelog-generator/tree/1.11.0) (2016-02-24)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.10.5...1.11.0)
## [1.10.5](https://github.com/skywinder/github-changelog-generator/tree/1.10.5) (2016-02-24)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.10.4...1.10.5)
## [1.10.4](https://github.com/skywinder/github-changelog-generator/tree/1.10.4) (2016-02-24)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.10.3...1.10.4)
**Fixed bugs:**
- Rake and Bundler as runtime deps [\#333](https://github.com/skywinder/github-changelog-generator/pull/333) ([olleolleolle](https://github.com/olleolleolle))
**Merged pull requests:**
- Test case for \#327 [\#331](https://github.com/skywinder/github-changelog-generator/pull/331) ([olleolleolle](https://github.com/olleolleolle))
- Fix crash installing on systems without overcommit [\#330](https://github.com/skywinder/github-changelog-generator/pull/330) ([jkeiser](https://github.com/jkeiser))
## [1.10.3](https://github.com/skywinder/github-changelog-generator/tree/1.10.3) (2016-02-23)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.10.2...1.10.3)
## [1.10.2](https://github.com/skywinder/github-changelog-generator/tree/1.10.2) (2016-02-23)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/v1.11.0...1.10.2)
## [v1.11.0](https://github.com/skywinder/github-changelog-generator/tree/v1.11.0) (2016-02-23)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.10.1...v1.11.0)
**Implemented enhancements:**
- 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))
**Fixed bugs:**
- detect\_since\_tag undefined [\#328](https://github.com/skywinder/github-changelog-generator/issues/328)
**Merged pull requests:**
- Update README.md [\#324](https://github.com/skywinder/github-changelog-generator/pull/324) ([Zearin](https://github.com/Zearin))
## [1.10.1](https://github.com/skywinder/github-changelog-generator/tree/1.10.1) (2016-01-06) ## [1.10.1](https://github.com/skywinder/github-changelog-generator/tree/1.10.1) (2016-01-06)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.10.0...1.10.1) [Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.10.0...1.10.1)

View File

@@ -3,10 +3,11 @@ source "https://rubygems.org"
gemspec gemspec
group :test do group :test do
gem "rspec", "~>3.2" gem "rake"
gem "rubocop", "~>0.31" gem "bundler"
gem "rubocop"
gem "overcommit"
gem "coveralls", "~>0.8", require: false gem "coveralls", "~>0.8", require: false
gem "simplecov", "~>0.10", require: false gem "simplecov", "~>0.10", require: false
gem "codeclimate-test-reporter", "~>0.4" gem "codeclimate-test-reporter", "~>0.4"
gem "overcommit", "~>0.31"
end end

View File

@@ -1,9 +1,14 @@
PATH PATH
remote: . remote: .
specs: specs:
github_changelog_generator (1.11.0) github_changelog_generator (1.11.3)
bundler (>= 1.7)
colorize (~> 0.7) colorize (~> 0.7)
github_api (~> 0.12) github_api (~> 0.12)
overcommit (>= 0.31)
rake (>= 10.0)
rspec (>= 3.2)
rubocop (>= 0.31)
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
@@ -93,14 +98,13 @@ PLATFORMS
ruby ruby
DEPENDENCIES DEPENDENCIES
bundler (~> 1.7) bundler
codeclimate-test-reporter (~> 0.4) codeclimate-test-reporter (~> 0.4)
coveralls (~> 0.8) coveralls (~> 0.8)
github_changelog_generator! github_changelog_generator!
overcommit (~> 0.31) overcommit
rake (~> 10.0) rake
rspec (~> 3.2) rubocop
rubocop (~> 0.31)
simplecov (~> 0.10) simplecov (~> 0.10)
BUNDLED WITH BUNDLED WITH

View File

@@ -1,3 +1,4 @@
require "bundler"
require "bundler/gem_tasks" require "bundler/gem_tasks"
require "rubocop/rake_task" require "rubocop/rake_task"
require "rspec/core/rake_task" require "rspec/core/rake_task"
@@ -8,15 +9,31 @@ require "overcommit"
RuboCop::RakeTask.new RuboCop::RakeTask.new
RSpec::Core::RakeTask.new(:rspec) RSpec::Core::RakeTask.new(:rspec)
task :create_man do |_t| task :copy_man_page_to_manpath do |_t|
os_prefix = "/usr/local" known_manpath_paths = %w(/etc/manpath.config /etc/manpaths)
man_prefix = Pathname("#{os_prefix}/share/man/man1") manpath = known_manpath_paths.find do |f|
man_pages = "man/git-*" path = Pathname(f)
path.file? && path.readable?
end
return unless manpath
writable_man_path = Pathname(manpath).each_line.find do |line|
path = Pathname(line.chomp)
path.directory? && path.writable?
end
return unless writable_man_path
man_prefix = Pathname("#{writable_man_path.chomp}/man1")
man_pages = "man/git-*.1"
Pathname.glob(man_pages) do |path| Pathname.glob(man_pages) do |path|
if path.exist? && man_prefix.exist? && man_prefix.writable?
FileUtils.cp(path, man_prefix + path.basename) FileUtils.cp(path, man_prefix + path.basename)
end end
end end
end
task checks: [:rubocop, :rspec] task checks: [:rubocop, :rspec]
task default: [:checks, :create_man] task default: [:copy_man_page_to_manpath]

View File

@@ -24,10 +24,11 @@ Gem::Specification.new do |spec|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
spec.require_paths = ["lib"] spec.require_paths = ["lib"]
spec.add_runtime_dependency "rake", ">= 10.0"
spec.add_runtime_dependency "bundler", ">= 1.7"
spec.add_runtime_dependency("github_api", ["~> 0.12"]) spec.add_runtime_dependency("github_api", ["~> 0.12"])
spec.add_runtime_dependency("colorize", ["~> 0.7"]) spec.add_runtime_dependency("colorize", ["~> 0.7"])
spec.add_runtime_dependency("overcommit", ">= 0.31")
# Development only spec.add_runtime_dependency("rubocop", ">= 0.31")
spec.add_development_dependency "bundler", "~> 1.7" spec.add_runtime_dependency("rspec", ">= 3.2")
spec.add_development_dependency "rake", "~> 10.0"
end end

View File

@@ -7,11 +7,11 @@ module GitHubChangelogGenerator
class Fetcher class Fetcher
PER_PAGE_NUMBER = 30 PER_PAGE_NUMBER = 30
CHANGELOG_GITHUB_TOKEN = "CHANGELOG_GITHUB_TOKEN".freeze CHANGELOG_GITHUB_TOKEN = "CHANGELOG_GITHUB_TOKEN"
GH_RATE_LIMIT_EXCEEDED_MSG = "Warning: Can't finish operation: GitHub API rate limit exceeded, change log may be " \ GH_RATE_LIMIT_EXCEEDED_MSG = "Warning: Can't finish operation: GitHub API rate limit exceeded, change log may be " \
"missing some issues. You can limit the number of issues fetched using the `--max-issues NUM` argument.".freeze "missing some issues. You can limit the number of issues fetched using the `--max-issues NUM` argument."
NO_TOKEN_PROVIDED = "Warning: No token provided (-t option) and variable $CHANGELOG_GITHUB_TOKEN was not found. " \ 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!".freeze "This script can make only 50 requests to GitHub API per hour without token!"
def initialize(options = {}) def initialize(options = {})
@options = options || {} @options = options || {}

View File

@@ -4,14 +4,13 @@ module GitHubChangelogGenerator
# @param [Array] issues # @param [Array] issues
# @return [Array] filtered array # @return [Array] filtered array
def exclude_issues_by_labels(issues) def exclude_issues_by_labels(issues)
unless @options[:exclude_labels].nil? return issues if !@options[:exclude_labels] || @options[:exclude_labels].empty?
issues = issues.select do |issue|
var = issue.labels.map(&:name) & @options[:exclude_labels] issues.reject do |issue|
!var.any? labels = issue.labels.map(&:name)
(labels & @options[:exclude_labels]).any?
end end
end end
issues
end
# @return [Array] filtered issues accourding milestone # @return [Array] filtered issues accourding milestone
def filter_by_milestone(filtered_issues, tag_name, all_issues) def filter_by_milestone(filtered_issues, tag_name, all_issues)

View File

@@ -1,21 +1,24 @@
require "pathname"
module GitHubChangelogGenerator module GitHubChangelogGenerator
ParserError = Class.new(StandardError) ParserError = Class.new(StandardError)
class ParserFile class ParserFile
FILENAME = ".github_changelog_generator"
def initialize(options) def initialize(options)
@options = options @options = options
end end
# Destructively change @options using data in configured options file.
def parse! def parse!
return unless File.exist?(file) file.each_line { |line| parse_line!(line) } if file.exist?
File.readlines(file).each { |line| parse_line!(line) }
end end
private private
def file def file
@file ||= File.expand_path(@options[:params_file] || ".github_changelog_generator") @file ||= Pathname(File.expand_path(@options[:params_file] || FILENAME))
end end
def parse_line!(line) def parse_line!(line)

View File

@@ -17,7 +17,7 @@ module GitHubChangelogGenerator
between_tags exclude_tags since_tag max_issues between_tags exclude_tags since_tag max_issues
github_site github_endpoint simple_list github_site github_endpoint simple_list
future_release release_branch verbose release_url future_release release_branch verbose release_url
base ).freeze base )
OPTIONS.each do |o| OPTIONS.each do |o|
attr_accessor o.to_sym attr_accessor o.to_sym

View File

@@ -1,3 +1,3 @@
module GitHubChangelogGenerator module GitHubChangelogGenerator
VERSION = "1.11.0".freeze VERSION = "1.11.4"
end end

View File

@@ -0,0 +1 @@
exclude-labels=73a91042-da6f-11e5-9335-1040f38d7f90,7adf83b4-da6f-11e5-ae18-1040f38d7f90

View File

@@ -23,11 +23,11 @@ require "coveralls"
module SpecHelper module SpecHelper
end end
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
Coveralls::SimpleCov::Formatter, Coveralls::SimpleCov::Formatter,
SimpleCov::Formatter::HTMLFormatter, SimpleCov::Formatter::HTMLFormatter,
CodeClimate::TestReporter::Formatter CodeClimate::TestReporter::Formatter
] ])
SimpleCov.start SimpleCov.start
require "github_changelog_generator" require "github_changelog_generator"

View File

@@ -1,8 +1,8 @@
VALID_TOKEN = "0123456789abcdef".freeze VALID_TOKEN = "0123456789abcdef"
INVALID_TOKEN = "0000000000000000".freeze INVALID_TOKEN = "0000000000000000"
DEFAULT_OPTIONS = { user: "skywinder", DEFAULT_OPTIONS = { user: "skywinder",
project: "changelog_test" }.freeze project: "changelog_test" }
def options_with_invalid_token def options_with_invalid_token
options = DEFAULT_OPTIONS options = DEFAULT_OPTIONS

View File

@@ -0,0 +1,28 @@
module GitHubChangelogGenerator
describe Generator do
context "#exclude_issues_by_labels" do
let(:label) { double("the-bad-label", name: "BAD") }
let(:issue) { double("the-issue-to-be-excluded", labels: [label]) }
let(:good_label) { double("a-good-label", name: "GOOD") }
let(:good_issue) { double("an-issue-to-be-kept", labels: [good_label]) }
let(:issues) { [issue, good_issue] }
subject(:generator) { described_class.new(exclude_labels: %w(BAD BOO)) }
it "removes issues with labels in the exclude_label list" do
result = generator.exclude_issues_by_labels(issues)
expect(result).to include(good_issue)
expect(result).not_to include(issue)
end
context "with no option given" do
subject(:generator) { described_class.new }
it "passes everything through when no option given" do
result = generator.exclude_issues_by_labels(issues)
expect(result).to eq(issues)
end
end
end
end
end

View File

@@ -36,6 +36,20 @@ describe GitHubChangelogGenerator::ParserFile do
unreleased: false, unreleased: false,
header: "=== Changelog ===")) header: "=== Changelog ==="))
end end
context "turns exclude-labels into an Array", bug: '#327' do
let(:options) do
{
params_file: "spec/files/github_changelog_params_327"
}
end
it "reads exclude_labels into an Array" do
pending("Related with Bug #327.")
expect { parse.parse! }.to change { options[:exclude_labels] }
.from(nil)
.to(["73a91042-da6f-11e5-9335-1040f38d7f90", "7adf83b4-da6f-11e5-ae18-1040f38d7f90"])
end
end
end end
end end
end end