github_changelog_generator 1.15.0 → 1.16.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +32 -54
- data/Rakefile +1 -1
- data/lib/github_changelog_generator/argv_parser.rb +225 -0
- data/lib/github_changelog_generator/generator/entry.rb +10 -10
- data/lib/github_changelog_generator/generator/generator.rb +41 -19
- data/lib/github_changelog_generator/generator/generator_fetcher.rb +5 -9
- data/lib/github_changelog_generator/generator/generator_processor.rb +23 -20
- data/lib/github_changelog_generator/generator/generator_tags.rb +15 -9
- data/lib/github_changelog_generator/generator/section.rb +27 -7
- data/lib/github_changelog_generator/helper.rb +1 -1
- data/lib/github_changelog_generator/octo_fetcher.rb +190 -126
- data/lib/github_changelog_generator/options.rb +4 -0
- data/lib/github_changelog_generator/parser.rb +70 -248
- data/lib/github_changelog_generator/parser_file.rb +29 -14
- data/lib/github_changelog_generator/reader.rb +2 -2
- data/lib/github_changelog_generator/ssl_certs/cacert.pem +851 -1680
- data/lib/github_changelog_generator/task.rb +3 -2
- data/lib/github_changelog_generator/version.rb +1 -1
- data/man/git-generate-changelog.1 +46 -34
- data/man/git-generate-changelog.1.html +39 -31
- data/man/git-generate-changelog.html +19 -19
- data/man/git-generate-changelog.md +39 -31
- data/spec/files/config_example +5 -0
- data/spec/spec_helper.rb +1 -1
- data/spec/unit/generator/entry_spec.rb +37 -31
- data/spec/unit/generator/generator_processor_spec.rb +99 -44
- data/spec/unit/generator/generator_spec.rb +47 -0
- data/spec/unit/generator/generator_tags_spec.rb +46 -3
- data/spec/unit/generator/section_spec.rb +34 -0
- data/spec/unit/octo_fetcher_spec.rb +45 -2
- data/spec/unit/parser_spec.rb +50 -0
- metadata +45 -9
| @@ -0,0 +1,47 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require "github_changelog_generator/generator/generator"
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            RSpec.describe GitHubChangelogGenerator::Generator do
         | 
| 6 | 
            +
              let(:header) { "# Changelog" }
         | 
| 7 | 
            +
              let(:generator) { described_class.new({ header: header }) }
         | 
| 8 | 
            +
              let(:content) do
         | 
| 9 | 
            +
                <<~'BASE'
         | 
| 10 | 
            +
                  ## [1.3.10](https://github.com/xxx/yyy/tree/1.3.10) (2015-03-18)
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                  [Full Changelog](https://github.com/xxx/yyy/compare/1.3.9...1.3.10)
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                  **Fixed bugs:**
         | 
| 15 | 
            +
             | 
| 16 | 
            +
             | 
| 17 | 
            +
                BASE
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
              let(:footer) do
         | 
| 20 | 
            +
                <<~CREDIT
         | 
| 21 | 
            +
                  \\* *This Changelog was automatically generated \
         | 
| 22 | 
            +
                  by [github_changelog_generator]\
         | 
| 23 | 
            +
                  (https://github.com/github-changelog-generator/github-changelog-generator)*
         | 
| 24 | 
            +
                CREDIT
         | 
| 25 | 
            +
              end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
              context "when the given base file has previously appended template messages" do
         | 
| 28 | 
            +
                describe "#remove_old_fixed_string" do
         | 
| 29 | 
            +
                  it "removes old template headers and footers" do
         | 
| 30 | 
            +
                    log = +"#{header}\n\n#{header}\n#{header}#{content}\n\n#{footer}\n#{footer}#{footer}"
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                    expect(generator.send(:remove_old_fixed_string, log)).to eq content
         | 
| 33 | 
            +
                  end
         | 
| 34 | 
            +
                end
         | 
| 35 | 
            +
              end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
              context "when plain contents string was given" do
         | 
| 38 | 
            +
                describe "#insert_fixed_string" do
         | 
| 39 | 
            +
                  it "append template messages at header and footer" do
         | 
| 40 | 
            +
                    log = String.new(content)
         | 
| 41 | 
            +
                    ans = "#{header}\n\n#{content}\n\n#{footer}"
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                    expect(generator.send(:insert_fixed_string, log)).to eq ans
         | 
| 44 | 
            +
                  end
         | 
| 45 | 
            +
                end
         | 
| 46 | 
            +
              end
         | 
| 47 | 
            +
            end
         | 
| @@ -13,6 +13,33 @@ describe GitHubChangelogGenerator::Generator do | |
| 13 13 | 
             
                end
         | 
| 14 14 | 
             
              end
         | 
| 15 15 |  | 
| 16 | 
            +
              describe "#detect_link_tag_time" do
         | 
| 17 | 
            +
                let(:newer_tag) { nil }
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                let(:default_options) { GitHubChangelogGenerator::Parser.default_options.merge(verbose: false) }
         | 
| 20 | 
            +
                let(:options) do
         | 
| 21 | 
            +
                  {
         | 
| 22 | 
            +
                    future_release: "2.0.0"
         | 
| 23 | 
            +
                  }
         | 
| 24 | 
            +
                end
         | 
| 25 | 
            +
                let(:generator) { described_class.new(default_options.merge(options)) }
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                subject do
         | 
| 28 | 
            +
                  generator.detect_link_tag_time(newer_tag)
         | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                context "When the local date is not the same as the UTC date" do
         | 
| 32 | 
            +
                  before do
         | 
| 33 | 
            +
                    # 2020-12-27T17:00:00-10:00 is 2020-12-28T03:00:00Z.
         | 
| 34 | 
            +
                    # GitHub API date & time use UTC, so this instant when converted as a
         | 
| 35 | 
            +
                    # date should be 2020-12-28.
         | 
| 36 | 
            +
                    expect(Time).to receive(:new).and_return(Time.new(2020, 12, 27, 17, 0, 0, "-10:00"))
         | 
| 37 | 
            +
                  end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                  it { is_expected.to eq(["2.0.0", "2.0.0", Time.gm(2020, 12, 28, 3)]) }
         | 
| 40 | 
            +
                end
         | 
| 41 | 
            +
              end
         | 
| 42 | 
            +
             | 
| 16 43 | 
             
              describe "#tag_section_mapping" do
         | 
| 17 44 | 
             
                let(:all_tags) { tags_from_strings(%w[8 7 6 5 4 3 2 1]) }
         | 
| 18 45 | 
             
                let(:sorted_tags) { all_tags }
         | 
| @@ -57,10 +84,10 @@ describe GitHubChangelogGenerator::Generator do | |
| 57 84 | 
             
                shared_examples_for "a changelog with some exclusions" do
         | 
| 58 85 | 
             
                  let(:expected_mapping) do
         | 
| 59 86 | 
             
                    {
         | 
| 60 | 
            -
                      tag_with_name("8") => [tag_with_name(" | 
| 61 | 
            -
                      tag_with_name("6") => [tag_with_name(" | 
| 87 | 
            +
                      tag_with_name("8") => [tag_with_name("6"), tag_with_name("8")],
         | 
| 88 | 
            +
                      tag_with_name("6") => [tag_with_name("4"), tag_with_name("6")],
         | 
| 62 89 | 
             
                      tag_with_name("4") => [tag_with_name("3"), tag_with_name("4")],
         | 
| 63 | 
            -
                      tag_with_name("3") => [tag_with_name(" | 
| 90 | 
            +
                      tag_with_name("3") => [tag_with_name("1"), tag_with_name("3")],
         | 
| 64 91 | 
             
                      tag_with_name("1") => [nil, tag_with_name("1")]
         | 
| 65 92 | 
             
                    }
         | 
| 66 93 | 
             
                  end
         | 
| @@ -130,6 +157,22 @@ describe GitHubChangelogGenerator::Generator do | |
| 130 157 | 
             
                end
         | 
| 131 158 | 
             
              end
         | 
| 132 159 |  | 
| 160 | 
            +
              describe "#filter_included_tags_regex" do
         | 
| 161 | 
            +
                subject { generator.filter_included_tags(tags_from_strings(%w[1 2 3])) }
         | 
| 162 | 
            +
             | 
| 163 | 
            +
                context "with matching regex" do
         | 
| 164 | 
            +
                  let(:generator) { GitHubChangelogGenerator::Generator.new(include_tags_regex: "[23]") }
         | 
| 165 | 
            +
                  it { is_expected.to be_a Array }
         | 
| 166 | 
            +
                  it { is_expected.to match_array(tags_from_strings(%w[2 3])) }
         | 
| 167 | 
            +
                end
         | 
| 168 | 
            +
             | 
| 169 | 
            +
                context "with non-matching regex" do
         | 
| 170 | 
            +
                  let(:generator) { GitHubChangelogGenerator::Generator.new(include_tags_regex: "[45]") }
         | 
| 171 | 
            +
                  it { is_expected.to be_a Array }
         | 
| 172 | 
            +
                  it { is_expected.to match_array(tags_from_strings(%w[])) }
         | 
| 173 | 
            +
                end
         | 
| 174 | 
            +
              end
         | 
| 175 | 
            +
             | 
| 133 176 | 
             
              describe "#filter_excluded_tags" do
         | 
| 134 177 | 
             
                subject { generator.filter_excluded_tags(tags_from_strings(%w[1 2 3])) }
         | 
| 135 178 |  | 
| @@ -0,0 +1,34 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module GitHubChangelogGenerator
         | 
| 4 | 
            +
              RSpec.describe Section do
         | 
| 5 | 
            +
                let(:options) { {} }
         | 
| 6 | 
            +
                subject(:section) { described_class.new(options) }
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                describe "#encapsulate_string" do
         | 
| 9 | 
            +
                  let(:string) { "" }
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                  context "with the empty string" do
         | 
| 12 | 
            +
                    it "returns the string" do
         | 
| 13 | 
            +
                      expect(section.send(:encapsulate_string, string)).to eq string
         | 
| 14 | 
            +
                    end
         | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                  context "with a string with an escape-needing character in it" do
         | 
| 18 | 
            +
                    let(:string) { "<Inside> and outside" }
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                    it "returns the string escaped" do
         | 
| 21 | 
            +
                      expect(section.send(:encapsulate_string, string)).to eq '\\<Inside\\> and outside'
         | 
| 22 | 
            +
                    end
         | 
| 23 | 
            +
                  end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                  context "with a backticked string with an escape-needing character in it" do
         | 
| 26 | 
            +
                    let(:string) { 'back `\` slash' }
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                    it "returns the string" do
         | 
| 29 | 
            +
                      expect(section.send(:encapsulate_string, string)).to eq 'back `\` slash'
         | 
| 30 | 
            +
                    end
         | 
| 31 | 
            +
                  end
         | 
| 32 | 
            +
                end
         | 
| 33 | 
            +
              end
         | 
| 34 | 
            +
            end
         | 
| @@ -85,6 +85,49 @@ describe GitHubChangelogGenerator::OctoFetcher do | |
| 85 85 | 
             
                end
         | 
| 86 86 | 
             
              end
         | 
| 87 87 |  | 
| 88 | 
            +
              describe "#fetch_tag_shas" do
         | 
| 89 | 
            +
                let(:commits) do
         | 
| 90 | 
            +
                  [
         | 
| 91 | 
            +
                    { sha: "0", parents: [{ sha: "1" }, { sha: "6" }] },
         | 
| 92 | 
            +
                    { sha: "1", parents: [{ sha: "2" }] },
         | 
| 93 | 
            +
                    { sha: "2", parents: [{ sha: "3" }] },
         | 
| 94 | 
            +
                    { sha: "3", parents: [{ sha: "4" }] },
         | 
| 95 | 
            +
                    { sha: "4", parents: [{ sha: "5" }] },
         | 
| 96 | 
            +
                    { sha: "5", parents: [] },
         | 
| 97 | 
            +
                    { sha: "6", parents: [{ sha: "7" }, { sha: "8" }] },
         | 
| 98 | 
            +
                    { sha: "7", parents: [{ sha: "9" }, { sha: "10" }] },
         | 
| 99 | 
            +
                    { sha: "8", parents: [{ sha: "11" }, { sha: "12" }] },
         | 
| 100 | 
            +
                    { sha: "9", parents: [] },
         | 
| 101 | 
            +
                    { sha: "10", parents: [] },
         | 
| 102 | 
            +
                    { sha: "11", parents: [] },
         | 
| 103 | 
            +
                    { sha: "12", parents: [] }
         | 
| 104 | 
            +
                  ]
         | 
| 105 | 
            +
                end
         | 
| 106 | 
            +
             | 
| 107 | 
            +
                let(:tag0) { { "name" => "tag-0", "commit" => { "sha" => "0" } } }
         | 
| 108 | 
            +
                let(:tag1) { { "name" => "tag-1", "commit" => { "sha" => "1" } } }
         | 
| 109 | 
            +
                let(:tag6) { { "name" => "tag-6", "commit" => { "sha" => "6" } } }
         | 
| 110 | 
            +
             | 
| 111 | 
            +
                before do
         | 
| 112 | 
            +
                  allow(fetcher).to receive(:commits).and_return(commits)
         | 
| 113 | 
            +
                end
         | 
| 114 | 
            +
             | 
| 115 | 
            +
                it "should find all shas with single parents" do
         | 
| 116 | 
            +
                  fetcher.fetch_tag_shas([tag1])
         | 
| 117 | 
            +
                  expect(tag1["shas_in_tag"]).to eq(Set.new(%w[1 2 3 4 5]))
         | 
| 118 | 
            +
                end
         | 
| 119 | 
            +
             | 
| 120 | 
            +
                it "should find all shas with multiple parents" do
         | 
| 121 | 
            +
                  fetcher.fetch_tag_shas([tag6])
         | 
| 122 | 
            +
                  expect(tag6["shas_in_tag"]).to eq(Set.new(%w[6 7 8 9 10 11 12]))
         | 
| 123 | 
            +
                end
         | 
| 124 | 
            +
             | 
| 125 | 
            +
                it "should find all shas with mixed parents" do
         | 
| 126 | 
            +
                  fetcher.fetch_tag_shas([tag0])
         | 
| 127 | 
            +
                  expect(tag0["shas_in_tag"]).to eq(Set.new(%w[0 1 2 3 4 5 6 7 8 9 10 11 12]))
         | 
| 128 | 
            +
                end
         | 
| 129 | 
            +
              end
         | 
| 130 | 
            +
             | 
| 88 131 | 
             
              describe "#github_fetch_tags" do
         | 
| 89 132 | 
             
                context "when wrong token provided", :vcr do
         | 
| 90 133 | 
             
                  let(:options) do
         | 
| @@ -207,7 +250,7 @@ describe GitHubChangelogGenerator::OctoFetcher do | |
| 207 250 |  | 
| 208 251 | 
             
                    # Convert times to Time
         | 
| 209 252 | 
             
                    expected_issue.each_pair do |k, v|
         | 
| 210 | 
            -
                      expected_issue[k] = Time.parse(v) if v.to_s | 
| 253 | 
            +
                      expected_issue[k] = Time.parse(v) if v.to_s.start_with?("2015-")
         | 
| 211 254 | 
             
                    end
         | 
| 212 255 |  | 
| 213 256 | 
             
                    expect(issues.first).to eq(expected_issue)
         | 
| @@ -269,7 +312,7 @@ describe GitHubChangelogGenerator::OctoFetcher do | |
| 269 312 |  | 
| 270 313 | 
             
                    # Convert times to Time
         | 
| 271 314 | 
             
                    expected_pr.each_pair do |k, v|
         | 
| 272 | 
            -
                      expected_pr[k] = Time.parse(v) if v.to_s | 
| 315 | 
            +
                      expected_pr[k] = Time.parse(v) if v.to_s.start_with?("2016-01")
         | 
| 273 316 | 
             
                    end
         | 
| 274 317 |  | 
| 275 318 | 
             
                    expect(pull_requests.first).to eq(expected_pr)
         | 
    
        data/spec/unit/parser_spec.rb
    CHANGED
    
    | @@ -1,4 +1,54 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe GitHubChangelogGenerator::Parser do
         | 
| 4 | 
            +
              let(:argv) { [] }
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              before do
         | 
| 7 | 
            +
                # Calling abort will abort the test run, allow calls to abort to not accidentaly get positive falses
         | 
| 8 | 
            +
                allow(Kernel).to receive(:abort)
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              describe ".parse_options" do
         | 
| 12 | 
            +
                context "when required arguments are given" do
         | 
| 13 | 
            +
                  let(:argv) { ["--user", "the user", "--project", "the_project"] }
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  it "executes and prints the configuration" do
         | 
| 16 | 
            +
                    expect { described_class.parse_options(argv) }.to output(/config_file=>".github_changelog_generator"/).to_stdout
         | 
| 17 | 
            +
                  end
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                context "when --config-file is overridden to something that is not there" do
         | 
| 21 | 
            +
                  let(:argv) { ["--config-file", "does_not_exist"] }
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                  it "aborts the execution" do
         | 
| 24 | 
            +
                    expect(Kernel).to receive(:abort)
         | 
| 25 | 
            +
                    expect { described_class.parse_options(argv) }.to output(/Configure which user and project to work on./).to_stderr
         | 
| 26 | 
            +
                  end
         | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                context "when an option with incorrect type is given" do
         | 
| 30 | 
            +
                  let(:argv) { ["--max-issues", "X"] }
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                  it "aborts the execution with error message from parser" do
         | 
| 33 | 
            +
                    expect(Kernel).to receive(:abort)
         | 
| 34 | 
            +
                    expect { described_class.parse_options(argv) }.to output(/invalid argument: --max-issues X/).to_stderr
         | 
| 35 | 
            +
                  end
         | 
| 36 | 
            +
                end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                context "when path to configuration file is given" do
         | 
| 39 | 
            +
                  let(:argv) { ["--config-file", File.join(__dir__, "..", "files", "config_example")] }
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                  it "uses the values from the configuration file" do
         | 
| 42 | 
            +
                    expect { described_class.parse_options(argv) }.to output(/spec_project/).to_stdout
         | 
| 43 | 
            +
                  end
         | 
| 44 | 
            +
                end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                context "when configuration file and parameters are given" do
         | 
| 47 | 
            +
                  let(:argv) { ["--project", "stronger_project", "--config-file", File.join(__dir__, "..", "files", "config_example")] }
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                  it "uses the values from the arguments" do
         | 
| 50 | 
            +
                    expect { described_class.parse_options(argv) }.to output(/stronger_project/).to_stdout
         | 
| 51 | 
            +
                  end
         | 
| 52 | 
            +
                end
         | 
| 53 | 
            +
              end
         | 
| 4 54 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,15 +1,16 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: github_changelog_generator
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.16.3
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Petr Korolev
         | 
| 8 8 | 
             
            - Olle Jonsson
         | 
| 9 | 
            -
             | 
| 9 | 
            +
            - Marco Ferrari
         | 
| 10 | 
            +
            autorequire:
         | 
| 10 11 | 
             
            bindir: bin
         | 
| 11 12 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 13 | 
            +
            date: 2021-05-14 00:00:00.000000000 Z
         | 
| 13 14 | 
             
            dependencies:
         | 
| 14 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 16 | 
             
              name: activesupport
         | 
| @@ -25,6 +26,34 @@ dependencies: | |
| 25 26 | 
             
                - - ">="
         | 
| 26 27 | 
             
                  - !ruby/object:Gem::Version
         | 
| 27 28 | 
             
                    version: '0'
         | 
| 29 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 30 | 
            +
              name: async
         | 
| 31 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 32 | 
            +
                requirements:
         | 
| 33 | 
            +
                - - ">="
         | 
| 34 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 35 | 
            +
                    version: 1.25.0
         | 
| 36 | 
            +
              type: :runtime
         | 
| 37 | 
            +
              prerelease: false
         | 
| 38 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 39 | 
            +
                requirements:
         | 
| 40 | 
            +
                - - ">="
         | 
| 41 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 42 | 
            +
                    version: 1.25.0
         | 
| 43 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 44 | 
            +
              name: async-http-faraday
         | 
| 45 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 46 | 
            +
                requirements:
         | 
| 47 | 
            +
                - - ">="
         | 
| 48 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 49 | 
            +
                    version: '0'
         | 
| 50 | 
            +
              type: :runtime
         | 
| 51 | 
            +
              prerelease: false
         | 
| 52 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 53 | 
            +
                requirements:
         | 
| 54 | 
            +
                - - ">="
         | 
| 55 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 56 | 
            +
                    version: '0'
         | 
| 28 57 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 29 58 | 
             
              name: faraday-http-cache
         | 
| 30 59 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -111,7 +140,7 @@ dependencies: | |
| 111 140 | 
             
                    version: '3.0'
         | 
| 112 141 | 
             
            description: Changelog generation has never been so easy. Fully automate changelog
         | 
| 113 142 | 
             
              generation - this gem generate changelog file based on tags, issues and merged pull
         | 
| 114 | 
            -
              requests from  | 
| 143 | 
            +
              requests from GitHub.
         | 
| 115 144 | 
             
            email: sky4winder+github_changelog_generator@gmail.com
         | 
| 116 145 | 
             
            executables:
         | 
| 117 146 | 
             
            - git-generate-changelog
         | 
| @@ -125,6 +154,7 @@ files: | |
| 125 154 | 
             
            - bin/git-generate-changelog
         | 
| 126 155 | 
             
            - bin/github_changelog_generator
         | 
| 127 156 | 
             
            - lib/github_changelog_generator.rb
         | 
| 157 | 
            +
            - lib/github_changelog_generator/argv_parser.rb
         | 
| 128 158 | 
             
            - lib/github_changelog_generator/generator/entry.rb
         | 
| 129 159 | 
             
            - lib/github_changelog_generator/generator/generator.rb
         | 
| 130 160 | 
             
            - lib/github_changelog_generator/generator/generator_fetcher.rb
         | 
| @@ -146,12 +176,15 @@ files: | |
| 146 176 | 
             
            - man/git-generate-changelog.md
         | 
| 147 177 | 
             
            - spec/files/angular.js.md
         | 
| 148 178 | 
             
            - spec/files/bundler.md
         | 
| 179 | 
            +
            - spec/files/config_example
         | 
| 149 180 | 
             
            - spec/files/github-changelog-generator.md
         | 
| 150 181 | 
             
            - spec/install_gem_in_bundler.gemfile
         | 
| 151 182 | 
             
            - spec/spec_helper.rb
         | 
| 152 183 | 
             
            - spec/unit/generator/entry_spec.rb
         | 
| 153 184 | 
             
            - spec/unit/generator/generator_processor_spec.rb
         | 
| 185 | 
            +
            - spec/unit/generator/generator_spec.rb
         | 
| 154 186 | 
             
            - spec/unit/generator/generator_tags_spec.rb
         | 
| 187 | 
            +
            - spec/unit/generator/section_spec.rb
         | 
| 155 188 | 
             
            - spec/unit/octo_fetcher_spec.rb
         | 
| 156 189 | 
             
            - spec/unit/options_spec.rb
         | 
| 157 190 | 
             
            - spec/unit/parse_file_spec.rb
         | 
| @@ -183,7 +216,7 @@ homepage: https://github.com/github-changelog-generator/Github-Changelog-Generat | |
| 183 216 | 
             
            licenses:
         | 
| 184 217 | 
             
            - MIT
         | 
| 185 218 | 
             
            metadata: {}
         | 
| 186 | 
            -
            post_install_message: | 
| 219 | 
            +
            post_install_message:
         | 
| 187 220 | 
             
            rdoc_options: []
         | 
| 188 221 | 
             
            require_paths:
         | 
| 189 222 | 
             
            - lib
         | 
| @@ -191,27 +224,30 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 191 224 | 
             
              requirements:
         | 
| 192 225 | 
             
              - - ">="
         | 
| 193 226 | 
             
                - !ruby/object:Gem::Version
         | 
| 194 | 
            -
                  version: 2. | 
| 227 | 
            +
                  version: 2.5.0
         | 
| 195 228 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 196 229 | 
             
              requirements:
         | 
| 197 230 | 
             
              - - ">="
         | 
| 198 231 | 
             
                - !ruby/object:Gem::Version
         | 
| 199 232 | 
             
                  version: '0'
         | 
| 200 233 | 
             
            requirements: []
         | 
| 201 | 
            -
            rubygems_version: 3. | 
| 202 | 
            -
            signing_key: | 
| 234 | 
            +
            rubygems_version: 3.2.7
         | 
| 235 | 
            +
            signing_key:
         | 
| 203 236 | 
             
            specification_version: 4
         | 
| 204 | 
            -
            summary: Script | 
| 237 | 
            +
            summary: Script that automatically generates a changelog from your tags, issues, labels
         | 
| 205 238 | 
             
              and pull requests.
         | 
| 206 239 | 
             
            test_files:
         | 
| 207 240 | 
             
            - spec/files/angular.js.md
         | 
| 208 241 | 
             
            - spec/files/bundler.md
         | 
| 242 | 
            +
            - spec/files/config_example
         | 
| 209 243 | 
             
            - spec/files/github-changelog-generator.md
         | 
| 210 244 | 
             
            - spec/install_gem_in_bundler.gemfile
         | 
| 211 245 | 
             
            - spec/spec_helper.rb
         | 
| 212 246 | 
             
            - spec/unit/generator/entry_spec.rb
         | 
| 213 247 | 
             
            - spec/unit/generator/generator_processor_spec.rb
         | 
| 248 | 
            +
            - spec/unit/generator/generator_spec.rb
         | 
| 214 249 | 
             
            - spec/unit/generator/generator_tags_spec.rb
         | 
| 250 | 
            +
            - spec/unit/generator/section_spec.rb
         | 
| 215 251 | 
             
            - spec/unit/octo_fetcher_spec.rb
         | 
| 216 252 | 
             
            - spec/unit/options_spec.rb
         | 
| 217 253 | 
             
            - spec/unit/parse_file_spec.rb
         |