Skip to content

Commit 622e594

Browse files
authored
Merge branch 'main' into refactor-matchlist
2 parents e949447 + 43bbc54 commit 622e594

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+781
-722
lines changed

integrations/pull_merge_test.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818

1919
"code.gitea.io/gitea/models"
2020
"code.gitea.io/gitea/models/db"
21+
"code.gitea.io/gitea/models/webhook"
2122
"code.gitea.io/gitea/modules/git"
2223
api "code.gitea.io/gitea/modules/structs"
2324
"code.gitea.io/gitea/modules/test"
@@ -62,7 +63,7 @@ func testPullCleanUp(t *testing.T, session *TestSession, user, repo, pullnum str
6263

6364
func TestPullMerge(t *testing.T) {
6465
onGiteaRun(t, func(t *testing.T, giteaURL *url.URL) {
65-
hookTasks, err := models.HookTasks(1, 1) //Retrieve previous hook number
66+
hookTasks, err := webhook.HookTasks(1, 1) //Retrieve previous hook number
6667
assert.NoError(t, err)
6768
hookTasksLenBefore := len(hookTasks)
6869

@@ -76,15 +77,15 @@ func TestPullMerge(t *testing.T) {
7677
assert.EqualValues(t, "pulls", elem[3])
7778
testPullMerge(t, session, elem[1], elem[2], elem[4], models.MergeStyleMerge)
7879

79-
hookTasks, err = models.HookTasks(1, 1)
80+
hookTasks, err = webhook.HookTasks(1, 1)
8081
assert.NoError(t, err)
8182
assert.Len(t, hookTasks, hookTasksLenBefore+1)
8283
})
8384
}
8485

8586
func TestPullRebase(t *testing.T) {
8687
onGiteaRun(t, func(t *testing.T, giteaURL *url.URL) {
87-
hookTasks, err := models.HookTasks(1, 1) //Retrieve previous hook number
88+
hookTasks, err := webhook.HookTasks(1, 1) //Retrieve previous hook number
8889
assert.NoError(t, err)
8990
hookTasksLenBefore := len(hookTasks)
9091

@@ -98,15 +99,15 @@ func TestPullRebase(t *testing.T) {
9899
assert.EqualValues(t, "pulls", elem[3])
99100
testPullMerge(t, session, elem[1], elem[2], elem[4], models.MergeStyleRebase)
100101

101-
hookTasks, err = models.HookTasks(1, 1)
102+
hookTasks, err = webhook.HookTasks(1, 1)
102103
assert.NoError(t, err)
103104
assert.Len(t, hookTasks, hookTasksLenBefore+1)
104105
})
105106
}
106107

107108
func TestPullRebaseMerge(t *testing.T) {
108109
onGiteaRun(t, func(t *testing.T, giteaURL *url.URL) {
109-
hookTasks, err := models.HookTasks(1, 1) //Retrieve previous hook number
110+
hookTasks, err := webhook.HookTasks(1, 1) //Retrieve previous hook number
110111
assert.NoError(t, err)
111112
hookTasksLenBefore := len(hookTasks)
112113

@@ -120,15 +121,15 @@ func TestPullRebaseMerge(t *testing.T) {
120121
assert.EqualValues(t, "pulls", elem[3])
121122
testPullMerge(t, session, elem[1], elem[2], elem[4], models.MergeStyleRebaseMerge)
122123

123-
hookTasks, err = models.HookTasks(1, 1)
124+
hookTasks, err = webhook.HookTasks(1, 1)
124125
assert.NoError(t, err)
125126
assert.Len(t, hookTasks, hookTasksLenBefore+1)
126127
})
127128
}
128129

129130
func TestPullSquash(t *testing.T) {
130131
onGiteaRun(t, func(t *testing.T, giteaURL *url.URL) {
131-
hookTasks, err := models.HookTasks(1, 1) //Retrieve previous hook number
132+
hookTasks, err := webhook.HookTasks(1, 1) //Retrieve previous hook number
132133
assert.NoError(t, err)
133134
hookTasksLenBefore := len(hookTasks)
134135

@@ -143,7 +144,7 @@ func TestPullSquash(t *testing.T) {
143144
assert.EqualValues(t, "pulls", elem[3])
144145
testPullMerge(t, session, elem[1], elem[2], elem[4], models.MergeStyleSquash)
145146

146-
hookTasks, err = models.HookTasks(1, 1)
147+
hookTasks, err = webhook.HookTasks(1, 1)
147148
assert.NoError(t, err)
148149
assert.Len(t, hookTasks, hookTasksLenBefore+1)
149150
})

models/db/error.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// Copyright 2021 The Gitea Authors. All rights reserved.
2+
// Use of this source code is governed by a MIT-style
3+
// license that can be found in the LICENSE file.
4+
5+
package db
6+
7+
import "fmt"
8+
9+
// ErrCancelled represents an error due to context cancellation
10+
type ErrCancelled struct {
11+
Message string
12+
}
13+
14+
// IsErrCancelled checks if an error is a ErrCancelled.
15+
func IsErrCancelled(err error) bool {
16+
_, ok := err.(ErrCancelled)
17+
return ok
18+
}
19+
20+
func (err ErrCancelled) Error() string {
21+
return "Cancelled: " + err.Message
22+
}
23+
24+
// ErrCancelledf returns an ErrCancelled for the provided format and args
25+
func ErrCancelledf(format string, args ...interface{}) error {
26+
return ErrCancelled{
27+
fmt.Sprintf(format, args...),
28+
}
29+
}

models/error.go

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -84,28 +84,6 @@ func (err ErrSSHDisabled) Error() string {
8484
return "SSH is disabled"
8585
}
8686

87-
// ErrCancelled represents an error due to context cancellation
88-
type ErrCancelled struct {
89-
Message string
90-
}
91-
92-
// IsErrCancelled checks if an error is a ErrCancelled.
93-
func IsErrCancelled(err error) bool {
94-
_, ok := err.(ErrCancelled)
95-
return ok
96-
}
97-
98-
func (err ErrCancelled) Error() string {
99-
return "Cancelled: " + err.Message
100-
}
101-
102-
// ErrCancelledf returns an ErrCancelled for the provided format and args
103-
func ErrCancelledf(format string, args ...interface{}) error {
104-
return ErrCancelled{
105-
fmt.Sprintf(format, args...),
106-
}
107-
}
108-
10987
// ____ ___
11088
// | | \______ ___________
11189
// | | / ___// __ \_ __ \
@@ -1305,28 +1283,6 @@ func (err ErrSHAOrCommitIDNotProvided) Error() string {
13051283
return "a SHA or commit ID must be proved when updating a file"
13061284
}
13071285

1308-
// __ __ ___. .__ __
1309-
// / \ / \ ____\_ |__ | |__ ____ ____ | | __
1310-
// \ \/\/ // __ \| __ \| | \ / _ \ / _ \| |/ /
1311-
// \ /\ ___/| \_\ \ Y ( <_> | <_> ) <
1312-
// \__/\ / \___ >___ /___| /\____/ \____/|__|_ \
1313-
// \/ \/ \/ \/ \/
1314-
1315-
// ErrWebhookNotExist represents a "WebhookNotExist" kind of error.
1316-
type ErrWebhookNotExist struct {
1317-
ID int64
1318-
}
1319-
1320-
// IsErrWebhookNotExist checks if an error is a ErrWebhookNotExist.
1321-
func IsErrWebhookNotExist(err error) bool {
1322-
_, ok := err.(ErrWebhookNotExist)
1323-
return ok
1324-
}
1325-
1326-
func (err ErrWebhookNotExist) Error() string {
1327-
return fmt.Sprintf("webhook does not exist [id: %d]", err.ID)
1328-
}
1329-
13301286
// .___
13311287
// | | ______ ________ __ ____
13321288
// | |/ ___// ___/ | \_/ __ \

models/notification.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,13 @@ func (n *Notification) loadComment(e db.Engine) (err error) {
434434
if n.Comment == nil && n.CommentID != 0 {
435435
n.Comment, err = getCommentByID(e, n.CommentID)
436436
if err != nil {
437-
return fmt.Errorf("GetCommentByID [%d] for issue ID [%d]: %v", n.CommentID, n.IssueID, err)
437+
if IsErrCommentNotExist(err) {
438+
return ErrCommentNotExist{
439+
ID: n.CommentID,
440+
IssueID: n.IssueID,
441+
}
442+
}
443+
return err
438444
}
439445
}
440446
return nil
@@ -488,7 +494,7 @@ type NotificationList []*Notification
488494
func (nl NotificationList) LoadAttributes() (err error) {
489495
for i := 0; i < len(nl); i++ {
490496
err = nl[i].LoadAttributes()
491-
if err != nil {
497+
if err != nil && !IsErrCommentNotExist(err) {
492498
return
493499
}
494500
}

models/repo.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424

2525
"code.gitea.io/gitea/models/db"
2626
"code.gitea.io/gitea/models/unit"
27+
"code.gitea.io/gitea/models/webhook"
2728
"code.gitea.io/gitea/modules/lfs"
2829
"code.gitea.io/gitea/modules/log"
2930
"code.gitea.io/gitea/modules/markup"
@@ -1153,7 +1154,7 @@ func CreateRepository(ctx context.Context, doer, u *User, repo *Repository, over
11531154
}
11541155
}
11551156

1156-
if err = copyDefaultWebhooksToRepo(db.GetEngine(ctx), repo.ID); err != nil {
1157+
if err = webhook.CopyDefaultWebhooksToRepo(ctx, repo.ID); err != nil {
11571158
return fmt.Errorf("copyDefaultWebhooksToRepo: %v", err)
11581159
}
11591160

@@ -1509,7 +1510,7 @@ func DeleteRepository(doer *User, uid, repoID int64) error {
15091510
&Comment{RefRepoID: repoID},
15101511
&CommitStatus{RepoID: repoID},
15111512
&DeletedBranch{RepoID: repoID},
1512-
&HookTask{RepoID: repoID},
1513+
&webhook.HookTask{RepoID: repoID},
15131514
&LFSLock{RepoID: repoID},
15141515
&LanguageStat{RepoID: repoID},
15151516
&Milestone{RepoID: repoID},
@@ -1526,7 +1527,7 @@ func DeleteRepository(doer *User, uid, repoID int64) error {
15261527
&Star{RepoID: repoID},
15271528
&Task{RepoID: repoID},
15281529
&Watch{RepoID: repoID},
1529-
&Webhook{RepoID: repoID},
1530+
&webhook.Webhook{RepoID: repoID},
15301531
); err != nil {
15311532
return fmt.Errorf("deleteBeans: %v", err)
15321533
}
@@ -1932,7 +1933,7 @@ func CheckRepoStats(ctx context.Context) error {
19321933
select {
19331934
case <-ctx.Done():
19341935
log.Warn("CheckRepoStats: Cancelled before %s", checker.desc)
1935-
return ErrCancelledf("before checking %s", checker.desc)
1936+
return db.ErrCancelledf("before checking %s", checker.desc)
19361937
default:
19371938
repoStatsCheck(ctx, checker)
19381939
}
@@ -1949,7 +1950,7 @@ func CheckRepoStats(ctx context.Context) error {
19491950
select {
19501951
case <-ctx.Done():
19511952
log.Warn("CheckRepoStats: Cancelled during %s for repo ID %d", desc, id)
1952-
return ErrCancelledf("during %s for repo ID %d", desc, id)
1953+
return db.ErrCancelledf("during %s for repo ID %d", desc, id)
19531954
default:
19541955
}
19551956
log.Trace("Updating %s: %d", desc, id)
@@ -1972,7 +1973,7 @@ func CheckRepoStats(ctx context.Context) error {
19721973
select {
19731974
case <-ctx.Done():
19741975
log.Warn("CheckRepoStats: Cancelled")
1975-
return ErrCancelledf("during %s for repo ID %d", desc, id)
1976+
return db.ErrCancelledf("during %s for repo ID %d", desc, id)
19761977
default:
19771978
}
19781979
log.Trace("Updating %s: %d", desc, id)
@@ -1995,7 +1996,7 @@ func CheckRepoStats(ctx context.Context) error {
19951996
select {
19961997
case <-ctx.Done():
19971998
log.Warn("CheckRepoStats: Cancelled")
1998-
return ErrCancelledf("during %s for repo ID %d", desc, id)
1999+
return db.ErrCancelledf("during %s for repo ID %d", desc, id)
19992000
default:
20002001
}
20012002
log.Trace("Updating repository count 'num_forks': %d", id)

models/repo_avatar.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ func RemoveRandomAvatars(ctx context.Context) error {
6464
repository := bean.(*Repository)
6565
select {
6666
case <-ctx.Done():
67-
return ErrCancelledf("before random avatars removed for %s", repository.FullName())
67+
return db.ErrCancelledf("before random avatars removed for %s", repository.FullName())
6868
default:
6969
}
7070
stringifiedID := strconv.FormatInt(repository.ID, 10)

models/repo_generate.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"strings"
1313

1414
"code.gitea.io/gitea/models/db"
15+
"code.gitea.io/gitea/models/webhook"
1516
"code.gitea.io/gitea/modules/git"
1617
"code.gitea.io/gitea/modules/log"
1718
"code.gitea.io/gitea/modules/storage"
@@ -113,13 +114,13 @@ func GenerateGitHooks(ctx context.Context, templateRepo, generateRepo *Repositor
113114

114115
// GenerateWebhooks generates webhooks from a template repository
115116
func GenerateWebhooks(ctx context.Context, templateRepo, generateRepo *Repository) error {
116-
templateWebhooks, err := ListWebhooksByOpts(&ListWebhookOptions{RepoID: templateRepo.ID})
117+
templateWebhooks, err := webhook.ListWebhooksByOpts(&webhook.ListWebhookOptions{RepoID: templateRepo.ID})
117118
if err != nil {
118119
return err
119120
}
120121

121122
for _, templateWebhook := range templateWebhooks {
122-
generateWebhook := &Webhook{
123+
generateWebhook := &webhook.Webhook{
123124
RepoID: generateRepo.ID,
124125
URL: templateWebhook.URL,
125126
HTTPMethod: templateWebhook.HTTPMethod,
@@ -132,7 +133,7 @@ func GenerateWebhooks(ctx context.Context, templateRepo, generateRepo *Repositor
132133
Events: templateWebhook.Events,
133134
Meta: templateWebhook.Meta,
134135
}
135-
if err := createWebhook(db.GetEngine(ctx), generateWebhook); err != nil {
136+
if err := webhook.CreateWebhook(ctx, generateWebhook); err != nil {
136137
return err
137138
}
138139
}

models/statistic.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ package models
77
import (
88
"code.gitea.io/gitea/models/db"
99
"code.gitea.io/gitea/models/login"
10+
"code.gitea.io/gitea/models/webhook"
1011
"code.gitea.io/gitea/modules/setting"
1112
)
1213

@@ -95,10 +96,10 @@ func GetStatistic() (stats Statistic) {
9596
stats.Counter.Mirror, _ = e.Count(new(Mirror))
9697
stats.Counter.Release, _ = e.Count(new(Release))
9798
stats.Counter.LoginSource = login.CountSources()
98-
stats.Counter.Webhook, _ = e.Count(new(Webhook))
99+
stats.Counter.Webhook, _ = e.Count(new(webhook.Webhook))
99100
stats.Counter.Milestone, _ = e.Count(new(Milestone))
100101
stats.Counter.Label, _ = e.Count(new(Label))
101-
stats.Counter.HookTask, _ = e.Count(new(HookTask))
102+
stats.Counter.HookTask, _ = e.Count(new(webhook.HookTask))
102103
stats.Counter.Team, _ = e.Count(new(Team))
103104
stats.Counter.Attachment, _ = e.Count(new(Attachment))
104105
stats.Counter.Project, _ = e.Count(new(Project))

models/user.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1356,7 +1356,7 @@ func DeleteInactiveUsers(ctx context.Context, olderThan time.Duration) (err erro
13561356
for _, u := range users {
13571357
select {
13581358
case <-ctx.Done():
1359-
return ErrCancelledf("Before delete inactive user %s", u.Name)
1359+
return db.ErrCancelledf("Before delete inactive user %s", u.Name)
13601360
default:
13611361
}
13621362
if err = DeleteUser(u); err != nil {

0 commit comments

Comments
 (0)