mirror of
https://github.com/go-gitea/gitea.git
synced 2026-05-15 21:31:29 +02:00
routers/private/hook_pre_receive.go fixes
This commit is contained in:
parent
f8403ad932
commit
f53f2b98a9
@ -181,7 +181,7 @@ func convertObjectsToSlice(objects string) (objectIDs []string) {
|
|||||||
// loadObjectSizesFromPack access all packs that this push or repo has
|
// loadObjectSizesFromPack access all packs that this push or repo has
|
||||||
// and load compressed object size in bytes into objectSizes map
|
// and load compressed object size in bytes into objectSizes map
|
||||||
// using `git verify-pack -v` output
|
// using `git verify-pack -v` output
|
||||||
func loadObjectSizesFromPack(ctx *gitea_context.PrivateContext, dir string, env, _ []string, objectsSizes map[string]int64) error {
|
func loadObjectSizesFromPack(ctx *gitea_context.PrivateContext, dir string, env []string, objectsSizes map[string]int64) error {
|
||||||
// Find the path from GIT_QUARANTINE_PATH environment variable (path to the pack file)
|
// Find the path from GIT_QUARANTINE_PATH environment variable (path to the pack file)
|
||||||
var packPath string
|
var packPath string
|
||||||
var errExec error
|
var errExec error
|
||||||
@ -294,11 +294,11 @@ func loadObjectsSizesViaCatFile(ctx *gitea_context.PrivateContext, dir string, e
|
|||||||
go func(reducedObjectIDs *[]string) {
|
go func(reducedObjectIDs *[]string) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
for _, objectID := range *reducedObjectIDs {
|
for _, objectID := range *reducedObjectIDs {
|
||||||
ctx := ctx
|
workerCtx := ctx
|
||||||
// Ensure that each worker has its own copy of the env environment to prevent races
|
// Ensure that each worker has its own copy of the env environment to prevent races
|
||||||
env := append([]string(nil), env...)
|
env := append([]string(nil), env...)
|
||||||
|
|
||||||
objectSize, err := calculateSizeOfObject(ctx, dir, env, objectID)
|
objectSize, err := calculateSizeOfObject(workerCtx, dir, env, objectID)
|
||||||
// Upon error we store the first error and continue processing, as we can't stop the push
|
// Upon error we store the first error and continue processing, as we can't stop the push
|
||||||
// if we were not able to calculate the size of the object, but we keep one error to
|
// if we were not able to calculate the size of the object, but we keep one error to
|
||||||
// return at the end, along with a count of subsequent similar errors.
|
// return at the end, along with a count of subsequent similar errors.
|
||||||
@ -666,7 +666,7 @@ func HookPreReceive(ctx *gitea_context.PrivateContext) {
|
|||||||
// Load sizes of OLD+OTHER objects (existing in DB): pack + batch (git deep only)
|
// Load sizes of OLD+OTHER objects (existing in DB): pack + batch (git deep only)
|
||||||
if isRepoOversized {
|
if isRepoOversized {
|
||||||
if repoSize != nil && repoSize.InPack > 0 {
|
if repoSize != nil && repoSize.InPack > 0 {
|
||||||
errLoop = loadObjectSizesFromPack(ctx, repo.RepoPath(), nil, objectIDs, commitObjectsSizes)
|
errLoop = loadObjectSizesFromPack(ctx, repo.RepoPath(), nil, commitObjectsSizes)
|
||||||
if errLoop != nil {
|
if errLoop != nil {
|
||||||
log.Error("Unable to get sizes of objects from the pack in %-v Error: %v", repo, errLoop)
|
log.Error("Unable to get sizes of objects from the pack in %-v Error: %v", repo, errLoop)
|
||||||
}
|
}
|
||||||
@ -712,7 +712,7 @@ func HookPreReceive(ctx *gitea_context.PrivateContext) {
|
|||||||
// Load sizes of NEW objects (may be in quarantine packs, etc.) (git deep only)
|
// Load sizes of NEW objects (may be in quarantine packs, etc.) (git deep only)
|
||||||
if isRepoOversized {
|
if isRepoOversized {
|
||||||
if pushSize != nil && pushSize.InPack > 0 {
|
if pushSize != nil && pushSize.InPack > 0 {
|
||||||
errLoop = loadObjectSizesFromPack(ctx, repo.RepoPath(), ourCtx.env, objectIDs, commitObjectsSizes)
|
errLoop = loadObjectSizesFromPack(ctx, repo.RepoPath(), ourCtx.env, commitObjectsSizes)
|
||||||
if errLoop != nil {
|
if errLoop != nil {
|
||||||
log.Error("Unable to get sizes of objects from the pack in new commit %s in %-v Error: %v", newCommitID, repo, errLoop)
|
log.Error("Unable to get sizes of objects from the pack in new commit %s in %-v Error: %v", newCommitID, repo, errLoop)
|
||||||
}
|
}
|
||||||
@ -832,7 +832,7 @@ func HookPreReceive(ctx *gitea_context.PrivateContext) {
|
|||||||
repo,
|
repo,
|
||||||
)
|
)
|
||||||
ctx.JSON(http.StatusForbidden, private.Response{
|
ctx.JSON(http.StatusForbidden, private.Response{
|
||||||
UserMsg: fmt.Sprintf("Repository git size limit exceeded: %s > then limit of %s",
|
UserMsg: fmt.Sprintf("Repository git size limit exceeded: %s > than limit of %s",
|
||||||
base.FileSize(predictedGitAfter),
|
base.FileSize(predictedGitAfter),
|
||||||
base.FileSize(limit),
|
base.FileSize(limit),
|
||||||
),
|
),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user