aboutsummaryrefslogtreecommitdiffstats
path: root/services/packages/cargo/index.go
diff options
context:
space:
mode:
Diffstat (limited to 'services/packages/cargo/index.go')
-rw-r--r--services/packages/cargo/index.go40
1 files changed, 22 insertions, 18 deletions
diff --git a/services/packages/cargo/index.go b/services/packages/cargo/index.go
index e8a8313625..605335d0f1 100644
--- a/services/packages/cargo/index.go
+++ b/services/packages/cargo/index.go
@@ -11,7 +11,6 @@ import (
"io"
"path"
"strconv"
- "time"
packages_model "code.gitea.io/gitea/models/packages"
repo_model "code.gitea.io/gitea/models/repo"
@@ -79,7 +78,7 @@ func RebuildIndex(ctx context.Context, doer, owner *user_model.User) error {
"Rebuild Cargo Index",
func(t *files_service.TemporaryUploadRepository) error {
// Remove all existing content but the Cargo config
- files, err := t.LsFiles()
+ files, err := t.LsFiles(ctx)
if err != nil {
return err
}
@@ -90,7 +89,7 @@ func RebuildIndex(ctx context.Context, doer, owner *user_model.User) error {
break
}
}
- if err := t.RemoveFilesFromIndex(files...); err != nil {
+ if err := t.RemoveFilesFromIndex(ctx, files...); err != nil {
return err
}
@@ -205,7 +204,7 @@ func addOrUpdatePackageIndex(ctx context.Context, t *files_service.TemporaryUplo
return nil
}
- return writeObjectToIndex(t, BuildPackagePath(p.LowerName), b)
+ return writeObjectToIndex(ctx, t, BuildPackagePath(p.LowerName), b)
}
func getOrCreateIndexRepository(ctx context.Context, doer, owner *user_model.User) (*repo_model.Repository, error) {
@@ -214,7 +213,7 @@ func getOrCreateIndexRepository(ctx context.Context, doer, owner *user_model.Use
if errors.Is(err, util.ErrNotExist) {
repo, err = repo_service.CreateRepositoryDirectly(ctx, doer, owner, repo_service.CreateRepoOptions{
Name: IndexRepositoryName,
- })
+ }, true)
if err != nil {
return nil, fmt.Errorf("CreateRepository: %w", err)
}
@@ -248,34 +247,34 @@ func createOrUpdateConfigFile(ctx context.Context, repo *repo_model.Repository,
"Initialize Cargo Config",
func(t *files_service.TemporaryUploadRepository) error {
var b bytes.Buffer
- err := json.NewEncoder(&b).Encode(BuildConfig(owner, setting.Service.RequireSignInView || owner.Visibility != structs.VisibleTypePublic || repo.IsPrivate))
+ err := json.NewEncoder(&b).Encode(BuildConfig(owner, setting.Service.RequireSignInViewStrict || owner.Visibility != structs.VisibleTypePublic || repo.IsPrivate))
if err != nil {
return err
}
- return writeObjectToIndex(t, ConfigFileName, &b)
+ return writeObjectToIndex(ctx, t, ConfigFileName, &b)
},
)
}
// This is a shorter version of CreateOrUpdateRepoFile which allows to perform multiple actions on a git repository
func alterRepositoryContent(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, commitMessage string, fn func(*files_service.TemporaryUploadRepository) error) error {
- t, err := files_service.NewTemporaryUploadRepository(ctx, repo)
+ t, err := files_service.NewTemporaryUploadRepository(repo)
if err != nil {
return err
}
defer t.Close()
var lastCommitID string
- if err := t.Clone(repo.DefaultBranch, true); err != nil {
+ if err := t.Clone(ctx, repo.DefaultBranch, true); err != nil {
if !git.IsErrBranchNotExist(err) || !repo.IsEmpty {
return err
}
- if err := t.Init(repo.ObjectFormatName); err != nil {
+ if err := t.Init(ctx, repo.ObjectFormatName); err != nil {
return err
}
} else {
- if err := t.SetDefaultIndex(); err != nil {
+ if err := t.SetDefaultIndex(ctx); err != nil {
return err
}
@@ -291,25 +290,30 @@ func alterRepositoryContent(ctx context.Context, doer *user_model.User, repo *re
return err
}
- treeHash, err := t.WriteTree()
+ treeHash, err := t.WriteTree(ctx)
if err != nil {
return err
}
- now := time.Now()
- commitHash, err := t.CommitTreeWithDate(lastCommitID, doer, doer, treeHash, commitMessage, false, now, now)
+ commitOpts := &files_service.CommitTreeUserOptions{
+ ParentCommitID: lastCommitID,
+ TreeHash: treeHash,
+ CommitMessage: commitMessage,
+ DoerUser: doer,
+ }
+ commitHash, err := t.CommitTree(ctx, commitOpts)
if err != nil {
return err
}
- return t.Push(doer, commitHash, repo.DefaultBranch)
+ return t.Push(ctx, doer, commitHash, repo.DefaultBranch)
}
-func writeObjectToIndex(t *files_service.TemporaryUploadRepository, path string, r io.Reader) error {
- hash, err := t.HashObject(r)
+func writeObjectToIndex(ctx context.Context, t *files_service.TemporaryUploadRepository, path string, r io.Reader) error {
+ hash, err := t.HashObjectAndWrite(ctx, r)
if err != nil {
return err
}
- return t.AddObjectToIndex("100644", hash, path)
+ return t.AddObjectToIndex(ctx, "100644", hash, path)
}