From a53194f4b19da22481a07bd0eff010d23902ae47 Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Fri, 19 Apr 2024 10:19:27 +0200 Subject: [PATCH] fix(api): error 500 on tag creation when a workflow exists files_service.CreateCommitStatus must not explicitly call gitRepo.Close(), it will be called by the closer function. Calling it explicitly will cause the repository to be closed prematurely when obtained from the context, making it unusuable by the caller later on. For instance, as CreateCommitStatus is called indirectly when a workflow exists for the tag to be created, it will make the repositoryn in the context unusable for the tag creation API. --- services/repository/files/commit.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/services/repository/files/commit.go b/services/repository/files/commit.go index 3e4627487b..d4b9d384d5 100644 --- a/services/repository/files/commit.go +++ b/services/repository/files/commit.go @@ -30,13 +30,11 @@ func CreateCommitStatus(ctx context.Context, repo *repo_model.Repository, creato defer closer.Close() if commit, err := gitRepo.GetCommit(sha); err != nil { - gitRepo.Close() return fmt.Errorf("GetCommit[%s]: %w", sha, err) } else if len(sha) != git.SHAFullLength { // use complete commit sha sha = commit.ID.String() } - gitRepo.Close() if err := git_model.NewCommitStatus(ctx, git_model.NewCommitStatusOptions{ Repo: repo,