diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-09-15 03:09:30 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-09-15 03:09:30 +0300 |
commit | b754c00a217814cdf3fdaaa51e695a44095c0197 (patch) | |
tree | 7844f33736ea727a1e7a48a5e5c4585ab9161f28 /lib/gitlab | |
parent | fb8839a8cd34244622d6361f1a1f7e49265813d1 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab')
-rw-r--r-- | lib/gitlab/changelog/config.rb | 20 | ||||
-rw-r--r-- | lib/gitlab/changelog/release.rb | 1 | ||||
-rw-r--r-- | lib/gitlab/changelog/template.tpl | 2 |
3 files changed, 18 insertions, 5 deletions
diff --git a/lib/gitlab/changelog/config.rb b/lib/gitlab/changelog/config.rb index d25094d9b37..fd5d701b858 100644 --- a/lib/gitlab/changelog/config.rb +++ b/lib/gitlab/changelog/config.rb @@ -34,17 +34,17 @@ module Gitlab '(?:-(?P<pre>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))' \ '?(?:\+(?P<meta>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$' - attr_accessor :date_format, :categories, :template, :tag_regex + attr_accessor :date_format, :categories, :template, :tag_regex, :always_credit_user_ids - def self.from_git(project) + def self.from_git(project, user = nil) if (yaml = project.repository.changelog_config) - from_hash(project, YAML.safe_load(yaml)) + from_hash(project, YAML.safe_load(yaml), user) else new(project) end end - def self.from_hash(project, hash) + def self.from_hash(project, hash, user = nil) config = new(project) if (date = hash['date_format']) @@ -72,6 +72,14 @@ module Gitlab config.tag_regex = regex end + config.always_credit_user_ids = Set.new + if (group_paths = Array(hash['include_groups'])) + group_paths.each do |group_path| + group = Group.find_by_full_path(group_path) + config.always_credit_user_ids.merge(group&.users_ids_of_direct_members&.compact) if user&.can?(:read_group, group) + end + end + config end @@ -92,6 +100,10 @@ module Gitlab @project.team.contributor?(user&.id) end + def always_credit_author?(user) + always_credit_user_ids&.include?(user&.id) || false + end + def category(name) @categories[name] || name end diff --git a/lib/gitlab/changelog/release.rb b/lib/gitlab/changelog/release.rb index c0b6a5c5679..a0d598c7464 100644 --- a/lib/gitlab/changelog/release.rb +++ b/lib/gitlab/changelog/release.rb @@ -42,6 +42,7 @@ module Gitlab 'reference' => author.to_reference(full: true), 'contributor' => @config.contributor?(author) } + entry['author']['credit'] = entry['author']['contributor'] || @config.always_credit_author?(author) end if merge_request diff --git a/lib/gitlab/changelog/template.tpl b/lib/gitlab/changelog/template.tpl index 584939dff51..68c1c624394 100644 --- a/lib/gitlab/changelog/template.tpl +++ b/lib/gitlab/changelog/template.tpl @@ -4,7 +4,7 @@ {% each entries %} - [{{ title }}]({{ commit.reference }})\ -{% if author.contributor %} by {{ author.reference }}{% end %}\ +{% if author.credit %} by {{ author.reference }}{% end %}\ {% if merge_request %} ([merge request]({{ merge_request.reference }})){% end %} {% end %} |