Skip to content
Merged
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
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ jobs:
requiredLabels: auto-merge
# Required at least 2 approves (default: 0)
requiredApprovals: 2
# Required approvals from all requested reviewers
allRequestedReviewersMustApprove: true
# Required these status checks success
requiredStatusChecks: |
build_pr
Expand Down
12 changes: 8 additions & 4 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,22 @@ inputs:
default: 'MERGE'
requiredLabels:
required: false
description: 'Labels need to be present for a pull request.'
description: 'Labels must be present before merging.'
requiredApprovals:
required: false
description: 'Count of required approval'
description: 'Count of approvals must be this number before merging.'
default: '0'
allRequestedReviewersMustApprove:
required: false
description: 'Must get approvals from all requested reviewers before merging.'
default: 'true'
requiredStatusChecks:
required: false
description: 'Multiple status checks required to be success'
description: 'Multiple status checks required to be success.'
default: ''
protectedBranchNamePattern:
required: false
description: 'The name pattern of the base branch that your pull request wants to merge into. Branch protection rule with the same name pattern must be existed. If not set, the default behavior is to find the name pattern of main or master.'
description: 'The name pattern of GitHub branch protection rules to apply. The default behavior is to find the name pattern of main or master. Require personal access token to let this feature work.'
default: ''
runs:
using: 'node12'
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "update-branch",
"version": "3.1.4",
"version": "3.1.5",
"private": true,
"description": "Merge your pull request in order.",
"main": "lib/main.js",
Expand Down
3 changes: 3 additions & 0 deletions src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ async function run(): Promise<void> {
.split('\n')
.filter(s => s !== '')
const requiredApprovals = parseInt(core.getInput('requiredApprovals'))
const allRequestedReviewersMustApprove =
core.getInput('allRequestedReviewersMustApprove') === 'true'
const requiredStatusChecks = core
.getInput('requiredStatusChecks')
.split('\n')
Expand All @@ -51,6 +53,7 @@ async function run(): Promise<void> {
requiredApprovals:
requiredApprovals ||
(branchProtectionRule?.requiredApprovingReviewCount ?? 0),
allRequestedReviewersMustApprove,
requiredStatusChecks: [
...requiredStatusChecks,
...(branchProtectionRule?.requiredStatusCheckContexts ?? [])
Expand Down
1 change: 1 addition & 0 deletions src/type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export interface Condition {
branchNamePattern?: string
requiredApprovals: number
requiredStatusChecks: string[]
allRequestedReviewersMustApprove: boolean
requiredLabels: string[]
}

Expand Down
3 changes: 2 additions & 1 deletion src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ function isSatisfyBasicConditionPr(
!pr.merged &&
pr.mergeable === 'MERGEABLE' &&
pr.reviews.totalCount >= condition.requiredApprovals &&
pr.reviewRequests.totalCount === 0 &&
(pr.reviewRequests.totalCount === 0 ||
!condition.allRequestedReviewersMustApprove) &&
hasLabels(pr, condition) &&
minimatch(pr.baseRefName, condition.branchNamePattern ?? '*')
)
Expand Down