55 lines
1.8 KiB
Go
55 lines
1.8 KiB
Go
// Copyright 2016 The Gogs 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 repo
|
|
|
|
import (
|
|
"github.com/gogits/gogs/models"
|
|
"github.com/gogits/gogs/modules/auth"
|
|
"github.com/gogits/gogs/modules/context"
|
|
"github.com/gogits/gogs/modules/log"
|
|
)
|
|
|
|
func DeleteFilePost(ctx *context.Context, form auth.DeleteRepoFileForm) {
|
|
branchName := ctx.Repo.BranchName
|
|
treeName := ctx.Repo.TreeName
|
|
|
|
if ctx.HasError() {
|
|
ctx.Redirect(ctx.Repo.RepoLink + "/src/" + branchName + "/" + treeName)
|
|
return
|
|
}
|
|
|
|
if err := ctx.Repo.Repository.DeleteRepoFile(ctx.User, branchName, treeName, form.CommitSummary); err != nil {
|
|
ctx.Handle(500, "DeleteRepoFile", err)
|
|
return
|
|
}
|
|
|
|
// Was successful, so now need to call models.CommitRepoAction() with the new commitID for webhooks and watchers
|
|
if branch, err := ctx.Repo.Repository.GetBranch(branchName); err != nil {
|
|
log.Error(4, "repo.Repository.GetBranch(%s): %v", branchName, err)
|
|
} else if commit, err := branch.GetCommit(); err != nil {
|
|
log.Error(4, "branch.GetCommit(): %v", err)
|
|
} else {
|
|
pc := &models.PushCommits{
|
|
Len: 1,
|
|
Commits: []*models.PushCommit{&models.PushCommit{
|
|
commit.ID.String(),
|
|
commit.Message(),
|
|
commit.Author.Email,
|
|
commit.Author.Name,
|
|
}},
|
|
}
|
|
oldCommitID := ctx.Repo.CommitID
|
|
newCommitID := commit.ID.String()
|
|
if err := models.CommitRepoAction(ctx.User.ID, ctx.Repo.Owner.ID, ctx.User.LowerName, ctx.Repo.Owner.Email,
|
|
ctx.Repo.Repository.ID, ctx.Repo.Owner.LowerName, ctx.Repo.Repository.Name, "refs/heads/"+branchName, pc,
|
|
oldCommitID, newCommitID); err != nil {
|
|
log.Error(4, "models.CommitRepoAction(branch = %s): %v", branchName, err)
|
|
}
|
|
models.HookQueue.Add(ctx.Repo.Repository.ID)
|
|
}
|
|
|
|
ctx.Redirect(ctx.Repo.RepoLink + "/src/" + branchName)
|
|
}
|