From 45af07f0e7f39a21d6775fd06f9d392f88014983 Mon Sep 17 00:00:00 2001 From: Job Date: Sun, 18 Aug 2024 12:57:12 +0000 Subject: [PATCH 1/5] Fix PR creation on forked repositories --- routers/api/v1/repo/pull.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/routers/api/v1/repo/pull.go b/routers/api/v1/repo/pull.go index 148b6ed637..cc70fd2a23 100644 --- a/routers/api/v1/repo/pull.go +++ b/routers/api/v1/repo/pull.go @@ -1110,9 +1110,19 @@ func parseCompareInfo(ctx *context.APIContext, form api.CreatePullRequestOption) // Check if current user has fork of repository or in the same repository. headRepo := repo_model.GetForkedRepo(ctx, headUser.ID, baseRepo.ID) if headRepo == nil && !isSameRepo { - log.Trace("parseCompareInfo[%d]: does not have fork or in same repository", baseRepo.ID) - ctx.NotFound("GetForkedRepo") - return nil, nil, nil, "", "" + // Check if the base repository is a fork of the head repository. + headRepo, err = repo_model.GetRepositoryByID(ctx, baseRepo.ForkID) + + if err != nil { + ctx.Error(http.StatusInternalServerError, "GetRepositoryByID", err) + return nil, nil, nil, "", "" + } + + if headRepo == nil { + log.Trace("parseCompareInfo[%d]: does not have fork or in same repository", baseRepo.ID) + ctx.NotFound("GetForkedRepo") + return nil, nil, nil, "", "" + } } var headGitRepo *git.Repository From 8d855782ea08a435c0863dc5c9f61382247393d3 Mon Sep 17 00:00:00 2001 From: Job Date: Sun, 18 Aug 2024 14:58:30 +0000 Subject: [PATCH 2/5] Resolved linter warnings --- routers/api/v1/repo/pull.go | 1 - 1 file changed, 1 deletion(-) diff --git a/routers/api/v1/repo/pull.go b/routers/api/v1/repo/pull.go index cc70fd2a23..8ba6c096ec 100644 --- a/routers/api/v1/repo/pull.go +++ b/routers/api/v1/repo/pull.go @@ -1112,7 +1112,6 @@ func parseCompareInfo(ctx *context.APIContext, form api.CreatePullRequestOption) if headRepo == nil && !isSameRepo { // Check if the base repository is a fork of the head repository. headRepo, err = repo_model.GetRepositoryByID(ctx, baseRepo.ForkID) - if err != nil { ctx.Error(http.StatusInternalServerError, "GetRepositoryByID", err) return nil, nil, nil, "", "" From 2222affe1f0e4eb966e5919645b3d874872f0f9d Mon Sep 17 00:00:00 2001 From: Job Date: Mon, 19 Aug 2024 18:40:10 +0000 Subject: [PATCH 3/5] Fixed if statement to correctly check base repository --- routers/api/v1/repo/pull.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/routers/api/v1/repo/pull.go b/routers/api/v1/repo/pull.go index 8ba6c096ec..ebde9ea8a9 100644 --- a/routers/api/v1/repo/pull.go +++ b/routers/api/v1/repo/pull.go @@ -1110,18 +1110,20 @@ func parseCompareInfo(ctx *context.APIContext, form api.CreatePullRequestOption) // Check if current user has fork of repository or in the same repository. headRepo := repo_model.GetForkedRepo(ctx, headUser.ID, baseRepo.ID) if headRepo == nil && !isSameRepo { - // Check if the base repository is a fork of the head repository. - headRepo, err = repo_model.GetRepositoryByID(ctx, baseRepo.ForkID) + err := baseRepo.GetBaseRepo(ctx) if err != nil { - ctx.Error(http.StatusInternalServerError, "GetRepositoryByID", err) + ctx.Error(http.StatusInternalServerError, "GetBaseRepo", err) return nil, nil, nil, "", "" } - if headRepo == nil { + // Check if baseRepo's base repository is the same as headUser's repository. + if baseRepo.BaseRepo == nil || baseRepo.BaseRepo.OwnerID != headUser.ID { log.Trace("parseCompareInfo[%d]: does not have fork or in same repository", baseRepo.ID) - ctx.NotFound("GetForkedRepo") + ctx.NotFound("GetBaseRepo") return nil, nil, nil, "", "" } + // Assign headRepo so it can be used below. + headRepo = baseRepo.BaseRepo } var headGitRepo *git.Repository From 09b62d47032c80879dee1fd925fe43b57c9bcfcc Mon Sep 17 00:00:00 2001 From: Job Date: Wed, 21 Aug 2024 18:21:32 +0100 Subject: [PATCH 4/5] Added trigger for test branch --- .github/workflows/release-tag-version.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release-tag-version.yml b/.github/workflows/release-tag-version.yml index edf7ea1270..242e14c8b4 100644 --- a/.github/workflows/release-tag-version.yml +++ b/.github/workflows/release-tag-version.yml @@ -6,6 +6,8 @@ on: - "v1.*" - "!v1*-rc*" - "!v1*-dev" + branches: + - "release/v1.22*" concurrency: group: ${{ github.workflow }}-${{ github.ref }} From 38115d520568d867600ed11f23f9bdad71a17cbd Mon Sep 17 00:00:00 2001 From: Job Date: Thu, 22 Aug 2024 11:05:46 +0100 Subject: [PATCH 5/5] Undo changes to workflows --- .github/workflows/release-tag-version.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/release-tag-version.yml b/.github/workflows/release-tag-version.yml index 242e14c8b4..edf7ea1270 100644 --- a/.github/workflows/release-tag-version.yml +++ b/.github/workflows/release-tag-version.yml @@ -6,8 +6,6 @@ on: - "v1.*" - "!v1*-rc*" - "!v1*-dev" - branches: - - "release/v1.22*" concurrency: group: ${{ github.workflow }}-${{ github.ref }}