Skip to content

Commit 04347eb

Browse files
authored
Use context parameter in services/repository (#23186)
Use context parameter in `services/repository`. And use `cache.WithCacheContext(ctx)` to generate push action history feeds. Fix #23160
1 parent cbbd372 commit 04347eb

29 files changed

+102
-100
lines changed

Diff for: routers/api/v1/admin/adopt.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ func ListUnadoptedRepositories(ctx *context.APIContext) {
4545
if listOptions.Page == 0 {
4646
listOptions.Page = 1
4747
}
48-
repoNames, count, err := repo_service.ListUnadoptedRepositories(ctx.FormString("query"), &listOptions)
48+
repoNames, count, err := repo_service.ListUnadoptedRepositories(ctx, ctx.FormString("query"), &listOptions)
4949
if err != nil {
5050
ctx.InternalServerError(err)
5151
return
@@ -109,7 +109,7 @@ func AdoptRepository(ctx *context.APIContext) {
109109
ctx.NotFound()
110110
return
111111
}
112-
if _, err := repo_service.AdoptRepository(ctx.Doer, ctxUser, repo_module.CreateRepoOptions{
112+
if _, err := repo_service.AdoptRepository(ctx, ctx.Doer, ctxUser, repo_module.CreateRepoOptions{
113113
Name: repoName,
114114
IsPrivate: true,
115115
}); err != nil {
@@ -172,7 +172,7 @@ func DeleteUnadoptedRepository(ctx *context.APIContext) {
172172
return
173173
}
174174

175-
if err := repo_service.DeleteUnadoptedRepository(ctx.Doer, ctxUser, repoName); err != nil {
175+
if err := repo_service.DeleteUnadoptedRepository(ctx, ctx.Doer, ctxUser, repoName); err != nil {
176176
ctx.InternalServerError(err)
177177
return
178178
}

Diff for: routers/api/v1/repo/branch.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func DeleteBranch(ctx *context.APIContext) {
118118

119119
branchName := ctx.Params("*")
120120

121-
if err := repo_service.DeleteBranch(ctx.Doer, ctx.Repo.Repository, ctx.Repo.GitRepo, branchName); err != nil {
121+
if err := repo_service.DeleteBranch(ctx, ctx.Doer, ctx.Repo.Repository, ctx.Repo.GitRepo, branchName); err != nil {
122122
switch {
123123
case git.IsErrBranchNotExist(err):
124124
ctx.NotFound(err)

Diff for: routers/api/v1/repo/pull.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -904,7 +904,7 @@ func MergePullRequest(ctx *context.APIContext) {
904904
}
905905
defer headRepo.Close()
906906
}
907-
if err := repo_service.DeleteBranch(ctx.Doer, pr.HeadRepo, headRepo, pr.HeadBranch); err != nil {
907+
if err := repo_service.DeleteBranch(ctx, ctx.Doer, pr.HeadRepo, headRepo, pr.HeadBranch); err != nil {
908908
switch {
909909
case git.IsErrBranchNotExist(err):
910910
ctx.NotFound(err)

Diff for: routers/api/v1/repo/repo.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ func CreateUserRepo(ctx *context.APIContext, owner *user_model.User, opt api.Cre
230230
if opt.AutoInit && opt.Readme == "" {
231231
opt.Readme = "Default"
232232
}
233-
repo, err := repo_service.CreateRepository(ctx.Doer, owner, repo_module.CreateRepoOptions{
233+
repo, err := repo_service.CreateRepository(ctx, ctx.Doer, owner, repo_module.CreateRepoOptions{
234234
Name: opt.Name,
235235
Description: opt.Description,
236236
IssueLabels: opt.IssueLabels,
@@ -393,7 +393,7 @@ func Generate(ctx *context.APIContext) {
393393
}
394394
}
395395

396-
repo, err := repo_service.GenerateRepository(ctx.Doer, ctxUser, ctx.Repo.Repository, opts)
396+
repo, err := repo_service.GenerateRepository(ctx, ctx.Doer, ctxUser, ctx.Repo.Repository, opts)
397397
if err != nil {
398398
if repo_model.IsErrRepoAlreadyExist(err) {
399399
ctx.Error(http.StatusConflict, "", "The repository with the same name already exists.")
@@ -637,7 +637,7 @@ func updateBasicProperties(ctx *context.APIContext, opts api.EditRepoOption) err
637637
}
638638
// Check if repository name has been changed and not just a case change
639639
if repo.LowerName != strings.ToLower(newRepoName) {
640-
if err := repo_service.ChangeRepositoryName(ctx.Doer, repo, newRepoName); err != nil {
640+
if err := repo_service.ChangeRepositoryName(ctx, ctx.Doer, repo, newRepoName); err != nil {
641641
switch {
642642
case repo_model.IsErrRepoAlreadyExist(err):
643643
ctx.Error(http.StatusUnprocessableEntity, fmt.Sprintf("repo name is already taken [name: %s]", newRepoName), err)
@@ -714,7 +714,7 @@ func updateBasicProperties(ctx *context.APIContext, opts api.EditRepoOption) err
714714
repo.DefaultBranch = *opts.DefaultBranch
715715
}
716716

717-
if err := repo_service.UpdateRepository(repo, visibilityChanged); err != nil {
717+
if err := repo_service.UpdateRepository(ctx, repo, visibilityChanged); err != nil {
718718
ctx.Error(http.StatusInternalServerError, "UpdateRepository", err)
719719
return err
720720
}

Diff for: routers/private/serv.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,7 @@ func ServCommand(ctx *context.PrivateContext) {
368368
return
369369
}
370370

371-
repo, err = repo_service.PushCreateRepo(user, owner, results.RepoName)
371+
repo, err = repo_service.PushCreateRepo(ctx, user, owner, results.RepoName)
372372
if err != nil {
373373
log.Error("pushCreateRepo: %v", err)
374374
ctx.JSON(http.StatusNotFound, private.ErrServCommand{

Diff for: routers/web/admin/repos.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ func UnadoptedRepos(ctx *context.Context) {
9696
}
9797

9898
ctx.Data["Keyword"] = q
99-
repoNames, count, err := repo_service.ListUnadoptedRepositories(q, &opts)
99+
repoNames, count, err := repo_service.ListUnadoptedRepositories(ctx, q, &opts)
100100
if err != nil {
101101
ctx.ServerError("ListUnadoptedRepositories", err)
102102
}
@@ -148,7 +148,7 @@ func AdoptOrDeleteRepository(ctx *context.Context) {
148148
if has || !isDir {
149149
// Fallthrough to failure mode
150150
} else if action == "adopt" {
151-
if _, err := repo_service.AdoptRepository(ctx.Doer, ctxUser, repo_module.CreateRepoOptions{
151+
if _, err := repo_service.AdoptRepository(ctx, ctx.Doer, ctxUser, repo_module.CreateRepoOptions{
152152
Name: dirSplit[1],
153153
IsPrivate: true,
154154
}); err != nil {
@@ -157,7 +157,7 @@ func AdoptOrDeleteRepository(ctx *context.Context) {
157157
}
158158
ctx.Flash.Success(ctx.Tr("repo.adopt_preexisting_success", dir))
159159
} else if action == "delete" {
160-
if err := repo_service.DeleteUnadoptedRepository(ctx.Doer, ctxUser, dirSplit[1]); err != nil {
160+
if err := repo_service.DeleteUnadoptedRepository(ctx, ctx.Doer, ctxUser, dirSplit[1]); err != nil {
161161
ctx.ServerError("repository.AdoptRepository", err)
162162
return
163163
}

Diff for: routers/web/org/setting.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ func SettingsPost(ctx *context.Context) {
137137
}
138138
for _, repo := range repos {
139139
repo.OwnerName = org.Name
140-
if err := repo_service.UpdateRepository(repo, true); err != nil {
140+
if err := repo_service.UpdateRepository(ctx, repo, true); err != nil {
141141
ctx.ServerError("UpdateRepository", err)
142142
return
143143
}

Diff for: routers/web/repo/branch.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ func DeleteBranchPost(ctx *context.Context) {
9191
defer redirect(ctx)
9292
branchName := ctx.FormString("name")
9393

94-
if err := repo_service.DeleteBranch(ctx.Doer, ctx.Repo.Repository, ctx.Repo.GitRepo, branchName); err != nil {
94+
if err := repo_service.DeleteBranch(ctx, ctx.Doer, ctx.Repo.Repository, ctx.Repo.GitRepo, branchName); err != nil {
9595
switch {
9696
case git.IsErrBranchNotExist(err):
9797
log.Debug("DeleteBranch: Can't delete non existing branch '%s'", branchName)

Diff for: routers/web/repo/http.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ func httpBase(ctx *context.Context) (h *serviceHandler) {
276276
return
277277
}
278278

279-
repo, err = repo_service.PushCreateRepo(ctx.Doer, owner, reponame)
279+
repo, err = repo_service.PushCreateRepo(ctx, ctx.Doer, owner, reponame)
280280
if err != nil {
281281
log.Error("pushCreateRepo: %v", err)
282282
ctx.Status(http.StatusNotFound)

Diff for: routers/web/repo/issue.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -589,7 +589,7 @@ func RetrieveRepoReviewers(ctx *context.Context, repo *repo_model.Repository, is
589589
return
590590
}
591591

592-
teamReviewers, err = repo_service.GetReviewerTeams(repo)
592+
teamReviewers, err = repo_service.GetReviewerTeams(ctx, repo)
593593
if err != nil {
594594
ctx.ServerError("GetReviewerTeams", err)
595595
return

Diff for: routers/web/repo/pull.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1399,7 +1399,7 @@ func CleanUpPullRequest(ctx *context.Context) {
13991399

14001400
func deleteBranch(ctx *context.Context, pr *issues_model.PullRequest, gitRepo *git.Repository) {
14011401
fullBranchName := pr.HeadRepo.FullName() + ":" + pr.HeadBranch
1402-
if err := repo_service.DeleteBranch(ctx.Doer, pr.HeadRepo, gitRepo, pr.HeadBranch); err != nil {
1402+
if err := repo_service.DeleteBranch(ctx, ctx.Doer, pr.HeadRepo, gitRepo, pr.HeadBranch); err != nil {
14031403
switch {
14041404
case git.IsErrBranchNotExist(err):
14051405
ctx.Flash.Error(ctx.Tr("repo.branch.deletion_failed", fullBranchName))

Diff for: routers/web/repo/repo.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -248,14 +248,14 @@ func CreatePost(ctx *context.Context) {
248248
return
249249
}
250250

251-
repo, err = repo_service.GenerateRepository(ctx.Doer, ctxUser, templateRepo, opts)
251+
repo, err = repo_service.GenerateRepository(ctx, ctx.Doer, ctxUser, templateRepo, opts)
252252
if err == nil {
253253
log.Trace("Repository generated [%d]: %s/%s", repo.ID, ctxUser.Name, repo.Name)
254254
ctx.Redirect(repo.Link())
255255
return
256256
}
257257
} else {
258-
repo, err = repo_service.CreateRepository(ctx.Doer, ctxUser, repo_module.CreateRepoOptions{
258+
repo, err = repo_service.CreateRepository(ctx, ctx.Doer, ctxUser, repo_module.CreateRepoOptions{
259259
Name: form.RepoName,
260260
Description: form.Description,
261261
Gitignores: form.Gitignores,
@@ -302,7 +302,7 @@ func Action(ctx *context.Context) {
302302

303303
ctx.Repo.Repository.Description = ctx.FormString("desc")
304304
ctx.Repo.Repository.Website = ctx.FormString("site")
305-
err = repo_service.UpdateRepository(ctx.Repo.Repository, false)
305+
err = repo_service.UpdateRepository(ctx, ctx.Repo.Repository, false)
306306
}
307307

308308
if err != nil {

Diff for: routers/web/repo/setting.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ func SettingsPost(ctx *context.Context) {
134134
ctx.Repo.GitRepo.Close()
135135
ctx.Repo.GitRepo = nil
136136
}
137-
if err := repo_service.ChangeRepositoryName(ctx.Doer, repo, newRepoName); err != nil {
137+
if err := repo_service.ChangeRepositoryName(ctx, ctx.Doer, repo, newRepoName); err != nil {
138138
ctx.Data["Err_RepoName"] = true
139139
switch {
140140
case repo_model.IsErrRepoAlreadyExist(err):
@@ -183,7 +183,7 @@ func SettingsPost(ctx *context.Context) {
183183
}
184184

185185
repo.IsPrivate = form.Private
186-
if err := repo_service.UpdateRepository(repo, visibilityChanged); err != nil {
186+
if err := repo_service.UpdateRepository(ctx, repo, visibilityChanged); err != nil {
187187
ctx.ServerError("UpdateRepository", err)
188188
return
189189
}
@@ -541,7 +541,7 @@ func SettingsPost(ctx *context.Context) {
541541
return
542542
}
543543
if repoChanged {
544-
if err := repo_service.UpdateRepository(repo, false); err != nil {
544+
if err := repo_service.UpdateRepository(ctx, repo, false); err != nil {
545545
ctx.ServerError("UpdateRepository", err)
546546
return
547547
}
@@ -560,7 +560,7 @@ func SettingsPost(ctx *context.Context) {
560560
}
561561

562562
if changed {
563-
if err := repo_service.UpdateRepository(repo, false); err != nil {
563+
if err := repo_service.UpdateRepository(ctx, repo, false); err != nil {
564564
ctx.ServerError("UpdateRepository", err)
565565
return
566566
}
@@ -580,7 +580,7 @@ func SettingsPost(ctx *context.Context) {
580580
repo.IsFsckEnabled = form.EnableHealthCheck
581581
}
582582

583-
if err := repo_service.UpdateRepository(repo, false); err != nil {
583+
if err := repo_service.UpdateRepository(ctx, repo, false); err != nil {
584584
ctx.ServerError("UpdateRepository", err)
585585
return
586586
}
@@ -672,7 +672,7 @@ func SettingsPost(ctx *context.Context) {
672672
return
673673
}
674674

675-
if err := repo_service.ConvertForkToNormalRepository(repo); err != nil {
675+
if err := repo_service.ConvertForkToNormalRepository(ctx, repo); err != nil {
676676
log.Error("Unable to convert repository %-v from fork. Error: %v", repo, err)
677677
ctx.ServerError("Convert Fork", err)
678678
return
@@ -1244,7 +1244,7 @@ func UpdateAvatarSetting(ctx *context.Context, form forms.AvatarForm) error {
12441244
if !(st.IsImage() && !st.IsSvgImage()) {
12451245
return errors.New(ctx.Tr("settings.uploaded_avatar_not_a_image"))
12461246
}
1247-
if err = repo_service.UploadAvatar(ctxRepo, data); err != nil {
1247+
if err = repo_service.UploadAvatar(ctx, ctxRepo, data); err != nil {
12481248
return fmt.Errorf("UploadAvatar: %w", err)
12491249
}
12501250
return nil
@@ -1264,7 +1264,7 @@ func SettingsAvatar(ctx *context.Context) {
12641264

12651265
// SettingsDeleteAvatar delete repository avatar
12661266
func SettingsDeleteAvatar(ctx *context.Context) {
1267-
if err := repo_service.DeleteAvatar(ctx.Repo.Repository); err != nil {
1267+
if err := repo_service.DeleteAvatar(ctx, ctx.Repo.Repository); err != nil {
12681268
ctx.Flash.Error(fmt.Sprintf("DeleteAvatar: %v", err))
12691269
}
12701270
ctx.Redirect(ctx.Repo.RepoLink + "/settings")

Diff for: routers/web/repo/setting_protected_branch.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ func RenameBranchPost(ctx *context.Context) {
356356
return
357357
}
358358

359-
msg, err := repository.RenameBranch(ctx.Repo.Repository, ctx.Doer, ctx.Repo.GitRepo, form.From, form.To)
359+
msg, err := repository.RenameBranch(ctx, ctx.Repo.Repository, ctx.Doer, ctx.Repo.GitRepo, form.From, form.To)
360360
if err != nil {
361361
ctx.ServerError("RenameBranch", err)
362362
return

Diff for: routers/web/user/setting/adopt.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ func AdoptOrDeleteRepository(ctx *context.Context) {
4545
if has || !isDir {
4646
// Fallthrough to failure mode
4747
} else if action == "adopt" && allowAdopt {
48-
if _, err := repo_service.AdoptRepository(ctxUser, ctxUser, repo_module.CreateRepoOptions{
48+
if _, err := repo_service.AdoptRepository(ctx, ctxUser, ctxUser, repo_module.CreateRepoOptions{
4949
Name: dir,
5050
IsPrivate: true,
5151
}); err != nil {
@@ -54,7 +54,7 @@ func AdoptOrDeleteRepository(ctx *context.Context) {
5454
}
5555
ctx.Flash.Success(ctx.Tr("repo.adopt_preexisting_success", dir))
5656
} else if action == "delete" && allowDelete {
57-
if err := repo_service.DeleteUnadoptedRepository(ctxUser, ctxUser, dir); err != nil {
57+
if err := repo_service.DeleteUnadoptedRepository(ctx, ctxUser, ctxUser, dir); err != nil {
5858
ctx.ServerError("repository.AdoptRepository", err)
5959
return
6060
}

Diff for: services/repository/adopt.go

+11-11
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import (
2626
)
2727

2828
// AdoptRepository adopts pre-existing repository files for the user/organization.
29-
func AdoptRepository(doer, u *user_model.User, opts repo_module.CreateRepoOptions) (*repo_model.Repository, error) {
29+
func AdoptRepository(ctx context.Context, doer, u *user_model.User, opts repo_module.CreateRepoOptions) (*repo_model.Repository, error) {
3030
if !doer.IsAdmin && !u.CanCreateRepo() {
3131
return nil, repo_model.ErrReachLimitOfRepo{
3232
Limit: u.MaxRepoCreation,
@@ -53,7 +53,7 @@ func AdoptRepository(doer, u *user_model.User, opts repo_module.CreateRepoOption
5353
IsEmpty: !opts.AutoInit,
5454
}
5555

56-
if err := db.WithTx(db.DefaultContext, func(ctx context.Context) error {
56+
if err := db.WithTx(ctx, func(ctx context.Context) error {
5757
repoPath := repo_model.RepoPath(u.Name, repo.Name)
5858
isExist, err := util.IsExist(repoPath)
5959
if err != nil {
@@ -95,7 +95,7 @@ func AdoptRepository(doer, u *user_model.User, opts repo_module.CreateRepoOption
9595
return nil, err
9696
}
9797

98-
notification.NotifyCreateRepository(db.DefaultContext, doer, u, repo)
98+
notification.NotifyCreateRepository(ctx, doer, u, repo)
9999

100100
return repo, nil
101101
}
@@ -188,7 +188,7 @@ func adoptRepository(ctx context.Context, repoPath string, u *user_model.User, r
188188
}
189189

190190
// DeleteUnadoptedRepository deletes unadopted repository files from the filesystem
191-
func DeleteUnadoptedRepository(doer, u *user_model.User, repoName string) error {
191+
func DeleteUnadoptedRepository(ctx context.Context, doer, u *user_model.User, repoName string) error {
192192
if err := repo_model.IsUsableRepoName(repoName); err != nil {
193193
return err
194194
}
@@ -206,7 +206,7 @@ func DeleteUnadoptedRepository(doer, u *user_model.User, repoName string) error
206206
}
207207
}
208208

209-
if exist, err := repo_model.IsRepositoryExist(db.DefaultContext, u, repoName); err != nil {
209+
if exist, err := repo_model.IsRepositoryExist(ctx, u, repoName); err != nil {
210210
return err
211211
} else if exist {
212212
return repo_model.ErrRepoAlreadyExist{
@@ -232,11 +232,11 @@ func (unadopted *unadoptedRepositories) add(repository string) {
232232
unadopted.index++
233233
}
234234

235-
func checkUnadoptedRepositories(userName string, repoNamesToCheck []string, unadopted *unadoptedRepositories) error {
235+
func checkUnadoptedRepositories(ctx context.Context, userName string, repoNamesToCheck []string, unadopted *unadoptedRepositories) error {
236236
if len(repoNamesToCheck) == 0 {
237237
return nil
238238
}
239-
ctxUser, err := user_model.GetUserByName(db.DefaultContext, userName)
239+
ctxUser, err := user_model.GetUserByName(ctx, userName)
240240
if err != nil {
241241
if user_model.IsErrUserNotExist(err) {
242242
log.Debug("Missing user: %s", userName)
@@ -271,7 +271,7 @@ func checkUnadoptedRepositories(userName string, repoNamesToCheck []string, unad
271271
}
272272

273273
// ListUnadoptedRepositories lists all the unadopted repositories that match the provided query
274-
func ListUnadoptedRepositories(query string, opts *db.ListOptions) ([]string, int, error) {
274+
func ListUnadoptedRepositories(ctx context.Context, query string, opts *db.ListOptions) ([]string, int, error) {
275275
globUser, _ := glob.Compile("*")
276276
globRepo, _ := glob.Compile("*")
277277

@@ -315,7 +315,7 @@ func ListUnadoptedRepositories(query string, opts *db.ListOptions) ([]string, in
315315

316316
if !strings.ContainsRune(path[len(root)+1:], filepath.Separator) {
317317
// Got a new user
318-
if err = checkUnadoptedRepositories(userName, repoNamesToCheck, unadopted); err != nil {
318+
if err = checkUnadoptedRepositories(ctx, userName, repoNamesToCheck, unadopted); err != nil {
319319
return err
320320
}
321321
repoNamesToCheck = repoNamesToCheck[:0]
@@ -338,7 +338,7 @@ func ListUnadoptedRepositories(query string, opts *db.ListOptions) ([]string, in
338338

339339
repoNamesToCheck = append(repoNamesToCheck, name)
340340
if len(repoNamesToCheck) >= setting.Database.IterateBufferSize {
341-
if err = checkUnadoptedRepositories(userName, repoNamesToCheck, unadopted); err != nil {
341+
if err = checkUnadoptedRepositories(ctx, userName, repoNamesToCheck, unadopted); err != nil {
342342
return err
343343
}
344344
repoNamesToCheck = repoNamesToCheck[:0]
@@ -349,7 +349,7 @@ func ListUnadoptedRepositories(query string, opts *db.ListOptions) ([]string, in
349349
return nil, 0, err
350350
}
351351

352-
if err := checkUnadoptedRepositories(userName, repoNamesToCheck, unadopted); err != nil {
352+
if err := checkUnadoptedRepositories(ctx, userName, repoNamesToCheck, unadopted); err != nil {
353353
return nil, 0, err
354354
}
355355

0 commit comments

Comments
 (0)