Skip to content

Commit 436e769

Browse files
committed
Move some functions from package git to gitrepo
1 parent 7fd44a8 commit 436e769

File tree

8 files changed

+40
-23
lines changed

8 files changed

+40
-23
lines changed

models/repo/repo.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,13 @@ func (repo *Repository) GetOwnerName() string {
223223
return repo.OwnerName
224224
}
225225

226+
func (repo *Repository) GetObjectFormat() git.ObjectFormat {
227+
if repo.ObjectFormatName == git.Sha256ObjectFormat.Name() {
228+
return git.Sha256ObjectFormat
229+
}
230+
return git.Sha1ObjectFormat
231+
}
232+
226233
// SanitizedOriginalURL returns a sanitized OriginalURL
227234
func (repo *Repository) SanitizedOriginalURL() string {
228235
if repo.OriginalURL == "" {

modules/git/fsck.go

Lines changed: 0 additions & 14 deletions
This file was deleted.

modules/gitrepo/fsck.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Copyright 2024 The Gitea Authors. All rights reserved.
2+
// SPDX-License-Identifier: MIT
3+
4+
package gitrepo
5+
6+
import (
7+
"context"
8+
"time"
9+
10+
"code.gitea.io/gitea/modules/git"
11+
)
12+
13+
// Fsck verifies the connectivity and validity of the objects in the database
14+
func Fsck(ctx context.Context, repo Repository, timeout time.Duration, args git.TrustedCmdArgs) error {
15+
return git.NewCommand("fsck").AddArguments(args...).Run(ctx, &git.RunOpts{Timeout: timeout, Dir: repoPath(repo)})
16+
}

modules/gitrepo/gitrepo.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
type Repository interface {
2020
GetName() string
2121
GetOwnerName() string
22+
GetObjectFormat() git.ObjectFormat
2223
}
2324

2425
func absPath(owner, name string) string {
@@ -93,3 +94,11 @@ func RenameRepository(ctx context.Context, repo Repository, newName string) erro
9394
}
9495
return nil
9596
}
97+
98+
func InitRepository(ctx context.Context, repo Repository) error {
99+
return git.InitRepository(ctx, repoPath(repo), true, repo.GetObjectFormat().Name())
100+
}
101+
102+
func InitWikiRepository(ctx context.Context, repo Repository) error {
103+
return git.InitRepository(ctx, wikiPath(repo), true, repo.GetObjectFormat().Name())
104+
}

modules/repository/init.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212

1313
issues_model "code.gitea.io/gitea/models/issues"
1414
repo_model "code.gitea.io/gitea/models/repo"
15-
"code.gitea.io/gitea/modules/git"
1615
"code.gitea.io/gitea/modules/gitrepo"
1716
"code.gitea.io/gitea/modules/label"
1817
"code.gitea.io/gitea/modules/log"
@@ -136,7 +135,7 @@ func CheckInitRepository(ctx context.Context, repo *repo_model.Repository) (err
136135
}
137136

138137
// Init git bare new repository.
139-
if err = git.InitRepository(ctx, repo.RepoPath(), true, repo.ObjectFormatName); err != nil {
138+
if err = gitrepo.InitRepository(ctx, repo); err != nil {
140139
return fmt.Errorf("git.InitRepository: %w", err)
141140
} else if err = gitrepo.CreateDelegateHooksForRepo(ctx, repo); err != nil {
142141
return fmt.Errorf("createDelegateHooks: %w", err)

services/migrations/gitea_uploader_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ func TestGiteaUploadUpdateGitForPullRequest(t *testing.T) {
236236
//
237237
fromRepo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
238238
baseRef := "master"
239-
assert.NoError(t, git.InitRepository(git.DefaultContext, fromRepo.RepoPath(), false, fromRepo.ObjectFormatName))
239+
assert.NoError(t, gitrepo.InitRepository(git.DefaultContext, fromRepo))
240240
err := git.NewCommand("symbolic-ref").AddDynamicArguments("HEAD", git.BranchPrefix+baseRef).Run(git.DefaultContext, &git.RunOpts{Dir: fromRepo.RepoPath()})
241241
assert.NoError(t, err)
242242
assert.NoError(t, os.WriteFile(filepath.Join(fromRepo.RepoPath(), "README.md"), []byte(fmt.Sprintf("# Testing Repository\n\nOriginally created in: %s", fromRepo.RepoPath())), 0o644))

services/repository/check.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
system_model "code.gitea.io/gitea/models/system"
1515
user_model "code.gitea.io/gitea/models/user"
1616
"code.gitea.io/gitea/modules/git"
17+
"code.gitea.io/gitea/modules/gitrepo"
1718
"code.gitea.io/gitea/modules/log"
1819
repo_module "code.gitea.io/gitea/modules/repository"
1920
"code.gitea.io/gitea/modules/util"
@@ -47,10 +48,9 @@ func GitFsckRepos(ctx context.Context, timeout time.Duration, args git.TrustedCm
4748

4849
// GitFsckRepo calls 'git fsck' to check an individual repository's health.
4950
func GitFsckRepo(ctx context.Context, repo *repo_model.Repository, timeout time.Duration, args git.TrustedCmdArgs) error {
50-
log.Trace("Running health check on repository %-v", repo)
51-
repoPath := repo.RepoPath()
52-
if err := git.Fsck(ctx, repoPath, timeout, args); err != nil {
53-
log.Warn("Failed to health check repository (%-v): %v", repo, err)
51+
log.Trace("Running health check on repository %-v", repo.FullName())
52+
if err := gitrepo.Fsck(ctx, repo, timeout, args); err != nil {
53+
log.Warn("Failed to health check repository (%-v): %v", repo.FullName(), err)
5454
if err = system_model.CreateRepositoryNotice("Failed to health check repository (%s): %v", repo.FullName(), err); err != nil {
5555
log.Error("CreateRepositoryNotice: %v", err)
5656
}
@@ -190,7 +190,7 @@ func ReinitMissingRepositories(ctx context.Context) error {
190190
default:
191191
}
192192
log.Trace("Initializing %d/%d...", repo.OwnerID, repo.ID)
193-
if err := git.InitRepository(ctx, repo.RepoPath(), true, repo.ObjectFormatName); err != nil {
193+
if err := gitrepo.InitRepository(ctx, repo); err != nil {
194194
log.Error("Unable (re)initialize repository %d at %s. Error: %v", repo.ID, repo.RepoPath(), err)
195195
if err2 := system_model.CreateRepositoryNotice("InitRepository [%d]: %v", repo.ID, err); err2 != nil {
196196
log.Error("CreateRepositoryNotice: %v", err2)

services/wiki/wiki.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func InitWiki(ctx context.Context, repo *repo_model.Repository) error {
3939
return nil
4040
}
4141

42-
if err := git.InitRepository(ctx, repo.WikiPath(), true, repo.ObjectFormatName); err != nil {
42+
if err := gitrepo.InitWikiRepository(ctx, repo); err != nil {
4343
return fmt.Errorf("InitRepository: %w", err)
4444
} else if err = gitrepo.CreateDelegateHooksForWiki(ctx, repo); err != nil {
4545
return fmt.Errorf("createDelegateHooks: %w", err)

0 commit comments

Comments
 (0)