Add option to require Github conversation resolution
Signed-off-by: Kyle Leonhard <kyle.leonhard@snowflake.com>
This commit is contained in:
@@ -207,6 +207,7 @@ export function createGithubRepoCreateAction(options: {
|
||||
| undefined;
|
||||
requiredStatusCheckContexts?: string[] | undefined;
|
||||
requireBranchesToBeUpToDate?: boolean | undefined;
|
||||
requiredConversationResolution?: boolean | undefined;
|
||||
repoVisibility?: 'internal' | 'private' | 'public' | undefined;
|
||||
collaborators?:
|
||||
| (
|
||||
@@ -253,6 +254,7 @@ export function createGithubRepoPushAction(options: {
|
||||
| undefined;
|
||||
requiredStatusCheckContexts?: string[] | undefined;
|
||||
requireBranchesToBeUpToDate?: boolean | undefined;
|
||||
requiredConversationResolution?: boolean | undefined;
|
||||
sourcePath?: string | undefined;
|
||||
token?: string | undefined;
|
||||
}>;
|
||||
@@ -392,6 +394,7 @@ export function createPublishGithubAction(options: {
|
||||
dismissStaleReviews?: boolean | undefined;
|
||||
requiredStatusCheckContexts?: string[] | undefined;
|
||||
requireBranchesToBeUpToDate?: boolean | undefined;
|
||||
requiredConversationResolution?: boolean | undefined;
|
||||
repoVisibility?: 'internal' | 'private' | 'public' | undefined;
|
||||
collaborators?:
|
||||
| (
|
||||
|
||||
@@ -59,6 +59,7 @@ export function createGithubRepoCreateAction(options: {
|
||||
};
|
||||
requiredStatusCheckContexts?: string[];
|
||||
requireBranchesToBeUpToDate?: boolean;
|
||||
requiredConversationResolution?: boolean;
|
||||
repoVisibility?: 'private' | 'internal' | 'public';
|
||||
collaborators?: Array<
|
||||
| {
|
||||
@@ -93,6 +94,8 @@ export function createGithubRepoCreateAction(options: {
|
||||
bypassPullRequestAllowances: inputProps.bypassPullRequestAllowances,
|
||||
requiredStatusCheckContexts: inputProps.requiredStatusCheckContexts,
|
||||
requireBranchesToBeUpToDate: inputProps.requireBranchesToBeUpToDate,
|
||||
requiredConversationResolution:
|
||||
inputProps.requiredConversationResolution,
|
||||
repoVisibility: inputProps.repoVisibility,
|
||||
deleteBranchOnMerge: inputProps.deleteBranchOnMerge,
|
||||
allowMergeCommit: inputProps.allowMergeCommit,
|
||||
|
||||
+15
@@ -284,6 +284,7 @@ describe('github:repo:push', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -305,6 +306,7 @@ describe('github:repo:push', () => {
|
||||
requireCodeOwnerReviews: true,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -326,6 +328,7 @@ describe('github:repo:push', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -350,6 +353,7 @@ describe('github:repo:push', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -371,6 +375,7 @@ describe('github:repo:push', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -392,6 +397,7 @@ describe('github:repo:push', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: false,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -416,6 +422,7 @@ describe('github:repo:push', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -426,6 +433,7 @@ describe('github:repo:push', () => {
|
||||
...mockContext.input,
|
||||
requiredStatusCheckContexts: ['statusCheck'],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -438,6 +446,7 @@ describe('github:repo:push', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: ['statusCheck'],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -460,6 +469,7 @@ describe('github:repo:push', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: ['statusCheck'],
|
||||
requireBranchesToBeUpToDate: false,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -470,6 +480,7 @@ describe('github:repo:push', () => {
|
||||
...mockContext.input,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -482,6 +493,7 @@ describe('github:repo:push', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -525,6 +537,7 @@ describe('github:repo:push', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -546,6 +559,7 @@ describe('github:repo:push', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: true,
|
||||
});
|
||||
@@ -567,6 +581,7 @@ describe('github:repo:push', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
|
||||
@@ -59,6 +59,7 @@ export function createGithubRepoPushAction(options: {
|
||||
| undefined;
|
||||
requiredStatusCheckContexts?: string[];
|
||||
requireBranchesToBeUpToDate?: boolean;
|
||||
requiredConversationResolution?: boolean;
|
||||
sourcePath?: string;
|
||||
token?: string;
|
||||
}>({
|
||||
@@ -76,6 +77,8 @@ export function createGithubRepoPushAction(options: {
|
||||
requiredStatusCheckContexts: inputProps.requiredStatusCheckContexts,
|
||||
bypassPullRequestAllowances: inputProps.bypassPullRequestAllowances,
|
||||
requireBranchesToBeUpToDate: inputProps.requireBranchesToBeUpToDate,
|
||||
requiredConversationResolution:
|
||||
inputProps.requiredConversationResolution,
|
||||
defaultBranch: inputProps.defaultBranch,
|
||||
protectDefaultBranch: inputProps.protectDefaultBranch,
|
||||
protectEnforceAdmins: inputProps.protectEnforceAdmins,
|
||||
@@ -108,6 +111,7 @@ export function createGithubRepoPushAction(options: {
|
||||
bypassPullRequestAllowances,
|
||||
requiredStatusCheckContexts = [],
|
||||
requireBranchesToBeUpToDate = true,
|
||||
requiredConversationResolution = false,
|
||||
token: providedToken,
|
||||
} = ctx.input;
|
||||
|
||||
@@ -146,6 +150,7 @@ export function createGithubRepoPushAction(options: {
|
||||
bypassPullRequestAllowances,
|
||||
requiredStatusCheckContexts,
|
||||
requireBranchesToBeUpToDate,
|
||||
requiredConversationResolution,
|
||||
config,
|
||||
ctx.logger,
|
||||
gitCommitMessage,
|
||||
|
||||
@@ -258,6 +258,7 @@ export async function initRepoPushAndProtect(
|
||||
| undefined,
|
||||
requiredStatusCheckContexts: string[],
|
||||
requireBranchesToBeUpToDate: boolean,
|
||||
requiredConversationResolution: boolean,
|
||||
config: Config,
|
||||
logger: any,
|
||||
gitCommitMessage?: string,
|
||||
@@ -303,6 +304,7 @@ export async function initRepoPushAndProtect(
|
||||
requireCodeOwnerReviews,
|
||||
requiredStatusCheckContexts,
|
||||
requireBranchesToBeUpToDate,
|
||||
requiredConversationResolution,
|
||||
enforceAdmins: protectEnforceAdmins,
|
||||
dismissStaleReviews: dismissStaleReviews,
|
||||
});
|
||||
|
||||
@@ -58,6 +58,12 @@ const requireBranchesToBeUpToDate = {
|
||||
description: `Require branches to be up to date before merging. The default value is 'true'`,
|
||||
type: 'boolean',
|
||||
};
|
||||
const requiredConversationResolution = {
|
||||
title: 'Required Conversation Resolution',
|
||||
description:
|
||||
'Requires all conversations on code to be resolved before a pull request can be merged into this branch',
|
||||
type: 'boolean',
|
||||
};
|
||||
const repoVisibility = {
|
||||
title: 'Repository Visibility',
|
||||
type: 'string',
|
||||
@@ -216,6 +222,7 @@ export { requireCodeOwnerReviews };
|
||||
export { dismissStaleReviews };
|
||||
export { requiredStatusCheckContexts };
|
||||
export { requireBranchesToBeUpToDate };
|
||||
export { requiredConversationResolution };
|
||||
export { sourcePath };
|
||||
export { token };
|
||||
export { topics };
|
||||
|
||||
@@ -191,6 +191,7 @@ type BranchProtectionOptions = {
|
||||
apps?: string[];
|
||||
};
|
||||
requireBranchesToBeUpToDate?: boolean;
|
||||
requiredConversationResolution?: boolean;
|
||||
defaultBranch?: string;
|
||||
enforceAdmins?: boolean;
|
||||
dismissStaleReviews?: boolean;
|
||||
@@ -205,6 +206,7 @@ export const enableBranchProtectionOnDefaultRepoBranch = async ({
|
||||
bypassPullRequestAllowances,
|
||||
requiredStatusCheckContexts = [],
|
||||
requireBranchesToBeUpToDate = true,
|
||||
requiredConversationResolution = false,
|
||||
defaultBranch = 'master',
|
||||
enforceAdmins = true,
|
||||
dismissStaleReviews = false,
|
||||
@@ -237,6 +239,7 @@ export const enableBranchProtectionOnDefaultRepoBranch = async ({
|
||||
bypass_pull_request_allowances: bypassPullRequestAllowances,
|
||||
dismiss_stale_reviews: dismissStaleReviews,
|
||||
},
|
||||
required_conversation_resolution: requiredConversationResolution,
|
||||
});
|
||||
} catch (e) {
|
||||
assertError(e);
|
||||
|
||||
@@ -670,6 +670,7 @@ describe('publish:github', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -691,6 +692,7 @@ describe('publish:github', () => {
|
||||
requireCodeOwnerReviews: true,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -712,6 +714,7 @@ describe('publish:github', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -739,6 +742,7 @@ describe('publish:github', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -760,6 +764,7 @@ describe('publish:github', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: false,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -781,6 +786,7 @@ describe('publish:github', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -808,6 +814,7 @@ describe('publish:github', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -818,6 +825,7 @@ describe('publish:github', () => {
|
||||
...mockContext.input,
|
||||
requiredStatusCheckContexts: ['statusCheck'],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -830,6 +838,7 @@ describe('publish:github', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: ['statusCheck'],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -852,6 +861,7 @@ describe('publish:github', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: ['statusCheck'],
|
||||
requireBranchesToBeUpToDate: false,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -873,6 +883,7 @@ describe('publish:github', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -955,6 +966,7 @@ describe('publish:github', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
@@ -976,6 +988,7 @@ describe('publish:github', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: true,
|
||||
});
|
||||
@@ -997,6 +1010,7 @@ describe('publish:github', () => {
|
||||
requireCodeOwnerReviews: false,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
});
|
||||
|
||||
@@ -71,6 +71,7 @@ export function createPublishGithubAction(options: {
|
||||
dismissStaleReviews?: boolean;
|
||||
requiredStatusCheckContexts?: string[];
|
||||
requireBranchesToBeUpToDate?: boolean;
|
||||
requiredConversationResolution?: boolean;
|
||||
repoVisibility?: 'private' | 'internal' | 'public';
|
||||
collaborators?: Array<
|
||||
| {
|
||||
@@ -107,6 +108,8 @@ export function createPublishGithubAction(options: {
|
||||
dismissStaleReviews: inputProps.dismissStaleReviews,
|
||||
requiredStatusCheckContexts: inputProps.requiredStatusCheckContexts,
|
||||
requireBranchesToBeUpToDate: inputProps.requireBranchesToBeUpToDate,
|
||||
requiredConversationResolution:
|
||||
inputProps.requiredConversationResolution,
|
||||
repoVisibility: inputProps.repoVisibility,
|
||||
defaultBranch: inputProps.defaultBranch,
|
||||
protectDefaultBranch: inputProps.protectDefaultBranch,
|
||||
@@ -144,6 +147,7 @@ export function createPublishGithubAction(options: {
|
||||
bypassPullRequestAllowances,
|
||||
requiredStatusCheckContexts = [],
|
||||
requireBranchesToBeUpToDate = true,
|
||||
requiredConversationResolution = false,
|
||||
repoVisibility = 'private',
|
||||
defaultBranch = 'master',
|
||||
protectDefaultBranch = true,
|
||||
@@ -211,6 +215,7 @@ export function createPublishGithubAction(options: {
|
||||
bypassPullRequestAllowances,
|
||||
requiredStatusCheckContexts,
|
||||
requireBranchesToBeUpToDate,
|
||||
requiredConversationResolution,
|
||||
config,
|
||||
ctx.logger,
|
||||
gitCommitMessage,
|
||||
|
||||
Reference in New Issue
Block a user