parent
a1b2a11812
commit
f91dbbba98
90 changed files with 434 additions and 464 deletions
|
@ -4,6 +4,8 @@
|
|||
package issue
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"code.gitea.io/gitea/models/db"
|
||||
issues_model "code.gitea.io/gitea/models/issues"
|
||||
access_model "code.gitea.io/gitea/models/perm/access"
|
||||
|
@ -12,49 +14,49 @@ import (
|
|||
)
|
||||
|
||||
// ClearLabels clears all of an issue's labels
|
||||
func ClearLabels(issue *issues_model.Issue, doer *user_model.User) error {
|
||||
func ClearLabels(ctx context.Context, issue *issues_model.Issue, doer *user_model.User) error {
|
||||
if err := issues_model.ClearIssueLabels(issue, doer); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
notify_service.IssueClearLabels(db.DefaultContext, doer, issue)
|
||||
notify_service.IssueClearLabels(ctx, doer, issue)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// AddLabel adds a new label to the issue.
|
||||
func AddLabel(issue *issues_model.Issue, doer *user_model.User, label *issues_model.Label) error {
|
||||
func AddLabel(ctx context.Context, issue *issues_model.Issue, doer *user_model.User, label *issues_model.Label) error {
|
||||
if err := issues_model.NewIssueLabel(issue, label, doer); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
notify_service.IssueChangeLabels(db.DefaultContext, doer, issue, []*issues_model.Label{label}, nil)
|
||||
notify_service.IssueChangeLabels(ctx, doer, issue, []*issues_model.Label{label}, nil)
|
||||
return nil
|
||||
}
|
||||
|
||||
// AddLabels adds a list of new labels to the issue.
|
||||
func AddLabels(issue *issues_model.Issue, doer *user_model.User, labels []*issues_model.Label) error {
|
||||
func AddLabels(ctx context.Context, issue *issues_model.Issue, doer *user_model.User, labels []*issues_model.Label) error {
|
||||
if err := issues_model.NewIssueLabels(issue, labels, doer); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
notify_service.IssueChangeLabels(db.DefaultContext, doer, issue, labels, nil)
|
||||
notify_service.IssueChangeLabels(ctx, doer, issue, labels, nil)
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveLabel removes a label from issue by given ID.
|
||||
func RemoveLabel(issue *issues_model.Issue, doer *user_model.User, label *issues_model.Label) error {
|
||||
ctx, committer, err := db.TxContext(db.DefaultContext)
|
||||
func RemoveLabel(ctx context.Context, issue *issues_model.Issue, doer *user_model.User, label *issues_model.Label) error {
|
||||
dbCtx, committer, err := db.TxContext(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer committer.Close()
|
||||
|
||||
if err := issue.LoadRepo(ctx); err != nil {
|
||||
if err := issue.LoadRepo(dbCtx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
perm, err := access_model.GetUserRepoPermission(ctx, issue.Repo, doer)
|
||||
perm, err := access_model.GetUserRepoPermission(dbCtx, issue.Repo, doer)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -65,7 +67,7 @@ func RemoveLabel(issue *issues_model.Issue, doer *user_model.User, label *issues
|
|||
return issues_model.ErrRepoLabelNotExist{}
|
||||
}
|
||||
|
||||
if err := issues_model.DeleteIssueLabel(ctx, issue, label, doer); err != nil {
|
||||
if err := issues_model.DeleteIssueLabel(dbCtx, issue, label, doer); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -73,13 +75,13 @@ func RemoveLabel(issue *issues_model.Issue, doer *user_model.User, label *issues
|
|||
return err
|
||||
}
|
||||
|
||||
notify_service.IssueChangeLabels(db.DefaultContext, doer, issue, nil, []*issues_model.Label{label})
|
||||
notify_service.IssueChangeLabels(ctx, doer, issue, nil, []*issues_model.Label{label})
|
||||
return nil
|
||||
}
|
||||
|
||||
// ReplaceLabels removes all current labels and add new labels to the issue.
|
||||
func ReplaceLabels(issue *issues_model.Issue, doer *user_model.User, labels []*issues_model.Label) error {
|
||||
old, err := issues_model.GetLabelsByIssueID(db.DefaultContext, issue.ID)
|
||||
func ReplaceLabels(ctx context.Context, issue *issues_model.Issue, doer *user_model.User, labels []*issues_model.Label) error {
|
||||
old, err := issues_model.GetLabelsByIssueID(ctx, issue.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -88,6 +90,6 @@ func ReplaceLabels(issue *issues_model.Issue, doer *user_model.User, labels []*i
|
|||
return err
|
||||
}
|
||||
|
||||
notify_service.IssueChangeLabels(db.DefaultContext, doer, issue, labels, old)
|
||||
notify_service.IssueChangeLabels(ctx, doer, issue, labels, old)
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ package issue
|
|||
import (
|
||||
"testing"
|
||||
|
||||
"code.gitea.io/gitea/models/db"
|
||||
issues_model "code.gitea.io/gitea/models/issues"
|
||||
"code.gitea.io/gitea/models/unittest"
|
||||
user_model "code.gitea.io/gitea/models/user"
|
||||
|
@ -32,7 +33,7 @@ func TestIssue_AddLabels(t *testing.T) {
|
|||
labels[i] = unittest.AssertExistsAndLoadBean(t, &issues_model.Label{ID: labelID})
|
||||
}
|
||||
doer := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: test.doerID})
|
||||
assert.NoError(t, AddLabels(issue, doer, labels))
|
||||
assert.NoError(t, AddLabels(db.DefaultContext, issue, doer, labels))
|
||||
for _, labelID := range test.labelIDs {
|
||||
unittest.AssertExistsAndLoadBean(t, &issues_model.IssueLabel{IssueID: test.issueID, LabelID: labelID})
|
||||
}
|
||||
|
@ -55,7 +56,7 @@ func TestIssue_AddLabel(t *testing.T) {
|
|||
issue := unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: test.issueID})
|
||||
label := unittest.AssertExistsAndLoadBean(t, &issues_model.Label{ID: test.labelID})
|
||||
doer := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: test.doerID})
|
||||
assert.NoError(t, AddLabel(issue, doer, label))
|
||||
assert.NoError(t, AddLabel(db.DefaultContext, issue, doer, label))
|
||||
unittest.AssertExistsAndLoadBean(t, &issues_model.IssueLabel{IssueID: test.issueID, LabelID: test.labelID})
|
||||
}
|
||||
}
|
||||
|
|
|
@ -170,7 +170,7 @@ func (h *UnsubscribeHandler) Handle(ctx context.Context, _ *MailContent, doer *u
|
|||
return nil
|
||||
}
|
||||
|
||||
return issues_model.CreateOrUpdateIssueWatch(doer.ID, issue.ID, false)
|
||||
return issues_model.CreateOrUpdateIssueWatch(ctx, doer.ID, issue.ID, false)
|
||||
}
|
||||
|
||||
return fmt.Errorf("unsupported unsubscribe reference: %v", ref)
|
||||
|
|
|
@ -655,7 +655,7 @@ func DumpRepository(ctx context.Context, baseDir, ownerName string, opts base.Mi
|
|||
return err
|
||||
}
|
||||
|
||||
if err := migrateRepository(doer, downloader, uploader, opts, nil); err != nil {
|
||||
if err := migrateRepository(ctx, doer, downloader, uploader, opts, nil); err != nil {
|
||||
if err1 := uploader.Rollback(); err1 != nil {
|
||||
log.Error("rollback failed: %v", err1)
|
||||
}
|
||||
|
@ -727,7 +727,7 @@ func RestoreRepository(ctx context.Context, baseDir, ownerName, repoName string,
|
|||
return err
|
||||
}
|
||||
|
||||
if err = migrateRepository(doer, downloader, uploader, migrateOpts, nil); err != nil {
|
||||
if err = migrateRepository(ctx, doer, downloader, uploader, migrateOpts, nil); err != nil {
|
||||
if err1 := uploader.Rollback(); err1 != nil {
|
||||
log.Error("rollback failed: %v", err1)
|
||||
}
|
||||
|
|
|
@ -162,7 +162,7 @@ func (g *GiteaLocalUploader) CreateTopics(topics ...string) error {
|
|||
c++
|
||||
}
|
||||
topics = topics[:c]
|
||||
return repo_model.SaveTopics(g.repo.ID, topics...)
|
||||
return repo_model.SaveTopics(g.ctx, g.repo.ID, topics...)
|
||||
}
|
||||
|
||||
// CreateMilestones creates milestones
|
||||
|
@ -205,7 +205,7 @@ func (g *GiteaLocalUploader) CreateMilestones(milestones ...*base.Milestone) err
|
|||
mss = append(mss, &ms)
|
||||
}
|
||||
|
||||
err := issues_model.InsertMilestones(mss...)
|
||||
err := issues_model.InsertMilestones(g.ctx, mss...)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -236,7 +236,7 @@ func (g *GiteaLocalUploader) CreateLabels(labels ...*base.Label) error {
|
|||
})
|
||||
}
|
||||
|
||||
err := issues_model.NewLabels(lbs...)
|
||||
err := issues_model.NewLabels(g.ctx, lbs...)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -516,7 +516,6 @@ func (g *GiteaLocalUploader) CreateComments(comments ...*base.Comment) error {
|
|||
// CreatePullRequests creates pull requests
|
||||
func (g *GiteaLocalUploader) CreatePullRequests(prs ...*base.PullRequest) error {
|
||||
gprs := make([]*issues_model.PullRequest, 0, len(prs))
|
||||
ctx := db.DefaultContext
|
||||
for _, pr := range prs {
|
||||
gpr, err := g.newPullRequest(pr)
|
||||
if err != nil {
|
||||
|
@ -529,12 +528,12 @@ func (g *GiteaLocalUploader) CreatePullRequests(prs ...*base.PullRequest) error
|
|||
|
||||
gprs = append(gprs, gpr)
|
||||
}
|
||||
if err := issues_model.InsertPullRequests(ctx, gprs...); err != nil {
|
||||
if err := issues_model.InsertPullRequests(g.ctx, gprs...); err != nil {
|
||||
return err
|
||||
}
|
||||
for _, pr := range gprs {
|
||||
g.issues[pr.Issue.Index] = pr.Issue
|
||||
pull.AddToTaskQueue(ctx, pr)
|
||||
pull.AddToTaskQueue(g.ctx, pr)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ func TestGiteaUploadRepo(t *testing.T) {
|
|||
uploader = NewGiteaLocalUploader(graceful.GetManager().HammerContext(), user, user.Name, repoName)
|
||||
)
|
||||
|
||||
err := migrateRepository(user, downloader, uploader, base.MigrateOptions{
|
||||
err := migrateRepository(db.DefaultContext, user, downloader, uploader, base.MigrateOptions{
|
||||
CloneAddr: "https://github.com/go-xorm/builder",
|
||||
RepoName: repoName,
|
||||
AuthUsername: "",
|
||||
|
|
|
@ -127,7 +127,7 @@ func MigrateRepository(ctx context.Context, doer *user_model.User, ownerName str
|
|||
uploader := NewGiteaLocalUploader(ctx, doer, ownerName, opts.RepoName)
|
||||
uploader.gitServiceType = opts.GitServiceType
|
||||
|
||||
if err := migrateRepository(doer, downloader, uploader, opts, messenger); err != nil {
|
||||
if err := migrateRepository(ctx, doer, downloader, uploader, opts, messenger); err != nil {
|
||||
if err1 := uploader.Rollback(); err1 != nil {
|
||||
log.Error("rollback failed: %v", err1)
|
||||
}
|
||||
|
@ -176,7 +176,7 @@ func newDownloader(ctx context.Context, ownerName string, opts base.MigrateOptio
|
|||
// migrateRepository will download information and then upload it to Uploader, this is a simple
|
||||
// process for small repository. For a big repository, save all the data to disk
|
||||
// before upload is better
|
||||
func migrateRepository(doer *user_model.User, downloader base.Downloader, uploader base.Uploader, opts base.MigrateOptions, messenger base.Messenger) error {
|
||||
func migrateRepository(ctx context.Context, doer *user_model.User, downloader base.Downloader, uploader base.Uploader, opts base.MigrateOptions, messenger base.Messenger) error {
|
||||
if messenger == nil {
|
||||
messenger = base.NilMessenger
|
||||
}
|
||||
|
|
|
@ -540,7 +540,7 @@ func SyncPullMirror(ctx context.Context, repoID int64) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
if err = repo_model.UpdateRepositoryUpdatedTime(m.RepoID, commitDate); err != nil {
|
||||
if err = repo_model.UpdateRepositoryUpdatedTime(ctx, m.RepoID, commitDate); err != nil {
|
||||
log.Error("SyncMirrors [repo: %-v]: unable to update repository 'updated_unix': %v", m.Repo, err)
|
||||
return false
|
||||
}
|
||||
|
|
|
@ -346,7 +346,7 @@ func DeleteOldRepositoryArchives(ctx context.Context, olderThan time.Duration) e
|
|||
log.Trace("Doing: ArchiveCleanup")
|
||||
|
||||
for {
|
||||
archivers, err := repo_model.FindRepoArchives(repo_model.FindRepoArchiversOption{
|
||||
archivers, err := repo_model.FindRepoArchives(ctx, repo_model.FindRepoArchiversOption{
|
||||
ListOptions: db.ListOptions{
|
||||
PageSize: 100,
|
||||
Page: 1,
|
||||
|
@ -374,7 +374,7 @@ func DeleteOldRepositoryArchives(ctx context.Context, olderThan time.Duration) e
|
|||
|
||||
// DeleteRepositoryArchives deletes all repositories' archives.
|
||||
func DeleteRepositoryArchives(ctx context.Context) error {
|
||||
if err := repo_model.DeleteAllRepoArchives(); err != nil {
|
||||
if err := repo_model.DeleteAllRepoArchives(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
return storage.Clean(storage.RepoArchives)
|
||||
|
|
|
@ -5,6 +5,8 @@
|
|||
package repository
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"code.gitea.io/gitea/models"
|
||||
"code.gitea.io/gitea/models/db"
|
||||
access_model "code.gitea.io/gitea/models/perm/access"
|
||||
|
@ -12,13 +14,13 @@ import (
|
|||
)
|
||||
|
||||
// DeleteCollaboration removes collaboration relation between the user and repository.
|
||||
func DeleteCollaboration(repo *repo_model.Repository, uid int64) (err error) {
|
||||
func DeleteCollaboration(ctx context.Context, repo *repo_model.Repository, uid int64) (err error) {
|
||||
collaboration := &repo_model.Collaboration{
|
||||
RepoID: repo.ID,
|
||||
UserID: uid,
|
||||
}
|
||||
|
||||
ctx, committer, err := db.TxContext(db.DefaultContext)
|
||||
ctx, committer, err := db.TxContext(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -18,10 +18,10 @@ func TestRepository_DeleteCollaboration(t *testing.T) {
|
|||
|
||||
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 4})
|
||||
assert.NoError(t, repo.LoadOwner(db.DefaultContext))
|
||||
assert.NoError(t, DeleteCollaboration(repo, 4))
|
||||
assert.NoError(t, DeleteCollaboration(db.DefaultContext, repo, 4))
|
||||
unittest.AssertNotExistsBean(t, &repo_model.Collaboration{RepoID: repo.ID, UserID: 4})
|
||||
|
||||
assert.NoError(t, DeleteCollaboration(repo, 4))
|
||||
assert.NoError(t, DeleteCollaboration(db.DefaultContext, repo, 4))
|
||||
unittest.AssertNotExistsBean(t, &repo_model.Collaboration{RepoID: repo.ID, UserID: 4})
|
||||
|
||||
unittest.CheckConsistencyFor(t, &repo_model.Repository{ID: repo.ID})
|
||||
|
|
|
@ -292,7 +292,7 @@ func pushUpdates(optsList []*repo_module.PushUpdateOptions) error {
|
|||
}
|
||||
|
||||
// Change repository last updated time.
|
||||
if err := repo_model.UpdateRepositoryUpdatedTime(repo.ID, time.Now()); err != nil {
|
||||
if err := repo_model.UpdateRepositoryUpdatedTime(ctx, repo.ID, time.Now()); err != nil {
|
||||
return fmt.Errorf("UpdateRepositoryUpdatedTime: %w", err)
|
||||
}
|
||||
|
||||
|
|
|
@ -95,12 +95,12 @@ func PushCreateRepo(ctx context.Context, authUser, owner *user_model.User, repoN
|
|||
}
|
||||
|
||||
// Init start repository service
|
||||
func Init() error {
|
||||
func Init(ctx context.Context) error {
|
||||
if err := repo_module.LoadRepoConfig(); err != nil {
|
||||
return err
|
||||
}
|
||||
system_model.RemoveAllWithNotice(db.DefaultContext, "Clean up temporary repository uploads", setting.Repository.Upload.TempPath)
|
||||
system_model.RemoveAllWithNotice(db.DefaultContext, "Clean up temporary repositories", repo_module.LocalCopyPath())
|
||||
system_model.RemoveAllWithNotice(ctx, "Clean up temporary repository uploads", setting.Repository.Upload.TempPath)
|
||||
system_model.RemoveAllWithNotice(ctx, "Clean up temporary repositories", repo_module.LocalCopyPath())
|
||||
if err := initPushQueue(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ func TransferOwnership(ctx context.Context, doer, newOwner *user_model.User, rep
|
|||
oldOwner := repo.Owner
|
||||
|
||||
repoWorkingPool.CheckIn(fmt.Sprint(repo.ID))
|
||||
if err := models.TransferOwnership(doer, newOwner.Name, repo); err != nil {
|
||||
if err := models.TransferOwnership(ctx, doer, newOwner.Name, repo); err != nil {
|
||||
repoWorkingPool.CheckOut(fmt.Sprint(repo.ID))
|
||||
return err
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ func ChangeRepositoryName(ctx context.Context, doer *user_model.User, repo *repo
|
|||
// local copy's origin accordingly.
|
||||
|
||||
repoWorkingPool.CheckIn(fmt.Sprint(repo.ID))
|
||||
if err := repo_model.ChangeRepositoryName(doer, repo, newRepoName); err != nil {
|
||||
if err := repo_model.ChangeRepositoryName(ctx, doer, repo, newRepoName); err != nil {
|
||||
repoWorkingPool.CheckOut(fmt.Sprint(repo.ID))
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
package task
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
@ -40,7 +41,7 @@ func handleCreateError(owner *user_model.User, err error) error {
|
|||
}
|
||||
}
|
||||
|
||||
func runMigrateTask(t *admin_model.Task) (err error) {
|
||||
func runMigrateTask(ctx context.Context, t *admin_model.Task) (err error) {
|
||||
defer func() {
|
||||
if e := recover(); e != nil {
|
||||
err = fmt.Errorf("PANIC whilst trying to do migrate task: %v", e)
|
||||
|
@ -48,9 +49,9 @@ func runMigrateTask(t *admin_model.Task) (err error) {
|
|||
}
|
||||
|
||||
if err == nil {
|
||||
err = admin_model.FinishMigrateTask(t)
|
||||
err = admin_model.FinishMigrateTask(ctx, t)
|
||||
if err == nil {
|
||||
notify_service.MigrateRepository(db.DefaultContext, t.Doer, t.Owner, t.Repo)
|
||||
notify_service.MigrateRepository(ctx, t.Doer, t.Owner, t.Repo)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -63,14 +64,14 @@ func runMigrateTask(t *admin_model.Task) (err error) {
|
|||
t.Status = structs.TaskStatusFailed
|
||||
t.Message = err.Error()
|
||||
|
||||
if err := t.UpdateCols("status", "message", "end_time"); err != nil {
|
||||
if err := t.UpdateCols(ctx, "status", "message", "end_time"); err != nil {
|
||||
log.Error("Task UpdateCols failed: %v", err)
|
||||
}
|
||||
|
||||
// then, do not delete the repository, otherwise the users won't be able to see the last error
|
||||
}()
|
||||
|
||||
if err = t.LoadRepo(); err != nil {
|
||||
if err = t.LoadRepo(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -79,10 +80,10 @@ func runMigrateTask(t *admin_model.Task) (err error) {
|
|||
return nil
|
||||
}
|
||||
|
||||
if err = t.LoadDoer(); err != nil {
|
||||
if err = t.LoadDoer(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
if err = t.LoadOwner(); err != nil {
|
||||
if err = t.LoadOwner(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -100,7 +101,7 @@ func runMigrateTask(t *admin_model.Task) (err error) {
|
|||
|
||||
t.StartTime = timeutil.TimeStampNow()
|
||||
t.Status = structs.TaskStatusRunning
|
||||
if err = t.UpdateCols("start_time", "status"); err != nil {
|
||||
if err = t.UpdateCols(ctx, "start_time", "status"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -112,7 +113,7 @@ func runMigrateTask(t *admin_model.Task) (err error) {
|
|||
case <-ctx.Done():
|
||||
return
|
||||
}
|
||||
task, _ := admin_model.GetMigratingTask(t.RepoID)
|
||||
task, _ := admin_model.GetMigratingTask(ctx, t.RepoID)
|
||||
if task != nil && task.Status != structs.TaskStatusRunning {
|
||||
log.Debug("MigrateTask[%d] by DoerID[%d] to RepoID[%d] for OwnerID[%d] is canceled due to status is not 'running'", t.ID, t.DoerID, t.RepoID, t.OwnerID)
|
||||
cancel()
|
||||
|
@ -128,7 +129,7 @@ func runMigrateTask(t *admin_model.Task) (err error) {
|
|||
}
|
||||
bs, _ := json.Marshal(message)
|
||||
t.Message = string(bs)
|
||||
_ = t.UpdateCols("message")
|
||||
_ = t.UpdateCols(ctx, "message")
|
||||
})
|
||||
|
||||
if err == nil {
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
package task
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
admin_model "code.gitea.io/gitea/models/admin"
|
||||
|
@ -27,10 +28,10 @@ import (
|
|||
var taskQueue *queue.WorkerPoolQueue[*admin_model.Task]
|
||||
|
||||
// Run a task
|
||||
func Run(t *admin_model.Task) error {
|
||||
func Run(ctx context.Context, t *admin_model.Task) error {
|
||||
switch t.Type {
|
||||
case structs.TaskTypeMigrateRepo:
|
||||
return runMigrateTask(t)
|
||||
return runMigrateTask(ctx, t)
|
||||
default:
|
||||
return fmt.Errorf("Unknown task type: %d", t.Type)
|
||||
}
|
||||
|
@ -48,7 +49,7 @@ func Init() error {
|
|||
|
||||
func handler(items ...*admin_model.Task) []*admin_model.Task {
|
||||
for _, task := range items {
|
||||
if err := Run(task); err != nil {
|
||||
if err := Run(db.DefaultContext, task); err != nil {
|
||||
log.Error("Run task failed: %v", err)
|
||||
}
|
||||
}
|
||||
|
@ -56,8 +57,8 @@ func handler(items ...*admin_model.Task) []*admin_model.Task {
|
|||
}
|
||||
|
||||
// MigrateRepository add migration repository to task
|
||||
func MigrateRepository(doer, u *user_model.User, opts base.MigrateOptions) error {
|
||||
task, err := CreateMigrateTask(doer, u, opts)
|
||||
func MigrateRepository(ctx context.Context, doer, u *user_model.User, opts base.MigrateOptions) error {
|
||||
task, err := CreateMigrateTask(ctx, doer, u, opts)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -66,7 +67,7 @@ func MigrateRepository(doer, u *user_model.User, opts base.MigrateOptions) error
|
|||
}
|
||||
|
||||
// CreateMigrateTask creates a migrate task
|
||||
func CreateMigrateTask(doer, u *user_model.User, opts base.MigrateOptions) (*admin_model.Task, error) {
|
||||
func CreateMigrateTask(ctx context.Context, doer, u *user_model.User, opts base.MigrateOptions) (*admin_model.Task, error) {
|
||||
// encrypt credentials for persistence
|
||||
var err error
|
||||
opts.CloneAddrEncrypted, err = secret.EncryptSecret(setting.SecretKey, opts.CloneAddr)
|
||||
|
@ -97,11 +98,11 @@ func CreateMigrateTask(doer, u *user_model.User, opts base.MigrateOptions) (*adm
|
|||
PayloadContent: string(bs),
|
||||
}
|
||||
|
||||
if err := admin_model.CreateTask(task); err != nil {
|
||||
if err := admin_model.CreateTask(ctx, task); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
repo, err := repo_service.CreateRepositoryDirectly(db.DefaultContext, doer, u, repo_service.CreateRepoOptions{
|
||||
repo, err := repo_service.CreateRepositoryDirectly(ctx, doer, u, repo_service.CreateRepoOptions{
|
||||
Name: opts.RepoName,
|
||||
Description: opts.Description,
|
||||
OriginalURL: opts.OriginalURL,
|
||||
|
@ -113,7 +114,7 @@ func CreateMigrateTask(doer, u *user_model.User, opts base.MigrateOptions) (*adm
|
|||
if err != nil {
|
||||
task.EndTime = timeutil.TimeStampNow()
|
||||
task.Status = structs.TaskStatusFailed
|
||||
err2 := task.UpdateCols("end_time", "status")
|
||||
err2 := task.UpdateCols(ctx, "end_time", "status")
|
||||
if err2 != nil {
|
||||
log.Error("UpdateCols Failed: %v", err2.Error())
|
||||
}
|
||||
|
@ -121,7 +122,7 @@ func CreateMigrateTask(doer, u *user_model.User, opts base.MigrateOptions) (*adm
|
|||
}
|
||||
|
||||
task.RepoID = repo.ID
|
||||
if err = task.UpdateCols("repo_id"); err != nil {
|
||||
if err = task.UpdateCols(ctx, "repo_id"); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
@ -129,8 +130,8 @@ func CreateMigrateTask(doer, u *user_model.User, opts base.MigrateOptions) (*adm
|
|||
}
|
||||
|
||||
// RetryMigrateTask retry a migrate task
|
||||
func RetryMigrateTask(repoID int64) error {
|
||||
migratingTask, err := admin_model.GetMigratingTask(repoID)
|
||||
func RetryMigrateTask(ctx context.Context, repoID int64) error {
|
||||
migratingTask, err := admin_model.GetMigratingTask(ctx, repoID)
|
||||
if err != nil {
|
||||
log.Error("GetMigratingTask: %v", err)
|
||||
return err
|
||||
|
@ -144,7 +145,7 @@ func RetryMigrateTask(repoID int64) error {
|
|||
// Reset task status and messages
|
||||
migratingTask.Status = structs.TaskStatusQueued
|
||||
migratingTask.Message = ""
|
||||
if err = migratingTask.UpdateCols("status", "message"); err != nil {
|
||||
if err = migratingTask.UpdateCols(ctx, "status", "message"); err != nil {
|
||||
log.Error("task.UpdateCols failed: %v", err)
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -59,7 +59,7 @@ func RenameUser(ctx context.Context, u *user_model.User, newUserName string) err
|
|||
u.Name = oldUserName
|
||||
return err
|
||||
}
|
||||
return repo_model.UpdateRepositoryOwnerNames(u.ID, newUserName)
|
||||
return repo_model.UpdateRepositoryOwnerNames(ctx, u.ID, newUserName)
|
||||
}
|
||||
|
||||
ctx, committer, err := db.TxContext(ctx)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue