Merge branch 'remove-ee-specific-lines-from-plan-concerns' into 'master'
Remove EE-specific lines from Plan concerns See merge request gitlab-org/gitlab-ce!21448
This commit is contained in:
commit
2dac058de2
7 changed files with 38 additions and 17 deletions
|
@ -61,7 +61,7 @@ module Mentionable
|
|||
cache_key: [self, attr],
|
||||
author: author,
|
||||
skip_project_check: skip_project_check?
|
||||
)
|
||||
).merge(mentionable_params)
|
||||
|
||||
extractor.analyze(text, options)
|
||||
end
|
||||
|
@ -86,12 +86,11 @@ module Mentionable
|
|||
return [] unless matches_cross_reference_regex?
|
||||
|
||||
refs = all_references(current_user)
|
||||
refs = (refs.issues + refs.merge_requests + refs.commits)
|
||||
|
||||
# We're using this method instead of Array diffing because that requires
|
||||
# both of the object's `hash` values to be the same, which may not be the
|
||||
# case for otherwise identical Commit objects.
|
||||
refs.reject { |ref| ref == local_reference }
|
||||
extracted_mentionables(refs).reject { |ref| ref == local_reference }
|
||||
end
|
||||
|
||||
# Uses regex to quickly determine if mentionables might be referenced
|
||||
|
@ -134,6 +133,10 @@ module Mentionable
|
|||
|
||||
private
|
||||
|
||||
def extracted_mentionables(refs)
|
||||
refs.issues + refs.merge_requests + refs.commits
|
||||
end
|
||||
|
||||
# Returns a Hash of changed mentionable fields
|
||||
#
|
||||
# Preference is given to the `changes` Hash, but falls back to
|
||||
|
@ -161,4 +164,8 @@ module Mentionable
|
|||
def skip_project_check?
|
||||
false
|
||||
end
|
||||
|
||||
def mentionable_params
|
||||
{}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,13 +5,19 @@ module Mentionable
|
|||
def self.reference_pattern(link_patterns, issue_pattern)
|
||||
Regexp.union(link_patterns,
|
||||
issue_pattern,
|
||||
Commit.reference_pattern,
|
||||
MergeRequest.reference_pattern)
|
||||
*other_patterns)
|
||||
end
|
||||
|
||||
def self.other_patterns
|
||||
[
|
||||
Commit.reference_pattern,
|
||||
MergeRequest.reference_pattern
|
||||
]
|
||||
end
|
||||
|
||||
DEFAULT_PATTERN = begin
|
||||
issue_pattern = Issue.reference_pattern
|
||||
link_patterns = Regexp.union([Issue, Commit, MergeRequest].map(&:link_reference_pattern))
|
||||
link_patterns = Regexp.union([Issue, Commit, MergeRequest, Epic].map(&:link_reference_pattern).compact)
|
||||
reference_pattern(link_patterns, issue_pattern)
|
||||
end
|
||||
|
||||
|
|
|
@ -3,18 +3,22 @@
|
|||
module ProtectedRefAccess
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
ALLOWED_ACCESS_LEVELS = [
|
||||
Gitlab::Access::MAINTAINER,
|
||||
Gitlab::Access::DEVELOPER,
|
||||
Gitlab::Access::NO_ACCESS
|
||||
].freeze
|
||||
|
||||
HUMAN_ACCESS_LEVELS = {
|
||||
Gitlab::Access::MAINTAINER => "Maintainers".freeze,
|
||||
Gitlab::Access::DEVELOPER => "Developers + Maintainers".freeze,
|
||||
Gitlab::Access::NO_ACCESS => "No one".freeze
|
||||
}.freeze
|
||||
|
||||
class_methods do
|
||||
def allowed_access_levels
|
||||
[
|
||||
Gitlab::Access::MAINTAINER,
|
||||
Gitlab::Access::DEVELOPER,
|
||||
Gitlab::Access::NO_ACCESS
|
||||
]
|
||||
end
|
||||
end
|
||||
|
||||
included do
|
||||
scope :master, -> { maintainer } # @deprecated
|
||||
scope :maintainer, -> { where(access_level: Gitlab::Access::MAINTAINER) }
|
||||
|
@ -26,7 +30,7 @@ module ProtectedRefAccess
|
|||
scope :for_group, -> { where.not(group_id: nil) }
|
||||
|
||||
validates :access_level, presence: true, if: :role?, inclusion: {
|
||||
in: ALLOWED_ACCESS_LEVELS
|
||||
in: self.allowed_access_levels
|
||||
}
|
||||
end
|
||||
|
||||
|
|
|
@ -3,6 +3,10 @@
|
|||
# Placeholder class for model that is implemented in EE
|
||||
# It reserves '&' as a reference prefix, but the table does not exists in CE
|
||||
class Epic < ActiveRecord::Base
|
||||
def self.link_reference_pattern
|
||||
nil
|
||||
end
|
||||
|
||||
def self.reference_prefix
|
||||
'&'
|
||||
end
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
**Valid access levels**
|
||||
|
||||
The access levels are defined in the `ProtectedRefAccess::ALLOWED_ACCESS_LEVELS` constant. Currently, these levels are recognized:
|
||||
The access levels are defined in the `ProtectedRefAccess.allowed_access_levels` method. Currently, these levels are recognized:
|
||||
```
|
||||
0 => No access
|
||||
30 => Developer access
|
||||
|
|
|
@ -44,10 +44,10 @@ module API
|
|||
params do
|
||||
requires :name, type: String, desc: 'The name of the protected branch'
|
||||
optional :push_access_level, type: Integer,
|
||||
values: ProtectedRefAccess::ALLOWED_ACCESS_LEVELS,
|
||||
values: ProtectedBranch::PushAccessLevel.allowed_access_levels,
|
||||
desc: 'Access levels allowed to push (defaults: `40`, maintainer access level)'
|
||||
optional :merge_access_level, type: Integer,
|
||||
values: ProtectedRefAccess::ALLOWED_ACCESS_LEVELS,
|
||||
values: ProtectedBranch::MergeAccessLevel.allowed_access_levels,
|
||||
desc: 'Access levels allowed to merge (defaults: `40`, maintainer access level)'
|
||||
end
|
||||
# rubocop: disable CodeReuse/ActiveRecord
|
||||
|
|
|
@ -47,7 +47,7 @@ module API
|
|||
params do
|
||||
requires :name, type: String, desc: 'The name of the protected tag'
|
||||
optional :create_access_level, type: Integer, default: Gitlab::Access::MAINTAINER,
|
||||
values: ProtectedRefAccess::ALLOWED_ACCESS_LEVELS,
|
||||
values: ProtectedTag::CreateAccessLevel.allowed_access_levels,
|
||||
desc: 'Access levels allowed to create (defaults: `40`, maintainer access level)'
|
||||
end
|
||||
post ':id/protected_tags' do
|
||||
|
|
Loading…
Reference in a new issue