Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 14 additions & 5 deletions dev_tools/lib/solidus/release_drafter.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ class ReleaseDrafter
<!-- Please, don't edit manually. The content is automatically generated. -->
TXT

USER_LINK_BUILDER = ->(user) { "https://github.com/#{user}" }

def initialize(github_token:, repository:,
client: Client.new(github_token: github_token, repository: repository))
@repository = repository
Expand All @@ -37,17 +39,20 @@ def call(pr_number:, current_diff_source_tag:, candidate_tag:, branch:)
return if pr_labels.include?(SKIP_LABEL) || matching_labels.empty?

draft = @client.fetch_draft(tag: candidate_tag)
Builder.new(draft: draft, categories: LABELS.values, prepend: NO_EDIT_WARNING, append: full_changelog(current_diff_source_tag, candidate_tag))
Builder.new(
draft: draft,
categories: LABELS.values,
prepend: NO_EDIT_WARNING,
append: full_changelog(current_diff_source_tag, candidate_tag),
number_link_builder: number_link_builder,
user_link_builder: USER_LINK_BUILDER
)
.then { |builder| add_pr(builder, pr, matching_labels) }
.then { |draft| save_release(draft, candidate_tag, branch) }
end

private

def builder(draft, current_diff_source_tag, candidate_tag)
Builder.new(draft: draft, categories: LABELS.values, prepend: NO_EDIT_WARNING, append: full_changelog(current_diff_source_tag, candidate_tag))
end

def add_pr(builder, pr, labels)
builder.add(
number: pr.number,
Expand All @@ -72,5 +77,9 @@ def full_changelog(current_diff_source_tag, candidate_tag)
**Full Changelog**: https://github.com/#{@repository}/compare/#{current_diff_source_tag}...#{candidate_tag}
TXT
end

def number_link_builder
->(number) { "https://github.com/#{@repository}/pull/#{number}" }
end
end
end
10 changes: 6 additions & 4 deletions dev_tools/lib/solidus/release_drafter/builder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,18 @@ class Builder

TITLE_SEPARATOR = SEPARATOR

ENTRY_TEMPLATE = lambda do |title, number, user|
"- #{title} ##{number} (@#{user})"
ENTRY_TEMPLATE = lambda do |title, number, user, number_link_builder, user_link_builder|
"- #{title} [##{number}](#{number_link_builder.(number)}) ([@#{user}](#{user_link_builder.(user)}))"
end.freeze

ENTRY_SEPARATOR = SEPARATOR

SECTION_SEPARATOR = SEPARATOR + SEPARATOR

def initialize(draft:, categories:, prepend: '', append: '')
def initialize(draft:, categories:, number_link_builder:, user_link_builder:, prepend: '', append: '')
@categories = Set[*categories]
@number_link_builder = number_link_builder
@user_link_builder = user_link_builder
@prepend = prepend
@prepend_pattern = /^#{Regexp.quote(@prepend)}/m
@append = append
Expand All @@ -39,7 +41,7 @@ def initialize(draft:, categories:, prepend: '', append: '')
end

def add(title:, number:, user:, categories:)
ENTRY_TEMPLATE.(title, number, user)
ENTRY_TEMPLATE.(title, number, user, @number_link_builder, @user_link_builder)
.then { |entry| add_to_ast(entry, categories) }
.then { |ast| @draft.with(content: unparse(ast)) }
end
Expand Down
Loading