From 32fa56e91ff3385c8e56aef072f8d1a262452615 Mon Sep 17 00:00:00 2001 From: EnixCoda Date: Thu, 2 Jun 2022 15:18:07 +0800 Subject: [PATCH] fix: resolve PR page link via response --- src/platforms/GitHub/API.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/platforms/GitHub/API.ts b/src/platforms/GitHub/API.ts index ffa2911..322a89f 100644 --- a/src/platforms/GitHub/API.ts +++ b/src/platforms/GitHub/API.ts @@ -134,23 +134,23 @@ export async function getPullPageDocuments( if (!baseSHA || !headSHA) throw new Error(`Cannot fetch SHA for comparison`) // The SHA used to be retrieved from DOM of the pull page, but they can be unreliable if the PR has conflicts - const search = new URLSearchParams(window.location.search) + let search = new URLSearchParams(window.location.search) + search.set('lines', '0') search.set('sha1', baseSHA) search.set('sha2', headSHA) - let lines = 0 const diffsDOMs: Document[] = [] while (true) { - search.set('lines', lines.toString()) const diffsDOM = await getDOM( `https://${window.location.host}/${userName}/${repoName}/diffs?${search}`, ) diffsDOMs.push(diffsDOM) - if (diffsDOM.querySelector('.js-diff-progressive-container')) { - lines += 3000 - } else { - break - } + const src = diffsDOM + .querySelector('.js-diff-progressive-container include-fragment') + ?.getAttribute('src') + if (!src) break + + search = new URL(src, window.location.origin).searchParams } return diffsDOMs }