2019-04-17 19:06:35 +03:00
// Copyright 2019 The Gitea Authors. All rights reserved.
2022-11-27 21:20:29 +03:00
// SPDX-License-Identifier: MIT
2019-04-17 19:06:35 +03:00
2022-09-02 22:18:23 +03:00
package integration
2019-04-17 19:06:35 +03:00
import (
2023-07-18 21:14:47 +03:00
"strings"
2023-09-28 15:16:40 +03:00
"code.gitea.io/gitea/models"
2021-12-10 04:27:50 +03:00
repo_model "code.gitea.io/gitea/models/repo"
2021-11-24 12:49:20 +03:00
user_model "code.gitea.io/gitea/models/user"
2022-01-20 02:26:57 +03:00
"code.gitea.io/gitea/modules/git"
2019-05-11 13:21:34 +03:00
api "code.gitea.io/gitea/modules/structs"
2021-11-24 10:56:24 +03:00
files_service "code.gitea.io/gitea/services/repository/files"
2019-04-17 19:06:35 +03:00
)
2023-05-29 12:41:35 +03:00
func createFileInBranch ( user * user_model . User , repo * repo_model . Repository , treePath , branchName , content string ) ( * api . FilesResponse , error ) {
opts := & files_service . ChangeRepoFilesOptions {
Files : [ ] * files_service . ChangeRepoFile {
{
2023-07-18 21:14:47 +03:00
Operation : "create" ,
TreePath : treePath ,
ContentReader : strings . NewReader ( content ) ,
2023-05-29 12:41:35 +03:00
} ,
} ,
2019-04-17 19:06:35 +03:00
OldBranch : branchName ,
Author : nil ,
Committer : nil ,
}
2023-05-29 12:41:35 +03:00
return files_service . ChangeRepoFiles ( git . DefaultContext , repo , user , opts )
2019-04-17 19:06:35 +03:00
}
2023-09-28 15:16:40 +03:00
func deleteFileInBranch ( user * user_model . User , repo * repo_model . Repository , treePath , branchName string ) ( * api . FilesResponse , error ) {
opts := & files_service . ChangeRepoFilesOptions {
Files : [ ] * files_service . ChangeRepoFile {
{
Operation : "delete" ,
TreePath : treePath ,
} ,
} ,
OldBranch : branchName ,
Author : nil ,
Committer : nil ,
}
return files_service . ChangeRepoFiles ( git . DefaultContext , 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 && ! models . IsErrRepoFileDoesNotExist ( err ) {
return err
}
_ , err = createFileInBranch ( user , repo , treePath , branchName , content )
return err
}
2023-05-29 12:41:35 +03:00
func createFile ( user * user_model . User , repo * repo_model . Repository , treePath string ) ( * api . FilesResponse , error ) {
2021-04-16 21:30:16 +03:00
return createFileInBranch ( user , repo , treePath , repo . DefaultBranch , "This is a NEW file" )
2019-04-17 19:06:35 +03:00
}