review-rules: extend code to support the forbid commit authors.
This commit is contained in:
parent
53d41696e0
commit
36f3dd22fb
5 changed files with 59 additions and 5 deletions
|
|
@ -51,7 +51,7 @@ PYRAMID_SETTINGS = {}
|
|||
EXTENSIONS = {}
|
||||
|
||||
__version__ = ('.'.join((str(each) for each in VERSION[:3])))
|
||||
__dbversion__ = 77 # defines current db version for migrations
|
||||
__dbversion__ = 78 # defines current db version for migrations
|
||||
__platform__ = platform.system()
|
||||
__license__ = 'AGPLv3, and Commercial License'
|
||||
__author__ = 'RhodeCode GmbH'
|
||||
|
|
|
|||
|
|
@ -261,8 +261,8 @@ class PullrequestsController(BaseRepoController):
|
|||
|
||||
# recalculate reviewers logic, to make sure we can validate this
|
||||
reviewer_rules = get_default_reviewers_data(
|
||||
c.rhodecode_user, source_db_repo, source_commit, target_db_repo,
|
||||
target_commit)
|
||||
c.rhodecode_user.get_instance(), source_db_repo,
|
||||
source_commit, target_db_repo, target_commit)
|
||||
|
||||
reviewers = validate_default_reviewers(
|
||||
_form['review_members'], reviewer_rules)
|
||||
|
|
@ -634,13 +634,18 @@ class PullrequestsController(BaseRepoController):
|
|||
|
||||
c.forbid_adding_reviewers = False
|
||||
c.forbid_author_to_review = False
|
||||
c.forbid_commit_author_to_review = False
|
||||
|
||||
if pull_request_latest.reviewer_data and \
|
||||
'rules' in pull_request_latest.reviewer_data:
|
||||
rules = pull_request_latest.reviewer_data['rules'] or {}
|
||||
try:
|
||||
c.forbid_adding_reviewers = rules.get('forbid_adding_reviewers')
|
||||
c.forbid_author_to_review = rules.get('forbid_author_to_review')
|
||||
c.forbid_adding_reviewers = rules.get(
|
||||
'forbid_adding_reviewers')
|
||||
c.forbid_author_to_review = rules.get(
|
||||
'forbid_author_to_review')
|
||||
c.forbid_commit_author_to_review = rules.get(
|
||||
'forbid_commit_author_to_review')
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
|
|
|||
33
rhodecode/lib/dbmigrate/versions/078_version_4_8_0.py
Normal file
33
rhodecode/lib/dbmigrate/versions/078_version_4_8_0.py
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
import logging
|
||||
|
||||
from sqlalchemy import *
|
||||
from rhodecode.model import meta
|
||||
from rhodecode.lib.dbmigrate.versions import _reset_base, notify
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
"""
|
||||
Upgrade operations go here.
|
||||
Don't create your own engine; bind migrate_engine to your metadata
|
||||
"""
|
||||
_reset_base(migrate_engine)
|
||||
from rhodecode.lib.dbmigrate.schema import db_4_7_0_1 as db
|
||||
|
||||
repo_review_rule_table = db.RepoReviewRule.__table__
|
||||
|
||||
forbid_commit_author_to_review = Column(
|
||||
"forbid_commit_author_to_review", Boolean(), nullable=True, default=False)
|
||||
forbid_commit_author_to_review.create(table=repo_review_rule_table)
|
||||
|
||||
fixups(db, meta.Session)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
meta = MetaData()
|
||||
meta.bind = migrate_engine
|
||||
|
||||
|
||||
def fixups(models, _SESSION):
|
||||
pass
|
||||
|
|
@ -3907,6 +3907,7 @@ class RepoReviewRule(Base, BaseModel):
|
|||
|
||||
use_authors_for_review = Column("use_authors_for_review", Boolean(), nullable=False, default=False)
|
||||
forbid_author_to_review = Column("forbid_author_to_review", Boolean(), nullable=False, default=False)
|
||||
forbid_commit_author_to_review = Column("forbid_commit_author_to_review", Boolean(), nullable=False, default=False)
|
||||
forbid_adding_reviewers = Column("forbid_adding_reviewers", Boolean(), nullable=False, default=False)
|
||||
|
||||
rule_users = relationship('RepoReviewRuleUser')
|
||||
|
|
|
|||
|
|
@ -175,6 +175,21 @@ ReviewersController = function () {
|
|||
_gettext('Author is not allowed to be a reviewer.'))
|
||||
)
|
||||
}
|
||||
if (data.rules.forbid_commit_author_to_review) {
|
||||
|
||||
if (data.rules_data.forbidden_users) {
|
||||
$.each(data.rules_data.forbidden_users, function(index, member_data) {
|
||||
self.forbidReviewUsers.push(member_data)
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
self.$rulesList.append(
|
||||
self.addRule(
|
||||
_gettext('Commit Authors are not allowed to be a reviewer.'))
|
||||
)
|
||||
}
|
||||
|
||||
return self.forbidReviewUsers
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue