aboutsummaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2022-05-09 00:46:32 +0800
committerGitHub <noreply@github.com>2022-05-08 18:46:32 +0200
commit4ca1d7547a2c32cc65ca23d1a7698d1a8c921d65 (patch)
treefee132403adea441987ce25809c764e00fd962cd /models
parentd4834071da9ce010fd4677ef339c598dd23dc130 (diff)
downloadgitea-4ca1d7547a2c32cc65ca23d1a7698d1a8c921d65.tar.gz
gitea-4ca1d7547a2c32cc65ca23d1a7698d1a8c921d65.zip
Move some helper files out of models (#19355)
* Move some helper files out of models * Some improvements Co-authored-by: delvh <dev.lh@web.de>
Diffstat (limited to 'models')
-rw-r--r--models/helper.go17
-rw-r--r--models/helper_directory.go47
-rw-r--r--models/helper_environment.go79
-rw-r--r--models/repo.go15
-rw-r--r--models/repo_list.go9
5 files changed, 13 insertions, 154 deletions
diff --git a/models/helper.go b/models/helper.go
deleted file mode 100644
index c5f2d7a5b8..0000000000
--- a/models/helper.go
+++ /dev/null
@@ -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
-}
diff --git a/models/helper_directory.go b/models/helper_directory.go
deleted file mode 100644
index 10114959ef..0000000000
--- a/models/helper_directory.go
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2019 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 (
- "fmt"
- "os"
- "path"
- "path/filepath"
-
- "code.gitea.io/gitea/modules/log"
- "code.gitea.io/gitea/modules/setting"
- "code.gitea.io/gitea/modules/util"
-)
-
-// LocalCopyPath returns the local repository temporary copy path.
-func LocalCopyPath() string {
- if filepath.IsAbs(setting.Repository.Local.LocalCopyPath) {
- return setting.Repository.Local.LocalCopyPath
- }
- return path.Join(setting.AppDataPath, setting.Repository.Local.LocalCopyPath)
-}
-
-// CreateTemporaryPath creates a temporary path
-func CreateTemporaryPath(prefix string) (string, error) {
- if err := os.MkdirAll(LocalCopyPath(), os.ModePerm); err != nil {
- log.Error("Unable to create localcopypath directory: %s (%v)", LocalCopyPath(), err)
- return "", fmt.Errorf("Failed to create localcopypath directory %s: %v", LocalCopyPath(), err)
- }
- basePath, err := os.MkdirTemp(LocalCopyPath(), prefix+".git")
- if err != nil {
- log.Error("Unable to create temporary directory: %s-*.git (%v)", prefix, err)
- return "", fmt.Errorf("Failed to create dir %s-*.git: %v", prefix, err)
-
- }
- return basePath, nil
-}
-
-// RemoveTemporaryPath removes the temporary path
-func RemoveTemporaryPath(basePath string) error {
- if _, err := os.Stat(basePath); !os.IsNotExist(err) {
- return util.RemoveAll(basePath)
- }
- return nil
-}
diff --git a/models/helper_environment.go b/models/helper_environment.go
deleted file mode 100644
index 4cad1e5368..0000000000
--- a/models/helper_environment.go
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright 2019 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 (
- "fmt"
- "os"
- "strings"
-
- repo_model "code.gitea.io/gitea/models/repo"
- user_model "code.gitea.io/gitea/models/user"
- "code.gitea.io/gitea/modules/setting"
-)
-
-// env keys for git hooks need
-const (
- EnvRepoName = "GITEA_REPO_NAME"
- EnvRepoUsername = "GITEA_REPO_USER_NAME"
- EnvRepoID = "GITEA_REPO_ID"
- EnvRepoIsWiki = "GITEA_REPO_IS_WIKI"
- EnvPusherName = "GITEA_PUSHER_NAME"
- EnvPusherEmail = "GITEA_PUSHER_EMAIL"
- EnvPusherID = "GITEA_PUSHER_ID"
- EnvKeyID = "GITEA_KEY_ID" // public key ID
- EnvDeployKeyID = "GITEA_DEPLOY_KEY_ID"
- EnvPRID = "GITEA_PR_ID"
- EnvIsInternal = "GITEA_INTERNAL_PUSH"
- EnvAppURL = "GITEA_ROOT_URL"
-)
-
-// InternalPushingEnvironment returns an os environment to switch off hooks on push
-// It is recommended to avoid using this unless you are pushing within a transaction
-// or if you absolutely are sure that post-receive and pre-receive will do nothing
-// We provide the full pushing-environment for other hook providers
-func InternalPushingEnvironment(doer *user_model.User, repo *repo_model.Repository) []string {
- return append(PushingEnvironment(doer, repo),
- EnvIsInternal+"=true",
- )
-}
-
-// PushingEnvironment returns an os environment to allow hooks to work on push
-func PushingEnvironment(doer *user_model.User, repo *repo_model.Repository) []string {
- return FullPushingEnvironment(doer, doer, repo, repo.Name, 0)
-}
-
-// FullPushingEnvironment returns an os environment to allow hooks to work on push
-func FullPushingEnvironment(author, committer *user_model.User, repo *repo_model.Repository, repoName string, prID int64) []string {
- isWiki := "false"
- if strings.HasSuffix(repoName, ".wiki") {
- isWiki = "true"
- }
-
- authorSig := author.NewGitSig()
- committerSig := committer.NewGitSig()
-
- environ := append(os.Environ(),
- "GIT_AUTHOR_NAME="+authorSig.Name,
- "GIT_AUTHOR_EMAIL="+authorSig.Email,
- "GIT_COMMITTER_NAME="+committerSig.Name,
- "GIT_COMMITTER_EMAIL="+committerSig.Email,
- EnvRepoName+"="+repoName,
- EnvRepoUsername+"="+repo.OwnerName,
- EnvRepoIsWiki+"="+isWiki,
- EnvPusherName+"="+committer.Name,
- EnvPusherID+"="+fmt.Sprintf("%d", committer.ID),
- EnvRepoID+"="+fmt.Sprintf("%d", repo.ID),
- EnvPRID+"="+fmt.Sprintf("%d", prID),
- EnvAppURL+"="+setting.AppURL,
- "SSH_ORIGINAL_COMMAND=gitea-internal",
- )
-
- if !committer.KeepEmailPrivate {
- environ = append(environ, EnvPusherEmail+"="+committer.Email)
- }
-
- return environ
-}
diff --git a/models/repo.go b/models/repo.go
index e20bf90d97..fb7bbba1e1 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -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)
}
diff --git a/models/repo_list.go b/models/repo_list.go
index 2c6be0a576..35b2ab5bf8 100644
--- a/models/repo_list.go
+++ b/models/repo_list.go
@@ -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))