* Move some helper files out of models * Some improvements Co-authored-by: delvh <dev.lh@web.de>tags/v1.18.0-dev
@@ -15,9 +15,9 @@ import ( | |||
"strings" | |||
"time" | |||
"code.gitea.io/gitea/models" | |||
"code.gitea.io/gitea/modules/git" | |||
"code.gitea.io/gitea/modules/private" | |||
repo_module "code.gitea.io/gitea/modules/repository" | |||
"code.gitea.io/gitea/modules/setting" | |||
"code.gitea.io/gitea/modules/util" | |||
@@ -162,7 +162,7 @@ func (n *nilWriter) WriteString(s string) (int, error) { | |||
} | |||
func runHookPreReceive(c *cli.Context) error { | |||
if os.Getenv(models.EnvIsInternal) == "true" { | |||
if isInternal, _ := strconv.ParseBool(os.Getenv(repo_module.EnvIsInternal)); isInternal { | |||
return nil | |||
} | |||
ctx, cancel := installSignals() | |||
@@ -180,12 +180,12 @@ Gitea or set your environment appropriately.`, "") | |||
} | |||
// the environment is set by serv command | |||
isWiki := os.Getenv(models.EnvRepoIsWiki) == "true" | |||
username := os.Getenv(models.EnvRepoUsername) | |||
reponame := os.Getenv(models.EnvRepoName) | |||
userID, _ := strconv.ParseInt(os.Getenv(models.EnvPusherID), 10, 64) | |||
prID, _ := strconv.ParseInt(os.Getenv(models.EnvPRID), 10, 64) | |||
deployKeyID, _ := strconv.ParseInt(os.Getenv(models.EnvDeployKeyID), 10, 64) | |||
isWiki, _ := strconv.ParseBool(os.Getenv(repo_module.EnvRepoIsWiki)) | |||
username := os.Getenv(repo_module.EnvRepoUsername) | |||
reponame := os.Getenv(repo_module.EnvRepoName) | |||
userID, _ := strconv.ParseInt(os.Getenv(repo_module.EnvPusherID), 10, 64) | |||
prID, _ := strconv.ParseInt(os.Getenv(repo_module.EnvPRID), 10, 64) | |||
deployKeyID, _ := strconv.ParseInt(os.Getenv(repo_module.EnvDeployKeyID), 10, 64) | |||
hookOptions := private.HookOptions{ | |||
UserID: userID, | |||
@@ -314,7 +314,7 @@ func runHookPostReceive(c *cli.Context) error { | |||
} | |||
// Now if we're an internal don't do anything else | |||
if os.Getenv(models.EnvIsInternal) == "true" { | |||
if isInternal, _ := strconv.ParseBool(os.Getenv(repo_module.EnvIsInternal)); isInternal { | |||
return nil | |||
} | |||
@@ -343,11 +343,11 @@ Gitea or set your environment appropriately.`, "") | |||
} | |||
// the environment is set by serv command | |||
repoUser := os.Getenv(models.EnvRepoUsername) | |||
isWiki := os.Getenv(models.EnvRepoIsWiki) == "true" | |||
repoName := os.Getenv(models.EnvRepoName) | |||
pusherID, _ := strconv.ParseInt(os.Getenv(models.EnvPusherID), 10, 64) | |||
pusherName := os.Getenv(models.EnvPusherName) | |||
repoUser := os.Getenv(repo_module.EnvRepoUsername) | |||
isWiki, _ := strconv.ParseBool(os.Getenv(repo_module.EnvRepoIsWiki)) | |||
repoName := os.Getenv(repo_module.EnvRepoName) | |||
pusherID, _ := strconv.ParseInt(os.Getenv(repo_module.EnvPusherID), 10, 64) | |||
pusherName := os.Getenv(repo_module.EnvPusherName) | |||
hookOptions := private.HookOptions{ | |||
UserName: pusherName, | |||
@@ -503,10 +503,10 @@ Gitea or set your environment appropriately.`, "") | |||
} | |||
reader := bufio.NewReader(os.Stdin) | |||
repoUser := os.Getenv(models.EnvRepoUsername) | |||
repoName := os.Getenv(models.EnvRepoName) | |||
pusherID, _ := strconv.ParseInt(os.Getenv(models.EnvPusherID), 10, 64) | |||
pusherName := os.Getenv(models.EnvPusherName) | |||
repoUser := os.Getenv(repo_module.EnvRepoUsername) | |||
repoName := os.Getenv(repo_module.EnvRepoName) | |||
pusherID, _ := strconv.ParseInt(os.Getenv(repo_module.EnvPusherID), 10, 64) | |||
pusherName := os.Getenv(repo_module.EnvPusherName) | |||
// 1. Version and features negotiation. | |||
// S: PKT-LINE(version=1\0push-options atomic...) / PKT-LINE(version=1\n) |
@@ -24,6 +24,7 @@ import ( | |||
"code.gitea.io/gitea/modules/log" | |||
"code.gitea.io/gitea/modules/pprof" | |||
"code.gitea.io/gitea/modules/private" | |||
repo_module "code.gitea.io/gitea/modules/repository" | |||
"code.gitea.io/gitea/modules/setting" | |||
"code.gitea.io/gitea/services/lfs" | |||
@@ -235,17 +236,17 @@ func runServ(c *cli.Context) error { | |||
} | |||
return fail("Internal Server Error", "%s", err.Error()) | |||
} | |||
os.Setenv(models.EnvRepoIsWiki, strconv.FormatBool(results.IsWiki)) | |||
os.Setenv(models.EnvRepoName, results.RepoName) | |||
os.Setenv(models.EnvRepoUsername, results.OwnerName) | |||
os.Setenv(models.EnvPusherName, results.UserName) | |||
os.Setenv(models.EnvPusherEmail, results.UserEmail) | |||
os.Setenv(models.EnvPusherID, strconv.FormatInt(results.UserID, 10)) | |||
os.Setenv(models.EnvRepoID, strconv.FormatInt(results.RepoID, 10)) | |||
os.Setenv(models.EnvPRID, fmt.Sprintf("%d", 0)) | |||
os.Setenv(models.EnvDeployKeyID, fmt.Sprintf("%d", results.DeployKeyID)) | |||
os.Setenv(models.EnvKeyID, fmt.Sprintf("%d", results.KeyID)) | |||
os.Setenv(models.EnvAppURL, setting.AppURL) | |||
os.Setenv(repo_module.EnvRepoIsWiki, strconv.FormatBool(results.IsWiki)) | |||
os.Setenv(repo_module.EnvRepoName, results.RepoName) | |||
os.Setenv(repo_module.EnvRepoUsername, results.OwnerName) | |||
os.Setenv(repo_module.EnvPusherName, results.UserName) | |||
os.Setenv(repo_module.EnvPusherEmail, results.UserEmail) | |||
os.Setenv(repo_module.EnvPusherID, strconv.FormatInt(results.UserID, 10)) | |||
os.Setenv(repo_module.EnvRepoID, strconv.FormatInt(results.RepoID, 10)) | |||
os.Setenv(repo_module.EnvPRID, fmt.Sprintf("%d", 0)) | |||
os.Setenv(repo_module.EnvDeployKeyID, fmt.Sprintf("%d", results.DeployKeyID)) | |||
os.Setenv(repo_module.EnvKeyID, fmt.Sprintf("%d", results.KeyID)) | |||
os.Setenv(repo_module.EnvAppURL, setting.AppURL) | |||
// LFS token authentication | |||
if verb == lfsAuthenticateVerb { |
@@ -24,12 +24,12 @@ import ( | |||
"strconv" | |||
"time" | |||
"code.gitea.io/gitea/models" | |||
"code.gitea.io/gitea/models/db" | |||
"code.gitea.io/gitea/models/unittest" | |||
gitea_git "code.gitea.io/gitea/modules/git" | |||
"code.gitea.io/gitea/modules/markup" | |||
"code.gitea.io/gitea/modules/markup/external" | |||
repo_module "code.gitea.io/gitea/modules/repository" | |||
"code.gitea.io/gitea/modules/setting" | |||
"code.gitea.io/gitea/modules/util" | |||
"code.gitea.io/gitea/routers" | |||
@@ -111,7 +111,7 @@ func runPR() { | |||
} | |||
unittest.LoadFixtures() | |||
util.RemoveAll(setting.RepoRootPath) | |||
util.RemoveAll(models.LocalCopyPath()) | |||
util.RemoveAll(repo_module.LocalCopyPath()) | |||
unittest.CopyDir(path.Join(curDir, "integrations/gitea-repositories-meta"), setting.RepoRootPath) | |||
log.Printf("[PR] Setting up router\n") |
@@ -24,7 +24,6 @@ import ( | |||
"testing" | |||
"time" | |||
"code.gitea.io/gitea/models" | |||
"code.gitea.io/gitea/models/unittest" | |||
"code.gitea.io/gitea/modules/base" | |||
"code.gitea.io/gitea/modules/git" | |||
@@ -32,6 +31,7 @@ import ( | |||
"code.gitea.io/gitea/modules/json" | |||
"code.gitea.io/gitea/modules/log" | |||
"code.gitea.io/gitea/modules/queue" | |||
repo_module "code.gitea.io/gitea/modules/repository" | |||
"code.gitea.io/gitea/modules/setting" | |||
"code.gitea.io/gitea/modules/storage" | |||
"code.gitea.io/gitea/modules/util" | |||
@@ -173,7 +173,7 @@ func initIntegrationTest() { | |||
setting.SetCustomPathAndConf("", "", "") | |||
setting.LoadForTest() | |||
setting.Repository.DefaultBranch = "master" // many test code still assume that default branch is called "master" | |||
_ = util.RemoveAll(models.LocalCopyPath()) | |||
_ = util.RemoveAll(repo_module.LocalCopyPath()) | |||
git.CheckLFSVersion() | |||
setting.InitDBConfig() | |||
if err := storage.Init(); err != nil { |
@@ -1,17 +0,0 @@ | |||
// Copyright 2017 The Gitea Authors. All rights reserved. | |||
// Use of this source code is governed by a MIT-style | |||
// license that can be found in the LICENSE file. | |||
package models | |||
import ( | |||
repo_model "code.gitea.io/gitea/models/repo" | |||
) | |||
func valuesRepository(m map[int64]*repo_model.Repository) []*repo_model.Repository { | |||
values := make([]*repo_model.Repository, 0, len(m)) | |||
for _, v := range m { | |||
values = append(values, v) | |||
} | |||
return values | |||
} |
@@ -43,9 +43,6 @@ var ItemsPerPage = 40 | |||
// NewRepoContext creates a new repository context | |||
func NewRepoContext() { | |||
unit.LoadUnitConfig() | |||
admin_model.RemoveAllWithNotice(db.DefaultContext, "Clean up temporary repository uploads", setting.Repository.Upload.TempPath) | |||
admin_model.RemoveAllWithNotice(db.DefaultContext, "Clean up temporary repositories", LocalCopyPath()) | |||
} | |||
// CheckRepoUnitUser check whether user could visit the unit of this repository | |||
@@ -527,7 +524,8 @@ func DecrementRepoForkNum(ctx context.Context, repoID int64) error { | |||
return err | |||
} | |||
func updateRepository(ctx context.Context, repo *repo_model.Repository, visibilityChanged bool) (err error) { | |||
// UpdateRepositoryCtx updates a repository with db context | |||
func UpdateRepositoryCtx(ctx context.Context, repo *repo_model.Repository, visibilityChanged bool) (err error) { | |||
repo.LowerName = strings.ToLower(repo.Name) | |||
if utf8.RuneCountInString(repo.Description) > 255 { | |||
@@ -579,7 +577,7 @@ func updateRepository(ctx context.Context, repo *repo_model.Repository, visibili | |||
} | |||
for i := range forkRepos { | |||
forkRepos[i].IsPrivate = repo.IsPrivate || repo.Owner.Visibility == api.VisibleTypePrivate | |||
if err = updateRepository(ctx, forkRepos[i], true); err != nil { | |||
if err = UpdateRepositoryCtx(ctx, forkRepos[i], true); err != nil { | |||
return fmt.Errorf("updateRepository[%d]: %v", forkRepos[i].ID, err) | |||
} | |||
} | |||
@@ -588,11 +586,6 @@ func updateRepository(ctx context.Context, repo *repo_model.Repository, visibili | |||
return nil | |||
} | |||
// UpdateRepositoryCtx updates a repository with db context | |||
func UpdateRepositoryCtx(ctx context.Context, repo *repo_model.Repository, visibilityChanged bool) error { | |||
return updateRepository(ctx, repo, visibilityChanged) | |||
} | |||
// UpdateRepository updates a repository | |||
func UpdateRepository(repo *repo_model.Repository, visibilityChanged bool) (err error) { | |||
ctx, committer, err := db.TxContext() | |||
@@ -601,7 +594,7 @@ func UpdateRepository(repo *repo_model.Repository, visibilityChanged bool) (err | |||
} | |||
defer committer.Close() | |||
if err = updateRepository(ctx, repo, visibilityChanged); err != nil { | |||
if err = UpdateRepositoryCtx(ctx, repo, visibilityChanged); err != nil { | |||
return fmt.Errorf("updateRepository: %v", err) | |||
} | |||
@@ -42,6 +42,15 @@ func (repos RepositoryList) Swap(i, j int) { | |||
repos[i], repos[j] = repos[j], repos[i] | |||
} | |||
// FIXME: Remove in favor of maps.values when MIN_GO_VERSION >= 1.18 | |||
func valuesRepository(m map[int64]*repo_model.Repository) []*repo_model.Repository { | |||
values := make([]*repo_model.Repository, 0, len(m)) | |||
for _, v := range m { | |||
values = append(values, v) | |||
} | |||
return values | |||
} | |||
// RepositoryListOfMap make list from values of map | |||
func RepositoryListOfMap(repoMap map[int64]*repo_model.Repository) RepositoryList { | |||
return RepositoryList(valuesRepository(repoMap)) |
@@ -2,7 +2,7 @@ | |||
// Use of this source code is governed by a MIT-style | |||
// license that can be found in the LICENSE file. | |||
package models | |||
package repository | |||
import ( | |||
"fmt" |
@@ -360,7 +360,7 @@ func initRepoCommit(ctx context.Context, tmpPath string, repo *repo_model.Reposi | |||
if stdout, _, err := git.NewCommand(ctx, "push", "origin", "HEAD:"+defaultBranch). | |||
SetDescription(fmt.Sprintf("initRepoCommit (git push): %s", tmpPath)). | |||
RunStdString(&git.RunOpts{Dir: tmpPath, Env: models.InternalPushingEnvironment(u, repo)}); err != nil { | |||
RunStdString(&git.RunOpts{Dir: tmpPath, Env: InternalPushingEnvironment(u, repo)}); err != nil { | |||
log.Error("Failed to push back to HEAD: Stdout: %s\nError: %v", stdout, err) | |||
return fmt.Errorf("git push: %v", err) | |||
} |
@@ -2,7 +2,7 @@ | |||
// Use of this source code is governed by a MIT-style | |||
// license that can be found in the LICENSE file. | |||
package models | |||
package repository | |||
import ( | |||
"fmt" |
@@ -73,7 +73,7 @@ func mustInitCtx(ctx context.Context, fn func(ctx context.Context) error) { | |||
func InitGitServices() { | |||
setting.NewServices() | |||
mustInit(storage.Init) | |||
mustInit(repo_service.NewContext) | |||
mustInit(repo_service.Init) | |||
} | |||
func syncAppPathForGit(ctx context.Context) error { | |||
@@ -116,7 +116,9 @@ func GlobalInitInstalled(ctx context.Context) { | |||
// Setup i18n | |||
translation.InitLocales() | |||
InitGitServices() | |||
setting.NewServices() | |||
mustInit(storage.Init) | |||
mailer.NewContext() | |||
mustInit(cache.NewContext) | |||
notification.NewContext() | |||
@@ -138,6 +140,7 @@ func GlobalInitInstalled(ctx context.Context) { | |||
mustInit(oauth2.Init) | |||
models.NewRepoContext() | |||
mustInit(repo_service.Init) | |||
// Booting long running goroutines. | |||
cron.NewContext(ctx) |
@@ -129,7 +129,7 @@ func RestoreBranchPost(ctx *context.Context) { | |||
if err := git.Push(ctx, ctx.Repo.Repository.RepoPath(), git.PushOptions{ | |||
Remote: ctx.Repo.Repository.RepoPath(), | |||
Branch: fmt.Sprintf("%s:%s%s", deletedBranch.Commit, git.BranchPrefix, deletedBranch.Name), | |||
Env: models.PushingEnvironment(ctx.Doer, ctx.Repo.Repository), | |||
Env: repo_module.PushingEnvironment(ctx.Doer, ctx.Repo.Repository), | |||
}); err != nil { | |||
if strings.Contains(err.Error(), "already exists") { | |||
log.Debug("RestoreBranch: Can't restore branch '%s', since one with same name already exist", deletedBranch.Name) |
@@ -27,6 +27,7 @@ import ( | |||
"code.gitea.io/gitea/modules/context" | |||
"code.gitea.io/gitea/modules/git" | |||
"code.gitea.io/gitea/modules/log" | |||
repo_module "code.gitea.io/gitea/modules/repository" | |||
"code.gitea.io/gitea/modules/setting" | |||
"code.gitea.io/gitea/modules/structs" | |||
"code.gitea.io/gitea/modules/util" | |||
@@ -204,21 +205,21 @@ func httpBase(ctx *context.Context) (h *serviceHandler) { | |||
} | |||
environ = []string{ | |||
models.EnvRepoUsername + "=" + username, | |||
models.EnvRepoName + "=" + reponame, | |||
models.EnvPusherName + "=" + ctx.Doer.Name, | |||
models.EnvPusherID + fmt.Sprintf("=%d", ctx.Doer.ID), | |||
models.EnvAppURL + "=" + setting.AppURL, | |||
repo_module.EnvRepoUsername + "=" + username, | |||
repo_module.EnvRepoName + "=" + reponame, | |||
repo_module.EnvPusherName + "=" + ctx.Doer.Name, | |||
repo_module.EnvPusherID + fmt.Sprintf("=%d", ctx.Doer.ID), | |||
repo_module.EnvAppURL + "=" + setting.AppURL, | |||
} | |||
if !ctx.Doer.KeepEmailPrivate { | |||
environ = append(environ, models.EnvPusherEmail+"="+ctx.Doer.Email) | |||
environ = append(environ, repo_module.EnvPusherEmail+"="+ctx.Doer.Email) | |||
} | |||
if isWiki { | |||
environ = append(environ, models.EnvRepoIsWiki+"=true") | |||
environ = append(environ, repo_module.EnvRepoIsWiki+"=true") | |||
} else { | |||
environ = append(environ, models.EnvRepoIsWiki+"=false") | |||
environ = append(environ, repo_module.EnvRepoIsWiki+"=false") | |||
} | |||
} | |||
@@ -269,7 +270,7 @@ func httpBase(ctx *context.Context) (h *serviceHandler) { | |||
} | |||
} | |||
environ = append(environ, models.EnvRepoID+fmt.Sprintf("=%d", repo.ID)) | |||
environ = append(environ, repo_module.EnvRepoID+fmt.Sprintf("=%d", repo.ID)) | |||
w := ctx.Resp | |||
r := ctx.Req |
@@ -23,6 +23,7 @@ import ( | |||
"code.gitea.io/gitea/modules/git/pipeline" | |||
"code.gitea.io/gitea/modules/lfs" | |||
"code.gitea.io/gitea/modules/log" | |||
repo_module "code.gitea.io/gitea/modules/repository" | |||
"code.gitea.io/gitea/modules/setting" | |||
"code.gitea.io/gitea/modules/storage" | |||
"code.gitea.io/gitea/modules/typesniffer" | |||
@@ -103,14 +104,14 @@ func LFSLocks(ctx *context.Context) { | |||
} | |||
// Clone base repo. | |||
tmpBasePath, err := models.CreateTemporaryPath("locks") | |||
tmpBasePath, err := repo_module.CreateTemporaryPath("locks") | |||
if err != nil { | |||
log.Error("Failed to create temporary path: %v", err) | |||
ctx.ServerError("LFSLocks", err) | |||
return | |||
} | |||
defer func() { | |||
if err := models.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
if err := repo_module.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
log.Error("LFSLocks: RemoveTemporaryPath: %v", err) | |||
} | |||
}() |
@@ -28,6 +28,7 @@ import ( | |||
"code.gitea.io/gitea/modules/log" | |||
"code.gitea.io/gitea/modules/notification" | |||
"code.gitea.io/gitea/modules/references" | |||
repo_module "code.gitea.io/gitea/modules/repository" | |||
"code.gitea.io/gitea/modules/setting" | |||
"code.gitea.io/gitea/modules/timeutil" | |||
asymkey_service "code.gitea.io/gitea/services/asymkey" | |||
@@ -234,7 +235,7 @@ func rawMerge(ctx context.Context, pr *models.PullRequest, doer *user_model.User | |||
return "", err | |||
} | |||
defer func() { | |||
if err := models.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
if err := repo_module.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
log.Error("Merge: RemoveTemporaryPath: %s", err) | |||
} | |||
}() | |||
@@ -590,7 +591,7 @@ func rawMerge(ctx context.Context, pr *models.PullRequest, doer *user_model.User | |||
headUser = pr.HeadRepo.Owner | |||
} | |||
env = models.FullPushingEnvironment( | |||
env = repo_module.FullPushingEnvironment( | |||
headUser, | |||
doer, | |||
pr.BaseRepo, |
@@ -20,6 +20,7 @@ import ( | |||
"code.gitea.io/gitea/modules/graceful" | |||
"code.gitea.io/gitea/modules/log" | |||
"code.gitea.io/gitea/modules/process" | |||
repo_module "code.gitea.io/gitea/modules/repository" | |||
"code.gitea.io/gitea/modules/util" | |||
"github.com/gobwas/glob" | |||
@@ -64,7 +65,7 @@ func TestPatch(pr *models.PullRequest) error { | |||
return err | |||
} | |||
defer func() { | |||
if err := models.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
if err := repo_module.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
log.Error("Merge: RemoveTemporaryPath: %s", err) | |||
} | |||
}() |
@@ -24,6 +24,7 @@ import ( | |||
"code.gitea.io/gitea/modules/log" | |||
"code.gitea.io/gitea/modules/notification" | |||
"code.gitea.io/gitea/modules/process" | |||
repo_module "code.gitea.io/gitea/modules/repository" | |||
"code.gitea.io/gitea/modules/setting" | |||
"code.gitea.io/gitea/modules/sync" | |||
issue_service "code.gitea.io/gitea/services/issue" | |||
@@ -452,7 +453,7 @@ func pushToBaseRepoHelper(ctx context.Context, pr *models.PullRequest, prefixHea | |||
Branch: prefixHeadBranch + pr.HeadBranch + ":" + gitRefName, | |||
Force: true, | |||
// Use InternalPushingEnvironment here because we know that pre-receive and post-receive do not run on a refs/pulls/... | |||
Env: models.InternalPushingEnvironment(pr.Issue.Poster, pr.BaseRepo), | |||
Env: repo_module.InternalPushingEnvironment(pr.Issue.Poster, pr.BaseRepo), | |||
}); err != nil { | |||
if git.IsErrPushOutOfDate(err) { | |||
// This should not happen as we're using force! |
@@ -16,6 +16,7 @@ import ( | |||
repo_model "code.gitea.io/gitea/models/repo" | |||
"code.gitea.io/gitea/modules/git" | |||
"code.gitea.io/gitea/modules/log" | |||
repo_module "code.gitea.io/gitea/modules/repository" | |||
) | |||
// createTemporaryRepo creates a temporary repo with "base" for pr.BaseBranch and "tracking" for pr.HeadBranch | |||
@@ -46,7 +47,7 @@ func createTemporaryRepo(ctx context.Context, pr *models.PullRequest) (string, e | |||
} | |||
// Clone base repo. | |||
tmpBasePath, err := models.CreateTemporaryPath("pull") | |||
tmpBasePath, err := repo_module.CreateTemporaryPath("pull") | |||
if err != nil { | |||
log.Error("CreateTemporaryPath: %v", err) | |||
return "", err | |||
@@ -57,7 +58,7 @@ func createTemporaryRepo(ctx context.Context, pr *models.PullRequest) (string, e | |||
if err := git.InitRepository(ctx, tmpBasePath, false); err != nil { | |||
log.Error("git init tmpBasePath: %v", err) | |||
if err := models.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
if err := repo_module.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
log.Error("CreateTempRepo: RemoveTemporaryPath: %s", err) | |||
} | |||
return "", err | |||
@@ -85,7 +86,7 @@ func createTemporaryRepo(ctx context.Context, pr *models.PullRequest) (string, e | |||
if err := addCacheRepo(tmpBasePath, baseRepoPath); err != nil { | |||
log.Error("Unable to add base repository to temporary repo [%s -> %s]: %v", pr.BaseRepo.FullName(), tmpBasePath, err) | |||
if err := models.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
if err := repo_module.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
log.Error("CreateTempRepo: RemoveTemporaryPath: %s", err) | |||
} | |||
return "", fmt.Errorf("Unable to add base repository to temporary repo [%s -> tmpBasePath]: %v", pr.BaseRepo.FullName(), err) | |||
@@ -99,7 +100,7 @@ func createTemporaryRepo(ctx context.Context, pr *models.PullRequest) (string, e | |||
Stderr: &errbuf, | |||
}); err != nil { | |||
log.Error("Unable to add base repository as origin [%s -> %s]: %v\n%s\n%s", pr.BaseRepo.FullName(), tmpBasePath, err, outbuf.String(), errbuf.String()) | |||
if err := models.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
if err := repo_module.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
log.Error("CreateTempRepo: RemoveTemporaryPath: %s", err) | |||
} | |||
return "", fmt.Errorf("Unable to add base repository as origin [%s -> tmpBasePath]: %v\n%s\n%s", pr.BaseRepo.FullName(), err, outbuf.String(), errbuf.String()) | |||
@@ -114,7 +115,7 @@ func createTemporaryRepo(ctx context.Context, pr *models.PullRequest) (string, e | |||
Stderr: &errbuf, | |||
}); err != nil { | |||
log.Error("Unable to fetch origin base branch [%s:%s -> base, original_base in %s]: %v:\n%s\n%s", pr.BaseRepo.FullName(), pr.BaseBranch, tmpBasePath, err, outbuf.String(), errbuf.String()) | |||
if err := models.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
if err := repo_module.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
log.Error("CreateTempRepo: RemoveTemporaryPath: %s", err) | |||
} | |||
return "", fmt.Errorf("Unable to fetch origin base branch [%s:%s -> base, original_base in tmpBasePath]: %v\n%s\n%s", pr.BaseRepo.FullName(), pr.BaseBranch, err, outbuf.String(), errbuf.String()) | |||
@@ -129,7 +130,7 @@ func createTemporaryRepo(ctx context.Context, pr *models.PullRequest) (string, e | |||
Stderr: &errbuf, | |||
}); err != nil { | |||
log.Error("Unable to set HEAD as base branch [%s]: %v\n%s\n%s", tmpBasePath, err, outbuf.String(), errbuf.String()) | |||
if err := models.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
if err := repo_module.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
log.Error("CreateTempRepo: RemoveTemporaryPath: %s", err) | |||
} | |||
return "", fmt.Errorf("Unable to set HEAD as base branch [tmpBasePath]: %v\n%s\n%s", err, outbuf.String(), errbuf.String()) | |||
@@ -139,7 +140,7 @@ func createTemporaryRepo(ctx context.Context, pr *models.PullRequest) (string, e | |||
if err := addCacheRepo(tmpBasePath, headRepoPath); err != nil { | |||
log.Error("Unable to add head repository to temporary repo [%s -> %s]: %v", pr.HeadRepo.FullName(), tmpBasePath, err) | |||
if err := models.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
if err := repo_module.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
log.Error("CreateTempRepo: RemoveTemporaryPath: %s", err) | |||
} | |||
return "", fmt.Errorf("Unable to head base repository to temporary repo [%s -> tmpBasePath]: %v", pr.HeadRepo.FullName(), err) | |||
@@ -152,7 +153,7 @@ func createTemporaryRepo(ctx context.Context, pr *models.PullRequest) (string, e | |||
Stderr: &errbuf, | |||
}); err != nil { | |||
log.Error("Unable to add head repository as head_repo [%s -> %s]: %v\n%s\n%s", pr.HeadRepo.FullName(), tmpBasePath, err, outbuf.String(), errbuf.String()) | |||
if err := models.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
if err := repo_module.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
log.Error("CreateTempRepo: RemoveTemporaryPath: %s", err) | |||
} | |||
return "", fmt.Errorf("Unable to add head repository as head_repo [%s -> tmpBasePath]: %v\n%s\n%s", pr.HeadRepo.FullName(), err, outbuf.String(), errbuf.String()) | |||
@@ -176,7 +177,7 @@ func createTemporaryRepo(ctx context.Context, pr *models.PullRequest) (string, e | |||
Stdout: &outbuf, | |||
Stderr: &errbuf, | |||
}); err != nil { | |||
if err := models.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
if err := repo_module.RemoveTemporaryPath(tmpBasePath); err != nil { | |||
log.Error("CreateTempRepo: RemoveTemporaryPath: %s", err) | |||
} | |||
if !git.IsBranchExist(ctx, pr.HeadRepo.RepoPath(), pr.HeadBranch) { |
@@ -14,6 +14,7 @@ import ( | |||
user_model "code.gitea.io/gitea/models/user" | |||
"code.gitea.io/gitea/modules/git" | |||
"code.gitea.io/gitea/modules/log" | |||
repo_module "code.gitea.io/gitea/modules/repository" | |||
) | |||
// Update updates pull request with base branch. | |||
@@ -154,7 +155,7 @@ func GetDiverging(ctx context.Context, pr *models.PullRequest) (*git.DivergeObje | |||
return nil, err | |||
} | |||
defer func() { | |||
if err := models.RemoveTemporaryPath(tmpRepo); err != nil { | |||
if err := repo_module.RemoveTemporaryPath(tmpRepo); err != nil { | |||
log.Error("Merge: RemoveTemporaryPath: %s", err) | |||
} | |||
}() |
@@ -36,7 +36,7 @@ func CreateNewBranch(ctx context.Context, doer *user_model.User, repo *repo_mode | |||
if err := git.Push(ctx, repo.RepoPath(), git.PushOptions{ | |||
Remote: repo.RepoPath(), | |||
Branch: fmt.Sprintf("%s%s:%s%s", git.BranchPrefix, oldBranchName, git.BranchPrefix, branchName), | |||
Env: models.PushingEnvironment(doer, repo), | |||
Env: repo_module.PushingEnvironment(doer, repo), | |||
}); err != nil { | |||
if git.IsErrPushOutOfDate(err) || git.IsErrPushRejected(err) { | |||
return err | |||
@@ -93,7 +93,7 @@ func CreateNewBranchFromCommit(ctx context.Context, doer *user_model.User, repo | |||
if err := git.Push(ctx, repo.RepoPath(), git.PushOptions{ | |||
Remote: repo.RepoPath(), | |||
Branch: fmt.Sprintf("%s:%s%s", commit, git.BranchPrefix, branchName), | |||
Env: models.PushingEnvironment(doer, repo), | |||
Env: repo_module.PushingEnvironment(doer, repo), | |||
}); err != nil { | |||
if git.IsErrPushOutOfDate(err) || git.IsErrPushRejected(err) { | |||
return err |
@@ -19,6 +19,7 @@ import ( | |||
user_model "code.gitea.io/gitea/models/user" | |||
"code.gitea.io/gitea/modules/git" | |||
"code.gitea.io/gitea/modules/log" | |||
repo_module "code.gitea.io/gitea/modules/repository" | |||
"code.gitea.io/gitea/modules/setting" | |||
asymkey_service "code.gitea.io/gitea/services/asymkey" | |||
"code.gitea.io/gitea/services/gitdiff" | |||
@@ -34,7 +35,7 @@ type TemporaryUploadRepository struct { | |||
// NewTemporaryUploadRepository creates a new temporary upload repository | |||
func NewTemporaryUploadRepository(ctx context.Context, repo *repo_model.Repository) (*TemporaryUploadRepository, error) { | |||
basePath, err := models.CreateTemporaryPath("upload") | |||
basePath, err := repo_module.CreateTemporaryPath("upload") | |||
if err != nil { | |||
return nil, err | |||
} | |||
@@ -45,7 +46,7 @@ func NewTemporaryUploadRepository(ctx context.Context, repo *repo_model.Reposito | |||
// Close the repository cleaning up all files | |||
func (t *TemporaryUploadRepository) Close() { | |||
defer t.gitRepo.Close() | |||
if err := models.RemoveTemporaryPath(t.basePath); err != nil { | |||
if err := repo_module.RemoveTemporaryPath(t.basePath); err != nil { | |||
log.Error("Failed to remove temporary path %s: %v", t.basePath, err) | |||
} | |||
} | |||
@@ -315,7 +316,7 @@ func (t *TemporaryUploadRepository) CommitTreeWithDate(parent string, author, co | |||
// Push the provided commitHash to the repository branch by the provided user | |||
func (t *TemporaryUploadRepository) Push(doer *user_model.User, commitHash, branch string) error { | |||
// Because calls hooks we need to pass in the environment | |||
env := models.PushingEnvironment(doer, t.repo) | |||
env := repo_module.PushingEnvironment(doer, t.repo) | |||
if err := git.Push(t.ctx, t.basePath, git.PushOptions{ | |||
Remote: t.repo.RepoPath(), | |||
Branch: strings.TrimSpace(commitHash) + ":" + git.BranchPrefix + strings.TrimSpace(branch), |
@@ -9,6 +9,8 @@ import ( | |||
"fmt" | |||
"code.gitea.io/gitea/models" | |||
admin_model "code.gitea.io/gitea/models/admin" | |||
"code.gitea.io/gitea/models/db" | |||
"code.gitea.io/gitea/models/organization" | |||
packages_model "code.gitea.io/gitea/models/packages" | |||
repo_model "code.gitea.io/gitea/models/repo" | |||
@@ -16,7 +18,7 @@ import ( | |||
"code.gitea.io/gitea/modules/log" | |||
"code.gitea.io/gitea/modules/notification" | |||
repo_module "code.gitea.io/gitea/modules/repository" | |||
cfg "code.gitea.io/gitea/modules/setting" | |||
"code.gitea.io/gitea/modules/setting" | |||
pull_service "code.gitea.io/gitea/services/pull" | |||
) | |||
@@ -67,7 +69,7 @@ func PushCreateRepo(authUser, owner *user_model.User, repoName string) (*repo_mo | |||
repo, err := CreateRepository(authUser, owner, models.CreateRepoOptions{ | |||
Name: repoName, | |||
IsPrivate: cfg.Repository.DefaultPushCreatePrivate, | |||
IsPrivate: setting.Repository.DefaultPushCreatePrivate, | |||
}) | |||
if err != nil { | |||
return nil, err | |||
@@ -76,8 +78,10 @@ func PushCreateRepo(authUser, owner *user_model.User, repoName string) (*repo_mo | |||
return repo, nil | |||
} | |||
// NewContext start repository service | |||
func NewContext() error { | |||
// Init start repository service | |||
func Init() error { | |||
repo_module.LoadRepoConfig() | |||
admin_model.RemoveAllWithNotice(db.DefaultContext, "Clean up temporary repository uploads", setting.Repository.Upload.TempPath) | |||
admin_model.RemoveAllWithNotice(db.DefaultContext, "Clean up temporary repositories", repo_module.LocalCopyPath()) | |||
return initPushQueue() | |||
} |
@@ -133,12 +133,12 @@ func updateWikiPage(ctx context.Context, doer *user_model.User, repo *repo_model | |||
hasMasterBranch := git.IsBranchExist(ctx, repo.WikiPath(), "master") | |||
basePath, err := models.CreateTemporaryPath("update-wiki") | |||
basePath, err := repo_module.CreateTemporaryPath("update-wiki") | |||
if err != nil { | |||
return err | |||
} | |||
defer func() { | |||
if err := models.RemoveTemporaryPath(basePath); err != nil { | |||
if err := repo_module.RemoveTemporaryPath(basePath); err != nil { | |||
log.Error("Merge: RemoveTemporaryPath: %s", err) | |||
} | |||
}() | |||
@@ -249,7 +249,7 @@ func updateWikiPage(ctx context.Context, doer *user_model.User, repo *repo_model | |||
if err := git.Push(gitRepo.Ctx, basePath, git.PushOptions{ | |||
Remote: "origin", | |||
Branch: fmt.Sprintf("%s:%s%s", commitHash.String(), git.BranchPrefix, "master"), | |||
Env: models.FullPushingEnvironment( | |||
Env: repo_module.FullPushingEnvironment( | |||
doer, | |||
doer, | |||
repo, | |||
@@ -287,12 +287,12 @@ func DeleteWikiPage(ctx context.Context, doer *user_model.User, repo *repo_model | |||
return fmt.Errorf("InitWiki: %v", err) | |||
} | |||
basePath, err := models.CreateTemporaryPath("update-wiki") | |||
basePath, err := repo_module.CreateTemporaryPath("update-wiki") | |||
if err != nil { | |||
return err | |||
} | |||
defer func() { | |||
if err := models.RemoveTemporaryPath(basePath); err != nil { | |||
if err := repo_module.RemoveTemporaryPath(basePath); err != nil { | |||
log.Error("Merge: RemoveTemporaryPath: %s", err) | |||
} | |||
}() | |||
@@ -363,7 +363,7 @@ func DeleteWikiPage(ctx context.Context, doer *user_model.User, repo *repo_model | |||
if err := git.Push(gitRepo.Ctx, basePath, git.PushOptions{ | |||
Remote: "origin", | |||
Branch: fmt.Sprintf("%s:%s%s", commitHash.String(), git.BranchPrefix, "master"), | |||
Env: models.PushingEnvironment(doer, repo), | |||
Env: repo_module.PushingEnvironment(doer, repo), | |||
}); err != nil { | |||
if git.IsErrPushOutOfDate(err) || git.IsErrPushRejected(err) { | |||
return err |