diff --git a/apps/github.js b/apps/github.js index 8306a92..32e06d3 100644 --- a/apps/github.js +++ b/apps/github.js @@ -1,5 +1,5 @@ async function fetchProtectedBranchNames(context) { - let branches = await context.octokit.repos.listBranches(context.repo({protected : true, per_page : 100})) + let branches = await context.octokit.repos.listBranches(context.repo({protected : true, per_page : 100, request: { timeout: 120_000 }})) return branches.data.map(branch => branch.name) } @@ -30,7 +30,7 @@ async function resolveAllComments(context, prNumber) { ) for (const comment of comments) { - if (comment.user.login !== 'cursor[bot]') continue; + if (comment.user.login !== 'cursor[bot]' || comment.user.login !== 'snyk-io[bot]') continue; console.log("deleting comment : " + comment.id); await context.octokit.request( 'DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}', @@ -48,6 +48,7 @@ async function mergePr(context, pr, onMergeFailure) { let isMerged = false while (i++ < maxRetries) { try { + await resolveAllComments(context, prNumber); await context.octokit.pulls.merge(context.repo({pull_number : pr.number, commit_message : "\r\n\r\n skip-checks: true"})) isMerged = true break; diff --git a/dist/index.js b/dist/index.js index d4e3bb5..f54dacc 100644 --- a/dist/index.js +++ b/dist/index.js @@ -28,7 +28,7 @@ module.exports = (app) => { /***/ ((module) => { async function fetchProtectedBranchNames(context) { - let branches = await context.octokit.repos.listBranches(context.repo({protected : true, per_page : 100})) + let branches = await context.octokit.repos.listBranches(context.repo({protected : true, per_page : 100, request: { timeout: 120_000 }})) return branches.data.map(branch => branch.name) } @@ -59,7 +59,7 @@ async function resolveAllComments(context, prNumber) { ) for (const comment of comments) { - if (comment.user.login !== 'cursor[bot]') continue; + if (comment.user.login !== 'cursor[bot]' || comment.user.login !== 'snyk-io[bot]') continue; console.log("deleting comment : " + comment.id); await context.octokit.request( 'DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}', @@ -77,6 +77,7 @@ async function mergePr(context, pr, onMergeFailure) { let isMerged = false while (i++ < maxRetries) { try { + await resolveAllComments(context, prNumber); await context.octokit.pulls.merge(context.repo({pull_number : pr.number, commit_message : "\r\n\r\n skip-checks: true"})) isMerged = true break; @@ -324,21 +325,26 @@ async function onPrOpen(context) { } async function raisePrToAllStagingBranches(context, onMergeConflict) { - let stagingBranchNames = await fetchingStagingBranchNames(context) - console.log(`Raising PR to all staging branches - ${stagingBranchNames.join(", ")}`) - return stagingBranchNames.map(async (branchName) => { - let existingOpenPr = await github.fetchOpenPr(context, masterBranch, branchName); - if (existingOpenPr) { - await github.closePr(context, existingOpenPr.number) - } - let createdPr = await github.createPr(context, masterBranch, branchName, `Syncing with latest ${masterBranch}`) - let newPr = toPr({payload: {pull_request: createdPr.data}}) - let isMergeable = await github.isMergeable(context, newPr.number) - if (isMergeable === false) { - await onMergeConflict(context, newPr) - } - return createdPr - }) + try { + let stagingBranchNames = await fetchingStagingBranchNames(context) + console.log(`Raising PR to all staging branches - ${stagingBranchNames.join(", ")}`) + return stagingBranchNames.map(async (branchName) => { + let existingOpenPr = await github.fetchOpenPr(context, masterBranch, branchName); + if (existingOpenPr) { + await github.closePr(context, existingOpenPr.number) + } + let createdPr = await github.createPr(context, masterBranch, branchName, `Syncing with latest ${masterBranch}`) + let newPr = toPr({payload: {pull_request: createdPr.data}}) + let isMergeable = await github.isMergeable(context, newPr.number) + if (isMergeable === false) { + await onMergeConflict(context, newPr) + } + return createdPr + }) + } catch(err) { + console.log("ERROR!") + console.log(err) + } } async function raisePrToCorrespondingDevelopBranch(context, pr, onMergeConflict) { diff --git a/handlers/pr.js b/handlers/pr.js index d48516b..43b1fc4 100644 --- a/handlers/pr.js +++ b/handlers/pr.js @@ -132,21 +132,26 @@ async function onPrOpen(context) { } async function raisePrToAllStagingBranches(context, onMergeConflict) { - let stagingBranchNames = await fetchingStagingBranchNames(context) - console.log(`Raising PR to all staging branches - ${stagingBranchNames.join(", ")}`) - return stagingBranchNames.map(async (branchName) => { - let existingOpenPr = await github.fetchOpenPr(context, masterBranch, branchName); - if (existingOpenPr) { - await github.closePr(context, existingOpenPr.number) - } - let createdPr = await github.createPr(context, masterBranch, branchName, `Syncing with latest ${masterBranch}`) - let newPr = toPr({payload: {pull_request: createdPr.data}}) - let isMergeable = await github.isMergeable(context, newPr.number) - if (isMergeable === false) { - await onMergeConflict(context, newPr) - } - return createdPr - }) + try { + let stagingBranchNames = await fetchingStagingBranchNames(context) + console.log(`Raising PR to all staging branches - ${stagingBranchNames.join(", ")}`) + return stagingBranchNames.map(async (branchName) => { + let existingOpenPr = await github.fetchOpenPr(context, masterBranch, branchName); + if (existingOpenPr) { + await github.closePr(context, existingOpenPr.number) + } + let createdPr = await github.createPr(context, masterBranch, branchName, `Syncing with latest ${masterBranch}`) + let newPr = toPr({payload: {pull_request: createdPr.data}}) + let isMergeable = await github.isMergeable(context, newPr.number) + if (isMergeable === false) { + await onMergeConflict(context, newPr) + } + return createdPr + }) + } catch(err) { + console.log("ERROR!") + console.log(err) + } } async function raisePrToCorrespondingDevelopBranch(context, pr, onMergeConflict) {