mirror of https://github.com/go-gitea/gitea.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.8 KiB
62 lines
1.8 KiB
// Copyright 2019 The Gitea Authors. All rights reserved. |
|
// SPDX-License-Identifier: MIT |
|
|
|
package integration |
|
|
|
import ( |
|
"context" |
|
"strings" |
|
|
|
repo_model "code.gitea.io/gitea/models/repo" |
|
user_model "code.gitea.io/gitea/models/user" |
|
api "code.gitea.io/gitea/modules/structs" |
|
files_service "code.gitea.io/gitea/services/repository/files" |
|
) |
|
|
|
func createFileInBranch(user *user_model.User, repo *repo_model.Repository, treePath, branchName, content string) (*api.FilesResponse, error) { |
|
ctx := context.TODO() |
|
opts := &files_service.ChangeRepoFilesOptions{ |
|
Files: []*files_service.ChangeRepoFile{ |
|
{ |
|
Operation: "create", |
|
TreePath: treePath, |
|
ContentReader: strings.NewReader(content), |
|
}, |
|
}, |
|
OldBranch: branchName, |
|
Author: nil, |
|
Committer: nil, |
|
} |
|
return files_service.ChangeRepoFiles(ctx, repo, user, opts) |
|
} |
|
|
|
func deleteFileInBranch(user *user_model.User, repo *repo_model.Repository, treePath, branchName string) (*api.FilesResponse, error) { |
|
ctx := context.TODO() |
|
opts := &files_service.ChangeRepoFilesOptions{ |
|
Files: []*files_service.ChangeRepoFile{ |
|
{ |
|
Operation: "delete", |
|
TreePath: treePath, |
|
}, |
|
}, |
|
OldBranch: branchName, |
|
Author: nil, |
|
Committer: nil, |
|
} |
|
return files_service.ChangeRepoFiles(ctx, repo, user, opts) |
|
} |
|
|
|
func createOrReplaceFileInBranch(user *user_model.User, repo *repo_model.Repository, treePath, branchName, content string) error { |
|
_, err := deleteFileInBranch(user, repo, treePath, branchName) |
|
|
|
if err != nil && !files_service.IsErrRepoFileDoesNotExist(err) { |
|
return err |
|
} |
|
|
|
_, err = createFileInBranch(user, repo, treePath, branchName, content) |
|
return err |
|
} |
|
|
|
func createFile(user *user_model.User, repo *repo_model.Repository, treePath string) (*api.FilesResponse, error) { |
|
return createFileInBranch(user, repo, treePath, repo.DefaultBranch, "This is a NEW file") |
|
}
|
|
|