@@ -23,7 +23,7 @@ export async function forkRepository(userOctokit, projectRepoDetails) {
2323 if ( fork ) {
2424 // console.log("Repo is already forked!");
2525
26- const { isUpdated, updateSHA } = await isRepositoryForkUpdated (
26+ const { isUpdated } = await isRepositoryForkUpdated (
2727 userOctokit ,
2828 projectRepoDetails ,
2929 fork ,
@@ -34,7 +34,6 @@ export async function forkRepository(userOctokit, projectRepoDetails) {
3434
3535 await updateRepositoryFork ( userOctokit , fork , {
3636 ref : repoMainBranchRef ,
37- sha : updateSHA ,
3837 } ) ;
3938 }
4039
@@ -62,24 +61,23 @@ export async function forkRepository(userOctokit, projectRepoDetails) {
6261 * Update (Sync) repository to state of main (head) repository
6362 * @param {import("octokit").Octokit } userOctokit
6463 * @param {string } forkedRepoFullname
65- * @param {{ ref: string, sha: string } } headRepoRef
64+ * @param {{ ref: string } } headRepoRef
6665 */
6766async function updateRepositoryFork (
6867 userOctokit ,
6968 forkedRepoFullname ,
7069 headRepoRef ,
7170) {
7271 const { repoOwner, repoName } = getRepoParts ( forkedRepoFullname ) ;
73- const { ref, sha } = headRepoRef ;
74- const formattedRef =
75- ref . split ( "/" ) [ 0 ] === " refs" ? ref . split ( "/ ") . slice ( 1 ) . join ( "/" ) : ref ;
72+ const { ref } = headRepoRef ;
73+ // Extract branch name from ref (e.g., "refs/heads/main" -> "main" or "heads/main" -> "main")
74+ const branchName = ref . replace ( / ^ r e f s \/ / , " ") . replace ( / ^ h e a d s \/ / , "" ) ;
7675
7776 try {
78- await userOctokit . request ( "PATCH /repos/{owner}/{repo}/git/refs/{ref} " , {
77+ await userOctokit . request ( "POST /repos/{owner}/{repo}/merge-upstream " , {
7978 owner : repoOwner ,
8079 repo : repoName ,
81- ref : formattedRef , //-> `heads/${branchToSync}`
82- sha,
80+ branch : branchName ,
8381 } ) ;
8482
8583 // console.log("Fork is now updated and in-sync with upstream");
@@ -96,7 +94,7 @@ async function updateRepositoryFork(
9694 * @param {import("octokit").Octokit } userOctokit
9795 * @param {{ repoFullname: string, repoMainBranchRef: string } } projectRepoDetails
9896 * @param {string } forkedRepoFullname
99- * @returns {Promise<{ isUpdated: boolean, updateSHA: string }> }
97+ * @returns {Promise<{ isUpdated: boolean }> }
10098 */
10199async function isRepositoryForkUpdated (
102100 userOctokit ,
@@ -121,7 +119,6 @@ async function isRepositoryForkUpdated(
121119 return {
122120 isUpdated :
123121 forkedRepoMainBranch . object . sha === projectRepoMainBranch . object . sha ,
124- updateSHA : projectRepoMainBranch . object . sha ,
125122 } ;
126123 } catch ( error ) {
127124 throw new Error ( "Error occurred while checking fork update status" , {
0 commit comments