From 69e2594533b21b1ea020beb7db9def177fac4315 Mon Sep 17 00:00:00 2001 From: dadajian Date: Thu, 23 Apr 2026 10:47:26 -0500 Subject: [PATCH 1/2] deprecate(manage-merge-queue,check-merge-safety): add deprecation warnings pointing to native GitHub merge queue Co-Authored-By: Claude Sonnet 4.6 --- README.md | 8 ++++++-- dist/helpers/check-merge-safety.js | 3 ++- dist/helpers/check-merge-safety.js.map | 6 +++--- dist/helpers/manage-merge-queue.js | 2 +- dist/helpers/prepare-queued-pr-for-merge.js | 2 +- dist/{main-1dad8qjs.js => main-yksjg0pd.js} | 3 ++- dist/{main-1dad8qjs.js.map => main-yksjg0pd.js.map} | 6 +++--- src/helpers/check-merge-safety.ts | 3 +++ src/helpers/manage-merge-queue.ts | 3 +++ 9 files changed, 24 insertions(+), 12 deletions(-) rename dist/{main-1dad8qjs.js => main-yksjg0pd.js} (97%) rename dist/{main-1dad8qjs.js.map => main-yksjg0pd.js.map} (53%) diff --git a/README.md b/README.md index aee103ce..e67562a4 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,9 @@ Each of the following helpers are defined in a file of the same name in `src/hel - If `login` is provided, it does nothing if that user is already part of the team - You can also pass a `slack_webhook_url` to notify the assignees that they are assigned to the PR! -### [check-merge-safety](.github/workflows/check-merge-safety.yml) +### [~~check-merge-safety~~](.github/workflows/check-merge-safety.yml) (DEPRECATED) + +> **Deprecated:** This helper is deprecated. Please migrate to [GitHub's native merge queue](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue) instead. - Checks if a PR branch needs to update with the default branch prior to merging (great for monorepos!) - If this check succeeds for a PR, the PR is safe to merge right away! @@ -286,7 +288,9 @@ Additionally, the following parameters can be used for additional control over t - Adds a 'due soon' label to issues with a priority label that will become overdue in 7 days - Adds an 'overdue' label to issues with a priority label that are overdue -### [manage-merge-queue](.github/workflows/manage-merge-queue.yml) +### [~~manage-merge-queue~~](.github/workflows/manage-merge-queue.yml) (DEPRECATED) + +> **Deprecated:** This helper is deprecated. Please migrate to [GitHub's native merge queue](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue) instead. - Manages a queue for PRs as follows: - Adding the `READY TO MERGE` label to a PR will add the PR to the "merge queue", represented by a `QUEUED FOR MERGE #X` label. Removing `READY TO MERGE` will remove this label and thus remove the PR from the queue. diff --git a/dist/helpers/check-merge-safety.js b/dist/helpers/check-merge-safety.js index 16bbe59a..6e8fd00f 100644 --- a/dist/helpers/check-merge-safety.js +++ b/dist/helpers/check-merge-safety.js @@ -44,6 +44,7 @@ var COMMENT_PATHS_MARKER = ""; class CheckMergeSafety extends HelperInputs { } var checkMergeSafety = async (inputs) => { + warning("check-merge-safety is deprecated. Please migrate to GitHub's native merge queue: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue"); const isPrWorkflow = Boolean(context.issue.number); if (!isPrWorkflow) { return handlePushWorkflow(inputs); @@ -258,4 +259,4 @@ export { CheckMergeSafety }; -//# debugId=8CCB3211353B88AF64756E2164756E21 +//# debugId=F6C8B3D5764FE7B864756E2164756E21 diff --git a/dist/helpers/check-merge-safety.js.map b/dist/helpers/check-merge-safety.js.map index 1435e6b9..9d9a4611 100644 --- a/dist/helpers/check-merge-safety.js.map +++ b/dist/helpers/check-merge-safety.js.map @@ -2,9 +2,9 @@ "version": 3, "sources": ["../src/helpers/check-merge-safety.ts"], "sourcesContent": [ - "/*\nCopyright 2021 Expedia, Inc.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n https://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { HelperInputs } from '../types/generated';\nimport { context as githubContext } from '@actions/github';\nimport { simpleGit } from 'simple-git';\nimport { octokit } from '../octokit';\nimport micromatch from 'micromatch';\nimport { GithubError, PullRequest } from '../types/github';\nimport { paginateAllOpenPullRequests } from '../utils/paginate-open-pull-requests';\nimport { map } from 'bluebird';\nimport { setCommitStatus } from './set-commit-status';\nimport * as core from '@actions/core';\n\nconst git = simpleGit();\n\nconst maxBranchNameLength = 50;\nconst COMMENT_PATHS_MARKER = '';\n\nexport class CheckMergeSafety extends HelperInputs {\n declare context?: string;\n declare paths?: string;\n declare ignore_globs?: string;\n declare override_filter_paths?: string;\n declare override_filter_globs?: string;\n declare match_comment_paths?: string;\n}\n\nexport const checkMergeSafety = async (inputs: CheckMergeSafety) => {\n const isPrWorkflow = Boolean(githubContext.issue.number);\n if (!isPrWorkflow) {\n return handlePushWorkflow(inputs);\n }\n const { data: pullRequest } = await octokit.pulls.get({ pull_number: githubContext.issue.number, ...githubContext.repo });\n\n const { state, message } = await setMergeSafetyStatus(pullRequest, inputs);\n if (state === 'failure') {\n core.setFailed(message);\n }\n};\n\nconst setMergeSafetyStatus = async (pullRequest: PullRequest, { context = 'Merge Safety', ...inputs }: CheckMergeSafety) => {\n const { state, message } = await getMergeSafetyStateAndMessage(pullRequest, inputs);\n const hasExistingFailureStatus = await checkForExistingFailureStatus(pullRequest, context);\n if (hasExistingFailureStatus && state === 'failure') {\n const {\n head: {\n ref,\n user: { login: username }\n }\n } = pullRequest;\n const truncatedRef = ref.length > maxBranchNameLength ? `${ref.substring(0, maxBranchNameLength)}...` : ref;\n const truncatedBranchName = `${username}:${truncatedRef}`;\n core.info(`Found existing failure status for ${truncatedBranchName}, skipping setting new status`);\n } else {\n await setCommitStatus({\n sha: pullRequest.head.sha,\n state,\n context,\n description: message,\n ...githubContext.repo\n });\n }\n\n return { state, message };\n};\n\nconst handlePushWorkflow = async (inputs: CheckMergeSafety) => {\n const pullRequests = await paginateAllOpenPullRequests();\n const filteredPullRequests = pullRequests.filter(({ base, draft }) => !draft && base.ref === base.repo.default_branch);\n await map(filteredPullRequests, pullRequest => setMergeSafetyStatus(pullRequest as PullRequest, inputs));\n};\n\nconst checkForExistingFailureStatus = async (pullRequest: PullRequest, context: string) => {\n const { data } = await octokit.repos.getCombinedStatusForRef({\n ...githubContext.repo,\n ref: pullRequest.head.sha\n });\n if (data.state === 'failure') {\n const existingContext = data.statuses.find(status => status.context === context);\n return Boolean(existingContext);\n }\n return false;\n};\n\nconst fetchSha = async (repoUrl: string, sha: string) => {\n try {\n await git.fetch(repoUrl, sha, { '--depth': 1 });\n core.info(`Fetched ${sha} from ${repoUrl}`);\n } catch (err) {\n core.info(`Failed to fetch ${sha} from ${repoUrl}: ${(err as GithubError).message}`);\n throw new Error(`Failed to fetch ${sha} from ${repoUrl}: ${(err as GithubError).message}`);\n }\n};\n\nconst getDiffUsingGitCommand = async (repoUrl: string, baseSha: string, headSha: string): Promise => {\n // update local repo copy\n await fetchSha(repoUrl, baseSha);\n await fetchSha(repoUrl, headSha);\n\n try {\n const diff = await git.diff(['--name-only', baseSha, headSha]);\n return (diff ?? '').split('\\n').filter(Boolean);\n } catch (err) {\n core.error(`Failed to run local git diff for ${repoUrl}: ${(err as GithubError).message}`);\n throw new Error(`Failed to run local git diff for ${repoUrl}: ${(err as GithubError).message}`);\n }\n};\n\ntype DiffRefs = PullRequest['base' | 'head'];\nconst getDiff = async (compareBase: DiffRefs, compareHead: DiffRefs, basehead: string) => {\n let changedFileNames: string[] = [];\n try {\n const { data: { files: changedFiles } = {}, status } = await octokit.repos.compareCommitsWithBasehead({\n ...githubContext.repo,\n basehead\n });\n if (status > 400) {\n throw { status };\n }\n changedFileNames = changedFiles?.map(file => file.filename) ?? [];\n } catch (err) {\n core.info(`Failed to fetch diff: ${(err as GithubError).message} Status: ${(err as GithubError).status}`);\n\n // diff too large error\n if ((err as GithubError)?.status === 406 || (err as GithubError)?.message.includes('diff is taking too long to generate')) {\n core.info(`Attempting to generate diff using local git command`);\n if (compareBase.repo?.html_url) {\n changedFileNames = await getDiffUsingGitCommand(compareBase.repo?.html_url, compareBase.sha, compareHead.sha);\n } else {\n core.error(`Could not fetch repo url to run local git diff`);\n throw err;\n }\n } else {\n throw err;\n }\n }\n return changedFileNames;\n};\n\nconst getMergeSafetyStateAndMessage = async (\n pullRequest: PullRequest,\n { paths, ignore_globs, override_filter_paths, override_filter_globs, match_comment_paths }: CheckMergeSafety\n) => {\n const {\n base: {\n repo: {\n default_branch,\n owner: { login: baseOwner }\n }\n },\n head: {\n ref,\n user: { login: username }\n }\n } = pullRequest;\n\n const branchName = `${username}:${ref}`;\n const diffAgainstUserBranch = `${branchName}...${baseOwner}:${default_branch}`;\n let fileNamesWhichBranchIsBehindOn;\n try {\n fileNamesWhichBranchIsBehindOn = await getDiff(pullRequest.head, pullRequest.base, diffAgainstUserBranch);\n } catch (err) {\n const message = diffErrorMessage(diffAgainstUserBranch, (err as GithubError).message);\n core.error(message);\n return { state: 'failure', message } as const;\n }\n\n const truncatedRef = ref.length > maxBranchNameLength ? `${ref.substring(0, maxBranchNameLength)}...` : ref;\n const truncatedBranchName = `${username}:${truncatedRef}`;\n\n if (match_comment_paths === 'true') {\n const commentPaths = await getPathsFromComment(pullRequest.number);\n\n if (commentPaths.length) {\n core.info(`Found ${commentPaths.length} paths from PR comment`);\n\n const outdatedCommentPaths = commentPaths.filter(commentPath =>\n fileNamesWhichBranchIsBehindOn.some(file => file.startsWith(commentPath + '/') || file === commentPath)\n );\n\n if (outdatedCommentPaths.length) {\n core.error(buildErrorMessage(outdatedCommentPaths, 'comment paths', truncatedBranchName));\n const displayPaths = outdatedCommentPaths.slice(0, 3).join(', ');\n const suffix = outdatedCommentPaths.length > 3 ? '...' : '';\n return {\n state: 'failure',\n message: `Branch is behind on paths from comment: ${displayPaths}${suffix}. Please update with ${default_branch}.`\n } as const;\n }\n } else {\n core.info('No paths found in PR comment, skipping comment path matching check');\n }\n }\n\n const globalFilesOutdatedOnBranch = override_filter_globs\n ? micromatch(fileNamesWhichBranchIsBehindOn, override_filter_globs.split(/[\\n,]/))\n : override_filter_paths\n ? fileNamesWhichBranchIsBehindOn.filter(changedFile => override_filter_paths.split(/[\\n,]/).includes(changedFile))\n : [];\n\n if (globalFilesOutdatedOnBranch.length) {\n core.error(buildErrorMessage(globalFilesOutdatedOnBranch, 'global files', truncatedBranchName));\n return {\n state: 'failure',\n message: `This branch has one or more outdated global files. Please update with ${default_branch}.`\n } as const;\n }\n\n const diffAgainstDefaultBranch = `${baseOwner}:${default_branch}...${branchName}`;\n let changedFileNames;\n try {\n changedFileNames = await getDiff(pullRequest.base, pullRequest.head, diffAgainstDefaultBranch);\n } catch (err) {\n const message = diffErrorMessage(diffAgainstDefaultBranch, (err as GithubError).message);\n core.error(message);\n return { state: 'failure', message } as const;\n }\n\n const changedFilesToIgnore = changedFileNames && ignore_globs ? micromatch(changedFileNames, ignore_globs.split(/[\\n,]/)) : [];\n const filteredFileNames = changedFileNames?.filter(file => !changedFilesToIgnore.includes(file));\n const allProjectDirectories = paths?.split(/[\\n,]/);\n\n const changedProjectsOutdatedOnBranch = allProjectDirectories?.filter(\n dir => fileNamesWhichBranchIsBehindOn.some(file => file.includes(dir)) && filteredFileNames?.some(file => file.includes(dir))\n );\n\n if (changedProjectsOutdatedOnBranch?.length) {\n core.error(buildErrorMessage(changedProjectsOutdatedOnBranch, 'projects', truncatedBranchName));\n return {\n state: 'failure',\n message: `This branch has one or more outdated projects. Please update with ${default_branch}.`\n } as const;\n }\n\n const safeMessage = buildSuccessMessage(truncatedBranchName);\n core.info(safeMessage);\n return {\n state: 'success',\n message: safeMessage\n } as const;\n};\n\nconst buildErrorMessage = (paths: string[], pathType: 'projects' | 'global files' | 'comment paths', branchName: string) =>\n `\nThe following ${pathType} are outdated on branch ${branchName}\n\n${paths.map(path => `* ${path}`).join('\\n')}\n`;\n\nconst diffErrorMessage = (basehead: string, message = '') =>\n `Failed to generate diff for ${basehead}. Please verify SHAs are valid and try again.${message ? `\\nError: ${message}` : ''}`;\n\nconst buildSuccessMessage = (branchName: string) => `Branch ${branchName} is safe to merge!`;\n\nconst getPathsFromComment = async (pullNumber: number): Promise => {\n const { data: comments } = await octokit.issues.listComments({\n ...githubContext.repo,\n issue_number: pullNumber\n });\n\n const pathsComment = comments.find(c => c.body?.includes(COMMENT_PATHS_MARKER));\n if (!pathsComment?.body) {\n return [];\n }\n\n const jsonMatch = pathsComment.body.match(/```json\\n([\\s\\S]*?)\\n```/);\n if (!jsonMatch?.[1]) {\n return [];\n }\n\n try {\n const parsed: unknown = JSON.parse(jsonMatch[1]);\n if (Array.isArray(parsed) && parsed.every(item => typeof item === 'string')) {\n return parsed;\n }\n return [];\n } catch {\n core.warning(`Failed to parse paths from PR #${pullNumber} comment`);\n return [];\n }\n};\n" + "/*\nCopyright 2021 Expedia, Inc.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n https://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { HelperInputs } from '../types/generated';\nimport { context as githubContext } from '@actions/github';\nimport { simpleGit } from 'simple-git';\nimport { octokit } from '../octokit';\nimport micromatch from 'micromatch';\nimport { GithubError, PullRequest } from '../types/github';\nimport { paginateAllOpenPullRequests } from '../utils/paginate-open-pull-requests';\nimport { map } from 'bluebird';\nimport { setCommitStatus } from './set-commit-status';\nimport * as core from '@actions/core';\n\nconst git = simpleGit();\n\nconst maxBranchNameLength = 50;\nconst COMMENT_PATHS_MARKER = '';\n\nexport class CheckMergeSafety extends HelperInputs {\n declare context?: string;\n declare paths?: string;\n declare ignore_globs?: string;\n declare override_filter_paths?: string;\n declare override_filter_globs?: string;\n declare match_comment_paths?: string;\n}\n\nexport const checkMergeSafety = async (inputs: CheckMergeSafety) => {\n core.warning(\n \"check-merge-safety is deprecated. Please migrate to GitHub's native merge queue: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue\"\n );\n const isPrWorkflow = Boolean(githubContext.issue.number);\n if (!isPrWorkflow) {\n return handlePushWorkflow(inputs);\n }\n const { data: pullRequest } = await octokit.pulls.get({ pull_number: githubContext.issue.number, ...githubContext.repo });\n\n const { state, message } = await setMergeSafetyStatus(pullRequest, inputs);\n if (state === 'failure') {\n core.setFailed(message);\n }\n};\n\nconst setMergeSafetyStatus = async (pullRequest: PullRequest, { context = 'Merge Safety', ...inputs }: CheckMergeSafety) => {\n const { state, message } = await getMergeSafetyStateAndMessage(pullRequest, inputs);\n const hasExistingFailureStatus = await checkForExistingFailureStatus(pullRequest, context);\n if (hasExistingFailureStatus && state === 'failure') {\n const {\n head: {\n ref,\n user: { login: username }\n }\n } = pullRequest;\n const truncatedRef = ref.length > maxBranchNameLength ? `${ref.substring(0, maxBranchNameLength)}...` : ref;\n const truncatedBranchName = `${username}:${truncatedRef}`;\n core.info(`Found existing failure status for ${truncatedBranchName}, skipping setting new status`);\n } else {\n await setCommitStatus({\n sha: pullRequest.head.sha,\n state,\n context,\n description: message,\n ...githubContext.repo\n });\n }\n\n return { state, message };\n};\n\nconst handlePushWorkflow = async (inputs: CheckMergeSafety) => {\n const pullRequests = await paginateAllOpenPullRequests();\n const filteredPullRequests = pullRequests.filter(({ base, draft }) => !draft && base.ref === base.repo.default_branch);\n await map(filteredPullRequests, pullRequest => setMergeSafetyStatus(pullRequest as PullRequest, inputs));\n};\n\nconst checkForExistingFailureStatus = async (pullRequest: PullRequest, context: string) => {\n const { data } = await octokit.repos.getCombinedStatusForRef({\n ...githubContext.repo,\n ref: pullRequest.head.sha\n });\n if (data.state === 'failure') {\n const existingContext = data.statuses.find(status => status.context === context);\n return Boolean(existingContext);\n }\n return false;\n};\n\nconst fetchSha = async (repoUrl: string, sha: string) => {\n try {\n await git.fetch(repoUrl, sha, { '--depth': 1 });\n core.info(`Fetched ${sha} from ${repoUrl}`);\n } catch (err) {\n core.info(`Failed to fetch ${sha} from ${repoUrl}: ${(err as GithubError).message}`);\n throw new Error(`Failed to fetch ${sha} from ${repoUrl}: ${(err as GithubError).message}`);\n }\n};\n\nconst getDiffUsingGitCommand = async (repoUrl: string, baseSha: string, headSha: string): Promise => {\n // update local repo copy\n await fetchSha(repoUrl, baseSha);\n await fetchSha(repoUrl, headSha);\n\n try {\n const diff = await git.diff(['--name-only', baseSha, headSha]);\n return (diff ?? '').split('\\n').filter(Boolean);\n } catch (err) {\n core.error(`Failed to run local git diff for ${repoUrl}: ${(err as GithubError).message}`);\n throw new Error(`Failed to run local git diff for ${repoUrl}: ${(err as GithubError).message}`);\n }\n};\n\ntype DiffRefs = PullRequest['base' | 'head'];\nconst getDiff = async (compareBase: DiffRefs, compareHead: DiffRefs, basehead: string) => {\n let changedFileNames: string[] = [];\n try {\n const { data: { files: changedFiles } = {}, status } = await octokit.repos.compareCommitsWithBasehead({\n ...githubContext.repo,\n basehead\n });\n if (status > 400) {\n throw { status };\n }\n changedFileNames = changedFiles?.map(file => file.filename) ?? [];\n } catch (err) {\n core.info(`Failed to fetch diff: ${(err as GithubError).message} Status: ${(err as GithubError).status}`);\n\n // diff too large error\n if ((err as GithubError)?.status === 406 || (err as GithubError)?.message.includes('diff is taking too long to generate')) {\n core.info(`Attempting to generate diff using local git command`);\n if (compareBase.repo?.html_url) {\n changedFileNames = await getDiffUsingGitCommand(compareBase.repo?.html_url, compareBase.sha, compareHead.sha);\n } else {\n core.error(`Could not fetch repo url to run local git diff`);\n throw err;\n }\n } else {\n throw err;\n }\n }\n return changedFileNames;\n};\n\nconst getMergeSafetyStateAndMessage = async (\n pullRequest: PullRequest,\n { paths, ignore_globs, override_filter_paths, override_filter_globs, match_comment_paths }: CheckMergeSafety\n) => {\n const {\n base: {\n repo: {\n default_branch,\n owner: { login: baseOwner }\n }\n },\n head: {\n ref,\n user: { login: username }\n }\n } = pullRequest;\n\n const branchName = `${username}:${ref}`;\n const diffAgainstUserBranch = `${branchName}...${baseOwner}:${default_branch}`;\n let fileNamesWhichBranchIsBehindOn;\n try {\n fileNamesWhichBranchIsBehindOn = await getDiff(pullRequest.head, pullRequest.base, diffAgainstUserBranch);\n } catch (err) {\n const message = diffErrorMessage(diffAgainstUserBranch, (err as GithubError).message);\n core.error(message);\n return { state: 'failure', message } as const;\n }\n\n const truncatedRef = ref.length > maxBranchNameLength ? `${ref.substring(0, maxBranchNameLength)}...` : ref;\n const truncatedBranchName = `${username}:${truncatedRef}`;\n\n if (match_comment_paths === 'true') {\n const commentPaths = await getPathsFromComment(pullRequest.number);\n\n if (commentPaths.length) {\n core.info(`Found ${commentPaths.length} paths from PR comment`);\n\n const outdatedCommentPaths = commentPaths.filter(commentPath =>\n fileNamesWhichBranchIsBehindOn.some(file => file.startsWith(commentPath + '/') || file === commentPath)\n );\n\n if (outdatedCommentPaths.length) {\n core.error(buildErrorMessage(outdatedCommentPaths, 'comment paths', truncatedBranchName));\n const displayPaths = outdatedCommentPaths.slice(0, 3).join(', ');\n const suffix = outdatedCommentPaths.length > 3 ? '...' : '';\n return {\n state: 'failure',\n message: `Branch is behind on paths from comment: ${displayPaths}${suffix}. Please update with ${default_branch}.`\n } as const;\n }\n } else {\n core.info('No paths found in PR comment, skipping comment path matching check');\n }\n }\n\n const globalFilesOutdatedOnBranch = override_filter_globs\n ? micromatch(fileNamesWhichBranchIsBehindOn, override_filter_globs.split(/[\\n,]/))\n : override_filter_paths\n ? fileNamesWhichBranchIsBehindOn.filter(changedFile => override_filter_paths.split(/[\\n,]/).includes(changedFile))\n : [];\n\n if (globalFilesOutdatedOnBranch.length) {\n core.error(buildErrorMessage(globalFilesOutdatedOnBranch, 'global files', truncatedBranchName));\n return {\n state: 'failure',\n message: `This branch has one or more outdated global files. Please update with ${default_branch}.`\n } as const;\n }\n\n const diffAgainstDefaultBranch = `${baseOwner}:${default_branch}...${branchName}`;\n let changedFileNames;\n try {\n changedFileNames = await getDiff(pullRequest.base, pullRequest.head, diffAgainstDefaultBranch);\n } catch (err) {\n const message = diffErrorMessage(diffAgainstDefaultBranch, (err as GithubError).message);\n core.error(message);\n return { state: 'failure', message } as const;\n }\n\n const changedFilesToIgnore = changedFileNames && ignore_globs ? micromatch(changedFileNames, ignore_globs.split(/[\\n,]/)) : [];\n const filteredFileNames = changedFileNames?.filter(file => !changedFilesToIgnore.includes(file));\n const allProjectDirectories = paths?.split(/[\\n,]/);\n\n const changedProjectsOutdatedOnBranch = allProjectDirectories?.filter(\n dir => fileNamesWhichBranchIsBehindOn.some(file => file.includes(dir)) && filteredFileNames?.some(file => file.includes(dir))\n );\n\n if (changedProjectsOutdatedOnBranch?.length) {\n core.error(buildErrorMessage(changedProjectsOutdatedOnBranch, 'projects', truncatedBranchName));\n return {\n state: 'failure',\n message: `This branch has one or more outdated projects. Please update with ${default_branch}.`\n } as const;\n }\n\n const safeMessage = buildSuccessMessage(truncatedBranchName);\n core.info(safeMessage);\n return {\n state: 'success',\n message: safeMessage\n } as const;\n};\n\nconst buildErrorMessage = (paths: string[], pathType: 'projects' | 'global files' | 'comment paths', branchName: string) =>\n `\nThe following ${pathType} are outdated on branch ${branchName}\n\n${paths.map(path => `* ${path}`).join('\\n')}\n`;\n\nconst diffErrorMessage = (basehead: string, message = '') =>\n `Failed to generate diff for ${basehead}. Please verify SHAs are valid and try again.${message ? `\\nError: ${message}` : ''}`;\n\nconst buildSuccessMessage = (branchName: string) => `Branch ${branchName} is safe to merge!`;\n\nconst getPathsFromComment = async (pullNumber: number): Promise => {\n const { data: comments } = await octokit.issues.listComments({\n ...githubContext.repo,\n issue_number: pullNumber\n });\n\n const pathsComment = comments.find(c => c.body?.includes(COMMENT_PATHS_MARKER));\n if (!pathsComment?.body) {\n return [];\n }\n\n const jsonMatch = pathsComment.body.match(/```json\\n([\\s\\S]*?)\\n```/);\n if (!jsonMatch?.[1]) {\n return [];\n }\n\n try {\n const parsed: unknown = JSON.parse(jsonMatch[1]);\n if (Array.isArray(parsed) && parsed.every(item => typeof item === 'string')) {\n return parsed;\n }\n return [];\n } catch {\n core.warning(`Failed to parse paths from PR #${pullNumber} comment`);\n return [];\n }\n};\n" ], - "mappings": "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", - "debugId": "8CCB3211353B88AF64756E2164756E21", + "mappings": "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", + "debugId": "F6C8B3D5764FE7B864756E2164756E21", "names": [] } \ No newline at end of file diff --git a/dist/helpers/manage-merge-queue.js b/dist/helpers/manage-merge-queue.js index 0a1f0488..3cd18512 100644 --- a/dist/helpers/manage-merge-queue.js +++ b/dist/helpers/manage-merge-queue.js @@ -3,7 +3,7 @@ import { enableAutoMerge, manageMergeQueue, removePrFromQueue -} from "../main-1dad8qjs.js"; +} from "../main-yksjg0pd.js"; import"../main-f57sjs6g.js"; import"../main-fk67p72v.js"; import"../main-3vz73ekb.js"; diff --git a/dist/helpers/prepare-queued-pr-for-merge.js b/dist/helpers/prepare-queued-pr-for-merge.js index 817240b6..af4babc1 100644 --- a/dist/helpers/prepare-queued-pr-for-merge.js +++ b/dist/helpers/prepare-queued-pr-for-merge.js @@ -1,7 +1,7 @@ import { prepareQueuedPrForMerge, updatePrWithDefaultBranch -} from "../main-1dad8qjs.js"; +} from "../main-yksjg0pd.js"; import"../main-f57sjs6g.js"; import"../main-fk67p72v.js"; import"../main-3vz73ekb.js"; diff --git a/dist/main-1dad8qjs.js b/dist/main-yksjg0pd.js similarity index 97% rename from dist/main-1dad8qjs.js rename to dist/main-yksjg0pd.js index f6c3773d..83e7c431 100644 --- a/dist/main-1dad8qjs.js +++ b/dist/main-yksjg0pd.js @@ -139,6 +139,7 @@ var manageMergeQueue = async ({ allow_only_for_maintainers, pattern } = {}) => { + warning("manage-merge-queue is deprecated. Please migrate to GitHub's native merge queue: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue"); const { data: pullRequest } = await octokit.pulls.get({ pull_number: context.issue.number, ...context.repo }); if (pullRequest.merged || !pullRequest.labels.find((label) => label.name === READY_FOR_MERGE_PR_LABEL)) { info("This PR is not in the merge queue."); @@ -304,4 +305,4 @@ var updatePrWithDefaultBranch = async (pullRequest) => { export { prepareQueuedPrForMerge, updatePrWithDefaultBranch, ManageMergeQueue, manageMergeQueue, removePrFromQueue, enableAutoMerge }; -//# debugId=89067C53C7C247CA64756E2164756E21 +//# debugId=1681A72B481804D064756E2164756E21 diff --git a/dist/main-1dad8qjs.js.map b/dist/main-yksjg0pd.js.map similarity index 53% rename from dist/main-1dad8qjs.js.map rename to dist/main-yksjg0pd.js.map index 89fa6e41..41268a02 100644 --- a/dist/main-1dad8qjs.js.map +++ b/dist/main-yksjg0pd.js.map @@ -3,10 +3,10 @@ "sources": ["../src/utils/update-merge-queue.ts", "../src/helpers/manage-merge-queue.ts", "../src/helpers/prepare-queued-pr-for-merge.ts"], "sourcesContent": [ "/*\nCopyright 2021 Expedia, Inc.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n https://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { JUMP_THE_QUEUE_PR_LABEL, MERGE_QUEUE_STATUS, QUEUED_FOR_MERGE_PREFIX } from '../constants';\nimport { PullRequestList } from '../types/github';\nimport { context } from '@actions/github';\nimport { map } from 'bluebird';\nimport { octokit } from '../octokit';\nimport { removeLabelIfExists } from '../helpers/remove-label';\nimport { updatePrWithDefaultBranch } from '../helpers/prepare-queued-pr-for-merge';\nimport { setCommitStatus } from '../helpers/set-commit-status';\n\nexport const updateMergeQueue = (queuedPrs: PullRequestList) => {\n const sortedPrs = sortPrsByQueuePosition(queuedPrs);\n return map(sortedPrs, updateQueuePosition);\n};\n\nconst sortPrsByQueuePosition = (queuedPrs: PullRequestList) =>\n queuedPrs\n .map(pr => {\n const label = pr.labels.find(label => label.name?.startsWith(QUEUED_FOR_MERGE_PREFIX))?.name;\n const hasJumpTheQueueLabel = Boolean(pr.labels.find(label => label.name === JUMP_THE_QUEUE_PR_LABEL));\n const queuePosition = Number(label?.split('#')?.[1]);\n return {\n number: pr.number,\n label,\n hasJumpTheQueueLabel,\n queuePosition,\n sha: pr.head.sha\n };\n })\n .sort((pr1, pr2) => {\n if (pr1.hasJumpTheQueueLabel) {\n return -1;\n }\n if (pr2.hasJumpTheQueueLabel) {\n return 1;\n }\n return pr1.queuePosition - pr2.queuePosition;\n });\n\nconst updateQueuePosition = async (pr: ReturnType[number], index: number) => {\n const { number, label, queuePosition, sha, hasJumpTheQueueLabel } = pr;\n const newQueuePosition = index + 1;\n if (!label || isNaN(queuePosition) || queuePosition === newQueuePosition) {\n return;\n }\n if (hasJumpTheQueueLabel) {\n await removeLabelIfExists(JUMP_THE_QUEUE_PR_LABEL, number);\n }\n\n const prIsNowFirstInQueue = newQueuePosition === 1;\n if (prIsNowFirstInQueue) {\n const { data: firstPrInQueue } = await octokit.pulls.get({ pull_number: number, ...context.repo });\n await updatePrWithDefaultBranch(firstPrInQueue);\n const {\n data: {\n head: { sha: updatedHeadSha }\n }\n } = await octokit.pulls.get({ pull_number: number, ...context.repo });\n return Promise.all([\n octokit.issues.addLabels({\n labels: [`${QUEUED_FOR_MERGE_PREFIX} #${newQueuePosition}`],\n issue_number: number,\n ...context.repo\n }),\n removeLabelIfExists(label, number),\n setCommitStatus({\n sha: updatedHeadSha,\n context: MERGE_QUEUE_STATUS,\n state: 'success',\n description: 'This PR is next to merge.'\n })\n ]);\n }\n\n return Promise.all([\n octokit.issues.addLabels({\n labels: [`${QUEUED_FOR_MERGE_PREFIX} #${newQueuePosition}`],\n issue_number: number,\n ...context.repo\n }),\n removeLabelIfExists(label, number),\n setCommitStatus({\n sha,\n context: MERGE_QUEUE_STATUS,\n state: 'pending',\n description: 'This PR is in line to merge.'\n })\n ]);\n};\n", - "/*\nCopyright 2021 Expedia, Inc.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n https://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport * as core from '@actions/core';\nimport {\n FIRST_QUEUED_PR_LABEL,\n JUMP_THE_QUEUE_PR_LABEL,\n MERGE_QUEUE_STATUS,\n QUEUED_FOR_MERGE_PREFIX,\n READY_FOR_MERGE_PR_LABEL\n} from '../constants';\nimport { HelperInputs } from '../types/generated';\nimport { PullRequest, PullRequestList } from '../types/github';\nimport { context } from '@actions/github';\nimport { notifyUser } from '../utils/notify-user';\nimport { octokit, octokitGraphql } from '../octokit';\nimport { removeLabelIfExists } from './remove-label';\nimport { setCommitStatus } from './set-commit-status';\nimport { updateMergeQueue } from '../utils/update-merge-queue';\nimport { paginateAllOpenPullRequests } from '../utils/paginate-open-pull-requests';\nimport { updatePrWithDefaultBranch } from './prepare-queued-pr-for-merge';\nimport { approvalsSatisfied } from './approvals-satisfied';\nimport { createPrComment } from './create-pr-comment';\nimport { isUserInTeam } from './is-user-in-team';\nimport { getEmailOnUserProfile } from './get-email-on-user-profile';\n\nexport class ManageMergeQueue extends HelperInputs {\n declare max_queue_size?: string;\n declare login?: string;\n declare slack_webhook_url?: string;\n declare skip_auto_merge?: string;\n declare team?: string;\n declare allow_only_for_maintainers?: string;\n declare pattern?: string;\n}\n\nexport const manageMergeQueue = async ({\n max_queue_size,\n login,\n slack_webhook_url,\n skip_auto_merge,\n team = '',\n allow_only_for_maintainers,\n pattern\n}: ManageMergeQueue = {}) => {\n const { data: pullRequest } = await octokit.pulls.get({ pull_number: context.issue.number, ...context.repo });\n if (pullRequest.merged || !pullRequest.labels.find(label => label.name === READY_FOR_MERGE_PR_LABEL)) {\n core.info('This PR is not in the merge queue.');\n return removePrFromQueue(pullRequest);\n }\n const prMeetsRequiredApprovals = await approvalsSatisfied({\n body: 'PRs must meet all required approvals before entering the merge queue.'\n });\n if (!prMeetsRequiredApprovals) {\n return removePrFromQueue(pullRequest);\n }\n if (slack_webhook_url && login) {\n const email = await getEmailOnUserProfile({ login, pattern });\n if (!email) {\n const patternText = pattern ? `, and it must match the regex pattern \\`${pattern}\\`` : '';\n await createPrComment({\n body: `@${login} Your PR cannot be added to the queue because your email must be set on your GitHub profile${patternText}. Follow the instructions [here](${githubEmailDocsLink}) to add or fix your email on ${context.serverUrl}!`\n });\n return removePrFromQueue(pullRequest);\n }\n }\n\n const queuedPrs = await getQueuedPullRequests();\n const queuePosition = queuedPrs.length + 1;\n const prAttemptingToJoinQueue = pullRequest.labels.every(label => !label.name?.startsWith(QUEUED_FOR_MERGE_PREFIX));\n\n if (prAttemptingToJoinQueue && queuePosition > Number(max_queue_size)) {\n await createPrComment({\n body: `The merge queue is full! Only ${max_queue_size} PRs are allowed in the queue at a time.\\n\\nIf you would like to merge your PR, please monitor the PRs in the queue and make sure the authors are around to merge them.`\n });\n return removePrFromQueue(pullRequest);\n }\n\n if (pullRequest.labels.find(label => label.name === JUMP_THE_QUEUE_PR_LABEL)) {\n if (allow_only_for_maintainers === 'true') {\n core.info(`Checking if user ${login} is a maintainer...`);\n const isMaintainer = await isUserInTeam({ login: context.actor, team: team });\n if (!isMaintainer) {\n await removeLabelIfExists(JUMP_THE_QUEUE_PR_LABEL, pullRequest.number);\n return await createPrComment({\n body: `@${context.actor} Only core maintainers can jump the queue. Please have a core maintainer jump the queue for you.`\n });\n }\n }\n\n return updateMergeQueue(queuedPrs);\n }\n\n if (prAttemptingToJoinQueue) {\n await addPrToQueue(pullRequest, queuePosition, skip_auto_merge);\n }\n\n const isFirstQueuePosition = queuePosition === 1 || pullRequest.labels.find(label => label.name === FIRST_QUEUED_PR_LABEL);\n\n if (isFirstQueuePosition) {\n await updatePrWithDefaultBranch(pullRequest);\n }\n\n await setCommitStatus({\n sha: pullRequest.head.sha,\n context: MERGE_QUEUE_STATUS,\n state: isFirstQueuePosition ? 'success' : 'pending',\n description: isFirstQueuePosition ? 'This PR is next to merge.' : 'This PR is in line to merge.'\n });\n\n if (isFirstQueuePosition && slack_webhook_url && login) {\n await notifyUser({\n login,\n pull_number: context.issue.number,\n slack_webhook_url\n });\n }\n};\n\nexport const removePrFromQueue = async (pullRequest: PullRequest) => {\n await removeLabelIfExists(READY_FOR_MERGE_PR_LABEL, pullRequest.number);\n const queueLabel = pullRequest.labels.find(label => label.name?.startsWith(QUEUED_FOR_MERGE_PREFIX))?.name;\n if (queueLabel) {\n await removeLabelIfExists(queueLabel, pullRequest.number);\n }\n await setCommitStatus({\n sha: pullRequest.head.sha,\n context: MERGE_QUEUE_STATUS,\n state: 'pending',\n description: 'This PR is not in the merge queue.'\n });\n const queuedPrs = await getQueuedPullRequests();\n return updateMergeQueue(queuedPrs);\n};\n\nconst addPrToQueue = async (pullRequest: PullRequest, queuePosition: number, skip_auto_merge?: string) => {\n await octokit.issues.addLabels({\n labels: [`${QUEUED_FOR_MERGE_PREFIX} #${queuePosition}`],\n issue_number: context.issue.number,\n ...context.repo\n });\n if (skip_auto_merge == 'true') {\n core.info('Skipping auto merge per configuration.');\n return;\n }\n await enableAutoMerge(pullRequest.node_id);\n};\n\nconst getQueuedPullRequests = async (): Promise => {\n const openPullRequests = await paginateAllOpenPullRequests();\n return openPullRequests.filter(\n pr =>\n pr.labels.some(label => label.name === READY_FOR_MERGE_PR_LABEL) &&\n pr.labels.some(label => label.name.startsWith(QUEUED_FOR_MERGE_PREFIX))\n );\n};\n\nexport const enableAutoMerge = async (pullRequestId: string, mergeMethod = 'SQUASH') => {\n try {\n await octokitGraphql(`\n mutation {\n enablePullRequestAutoMerge(input: { pullRequestId: \"${pullRequestId}\", mergeMethod: ${mergeMethod} }) {\n clientMutationId\n }\n }\n `);\n } catch (error) {\n core.warning('Auto merge could not be enabled. Perhaps you need to enable auto-merge on your repo?');\n core.warning(error as Error);\n }\n};\n\nconst githubEmailDocsLink =\n 'https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/changing-your-primary-email-address';\n", + "/*\nCopyright 2021 Expedia, Inc.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n https://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport * as core from '@actions/core';\nimport {\n FIRST_QUEUED_PR_LABEL,\n JUMP_THE_QUEUE_PR_LABEL,\n MERGE_QUEUE_STATUS,\n QUEUED_FOR_MERGE_PREFIX,\n READY_FOR_MERGE_PR_LABEL\n} from '../constants';\nimport { HelperInputs } from '../types/generated';\nimport { PullRequest, PullRequestList } from '../types/github';\nimport { context } from '@actions/github';\nimport { notifyUser } from '../utils/notify-user';\nimport { octokit, octokitGraphql } from '../octokit';\nimport { removeLabelIfExists } from './remove-label';\nimport { setCommitStatus } from './set-commit-status';\nimport { updateMergeQueue } from '../utils/update-merge-queue';\nimport { paginateAllOpenPullRequests } from '../utils/paginate-open-pull-requests';\nimport { updatePrWithDefaultBranch } from './prepare-queued-pr-for-merge';\nimport { approvalsSatisfied } from './approvals-satisfied';\nimport { createPrComment } from './create-pr-comment';\nimport { isUserInTeam } from './is-user-in-team';\nimport { getEmailOnUserProfile } from './get-email-on-user-profile';\n\nexport class ManageMergeQueue extends HelperInputs {\n declare max_queue_size?: string;\n declare login?: string;\n declare slack_webhook_url?: string;\n declare skip_auto_merge?: string;\n declare team?: string;\n declare allow_only_for_maintainers?: string;\n declare pattern?: string;\n}\n\nexport const manageMergeQueue = async ({\n max_queue_size,\n login,\n slack_webhook_url,\n skip_auto_merge,\n team = '',\n allow_only_for_maintainers,\n pattern\n}: ManageMergeQueue = {}) => {\n core.warning(\n \"manage-merge-queue is deprecated. Please migrate to GitHub's native merge queue: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue\"\n );\n const { data: pullRequest } = await octokit.pulls.get({ pull_number: context.issue.number, ...context.repo });\n if (pullRequest.merged || !pullRequest.labels.find(label => label.name === READY_FOR_MERGE_PR_LABEL)) {\n core.info('This PR is not in the merge queue.');\n return removePrFromQueue(pullRequest);\n }\n const prMeetsRequiredApprovals = await approvalsSatisfied({\n body: 'PRs must meet all required approvals before entering the merge queue.'\n });\n if (!prMeetsRequiredApprovals) {\n return removePrFromQueue(pullRequest);\n }\n if (slack_webhook_url && login) {\n const email = await getEmailOnUserProfile({ login, pattern });\n if (!email) {\n const patternText = pattern ? `, and it must match the regex pattern \\`${pattern}\\`` : '';\n await createPrComment({\n body: `@${login} Your PR cannot be added to the queue because your email must be set on your GitHub profile${patternText}. Follow the instructions [here](${githubEmailDocsLink}) to add or fix your email on ${context.serverUrl}!`\n });\n return removePrFromQueue(pullRequest);\n }\n }\n\n const queuedPrs = await getQueuedPullRequests();\n const queuePosition = queuedPrs.length + 1;\n const prAttemptingToJoinQueue = pullRequest.labels.every(label => !label.name?.startsWith(QUEUED_FOR_MERGE_PREFIX));\n\n if (prAttemptingToJoinQueue && queuePosition > Number(max_queue_size)) {\n await createPrComment({\n body: `The merge queue is full! Only ${max_queue_size} PRs are allowed in the queue at a time.\\n\\nIf you would like to merge your PR, please monitor the PRs in the queue and make sure the authors are around to merge them.`\n });\n return removePrFromQueue(pullRequest);\n }\n\n if (pullRequest.labels.find(label => label.name === JUMP_THE_QUEUE_PR_LABEL)) {\n if (allow_only_for_maintainers === 'true') {\n core.info(`Checking if user ${login} is a maintainer...`);\n const isMaintainer = await isUserInTeam({ login: context.actor, team: team });\n if (!isMaintainer) {\n await removeLabelIfExists(JUMP_THE_QUEUE_PR_LABEL, pullRequest.number);\n return await createPrComment({\n body: `@${context.actor} Only core maintainers can jump the queue. Please have a core maintainer jump the queue for you.`\n });\n }\n }\n\n return updateMergeQueue(queuedPrs);\n }\n\n if (prAttemptingToJoinQueue) {\n await addPrToQueue(pullRequest, queuePosition, skip_auto_merge);\n }\n\n const isFirstQueuePosition = queuePosition === 1 || pullRequest.labels.find(label => label.name === FIRST_QUEUED_PR_LABEL);\n\n if (isFirstQueuePosition) {\n await updatePrWithDefaultBranch(pullRequest);\n }\n\n await setCommitStatus({\n sha: pullRequest.head.sha,\n context: MERGE_QUEUE_STATUS,\n state: isFirstQueuePosition ? 'success' : 'pending',\n description: isFirstQueuePosition ? 'This PR is next to merge.' : 'This PR is in line to merge.'\n });\n\n if (isFirstQueuePosition && slack_webhook_url && login) {\n await notifyUser({\n login,\n pull_number: context.issue.number,\n slack_webhook_url\n });\n }\n};\n\nexport const removePrFromQueue = async (pullRequest: PullRequest) => {\n await removeLabelIfExists(READY_FOR_MERGE_PR_LABEL, pullRequest.number);\n const queueLabel = pullRequest.labels.find(label => label.name?.startsWith(QUEUED_FOR_MERGE_PREFIX))?.name;\n if (queueLabel) {\n await removeLabelIfExists(queueLabel, pullRequest.number);\n }\n await setCommitStatus({\n sha: pullRequest.head.sha,\n context: MERGE_QUEUE_STATUS,\n state: 'pending',\n description: 'This PR is not in the merge queue.'\n });\n const queuedPrs = await getQueuedPullRequests();\n return updateMergeQueue(queuedPrs);\n};\n\nconst addPrToQueue = async (pullRequest: PullRequest, queuePosition: number, skip_auto_merge?: string) => {\n await octokit.issues.addLabels({\n labels: [`${QUEUED_FOR_MERGE_PREFIX} #${queuePosition}`],\n issue_number: context.issue.number,\n ...context.repo\n });\n if (skip_auto_merge == 'true') {\n core.info('Skipping auto merge per configuration.');\n return;\n }\n await enableAutoMerge(pullRequest.node_id);\n};\n\nconst getQueuedPullRequests = async (): Promise => {\n const openPullRequests = await paginateAllOpenPullRequests();\n return openPullRequests.filter(\n pr =>\n pr.labels.some(label => label.name === READY_FOR_MERGE_PR_LABEL) &&\n pr.labels.some(label => label.name.startsWith(QUEUED_FOR_MERGE_PREFIX))\n );\n};\n\nexport const enableAutoMerge = async (pullRequestId: string, mergeMethod = 'SQUASH') => {\n try {\n await octokitGraphql(`\n mutation {\n enablePullRequestAutoMerge(input: { pullRequestId: \"${pullRequestId}\", mergeMethod: ${mergeMethod} }) {\n clientMutationId\n }\n }\n `);\n } catch (error) {\n core.warning('Auto merge could not be enabled. Perhaps you need to enable auto-merge on your repo?');\n core.warning(error as Error);\n }\n};\n\nconst githubEmailDocsLink =\n 'https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/changing-your-primary-email-address';\n", "/*\nCopyright 2021 Expedia, Inc.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n https://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport * as core from '@actions/core';\nimport { FIRST_QUEUED_PR_LABEL, JUMP_THE_QUEUE_PR_LABEL, READY_FOR_MERGE_PR_LABEL } from '../constants';\nimport { GithubError, PullRequest, PullRequestList, SinglePullRequest } from '../types/github';\nimport { context } from '@actions/github';\nimport { octokit } from '../octokit';\nimport { removePrFromQueue } from './manage-merge-queue';\n\nexport const prepareQueuedPrForMerge = async () => {\n const { data } = await octokit.pulls.list({\n state: 'open',\n per_page: 100,\n ...context.repo\n });\n const pullRequest = findNextPrToMerge(data);\n if (pullRequest) {\n return updatePrWithDefaultBranch(pullRequest as PullRequest);\n }\n};\n\nconst findNextPrToMerge = (pullRequests: PullRequestList) =>\n pullRequests.find(pr => hasRequiredLabels(pr, [READY_FOR_MERGE_PR_LABEL, JUMP_THE_QUEUE_PR_LABEL])) ??\n pullRequests.find(pr => hasRequiredLabels(pr, [READY_FOR_MERGE_PR_LABEL, FIRST_QUEUED_PR_LABEL]));\n\nconst hasRequiredLabels = (pr: SinglePullRequest, requiredLabels: string[]) =>\n requiredLabels.every(mergeQueueLabel => pr.labels.some(label => label.name === mergeQueueLabel));\n\nexport const updatePrWithDefaultBranch = async (pullRequest: PullRequest) => {\n if (pullRequest.head.user?.login && pullRequest.base.user?.login && pullRequest.head.user?.login !== pullRequest.base.user?.login) {\n try {\n // update fork default branch with upstream\n await octokit.repos.mergeUpstream({\n ...context.repo,\n branch: pullRequest.base.repo.default_branch\n });\n } catch (error) {\n if ((error as GithubError).status === 409) {\n core.setFailed('Attempt to update fork branch with upstream failed; conflict on default branch between fork and upstream.');\n } else core.setFailed((error as GithubError).message);\n }\n }\n try {\n await octokit.repos.merge({\n base: pullRequest.head.ref,\n head: 'HEAD',\n ...context.repo\n });\n } catch (error) {\n const noEvictUponConflict = core.getInput('no_evict_upon_conflict');\n const githubError = error as GithubError;\n if (githubError.status !== 409) {\n core.setFailed(githubError.message);\n return;\n }\n if (noEvictUponConflict === 'true') {\n core.info('The first PR in the queue has a merge conflict. PR was not removed from the queue due to no_evict_upon_conflict input.');\n return;\n }\n\n await removePrFromQueue(pullRequest);\n core.setFailed('The first PR in the queue has a merge conflict, and it was removed from the queue.');\n }\n};\n" ], - "mappings": "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", - "debugId": "89067C53C7C247CA64756E2164756E21", + "mappings": "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", + "debugId": "1681A72B481804D064756E2164756E21", "names": [] } \ No newline at end of file diff --git a/src/helpers/check-merge-safety.ts b/src/helpers/check-merge-safety.ts index 9a47d568..6e1dec96 100644 --- a/src/helpers/check-merge-safety.ts +++ b/src/helpers/check-merge-safety.ts @@ -37,6 +37,9 @@ export class CheckMergeSafety extends HelperInputs { } export const checkMergeSafety = async (inputs: CheckMergeSafety) => { + core.warning( + "check-merge-safety is deprecated. Please migrate to GitHub's native merge queue: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue" + ); const isPrWorkflow = Boolean(githubContext.issue.number); if (!isPrWorkflow) { return handlePushWorkflow(inputs); diff --git a/src/helpers/manage-merge-queue.ts b/src/helpers/manage-merge-queue.ts index 83365104..3e44befc 100644 --- a/src/helpers/manage-merge-queue.ts +++ b/src/helpers/manage-merge-queue.ts @@ -53,6 +53,9 @@ export const manageMergeQueue = async ({ allow_only_for_maintainers, pattern }: ManageMergeQueue = {}) => { + core.warning( + "manage-merge-queue is deprecated. Please migrate to GitHub's native merge queue: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue" + ); const { data: pullRequest } = await octokit.pulls.get({ pull_number: context.issue.number, ...context.repo }); if (pullRequest.merged || !pullRequest.labels.find(label => label.name === READY_FOR_MERGE_PR_LABEL)) { core.info('This PR is not in the merge queue.'); From 4c560012e7e103f6ff66a15ca25bc701c8d48993 Mon Sep 17 00:00:00 2001 From: dadajian Date: Thu, 23 Apr 2026 10:50:23 -0500 Subject: [PATCH 2/2] refine(deprecation): use "Please use" instead of "Please migrate to" Co-Authored-By: Claude Sonnet 4.6 --- README.md | 4 ++-- dist/helpers/check-merge-safety.js | 4 ++-- dist/helpers/check-merge-safety.js.map | 6 +++--- dist/helpers/manage-merge-queue.js | 2 +- dist/helpers/prepare-queued-pr-for-merge.js | 2 +- dist/{main-yksjg0pd.js => main-yrwb8zcb.js} | 4 ++-- dist/{main-yksjg0pd.js.map => main-yrwb8zcb.js.map} | 6 +++--- src/helpers/check-merge-safety.ts | 2 +- src/helpers/manage-merge-queue.ts | 2 +- 9 files changed, 16 insertions(+), 16 deletions(-) rename dist/{main-yksjg0pd.js => main-yrwb8zcb.js} (97%) rename dist/{main-yksjg0pd.js.map => main-yrwb8zcb.js.map} (73%) diff --git a/README.md b/README.md index e67562a4..78c2fb61 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ Each of the following helpers are defined in a file of the same name in `src/hel ### [~~check-merge-safety~~](.github/workflows/check-merge-safety.yml) (DEPRECATED) -> **Deprecated:** This helper is deprecated. Please migrate to [GitHub's native merge queue](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue) instead. +> **Deprecated:** This helper is deprecated. Please use [GitHub's native merge queue](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue) instead. - Checks if a PR branch needs to update with the default branch prior to merging (great for monorepos!) - If this check succeeds for a PR, the PR is safe to merge right away! @@ -290,7 +290,7 @@ Additionally, the following parameters can be used for additional control over t ### [~~manage-merge-queue~~](.github/workflows/manage-merge-queue.yml) (DEPRECATED) -> **Deprecated:** This helper is deprecated. Please migrate to [GitHub's native merge queue](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue) instead. +> **Deprecated:** This helper is deprecated. Please use [GitHub's native merge queue](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue) instead. - Manages a queue for PRs as follows: - Adding the `READY TO MERGE` label to a PR will add the PR to the "merge queue", represented by a `QUEUED FOR MERGE #X` label. Removing `READY TO MERGE` will remove this label and thus remove the PR from the queue. diff --git a/dist/helpers/check-merge-safety.js b/dist/helpers/check-merge-safety.js index 6e8fd00f..0ccae1c6 100644 --- a/dist/helpers/check-merge-safety.js +++ b/dist/helpers/check-merge-safety.js @@ -44,7 +44,7 @@ var COMMENT_PATHS_MARKER = ""; class CheckMergeSafety extends HelperInputs { } var checkMergeSafety = async (inputs) => { - warning("check-merge-safety is deprecated. Please migrate to GitHub's native merge queue: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue"); + warning("check-merge-safety is deprecated. Please use GitHub's native merge queue: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue"); const isPrWorkflow = Boolean(context.issue.number); if (!isPrWorkflow) { return handlePushWorkflow(inputs); @@ -259,4 +259,4 @@ export { CheckMergeSafety }; -//# debugId=F6C8B3D5764FE7B864756E2164756E21 +//# debugId=F4EC41763AC4ABEC64756E2164756E21 diff --git a/dist/helpers/check-merge-safety.js.map b/dist/helpers/check-merge-safety.js.map index 9d9a4611..9ce0614d 100644 --- a/dist/helpers/check-merge-safety.js.map +++ b/dist/helpers/check-merge-safety.js.map @@ -2,9 +2,9 @@ "version": 3, "sources": ["../src/helpers/check-merge-safety.ts"], "sourcesContent": [ - "/*\nCopyright 2021 Expedia, Inc.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n https://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { HelperInputs } from '../types/generated';\nimport { context as githubContext } from '@actions/github';\nimport { simpleGit } from 'simple-git';\nimport { octokit } from '../octokit';\nimport micromatch from 'micromatch';\nimport { GithubError, PullRequest } from '../types/github';\nimport { paginateAllOpenPullRequests } from '../utils/paginate-open-pull-requests';\nimport { map } from 'bluebird';\nimport { setCommitStatus } from './set-commit-status';\nimport * as core from '@actions/core';\n\nconst git = simpleGit();\n\nconst maxBranchNameLength = 50;\nconst COMMENT_PATHS_MARKER = '';\n\nexport class CheckMergeSafety extends HelperInputs {\n declare context?: string;\n declare paths?: string;\n declare ignore_globs?: string;\n declare override_filter_paths?: string;\n declare override_filter_globs?: string;\n declare match_comment_paths?: string;\n}\n\nexport const checkMergeSafety = async (inputs: CheckMergeSafety) => {\n core.warning(\n \"check-merge-safety is deprecated. Please migrate to GitHub's native merge queue: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue\"\n );\n const isPrWorkflow = Boolean(githubContext.issue.number);\n if (!isPrWorkflow) {\n return handlePushWorkflow(inputs);\n }\n const { data: pullRequest } = await octokit.pulls.get({ pull_number: githubContext.issue.number, ...githubContext.repo });\n\n const { state, message } = await setMergeSafetyStatus(pullRequest, inputs);\n if (state === 'failure') {\n core.setFailed(message);\n }\n};\n\nconst setMergeSafetyStatus = async (pullRequest: PullRequest, { context = 'Merge Safety', ...inputs }: CheckMergeSafety) => {\n const { state, message } = await getMergeSafetyStateAndMessage(pullRequest, inputs);\n const hasExistingFailureStatus = await checkForExistingFailureStatus(pullRequest, context);\n if (hasExistingFailureStatus && state === 'failure') {\n const {\n head: {\n ref,\n user: { login: username }\n }\n } = pullRequest;\n const truncatedRef = ref.length > maxBranchNameLength ? `${ref.substring(0, maxBranchNameLength)}...` : ref;\n const truncatedBranchName = `${username}:${truncatedRef}`;\n core.info(`Found existing failure status for ${truncatedBranchName}, skipping setting new status`);\n } else {\n await setCommitStatus({\n sha: pullRequest.head.sha,\n state,\n context,\n description: message,\n ...githubContext.repo\n });\n }\n\n return { state, message };\n};\n\nconst handlePushWorkflow = async (inputs: CheckMergeSafety) => {\n const pullRequests = await paginateAllOpenPullRequests();\n const filteredPullRequests = pullRequests.filter(({ base, draft }) => !draft && base.ref === base.repo.default_branch);\n await map(filteredPullRequests, pullRequest => setMergeSafetyStatus(pullRequest as PullRequest, inputs));\n};\n\nconst checkForExistingFailureStatus = async (pullRequest: PullRequest, context: string) => {\n const { data } = await octokit.repos.getCombinedStatusForRef({\n ...githubContext.repo,\n ref: pullRequest.head.sha\n });\n if (data.state === 'failure') {\n const existingContext = data.statuses.find(status => status.context === context);\n return Boolean(existingContext);\n }\n return false;\n};\n\nconst fetchSha = async (repoUrl: string, sha: string) => {\n try {\n await git.fetch(repoUrl, sha, { '--depth': 1 });\n core.info(`Fetched ${sha} from ${repoUrl}`);\n } catch (err) {\n core.info(`Failed to fetch ${sha} from ${repoUrl}: ${(err as GithubError).message}`);\n throw new Error(`Failed to fetch ${sha} from ${repoUrl}: ${(err as GithubError).message}`);\n }\n};\n\nconst getDiffUsingGitCommand = async (repoUrl: string, baseSha: string, headSha: string): Promise => {\n // update local repo copy\n await fetchSha(repoUrl, baseSha);\n await fetchSha(repoUrl, headSha);\n\n try {\n const diff = await git.diff(['--name-only', baseSha, headSha]);\n return (diff ?? '').split('\\n').filter(Boolean);\n } catch (err) {\n core.error(`Failed to run local git diff for ${repoUrl}: ${(err as GithubError).message}`);\n throw new Error(`Failed to run local git diff for ${repoUrl}: ${(err as GithubError).message}`);\n }\n};\n\ntype DiffRefs = PullRequest['base' | 'head'];\nconst getDiff = async (compareBase: DiffRefs, compareHead: DiffRefs, basehead: string) => {\n let changedFileNames: string[] = [];\n try {\n const { data: { files: changedFiles } = {}, status } = await octokit.repos.compareCommitsWithBasehead({\n ...githubContext.repo,\n basehead\n });\n if (status > 400) {\n throw { status };\n }\n changedFileNames = changedFiles?.map(file => file.filename) ?? [];\n } catch (err) {\n core.info(`Failed to fetch diff: ${(err as GithubError).message} Status: ${(err as GithubError).status}`);\n\n // diff too large error\n if ((err as GithubError)?.status === 406 || (err as GithubError)?.message.includes('diff is taking too long to generate')) {\n core.info(`Attempting to generate diff using local git command`);\n if (compareBase.repo?.html_url) {\n changedFileNames = await getDiffUsingGitCommand(compareBase.repo?.html_url, compareBase.sha, compareHead.sha);\n } else {\n core.error(`Could not fetch repo url to run local git diff`);\n throw err;\n }\n } else {\n throw err;\n }\n }\n return changedFileNames;\n};\n\nconst getMergeSafetyStateAndMessage = async (\n pullRequest: PullRequest,\n { paths, ignore_globs, override_filter_paths, override_filter_globs, match_comment_paths }: CheckMergeSafety\n) => {\n const {\n base: {\n repo: {\n default_branch,\n owner: { login: baseOwner }\n }\n },\n head: {\n ref,\n user: { login: username }\n }\n } = pullRequest;\n\n const branchName = `${username}:${ref}`;\n const diffAgainstUserBranch = `${branchName}...${baseOwner}:${default_branch}`;\n let fileNamesWhichBranchIsBehindOn;\n try {\n fileNamesWhichBranchIsBehindOn = await getDiff(pullRequest.head, pullRequest.base, diffAgainstUserBranch);\n } catch (err) {\n const message = diffErrorMessage(diffAgainstUserBranch, (err as GithubError).message);\n core.error(message);\n return { state: 'failure', message } as const;\n }\n\n const truncatedRef = ref.length > maxBranchNameLength ? `${ref.substring(0, maxBranchNameLength)}...` : ref;\n const truncatedBranchName = `${username}:${truncatedRef}`;\n\n if (match_comment_paths === 'true') {\n const commentPaths = await getPathsFromComment(pullRequest.number);\n\n if (commentPaths.length) {\n core.info(`Found ${commentPaths.length} paths from PR comment`);\n\n const outdatedCommentPaths = commentPaths.filter(commentPath =>\n fileNamesWhichBranchIsBehindOn.some(file => file.startsWith(commentPath + '/') || file === commentPath)\n );\n\n if (outdatedCommentPaths.length) {\n core.error(buildErrorMessage(outdatedCommentPaths, 'comment paths', truncatedBranchName));\n const displayPaths = outdatedCommentPaths.slice(0, 3).join(', ');\n const suffix = outdatedCommentPaths.length > 3 ? '...' : '';\n return {\n state: 'failure',\n message: `Branch is behind on paths from comment: ${displayPaths}${suffix}. Please update with ${default_branch}.`\n } as const;\n }\n } else {\n core.info('No paths found in PR comment, skipping comment path matching check');\n }\n }\n\n const globalFilesOutdatedOnBranch = override_filter_globs\n ? micromatch(fileNamesWhichBranchIsBehindOn, override_filter_globs.split(/[\\n,]/))\n : override_filter_paths\n ? fileNamesWhichBranchIsBehindOn.filter(changedFile => override_filter_paths.split(/[\\n,]/).includes(changedFile))\n : [];\n\n if (globalFilesOutdatedOnBranch.length) {\n core.error(buildErrorMessage(globalFilesOutdatedOnBranch, 'global files', truncatedBranchName));\n return {\n state: 'failure',\n message: `This branch has one or more outdated global files. Please update with ${default_branch}.`\n } as const;\n }\n\n const diffAgainstDefaultBranch = `${baseOwner}:${default_branch}...${branchName}`;\n let changedFileNames;\n try {\n changedFileNames = await getDiff(pullRequest.base, pullRequest.head, diffAgainstDefaultBranch);\n } catch (err) {\n const message = diffErrorMessage(diffAgainstDefaultBranch, (err as GithubError).message);\n core.error(message);\n return { state: 'failure', message } as const;\n }\n\n const changedFilesToIgnore = changedFileNames && ignore_globs ? micromatch(changedFileNames, ignore_globs.split(/[\\n,]/)) : [];\n const filteredFileNames = changedFileNames?.filter(file => !changedFilesToIgnore.includes(file));\n const allProjectDirectories = paths?.split(/[\\n,]/);\n\n const changedProjectsOutdatedOnBranch = allProjectDirectories?.filter(\n dir => fileNamesWhichBranchIsBehindOn.some(file => file.includes(dir)) && filteredFileNames?.some(file => file.includes(dir))\n );\n\n if (changedProjectsOutdatedOnBranch?.length) {\n core.error(buildErrorMessage(changedProjectsOutdatedOnBranch, 'projects', truncatedBranchName));\n return {\n state: 'failure',\n message: `This branch has one or more outdated projects. Please update with ${default_branch}.`\n } as const;\n }\n\n const safeMessage = buildSuccessMessage(truncatedBranchName);\n core.info(safeMessage);\n return {\n state: 'success',\n message: safeMessage\n } as const;\n};\n\nconst buildErrorMessage = (paths: string[], pathType: 'projects' | 'global files' | 'comment paths', branchName: string) =>\n `\nThe following ${pathType} are outdated on branch ${branchName}\n\n${paths.map(path => `* ${path}`).join('\\n')}\n`;\n\nconst diffErrorMessage = (basehead: string, message = '') =>\n `Failed to generate diff for ${basehead}. Please verify SHAs are valid and try again.${message ? `\\nError: ${message}` : ''}`;\n\nconst buildSuccessMessage = (branchName: string) => `Branch ${branchName} is safe to merge!`;\n\nconst getPathsFromComment = async (pullNumber: number): Promise => {\n const { data: comments } = await octokit.issues.listComments({\n ...githubContext.repo,\n issue_number: pullNumber\n });\n\n const pathsComment = comments.find(c => c.body?.includes(COMMENT_PATHS_MARKER));\n if (!pathsComment?.body) {\n return [];\n }\n\n const jsonMatch = pathsComment.body.match(/```json\\n([\\s\\S]*?)\\n```/);\n if (!jsonMatch?.[1]) {\n return [];\n }\n\n try {\n const parsed: unknown = JSON.parse(jsonMatch[1]);\n if (Array.isArray(parsed) && parsed.every(item => typeof item === 'string')) {\n return parsed;\n }\n return [];\n } catch {\n core.warning(`Failed to parse paths from PR #${pullNumber} comment`);\n return [];\n }\n};\n" + "/*\nCopyright 2021 Expedia, Inc.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n https://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { HelperInputs } from '../types/generated';\nimport { context as githubContext } from '@actions/github';\nimport { simpleGit } from 'simple-git';\nimport { octokit } from '../octokit';\nimport micromatch from 'micromatch';\nimport { GithubError, PullRequest } from '../types/github';\nimport { paginateAllOpenPullRequests } from '../utils/paginate-open-pull-requests';\nimport { map } from 'bluebird';\nimport { setCommitStatus } from './set-commit-status';\nimport * as core from '@actions/core';\n\nconst git = simpleGit();\n\nconst maxBranchNameLength = 50;\nconst COMMENT_PATHS_MARKER = '';\n\nexport class CheckMergeSafety extends HelperInputs {\n declare context?: string;\n declare paths?: string;\n declare ignore_globs?: string;\n declare override_filter_paths?: string;\n declare override_filter_globs?: string;\n declare match_comment_paths?: string;\n}\n\nexport const checkMergeSafety = async (inputs: CheckMergeSafety) => {\n core.warning(\n \"check-merge-safety is deprecated. Please use GitHub's native merge queue: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue\"\n );\n const isPrWorkflow = Boolean(githubContext.issue.number);\n if (!isPrWorkflow) {\n return handlePushWorkflow(inputs);\n }\n const { data: pullRequest } = await octokit.pulls.get({ pull_number: githubContext.issue.number, ...githubContext.repo });\n\n const { state, message } = await setMergeSafetyStatus(pullRequest, inputs);\n if (state === 'failure') {\n core.setFailed(message);\n }\n};\n\nconst setMergeSafetyStatus = async (pullRequest: PullRequest, { context = 'Merge Safety', ...inputs }: CheckMergeSafety) => {\n const { state, message } = await getMergeSafetyStateAndMessage(pullRequest, inputs);\n const hasExistingFailureStatus = await checkForExistingFailureStatus(pullRequest, context);\n if (hasExistingFailureStatus && state === 'failure') {\n const {\n head: {\n ref,\n user: { login: username }\n }\n } = pullRequest;\n const truncatedRef = ref.length > maxBranchNameLength ? `${ref.substring(0, maxBranchNameLength)}...` : ref;\n const truncatedBranchName = `${username}:${truncatedRef}`;\n core.info(`Found existing failure status for ${truncatedBranchName}, skipping setting new status`);\n } else {\n await setCommitStatus({\n sha: pullRequest.head.sha,\n state,\n context,\n description: message,\n ...githubContext.repo\n });\n }\n\n return { state, message };\n};\n\nconst handlePushWorkflow = async (inputs: CheckMergeSafety) => {\n const pullRequests = await paginateAllOpenPullRequests();\n const filteredPullRequests = pullRequests.filter(({ base, draft }) => !draft && base.ref === base.repo.default_branch);\n await map(filteredPullRequests, pullRequest => setMergeSafetyStatus(pullRequest as PullRequest, inputs));\n};\n\nconst checkForExistingFailureStatus = async (pullRequest: PullRequest, context: string) => {\n const { data } = await octokit.repos.getCombinedStatusForRef({\n ...githubContext.repo,\n ref: pullRequest.head.sha\n });\n if (data.state === 'failure') {\n const existingContext = data.statuses.find(status => status.context === context);\n return Boolean(existingContext);\n }\n return false;\n};\n\nconst fetchSha = async (repoUrl: string, sha: string) => {\n try {\n await git.fetch(repoUrl, sha, { '--depth': 1 });\n core.info(`Fetched ${sha} from ${repoUrl}`);\n } catch (err) {\n core.info(`Failed to fetch ${sha} from ${repoUrl}: ${(err as GithubError).message}`);\n throw new Error(`Failed to fetch ${sha} from ${repoUrl}: ${(err as GithubError).message}`);\n }\n};\n\nconst getDiffUsingGitCommand = async (repoUrl: string, baseSha: string, headSha: string): Promise => {\n // update local repo copy\n await fetchSha(repoUrl, baseSha);\n await fetchSha(repoUrl, headSha);\n\n try {\n const diff = await git.diff(['--name-only', baseSha, headSha]);\n return (diff ?? '').split('\\n').filter(Boolean);\n } catch (err) {\n core.error(`Failed to run local git diff for ${repoUrl}: ${(err as GithubError).message}`);\n throw new Error(`Failed to run local git diff for ${repoUrl}: ${(err as GithubError).message}`);\n }\n};\n\ntype DiffRefs = PullRequest['base' | 'head'];\nconst getDiff = async (compareBase: DiffRefs, compareHead: DiffRefs, basehead: string) => {\n let changedFileNames: string[] = [];\n try {\n const { data: { files: changedFiles } = {}, status } = await octokit.repos.compareCommitsWithBasehead({\n ...githubContext.repo,\n basehead\n });\n if (status > 400) {\n throw { status };\n }\n changedFileNames = changedFiles?.map(file => file.filename) ?? [];\n } catch (err) {\n core.info(`Failed to fetch diff: ${(err as GithubError).message} Status: ${(err as GithubError).status}`);\n\n // diff too large error\n if ((err as GithubError)?.status === 406 || (err as GithubError)?.message.includes('diff is taking too long to generate')) {\n core.info(`Attempting to generate diff using local git command`);\n if (compareBase.repo?.html_url) {\n changedFileNames = await getDiffUsingGitCommand(compareBase.repo?.html_url, compareBase.sha, compareHead.sha);\n } else {\n core.error(`Could not fetch repo url to run local git diff`);\n throw err;\n }\n } else {\n throw err;\n }\n }\n return changedFileNames;\n};\n\nconst getMergeSafetyStateAndMessage = async (\n pullRequest: PullRequest,\n { paths, ignore_globs, override_filter_paths, override_filter_globs, match_comment_paths }: CheckMergeSafety\n) => {\n const {\n base: {\n repo: {\n default_branch,\n owner: { login: baseOwner }\n }\n },\n head: {\n ref,\n user: { login: username }\n }\n } = pullRequest;\n\n const branchName = `${username}:${ref}`;\n const diffAgainstUserBranch = `${branchName}...${baseOwner}:${default_branch}`;\n let fileNamesWhichBranchIsBehindOn;\n try {\n fileNamesWhichBranchIsBehindOn = await getDiff(pullRequest.head, pullRequest.base, diffAgainstUserBranch);\n } catch (err) {\n const message = diffErrorMessage(diffAgainstUserBranch, (err as GithubError).message);\n core.error(message);\n return { state: 'failure', message } as const;\n }\n\n const truncatedRef = ref.length > maxBranchNameLength ? `${ref.substring(0, maxBranchNameLength)}...` : ref;\n const truncatedBranchName = `${username}:${truncatedRef}`;\n\n if (match_comment_paths === 'true') {\n const commentPaths = await getPathsFromComment(pullRequest.number);\n\n if (commentPaths.length) {\n core.info(`Found ${commentPaths.length} paths from PR comment`);\n\n const outdatedCommentPaths = commentPaths.filter(commentPath =>\n fileNamesWhichBranchIsBehindOn.some(file => file.startsWith(commentPath + '/') || file === commentPath)\n );\n\n if (outdatedCommentPaths.length) {\n core.error(buildErrorMessage(outdatedCommentPaths, 'comment paths', truncatedBranchName));\n const displayPaths = outdatedCommentPaths.slice(0, 3).join(', ');\n const suffix = outdatedCommentPaths.length > 3 ? '...' : '';\n return {\n state: 'failure',\n message: `Branch is behind on paths from comment: ${displayPaths}${suffix}. Please update with ${default_branch}.`\n } as const;\n }\n } else {\n core.info('No paths found in PR comment, skipping comment path matching check');\n }\n }\n\n const globalFilesOutdatedOnBranch = override_filter_globs\n ? micromatch(fileNamesWhichBranchIsBehindOn, override_filter_globs.split(/[\\n,]/))\n : override_filter_paths\n ? fileNamesWhichBranchIsBehindOn.filter(changedFile => override_filter_paths.split(/[\\n,]/).includes(changedFile))\n : [];\n\n if (globalFilesOutdatedOnBranch.length) {\n core.error(buildErrorMessage(globalFilesOutdatedOnBranch, 'global files', truncatedBranchName));\n return {\n state: 'failure',\n message: `This branch has one or more outdated global files. Please update with ${default_branch}.`\n } as const;\n }\n\n const diffAgainstDefaultBranch = `${baseOwner}:${default_branch}...${branchName}`;\n let changedFileNames;\n try {\n changedFileNames = await getDiff(pullRequest.base, pullRequest.head, diffAgainstDefaultBranch);\n } catch (err) {\n const message = diffErrorMessage(diffAgainstDefaultBranch, (err as GithubError).message);\n core.error(message);\n return { state: 'failure', message } as const;\n }\n\n const changedFilesToIgnore = changedFileNames && ignore_globs ? micromatch(changedFileNames, ignore_globs.split(/[\\n,]/)) : [];\n const filteredFileNames = changedFileNames?.filter(file => !changedFilesToIgnore.includes(file));\n const allProjectDirectories = paths?.split(/[\\n,]/);\n\n const changedProjectsOutdatedOnBranch = allProjectDirectories?.filter(\n dir => fileNamesWhichBranchIsBehindOn.some(file => file.includes(dir)) && filteredFileNames?.some(file => file.includes(dir))\n );\n\n if (changedProjectsOutdatedOnBranch?.length) {\n core.error(buildErrorMessage(changedProjectsOutdatedOnBranch, 'projects', truncatedBranchName));\n return {\n state: 'failure',\n message: `This branch has one or more outdated projects. Please update with ${default_branch}.`\n } as const;\n }\n\n const safeMessage = buildSuccessMessage(truncatedBranchName);\n core.info(safeMessage);\n return {\n state: 'success',\n message: safeMessage\n } as const;\n};\n\nconst buildErrorMessage = (paths: string[], pathType: 'projects' | 'global files' | 'comment paths', branchName: string) =>\n `\nThe following ${pathType} are outdated on branch ${branchName}\n\n${paths.map(path => `* ${path}`).join('\\n')}\n`;\n\nconst diffErrorMessage = (basehead: string, message = '') =>\n `Failed to generate diff for ${basehead}. Please verify SHAs are valid and try again.${message ? `\\nError: ${message}` : ''}`;\n\nconst buildSuccessMessage = (branchName: string) => `Branch ${branchName} is safe to merge!`;\n\nconst getPathsFromComment = async (pullNumber: number): Promise => {\n const { data: comments } = await octokit.issues.listComments({\n ...githubContext.repo,\n issue_number: pullNumber\n });\n\n const pathsComment = comments.find(c => c.body?.includes(COMMENT_PATHS_MARKER));\n if (!pathsComment?.body) {\n return [];\n }\n\n const jsonMatch = pathsComment.body.match(/```json\\n([\\s\\S]*?)\\n```/);\n if (!jsonMatch?.[1]) {\n return [];\n }\n\n try {\n const parsed: unknown = JSON.parse(jsonMatch[1]);\n if (Array.isArray(parsed) && parsed.every(item => typeof item === 'string')) {\n return parsed;\n }\n return [];\n } catch {\n core.warning(`Failed to parse paths from PR #${pullNumber} comment`);\n return [];\n }\n};\n" ], - "mappings": "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", - "debugId": "F6C8B3D5764FE7B864756E2164756E21", + "mappings": "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", + "debugId": "F4EC41763AC4ABEC64756E2164756E21", "names": [] } \ No newline at end of file diff --git a/dist/helpers/manage-merge-queue.js b/dist/helpers/manage-merge-queue.js index 3cd18512..819ce57e 100644 --- a/dist/helpers/manage-merge-queue.js +++ b/dist/helpers/manage-merge-queue.js @@ -3,7 +3,7 @@ import { enableAutoMerge, manageMergeQueue, removePrFromQueue -} from "../main-yksjg0pd.js"; +} from "../main-yrwb8zcb.js"; import"../main-f57sjs6g.js"; import"../main-fk67p72v.js"; import"../main-3vz73ekb.js"; diff --git a/dist/helpers/prepare-queued-pr-for-merge.js b/dist/helpers/prepare-queued-pr-for-merge.js index af4babc1..3b3ce677 100644 --- a/dist/helpers/prepare-queued-pr-for-merge.js +++ b/dist/helpers/prepare-queued-pr-for-merge.js @@ -1,7 +1,7 @@ import { prepareQueuedPrForMerge, updatePrWithDefaultBranch -} from "../main-yksjg0pd.js"; +} from "../main-yrwb8zcb.js"; import"../main-f57sjs6g.js"; import"../main-fk67p72v.js"; import"../main-3vz73ekb.js"; diff --git a/dist/main-yksjg0pd.js b/dist/main-yrwb8zcb.js similarity index 97% rename from dist/main-yksjg0pd.js rename to dist/main-yrwb8zcb.js index 83e7c431..3f8fecc5 100644 --- a/dist/main-yksjg0pd.js +++ b/dist/main-yrwb8zcb.js @@ -139,7 +139,7 @@ var manageMergeQueue = async ({ allow_only_for_maintainers, pattern } = {}) => { - warning("manage-merge-queue is deprecated. Please migrate to GitHub's native merge queue: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue"); + warning("manage-merge-queue is deprecated. Please use GitHub's native merge queue: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue"); const { data: pullRequest } = await octokit.pulls.get({ pull_number: context.issue.number, ...context.repo }); if (pullRequest.merged || !pullRequest.labels.find((label) => label.name === READY_FOR_MERGE_PR_LABEL)) { info("This PR is not in the merge queue."); @@ -305,4 +305,4 @@ var updatePrWithDefaultBranch = async (pullRequest) => { export { prepareQueuedPrForMerge, updatePrWithDefaultBranch, ManageMergeQueue, manageMergeQueue, removePrFromQueue, enableAutoMerge }; -//# debugId=1681A72B481804D064756E2164756E21 +//# debugId=37FACE3969ED272964756E2164756E21 diff --git a/dist/main-yksjg0pd.js.map b/dist/main-yrwb8zcb.js.map similarity index 73% rename from dist/main-yksjg0pd.js.map rename to dist/main-yrwb8zcb.js.map index 41268a02..286226f1 100644 --- a/dist/main-yksjg0pd.js.map +++ b/dist/main-yrwb8zcb.js.map @@ -3,10 +3,10 @@ "sources": ["../src/utils/update-merge-queue.ts", "../src/helpers/manage-merge-queue.ts", "../src/helpers/prepare-queued-pr-for-merge.ts"], "sourcesContent": [ "/*\nCopyright 2021 Expedia, Inc.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n https://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { JUMP_THE_QUEUE_PR_LABEL, MERGE_QUEUE_STATUS, QUEUED_FOR_MERGE_PREFIX } from '../constants';\nimport { PullRequestList } from '../types/github';\nimport { context } from '@actions/github';\nimport { map } from 'bluebird';\nimport { octokit } from '../octokit';\nimport { removeLabelIfExists } from '../helpers/remove-label';\nimport { updatePrWithDefaultBranch } from '../helpers/prepare-queued-pr-for-merge';\nimport { setCommitStatus } from '../helpers/set-commit-status';\n\nexport const updateMergeQueue = (queuedPrs: PullRequestList) => {\n const sortedPrs = sortPrsByQueuePosition(queuedPrs);\n return map(sortedPrs, updateQueuePosition);\n};\n\nconst sortPrsByQueuePosition = (queuedPrs: PullRequestList) =>\n queuedPrs\n .map(pr => {\n const label = pr.labels.find(label => label.name?.startsWith(QUEUED_FOR_MERGE_PREFIX))?.name;\n const hasJumpTheQueueLabel = Boolean(pr.labels.find(label => label.name === JUMP_THE_QUEUE_PR_LABEL));\n const queuePosition = Number(label?.split('#')?.[1]);\n return {\n number: pr.number,\n label,\n hasJumpTheQueueLabel,\n queuePosition,\n sha: pr.head.sha\n };\n })\n .sort((pr1, pr2) => {\n if (pr1.hasJumpTheQueueLabel) {\n return -1;\n }\n if (pr2.hasJumpTheQueueLabel) {\n return 1;\n }\n return pr1.queuePosition - pr2.queuePosition;\n });\n\nconst updateQueuePosition = async (pr: ReturnType[number], index: number) => {\n const { number, label, queuePosition, sha, hasJumpTheQueueLabel } = pr;\n const newQueuePosition = index + 1;\n if (!label || isNaN(queuePosition) || queuePosition === newQueuePosition) {\n return;\n }\n if (hasJumpTheQueueLabel) {\n await removeLabelIfExists(JUMP_THE_QUEUE_PR_LABEL, number);\n }\n\n const prIsNowFirstInQueue = newQueuePosition === 1;\n if (prIsNowFirstInQueue) {\n const { data: firstPrInQueue } = await octokit.pulls.get({ pull_number: number, ...context.repo });\n await updatePrWithDefaultBranch(firstPrInQueue);\n const {\n data: {\n head: { sha: updatedHeadSha }\n }\n } = await octokit.pulls.get({ pull_number: number, ...context.repo });\n return Promise.all([\n octokit.issues.addLabels({\n labels: [`${QUEUED_FOR_MERGE_PREFIX} #${newQueuePosition}`],\n issue_number: number,\n ...context.repo\n }),\n removeLabelIfExists(label, number),\n setCommitStatus({\n sha: updatedHeadSha,\n context: MERGE_QUEUE_STATUS,\n state: 'success',\n description: 'This PR is next to merge.'\n })\n ]);\n }\n\n return Promise.all([\n octokit.issues.addLabels({\n labels: [`${QUEUED_FOR_MERGE_PREFIX} #${newQueuePosition}`],\n issue_number: number,\n ...context.repo\n }),\n removeLabelIfExists(label, number),\n setCommitStatus({\n sha,\n context: MERGE_QUEUE_STATUS,\n state: 'pending',\n description: 'This PR is in line to merge.'\n })\n ]);\n};\n", - "/*\nCopyright 2021 Expedia, Inc.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n https://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport * as core from '@actions/core';\nimport {\n FIRST_QUEUED_PR_LABEL,\n JUMP_THE_QUEUE_PR_LABEL,\n MERGE_QUEUE_STATUS,\n QUEUED_FOR_MERGE_PREFIX,\n READY_FOR_MERGE_PR_LABEL\n} from '../constants';\nimport { HelperInputs } from '../types/generated';\nimport { PullRequest, PullRequestList } from '../types/github';\nimport { context } from '@actions/github';\nimport { notifyUser } from '../utils/notify-user';\nimport { octokit, octokitGraphql } from '../octokit';\nimport { removeLabelIfExists } from './remove-label';\nimport { setCommitStatus } from './set-commit-status';\nimport { updateMergeQueue } from '../utils/update-merge-queue';\nimport { paginateAllOpenPullRequests } from '../utils/paginate-open-pull-requests';\nimport { updatePrWithDefaultBranch } from './prepare-queued-pr-for-merge';\nimport { approvalsSatisfied } from './approvals-satisfied';\nimport { createPrComment } from './create-pr-comment';\nimport { isUserInTeam } from './is-user-in-team';\nimport { getEmailOnUserProfile } from './get-email-on-user-profile';\n\nexport class ManageMergeQueue extends HelperInputs {\n declare max_queue_size?: string;\n declare login?: string;\n declare slack_webhook_url?: string;\n declare skip_auto_merge?: string;\n declare team?: string;\n declare allow_only_for_maintainers?: string;\n declare pattern?: string;\n}\n\nexport const manageMergeQueue = async ({\n max_queue_size,\n login,\n slack_webhook_url,\n skip_auto_merge,\n team = '',\n allow_only_for_maintainers,\n pattern\n}: ManageMergeQueue = {}) => {\n core.warning(\n \"manage-merge-queue is deprecated. Please migrate to GitHub's native merge queue: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue\"\n );\n const { data: pullRequest } = await octokit.pulls.get({ pull_number: context.issue.number, ...context.repo });\n if (pullRequest.merged || !pullRequest.labels.find(label => label.name === READY_FOR_MERGE_PR_LABEL)) {\n core.info('This PR is not in the merge queue.');\n return removePrFromQueue(pullRequest);\n }\n const prMeetsRequiredApprovals = await approvalsSatisfied({\n body: 'PRs must meet all required approvals before entering the merge queue.'\n });\n if (!prMeetsRequiredApprovals) {\n return removePrFromQueue(pullRequest);\n }\n if (slack_webhook_url && login) {\n const email = await getEmailOnUserProfile({ login, pattern });\n if (!email) {\n const patternText = pattern ? `, and it must match the regex pattern \\`${pattern}\\`` : '';\n await createPrComment({\n body: `@${login} Your PR cannot be added to the queue because your email must be set on your GitHub profile${patternText}. Follow the instructions [here](${githubEmailDocsLink}) to add or fix your email on ${context.serverUrl}!`\n });\n return removePrFromQueue(pullRequest);\n }\n }\n\n const queuedPrs = await getQueuedPullRequests();\n const queuePosition = queuedPrs.length + 1;\n const prAttemptingToJoinQueue = pullRequest.labels.every(label => !label.name?.startsWith(QUEUED_FOR_MERGE_PREFIX));\n\n if (prAttemptingToJoinQueue && queuePosition > Number(max_queue_size)) {\n await createPrComment({\n body: `The merge queue is full! Only ${max_queue_size} PRs are allowed in the queue at a time.\\n\\nIf you would like to merge your PR, please monitor the PRs in the queue and make sure the authors are around to merge them.`\n });\n return removePrFromQueue(pullRequest);\n }\n\n if (pullRequest.labels.find(label => label.name === JUMP_THE_QUEUE_PR_LABEL)) {\n if (allow_only_for_maintainers === 'true') {\n core.info(`Checking if user ${login} is a maintainer...`);\n const isMaintainer = await isUserInTeam({ login: context.actor, team: team });\n if (!isMaintainer) {\n await removeLabelIfExists(JUMP_THE_QUEUE_PR_LABEL, pullRequest.number);\n return await createPrComment({\n body: `@${context.actor} Only core maintainers can jump the queue. Please have a core maintainer jump the queue for you.`\n });\n }\n }\n\n return updateMergeQueue(queuedPrs);\n }\n\n if (prAttemptingToJoinQueue) {\n await addPrToQueue(pullRequest, queuePosition, skip_auto_merge);\n }\n\n const isFirstQueuePosition = queuePosition === 1 || pullRequest.labels.find(label => label.name === FIRST_QUEUED_PR_LABEL);\n\n if (isFirstQueuePosition) {\n await updatePrWithDefaultBranch(pullRequest);\n }\n\n await setCommitStatus({\n sha: pullRequest.head.sha,\n context: MERGE_QUEUE_STATUS,\n state: isFirstQueuePosition ? 'success' : 'pending',\n description: isFirstQueuePosition ? 'This PR is next to merge.' : 'This PR is in line to merge.'\n });\n\n if (isFirstQueuePosition && slack_webhook_url && login) {\n await notifyUser({\n login,\n pull_number: context.issue.number,\n slack_webhook_url\n });\n }\n};\n\nexport const removePrFromQueue = async (pullRequest: PullRequest) => {\n await removeLabelIfExists(READY_FOR_MERGE_PR_LABEL, pullRequest.number);\n const queueLabel = pullRequest.labels.find(label => label.name?.startsWith(QUEUED_FOR_MERGE_PREFIX))?.name;\n if (queueLabel) {\n await removeLabelIfExists(queueLabel, pullRequest.number);\n }\n await setCommitStatus({\n sha: pullRequest.head.sha,\n context: MERGE_QUEUE_STATUS,\n state: 'pending',\n description: 'This PR is not in the merge queue.'\n });\n const queuedPrs = await getQueuedPullRequests();\n return updateMergeQueue(queuedPrs);\n};\n\nconst addPrToQueue = async (pullRequest: PullRequest, queuePosition: number, skip_auto_merge?: string) => {\n await octokit.issues.addLabels({\n labels: [`${QUEUED_FOR_MERGE_PREFIX} #${queuePosition}`],\n issue_number: context.issue.number,\n ...context.repo\n });\n if (skip_auto_merge == 'true') {\n core.info('Skipping auto merge per configuration.');\n return;\n }\n await enableAutoMerge(pullRequest.node_id);\n};\n\nconst getQueuedPullRequests = async (): Promise => {\n const openPullRequests = await paginateAllOpenPullRequests();\n return openPullRequests.filter(\n pr =>\n pr.labels.some(label => label.name === READY_FOR_MERGE_PR_LABEL) &&\n pr.labels.some(label => label.name.startsWith(QUEUED_FOR_MERGE_PREFIX))\n );\n};\n\nexport const enableAutoMerge = async (pullRequestId: string, mergeMethod = 'SQUASH') => {\n try {\n await octokitGraphql(`\n mutation {\n enablePullRequestAutoMerge(input: { pullRequestId: \"${pullRequestId}\", mergeMethod: ${mergeMethod} }) {\n clientMutationId\n }\n }\n `);\n } catch (error) {\n core.warning('Auto merge could not be enabled. Perhaps you need to enable auto-merge on your repo?');\n core.warning(error as Error);\n }\n};\n\nconst githubEmailDocsLink =\n 'https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/changing-your-primary-email-address';\n", + "/*\nCopyright 2021 Expedia, Inc.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n https://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport * as core from '@actions/core';\nimport {\n FIRST_QUEUED_PR_LABEL,\n JUMP_THE_QUEUE_PR_LABEL,\n MERGE_QUEUE_STATUS,\n QUEUED_FOR_MERGE_PREFIX,\n READY_FOR_MERGE_PR_LABEL\n} from '../constants';\nimport { HelperInputs } from '../types/generated';\nimport { PullRequest, PullRequestList } from '../types/github';\nimport { context } from '@actions/github';\nimport { notifyUser } from '../utils/notify-user';\nimport { octokit, octokitGraphql } from '../octokit';\nimport { removeLabelIfExists } from './remove-label';\nimport { setCommitStatus } from './set-commit-status';\nimport { updateMergeQueue } from '../utils/update-merge-queue';\nimport { paginateAllOpenPullRequests } from '../utils/paginate-open-pull-requests';\nimport { updatePrWithDefaultBranch } from './prepare-queued-pr-for-merge';\nimport { approvalsSatisfied } from './approvals-satisfied';\nimport { createPrComment } from './create-pr-comment';\nimport { isUserInTeam } from './is-user-in-team';\nimport { getEmailOnUserProfile } from './get-email-on-user-profile';\n\nexport class ManageMergeQueue extends HelperInputs {\n declare max_queue_size?: string;\n declare login?: string;\n declare slack_webhook_url?: string;\n declare skip_auto_merge?: string;\n declare team?: string;\n declare allow_only_for_maintainers?: string;\n declare pattern?: string;\n}\n\nexport const manageMergeQueue = async ({\n max_queue_size,\n login,\n slack_webhook_url,\n skip_auto_merge,\n team = '',\n allow_only_for_maintainers,\n pattern\n}: ManageMergeQueue = {}) => {\n core.warning(\n \"manage-merge-queue is deprecated. Please use GitHub's native merge queue: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue\"\n );\n const { data: pullRequest } = await octokit.pulls.get({ pull_number: context.issue.number, ...context.repo });\n if (pullRequest.merged || !pullRequest.labels.find(label => label.name === READY_FOR_MERGE_PR_LABEL)) {\n core.info('This PR is not in the merge queue.');\n return removePrFromQueue(pullRequest);\n }\n const prMeetsRequiredApprovals = await approvalsSatisfied({\n body: 'PRs must meet all required approvals before entering the merge queue.'\n });\n if (!prMeetsRequiredApprovals) {\n return removePrFromQueue(pullRequest);\n }\n if (slack_webhook_url && login) {\n const email = await getEmailOnUserProfile({ login, pattern });\n if (!email) {\n const patternText = pattern ? `, and it must match the regex pattern \\`${pattern}\\`` : '';\n await createPrComment({\n body: `@${login} Your PR cannot be added to the queue because your email must be set on your GitHub profile${patternText}. Follow the instructions [here](${githubEmailDocsLink}) to add or fix your email on ${context.serverUrl}!`\n });\n return removePrFromQueue(pullRequest);\n }\n }\n\n const queuedPrs = await getQueuedPullRequests();\n const queuePosition = queuedPrs.length + 1;\n const prAttemptingToJoinQueue = pullRequest.labels.every(label => !label.name?.startsWith(QUEUED_FOR_MERGE_PREFIX));\n\n if (prAttemptingToJoinQueue && queuePosition > Number(max_queue_size)) {\n await createPrComment({\n body: `The merge queue is full! Only ${max_queue_size} PRs are allowed in the queue at a time.\\n\\nIf you would like to merge your PR, please monitor the PRs in the queue and make sure the authors are around to merge them.`\n });\n return removePrFromQueue(pullRequest);\n }\n\n if (pullRequest.labels.find(label => label.name === JUMP_THE_QUEUE_PR_LABEL)) {\n if (allow_only_for_maintainers === 'true') {\n core.info(`Checking if user ${login} is a maintainer...`);\n const isMaintainer = await isUserInTeam({ login: context.actor, team: team });\n if (!isMaintainer) {\n await removeLabelIfExists(JUMP_THE_QUEUE_PR_LABEL, pullRequest.number);\n return await createPrComment({\n body: `@${context.actor} Only core maintainers can jump the queue. Please have a core maintainer jump the queue for you.`\n });\n }\n }\n\n return updateMergeQueue(queuedPrs);\n }\n\n if (prAttemptingToJoinQueue) {\n await addPrToQueue(pullRequest, queuePosition, skip_auto_merge);\n }\n\n const isFirstQueuePosition = queuePosition === 1 || pullRequest.labels.find(label => label.name === FIRST_QUEUED_PR_LABEL);\n\n if (isFirstQueuePosition) {\n await updatePrWithDefaultBranch(pullRequest);\n }\n\n await setCommitStatus({\n sha: pullRequest.head.sha,\n context: MERGE_QUEUE_STATUS,\n state: isFirstQueuePosition ? 'success' : 'pending',\n description: isFirstQueuePosition ? 'This PR is next to merge.' : 'This PR is in line to merge.'\n });\n\n if (isFirstQueuePosition && slack_webhook_url && login) {\n await notifyUser({\n login,\n pull_number: context.issue.number,\n slack_webhook_url\n });\n }\n};\n\nexport const removePrFromQueue = async (pullRequest: PullRequest) => {\n await removeLabelIfExists(READY_FOR_MERGE_PR_LABEL, pullRequest.number);\n const queueLabel = pullRequest.labels.find(label => label.name?.startsWith(QUEUED_FOR_MERGE_PREFIX))?.name;\n if (queueLabel) {\n await removeLabelIfExists(queueLabel, pullRequest.number);\n }\n await setCommitStatus({\n sha: pullRequest.head.sha,\n context: MERGE_QUEUE_STATUS,\n state: 'pending',\n description: 'This PR is not in the merge queue.'\n });\n const queuedPrs = await getQueuedPullRequests();\n return updateMergeQueue(queuedPrs);\n};\n\nconst addPrToQueue = async (pullRequest: PullRequest, queuePosition: number, skip_auto_merge?: string) => {\n await octokit.issues.addLabels({\n labels: [`${QUEUED_FOR_MERGE_PREFIX} #${queuePosition}`],\n issue_number: context.issue.number,\n ...context.repo\n });\n if (skip_auto_merge == 'true') {\n core.info('Skipping auto merge per configuration.');\n return;\n }\n await enableAutoMerge(pullRequest.node_id);\n};\n\nconst getQueuedPullRequests = async (): Promise => {\n const openPullRequests = await paginateAllOpenPullRequests();\n return openPullRequests.filter(\n pr =>\n pr.labels.some(label => label.name === READY_FOR_MERGE_PR_LABEL) &&\n pr.labels.some(label => label.name.startsWith(QUEUED_FOR_MERGE_PREFIX))\n );\n};\n\nexport const enableAutoMerge = async (pullRequestId: string, mergeMethod = 'SQUASH') => {\n try {\n await octokitGraphql(`\n mutation {\n enablePullRequestAutoMerge(input: { pullRequestId: \"${pullRequestId}\", mergeMethod: ${mergeMethod} }) {\n clientMutationId\n }\n }\n `);\n } catch (error) {\n core.warning('Auto merge could not be enabled. Perhaps you need to enable auto-merge on your repo?');\n core.warning(error as Error);\n }\n};\n\nconst githubEmailDocsLink =\n 'https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/changing-your-primary-email-address';\n", "/*\nCopyright 2021 Expedia, Inc.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n https://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport * as core from '@actions/core';\nimport { FIRST_QUEUED_PR_LABEL, JUMP_THE_QUEUE_PR_LABEL, READY_FOR_MERGE_PR_LABEL } from '../constants';\nimport { GithubError, PullRequest, PullRequestList, SinglePullRequest } from '../types/github';\nimport { context } from '@actions/github';\nimport { octokit } from '../octokit';\nimport { removePrFromQueue } from './manage-merge-queue';\n\nexport const prepareQueuedPrForMerge = async () => {\n const { data } = await octokit.pulls.list({\n state: 'open',\n per_page: 100,\n ...context.repo\n });\n const pullRequest = findNextPrToMerge(data);\n if (pullRequest) {\n return updatePrWithDefaultBranch(pullRequest as PullRequest);\n }\n};\n\nconst findNextPrToMerge = (pullRequests: PullRequestList) =>\n pullRequests.find(pr => hasRequiredLabels(pr, [READY_FOR_MERGE_PR_LABEL, JUMP_THE_QUEUE_PR_LABEL])) ??\n pullRequests.find(pr => hasRequiredLabels(pr, [READY_FOR_MERGE_PR_LABEL, FIRST_QUEUED_PR_LABEL]));\n\nconst hasRequiredLabels = (pr: SinglePullRequest, requiredLabels: string[]) =>\n requiredLabels.every(mergeQueueLabel => pr.labels.some(label => label.name === mergeQueueLabel));\n\nexport const updatePrWithDefaultBranch = async (pullRequest: PullRequest) => {\n if (pullRequest.head.user?.login && pullRequest.base.user?.login && pullRequest.head.user?.login !== pullRequest.base.user?.login) {\n try {\n // update fork default branch with upstream\n await octokit.repos.mergeUpstream({\n ...context.repo,\n branch: pullRequest.base.repo.default_branch\n });\n } catch (error) {\n if ((error as GithubError).status === 409) {\n core.setFailed('Attempt to update fork branch with upstream failed; conflict on default branch between fork and upstream.');\n } else core.setFailed((error as GithubError).message);\n }\n }\n try {\n await octokit.repos.merge({\n base: pullRequest.head.ref,\n head: 'HEAD',\n ...context.repo\n });\n } catch (error) {\n const noEvictUponConflict = core.getInput('no_evict_upon_conflict');\n const githubError = error as GithubError;\n if (githubError.status !== 409) {\n core.setFailed(githubError.message);\n return;\n }\n if (noEvictUponConflict === 'true') {\n core.info('The first PR in the queue has a merge conflict. PR was not removed from the queue due to no_evict_upon_conflict input.');\n return;\n }\n\n await removePrFromQueue(pullRequest);\n core.setFailed('The first PR in the queue has a merge conflict, and it was removed from the queue.');\n }\n};\n" ], - "mappings": "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", - "debugId": "1681A72B481804D064756E2164756E21", + "mappings": "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", + "debugId": "37FACE3969ED272964756E2164756E21", "names": [] } \ No newline at end of file diff --git a/src/helpers/check-merge-safety.ts b/src/helpers/check-merge-safety.ts index 6e1dec96..771078b2 100644 --- a/src/helpers/check-merge-safety.ts +++ b/src/helpers/check-merge-safety.ts @@ -38,7 +38,7 @@ export class CheckMergeSafety extends HelperInputs { export const checkMergeSafety = async (inputs: CheckMergeSafety) => { core.warning( - "check-merge-safety is deprecated. Please migrate to GitHub's native merge queue: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue" + "check-merge-safety is deprecated. Please use GitHub's native merge queue: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue" ); const isPrWorkflow = Boolean(githubContext.issue.number); if (!isPrWorkflow) { diff --git a/src/helpers/manage-merge-queue.ts b/src/helpers/manage-merge-queue.ts index 3e44befc..fbcbc530 100644 --- a/src/helpers/manage-merge-queue.ts +++ b/src/helpers/manage-merge-queue.ts @@ -54,7 +54,7 @@ export const manageMergeQueue = async ({ pattern }: ManageMergeQueue = {}) => { core.warning( - "manage-merge-queue is deprecated. Please migrate to GitHub's native merge queue: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue" + "manage-merge-queue is deprecated. Please use GitHub's native merge queue: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue" ); const { data: pullRequest } = await octokit.pulls.get({ pull_number: context.issue.number, ...context.repo }); if (pullRequest.merged || !pullRequest.labels.find(label => label.name === READY_FOR_MERGE_PR_LABEL)) {