- Install ScriptRunner package.
- In Repository Settings, choose Script Merge Checks
- Add a Conditional merge check
- Add this script in condition
def rule1 = [
owners:["kahbazi"],
path:"ProjectA/**",
branch: "master"
]
def rule2 = [
owners:["kahbazi"],
path:"ProjectB/**",
branch: "master"
]
def rules = [rule1, rule2]
records.any { record->
((String[])record["owners"]).every { mergeRequest.pullRequest.author.user.name != it } &&
mergeRequest.pullRequest.toRef.displayId == record["branch"] &&
pathsMatch('glob:' + record["path"]) &&
!mergeRequest.pullRequest.reviewers.find {it.approved && ((String[])record["owners"]).contains(it.user.name)}
}