pr_changelog 0.2.0 → 0.4.1
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 +5 -5
- data/.pr_changelog.json +3 -0
- data/Gemfile.lock +13 -13
- data/README.md +34 -0
- data/lib/pr_changelog/base_commit_strategy.rb +14 -0
- data/lib/pr_changelog/change_line.rb +4 -2
- data/lib/pr_changelog/cli/args.rb +35 -0
- data/lib/pr_changelog/cli.rb +44 -13
- data/lib/pr_changelog/config.rb +5 -0
- data/lib/pr_changelog/git_proxy.rb +8 -0
- data/lib/pr_changelog/merge_commit_strategy.rb +51 -0
- data/lib/pr_changelog/not_released_changes.rb +5 -38
- data/lib/pr_changelog/releases.rb +30 -0
- data/lib/pr_changelog/squash_commit_strategy.rb +56 -0
- data/lib/pr_changelog/version.rb +1 -1
- data/lib/pr_changelog.rb +5 -0
- data/pr_changelog.gemspec +4 -4
- metadata +21 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f70cebf212d0628887eb6e2918877e9aa4afd8fa592161c48101cf772ad90ace
|
4
|
+
data.tar.gz: ef28138fbe7f31cdf8fbd787b11128ae4a106280ddd85ddb5aa9aefce2f8d560
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec11aeb735c949e902f0ccb64b7039254aa806268476412ec067504a8d064b2df03479ef805e5848df7857d0c394baa46ccd3dffa9c43a00fd56c0f7d441ce87
|
7
|
+
data.tar.gz: 0ab4bf6ab95960ff6f614c0c8b956cd8f86b2002b818593d9b338445cfdf81de524f521ef0e3ae1bdf2300aa98f2e78ce3ad12800044648ec472507141bdef1e
|
data/.pr_changelog.json
ADDED
data/Gemfile.lock
CHANGED
@@ -1,28 +1,28 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
pr_changelog (0.
|
4
|
+
pr_changelog (0.4.1)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
coderay (1.1.
|
10
|
-
method_source (0.
|
11
|
-
minitest (5.
|
12
|
-
pry (0.
|
13
|
-
coderay (~> 1.1
|
14
|
-
method_source (~>
|
15
|
-
rake (
|
9
|
+
coderay (1.1.3)
|
10
|
+
method_source (1.0.0)
|
11
|
+
minitest (5.15.0)
|
12
|
+
pry (0.14.1)
|
13
|
+
coderay (~> 1.1)
|
14
|
+
method_source (~> 1.0)
|
15
|
+
rake (13.0.6)
|
16
16
|
|
17
17
|
PLATFORMS
|
18
18
|
ruby
|
19
19
|
|
20
20
|
DEPENDENCIES
|
21
|
-
bundler (~> 2.
|
22
|
-
minitest (~> 5.
|
21
|
+
bundler (~> 2.3.9)
|
22
|
+
minitest (~> 5.15.0)
|
23
23
|
pr_changelog!
|
24
|
-
pry (~> 0.
|
25
|
-
rake (~>
|
24
|
+
pry (~> 0.14.1)
|
25
|
+
rake (~> 13.0.6)
|
26
26
|
|
27
27
|
BUNDLED WITH
|
28
|
-
2.
|
28
|
+
2.3.9
|
data/README.md
CHANGED
@@ -100,6 +100,40 @@ Will produce:
|
|
100
100
|
- #60: 👨💻 Setup hockeyapp for crash reporting
|
101
101
|
```
|
102
102
|
|
103
|
+
It's also possible to not pass any git references if you have sorted git tags. For example, if currently in your project you have the following tags:
|
104
|
+
|
105
|
+
```
|
106
|
+
$ git tag -l
|
107
|
+
0.1.0
|
108
|
+
0.1.1
|
109
|
+
0.2.0
|
110
|
+
0.2.1
|
111
|
+
0.2.2
|
112
|
+
```
|
113
|
+
|
114
|
+
Then you can get the changes from the last release to `'master'` with:
|
115
|
+
|
116
|
+
```
|
117
|
+
$ pr_changelog
|
118
|
+
|
119
|
+
## Changes since 0.2.2 to master
|
120
|
+
|
121
|
+
...
|
122
|
+
```
|
123
|
+
|
124
|
+
If you want to get the changes for the last release (between `0.2.1` and `0.2.2`) you can execute:
|
125
|
+
|
126
|
+
```
|
127
|
+
$ pr_changelog --last-release
|
128
|
+
|
129
|
+
## Changes since 0.2.1 to 0.2.2
|
130
|
+
|
131
|
+
...
|
132
|
+
```
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
|
103
137
|
## Configuration
|
104
138
|
|
105
139
|
Change the emojis or add your own in a `.pr_changelog.json` file:
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PrChangelog
|
4
|
+
# A "protocol"-like base class for the extracting the change commit strategies
|
5
|
+
class BaseCommitStrategy
|
6
|
+
def parsed_commits
|
7
|
+
raise 'Not implemented'
|
8
|
+
end
|
9
|
+
|
10
|
+
def format_commit(_commit_line)
|
11
|
+
raise 'Not implemented'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -5,15 +5,17 @@ module PrChangelog
|
|
5
5
|
class ChangeLine
|
6
6
|
attr_reader :pr_number, :tag, :title
|
7
7
|
|
8
|
+
SKIP_CI_PATTERN = /\s*\[(skip ci)\]\s*/im
|
9
|
+
|
8
10
|
def initialize(pr_number, tag, title)
|
9
11
|
@pr_number = pr_number
|
10
12
|
@tag = tag
|
11
|
-
@title = title
|
13
|
+
@title = title.gsub(SKIP_CI_PATTERN, '')
|
12
14
|
end
|
13
15
|
|
14
16
|
def to_s
|
15
17
|
if tag.nil?
|
16
|
-
"- #{pr_number}: #{
|
18
|
+
"- #{pr_number}: #{formatted_title}"
|
17
19
|
else
|
18
20
|
"- #{pr_number}: #{tag}: #{title.first_lowercase}"
|
19
21
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PrChangelog
|
4
|
+
class CLI
|
5
|
+
# A simple wrapper over ARGV that is passed to the CLI class
|
6
|
+
class Args
|
7
|
+
def initialize(raw_args)
|
8
|
+
@raw_args = raw_args
|
9
|
+
end
|
10
|
+
|
11
|
+
def include?(flag)
|
12
|
+
raw_args.include?(flag)
|
13
|
+
end
|
14
|
+
|
15
|
+
def value_for(flag)
|
16
|
+
return nil unless raw_args.index(flag)
|
17
|
+
|
18
|
+
next_index = raw_args.index(flag) + 1
|
19
|
+
value = raw_args.delete_at(next_index)
|
20
|
+
raw_args.delete(flag)
|
21
|
+
value
|
22
|
+
end
|
23
|
+
|
24
|
+
def include_flags?(flag, flag_variation)
|
25
|
+
include?(flag) || include?(flag_variation)
|
26
|
+
end
|
27
|
+
|
28
|
+
def last(number)
|
29
|
+
raw_args.last(number)
|
30
|
+
end
|
31
|
+
|
32
|
+
attr_reader :raw_args
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/pr_changelog/cli.rb
CHANGED
@@ -9,13 +9,23 @@ module PrChangelog
|
|
9
9
|
[Options]
|
10
10
|
|
11
11
|
-h, --help\tShow this help
|
12
|
+
-l, --last-release\tSets from_reference and to_reference to the last release and the previous one
|
12
13
|
--format FORMAT_NAME\t(default "plain"), options ("pretty", "plain")
|
14
|
+
--strategy STRATEGY_NAME\tIs the strategy used to merge pull requests (default "merge"), options ("merge", "squash").
|
13
15
|
|
14
16
|
[Examples]
|
15
17
|
|
16
|
-
Listing the changes
|
18
|
+
Listing the unreleased changes
|
17
19
|
|
18
20
|
$ pr_changelog
|
21
|
+
|
22
|
+
Listing the changes from the last release
|
23
|
+
|
24
|
+
$ pr_changelog --last-release
|
25
|
+
|
26
|
+
Listing the changes between two given git references
|
27
|
+
|
28
|
+
$ pr_changelog reference_A reference_B
|
19
29
|
HELP
|
20
30
|
|
21
31
|
class InvalidInputs < StandardError
|
@@ -24,29 +34,50 @@ module PrChangelog
|
|
24
34
|
class HelpWanted < StandardError
|
25
35
|
end
|
26
36
|
|
27
|
-
attr_reader :format, :from_reference, :to_reference
|
37
|
+
attr_reader :format, :strategy, :from_reference, :to_reference
|
28
38
|
|
29
|
-
|
30
|
-
|
39
|
+
class CannotDetermineRelease < StandardError
|
40
|
+
end
|
31
41
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
42
|
+
def initialize(raw_args, releases = nil)
|
43
|
+
args = Args.new(raw_args)
|
44
|
+
raise HelpWanted if args.include_flags?('-h', '--help')
|
45
|
+
|
46
|
+
@format = args.value_for('--format') || PrChangelog.config.default_format
|
47
|
+
|
48
|
+
@strategy = args.value_for('--strategy') || PrChangelog.config.default_strategy
|
49
|
+
|
50
|
+
@releases = releases || Releases.new
|
38
51
|
|
39
52
|
@from_reference, @to_reference = args.last(2)
|
53
|
+
@from_reference ||= @releases.last_release
|
40
54
|
@to_reference ||= 'master'
|
41
55
|
|
56
|
+
if args.include_flags?('-l', '--last-release')
|
57
|
+
last_release_pair = @releases.last_release_pair
|
58
|
+
raise CannotDetermineRelease if last_release_pair.length != 2
|
59
|
+
|
60
|
+
@from_reference, @to_reference = last_release_pair
|
61
|
+
end
|
62
|
+
|
42
63
|
return if @from_reference && @to_reference
|
43
64
|
|
44
|
-
|
65
|
+
raise InvalidInputs
|
66
|
+
end
|
67
|
+
|
68
|
+
def build_strategy
|
69
|
+
if strategy == 'merge'
|
70
|
+
MergeCommitStrategy.new(from_reference, to_reference)
|
71
|
+
elsif strategy == 'squash'
|
72
|
+
SquashCommitStrategy.new(from_reference, to_reference)
|
73
|
+
else
|
74
|
+
raise "Strategy '#{strategy}' not recognized."
|
75
|
+
end
|
45
76
|
end
|
46
77
|
|
47
78
|
def run
|
48
|
-
changes = NotReleasedChanges.new(
|
49
|
-
puts "## Changes since #{from_reference} to #{to_reference}\n\n"
|
79
|
+
changes = NotReleasedChanges.new(build_strategy)
|
80
|
+
puts "## Changes since #{from_reference} to #{to_reference} (#{strategy})\n\n"
|
50
81
|
|
51
82
|
if format == 'pretty'
|
52
83
|
puts changes.grouped_formatted_changelog
|
data/lib/pr_changelog/config.rb
CHANGED
@@ -7,6 +7,7 @@ module PrChangelog
|
|
7
7
|
class Config
|
8
8
|
DEFAULTS = {
|
9
9
|
format: 'plain',
|
10
|
+
strategy: 'merge',
|
10
11
|
tags: [
|
11
12
|
{
|
12
13
|
prefix: 'feature',
|
@@ -49,6 +50,10 @@ module PrChangelog
|
|
49
50
|
loaded_data[:format] || DEFAULTS[:format]
|
50
51
|
end
|
51
52
|
|
53
|
+
def default_strategy
|
54
|
+
loaded_data[:strategy] || DEFAULTS[:strategy]
|
55
|
+
end
|
56
|
+
|
52
57
|
def tags
|
53
58
|
loaded_data[:tags] || DEFAULTS[:tags]
|
54
59
|
end
|
@@ -5,8 +5,16 @@ module PrChangelog
|
|
5
5
|
class GitProxy
|
6
6
|
LOG_FORMAT = '- %cn: %s%n%w(80, 2, 2)%b'
|
7
7
|
|
8
|
+
def commits_between(base_ref, current_ref)
|
9
|
+
`git log #{base_ref}..#{current_ref} --format='#{LOG_FORMAT}'`
|
10
|
+
end
|
11
|
+
|
8
12
|
def merge_commits_between(base_ref, current_ref)
|
9
13
|
`git log --merges #{base_ref}..#{current_ref} --format='#{LOG_FORMAT}'`
|
10
14
|
end
|
15
|
+
|
16
|
+
def git_tags_list
|
17
|
+
`git tag --list`.split("\n")
|
18
|
+
end
|
11
19
|
end
|
12
20
|
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PrChangelog
|
4
|
+
# A strategy that given two references will return the filtered commit changes
|
5
|
+
# based on the merge commits
|
6
|
+
class MergeCommitStrategy < BaseCommitStrategy
|
7
|
+
MERGE_COMMIT_FORMAT = /Merge pull request (?<pr_number>#\d+) .*/.freeze
|
8
|
+
TAGGED_TITLE = /^(?<tag>.+):\s*(?<title>.+)$/.freeze
|
9
|
+
|
10
|
+
attr_reader :base_ref, :current_ref, :git_proxy
|
11
|
+
|
12
|
+
def initialize(base_ref, current_ref, git_proxy = GitProxy.new)
|
13
|
+
@base_ref = base_ref
|
14
|
+
@current_ref = current_ref
|
15
|
+
@git_proxy = git_proxy
|
16
|
+
end
|
17
|
+
|
18
|
+
def parsed_commits
|
19
|
+
merge_commits_not_merged_into_base_ref
|
20
|
+
.split("\n- ")
|
21
|
+
.reject(&:empty?)
|
22
|
+
.map { |e| e.split("\n") }
|
23
|
+
.select { |pair| pair.count == 2 }
|
24
|
+
end
|
25
|
+
|
26
|
+
def format_commit(commit_info)
|
27
|
+
github_commit_title = commit_info.first
|
28
|
+
commit_title = commit_info.last
|
29
|
+
|
30
|
+
pr_number = pull_request_number_for(github_commit_title)
|
31
|
+
commit_title.strip!
|
32
|
+
match = commit_title.match(TAGGED_TITLE)
|
33
|
+
if match
|
34
|
+
ChangeLine.new(pr_number, match[:tag], match[:title])
|
35
|
+
else
|
36
|
+
ChangeLine.new(pr_number, nil, commit_title)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def merge_commits_not_merged_into_base_ref
|
43
|
+
git_proxy.merge_commits_between(base_ref, current_ref)
|
44
|
+
end
|
45
|
+
|
46
|
+
def pull_request_number_for(github_commit_title)
|
47
|
+
md = github_commit_title.match(MERGE_COMMIT_FORMAT)
|
48
|
+
md[:pr_number] if md
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -4,15 +4,10 @@ module PrChangelog
|
|
4
4
|
# Calculates a list of not released changes from `base_ref` to `current_ref`
|
5
5
|
# those changes consist of the merged pull-request title
|
6
6
|
class NotReleasedChanges
|
7
|
-
|
8
|
-
TAGGED_TITLE = /^(?<tag>.+):\s*(?<title>.+)$/.freeze
|
7
|
+
attr_reader :commits_strategy
|
9
8
|
|
10
|
-
|
11
|
-
|
12
|
-
def initialize(base_ref, current_ref, git_proxy = GitProxy.new)
|
13
|
-
@base_ref = base_ref
|
14
|
-
@current_ref = current_ref
|
15
|
-
@git_proxy = git_proxy
|
9
|
+
def initialize(commits_strategy)
|
10
|
+
@commits_strategy = commits_strategy
|
16
11
|
end
|
17
12
|
|
18
13
|
def emoji_tags
|
@@ -48,37 +43,9 @@ module PrChangelog
|
|
48
43
|
end
|
49
44
|
|
50
45
|
def parsed_change_list
|
51
|
-
@parsed_change_list ||=
|
52
|
-
|
46
|
+
@parsed_change_list ||= commits_strategy.parsed_commits.map do |commit_info|
|
47
|
+
commits_strategy.format_commit(commit_info)
|
53
48
|
end
|
54
49
|
end
|
55
|
-
|
56
|
-
def parsed_merge_commits
|
57
|
-
merge_commits_not_merged_into_base_ref
|
58
|
-
.split('- ')
|
59
|
-
.reject(&:empty?)
|
60
|
-
.map { |e| e.split("\n") }
|
61
|
-
.select { |pair| pair.count == 2 }
|
62
|
-
end
|
63
|
-
|
64
|
-
def format_merge_commit(github_commit_title, commit_title)
|
65
|
-
pr_number = pull_request_number_for(github_commit_title)
|
66
|
-
commit_title.strip!
|
67
|
-
match = commit_title.match(TAGGED_TITLE)
|
68
|
-
if match
|
69
|
-
ChangeLine.new(pr_number, match[:tag], match[:title])
|
70
|
-
else
|
71
|
-
ChangeLine.new(pr_number, nil, commit_title)
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
def merge_commits_not_merged_into_base_ref
|
76
|
-
git_proxy.merge_commits_between(base_ref, current_ref)
|
77
|
-
end
|
78
|
-
|
79
|
-
def pull_request_number_for(github_commit_title)
|
80
|
-
md = github_commit_title.match(MERGE_COMMIT_FORMAT)
|
81
|
-
md[:pr_number] if md
|
82
|
-
end
|
83
50
|
end
|
84
51
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PrChangelog
|
4
|
+
class Releases
|
5
|
+
attr_reader :git_proxy
|
6
|
+
|
7
|
+
def initialize(git_proxy = GitProxy.new)
|
8
|
+
@git_proxy = git_proxy
|
9
|
+
end
|
10
|
+
|
11
|
+
def last_release
|
12
|
+
sorted_tags.last
|
13
|
+
end
|
14
|
+
|
15
|
+
def last_release_pair
|
16
|
+
sorted_tags.last(2)
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def sorted_tags
|
22
|
+
git_proxy.git_tags_list.sort_by { |tag| tag_value(tag) }
|
23
|
+
end
|
24
|
+
|
25
|
+
def tag_value(tag)
|
26
|
+
components = tag.split('.')
|
27
|
+
components[0].to_i * 100_000 + components[1].to_i * 1_000 + components[2].to_i
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module PrChangelog
|
5
|
+
# A strategy to get the changes between the two references based on the
|
6
|
+
# squash commits
|
7
|
+
class SquashCommitStrategy < BaseCommitStrategy
|
8
|
+
SQUASH_COMMIT_FORMAT = /^GitHub( Enterprise)?: (?<title>.+) \((?<pr_number>#\d+)\)$/.freeze
|
9
|
+
TAGGED_TITLE = /^(?<tag>[^:]+):\s*(?<title>.+)$/.freeze
|
10
|
+
|
11
|
+
attr_reader :base_ref, :current_ref, :git_proxy
|
12
|
+
|
13
|
+
def initialize(base_ref, current_ref, git_proxy = GitProxy.new)
|
14
|
+
@base_ref = base_ref
|
15
|
+
@current_ref = current_ref
|
16
|
+
@git_proxy = git_proxy
|
17
|
+
end
|
18
|
+
|
19
|
+
def parsed_commits
|
20
|
+
commits_not_merged_into_base_ref
|
21
|
+
.split('- ')
|
22
|
+
.reject(&:empty?)
|
23
|
+
.map { |e| e.split("\n") }
|
24
|
+
.map(&:first)
|
25
|
+
.select { |line| line.match(SQUASH_COMMIT_FORMAT) }
|
26
|
+
end
|
27
|
+
|
28
|
+
def format_commit(commit_line)
|
29
|
+
pr_number = pull_request_number_for(commit_line)
|
30
|
+
commit_title = pull_request_title_for(commit_line)
|
31
|
+
commit_title.strip!
|
32
|
+
match = commit_title.match(TAGGED_TITLE)
|
33
|
+
if match
|
34
|
+
ChangeLine.new(pr_number, match[:tag], match[:title])
|
35
|
+
else
|
36
|
+
ChangeLine.new(pr_number, nil, commit_title)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def commits_not_merged_into_base_ref
|
43
|
+
git_proxy.commits_between(base_ref, current_ref)
|
44
|
+
end
|
45
|
+
|
46
|
+
def pull_request_number_for(github_commit_title)
|
47
|
+
md = github_commit_title.match(SQUASH_COMMIT_FORMAT)
|
48
|
+
md[:pr_number] if md
|
49
|
+
end
|
50
|
+
|
51
|
+
def pull_request_title_for(github_commit_title)
|
52
|
+
md = github_commit_title.match(SQUASH_COMMIT_FORMAT)
|
53
|
+
md[:title] if md
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
data/lib/pr_changelog/version.rb
CHANGED
data/lib/pr_changelog.rb
CHANGED
@@ -3,11 +3,16 @@
|
|
3
3
|
require 'pr_changelog/version'
|
4
4
|
require 'pr_changelog/config'
|
5
5
|
require 'pr_changelog/extensions/string'
|
6
|
+
require 'pr_changelog/releases'
|
7
|
+
require 'pr_changelog/cli/args'
|
6
8
|
require 'pr_changelog/cli'
|
7
9
|
require 'pr_changelog/git_proxy'
|
8
10
|
require 'pr_changelog/tag'
|
9
11
|
require 'pr_changelog/change_line'
|
10
12
|
require 'pr_changelog/grouped_changes'
|
13
|
+
require 'pr_changelog/base_commit_strategy'
|
14
|
+
require 'pr_changelog/merge_commit_strategy'
|
15
|
+
require 'pr_changelog/squash_commit_strategy'
|
11
16
|
require 'pr_changelog/not_released_changes'
|
12
17
|
|
13
18
|
# Main module
|
data/pr_changelog.gemspec
CHANGED
@@ -26,8 +26,8 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
27
27
|
spec.require_paths = ['lib']
|
28
28
|
|
29
|
-
spec.add_development_dependency 'bundler', '~> 2.
|
30
|
-
spec.add_development_dependency 'minitest', '~> 5.
|
31
|
-
spec.add_development_dependency 'pry', '~> 0.
|
32
|
-
spec.add_development_dependency 'rake', '~>
|
29
|
+
spec.add_development_dependency 'bundler', '~> 2.3.9'
|
30
|
+
spec.add_development_dependency 'minitest', '~> 5.15.0'
|
31
|
+
spec.add_development_dependency 'pry', '~> 0.14.1'
|
32
|
+
spec.add_development_dependency 'rake', '~> 13.0.6'
|
33
33
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pr_changelog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felipe Espinoza
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-04-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,57 +16,57 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.
|
19
|
+
version: 2.3.9
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.
|
26
|
+
version: 2.3.9
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: minitest
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 5.
|
33
|
+
version: 5.15.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 5.
|
40
|
+
version: 5.15.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: pry
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
47
|
+
version: 0.14.1
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.
|
54
|
+
version: 0.14.1
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 13.0.6
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
69
|
-
description:
|
68
|
+
version: 13.0.6
|
69
|
+
description:
|
70
70
|
email:
|
71
71
|
- felipe.espinoza@schibsted.com
|
72
72
|
executables:
|
@@ -75,6 +75,7 @@ extensions: []
|
|
75
75
|
extra_rdoc_files: []
|
76
76
|
files:
|
77
77
|
- ".gitignore"
|
78
|
+
- ".pr_changelog.json"
|
78
79
|
- ".travis.yml"
|
79
80
|
- CODE_OF_CONDUCT.md
|
80
81
|
- Gemfile
|
@@ -86,13 +87,18 @@ files:
|
|
86
87
|
- bin/setup
|
87
88
|
- exe/pr_changelog
|
88
89
|
- lib/pr_changelog.rb
|
90
|
+
- lib/pr_changelog/base_commit_strategy.rb
|
89
91
|
- lib/pr_changelog/change_line.rb
|
90
92
|
- lib/pr_changelog/cli.rb
|
93
|
+
- lib/pr_changelog/cli/args.rb
|
91
94
|
- lib/pr_changelog/config.rb
|
92
95
|
- lib/pr_changelog/extensions/string.rb
|
93
96
|
- lib/pr_changelog/git_proxy.rb
|
94
97
|
- lib/pr_changelog/grouped_changes.rb
|
98
|
+
- lib/pr_changelog/merge_commit_strategy.rb
|
95
99
|
- lib/pr_changelog/not_released_changes.rb
|
100
|
+
- lib/pr_changelog/releases.rb
|
101
|
+
- lib/pr_changelog/squash_commit_strategy.rb
|
96
102
|
- lib/pr_changelog/tag.rb
|
97
103
|
- lib/pr_changelog/version.rb
|
98
104
|
- pr_changelog.gemspec
|
@@ -100,7 +106,7 @@ homepage: https://github.com/schibsted/pr_changelog
|
|
100
106
|
licenses:
|
101
107
|
- MIT
|
102
108
|
metadata: {}
|
103
|
-
post_install_message:
|
109
|
+
post_install_message:
|
104
110
|
rdoc_options: []
|
105
111
|
require_paths:
|
106
112
|
- lib
|
@@ -115,9 +121,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
121
|
- !ruby/object:Gem::Version
|
116
122
|
version: '0'
|
117
123
|
requirements: []
|
118
|
-
|
119
|
-
|
120
|
-
signing_key:
|
124
|
+
rubygems_version: 3.3.6
|
125
|
+
signing_key:
|
121
126
|
specification_version: 4
|
122
127
|
summary: A script to generate nice changelogs from your merged PRs
|
123
128
|
test_files: []
|