aboutsummaryrefslogtreecommitdiffstats
path: root/modules/notification/action
diff options
context:
space:
mode:
Diffstat (limited to 'modules/notification/action')
-rw-r--r--modules/notification/action/action.go18
-rw-r--r--modules/notification/action/action_test.go47
2 files changed, 64 insertions, 1 deletions
diff --git a/modules/notification/action/action.go b/modules/notification/action/action.go
index 15228f65e7..52471c1107 100644
--- a/modules/notification/action/action.go
+++ b/modules/notification/action/action.go
@@ -20,7 +20,7 @@ var (
_ base.Notifier = &actionNotifier{}
)
-// NewNotifier create a new webhookNotifier notifier
+// NewNotifier create a new actionNotifier notifier
func NewNotifier() base.Notifier {
return &actionNotifier{}
}
@@ -75,3 +75,19 @@ func (a *actionNotifier) NotifyNewPullRequest(pull *models.PullRequest) {
log.Error("NotifyWatchers: %v", err)
}
}
+
+func (a *actionNotifier) NotifyRenameRepository(doer *models.User, repo *models.Repository, oldName string) {
+ if err := models.NotifyWatchers(&models.Action{
+ ActUserID: doer.ID,
+ ActUser: doer,
+ OpType: models.ActionRenameRepo,
+ RepoID: repo.ID,
+ Repo: repo,
+ IsPrivate: repo.IsPrivate,
+ Content: oldName,
+ }); err != nil {
+ log.Error("notify watchers: %v", err)
+ } else {
+ log.Trace("action.renameRepoAction: %s/%s", doer.Name, repo.Name)
+ }
+}
diff --git a/modules/notification/action/action_test.go b/modules/notification/action/action_test.go
new file mode 100644
index 0000000000..cdfe4bd663
--- /dev/null
+++ b/modules/notification/action/action_test.go
@@ -0,0 +1,47 @@
+// Copyright 2019 The Gitea 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 action
+
+import (
+ "path/filepath"
+ "strings"
+ "testing"
+
+ "code.gitea.io/gitea/models"
+ "github.com/stretchr/testify/assert"
+)
+
+func TestMain(m *testing.M) {
+ models.MainTest(m, filepath.Join("..", "..", ".."))
+}
+
+func TestRenameRepoAction(t *testing.T) {
+ assert.NoError(t, models.PrepareTestDatabase())
+
+ user := models.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
+ repo := models.AssertExistsAndLoadBean(t, &models.Repository{OwnerID: user.ID}).(*models.Repository)
+ repo.Owner = user
+
+ oldRepoName := repo.Name
+ const newRepoName = "newRepoName"
+ repo.Name = newRepoName
+ repo.LowerName = strings.ToLower(newRepoName)
+
+ actionBean := &models.Action{
+ OpType: models.ActionRenameRepo,
+ ActUserID: user.ID,
+ ActUser: user,
+ RepoID: repo.ID,
+ Repo: repo,
+ IsPrivate: repo.IsPrivate,
+ Content: oldRepoName,
+ }
+ models.AssertNotExistsBean(t, actionBean)
+
+ NewNotifier().NotifyRenameRepository(user, repo, oldRepoName)
+
+ models.AssertExistsAndLoadBean(t, actionBean)
+ models.CheckConsistencyFor(t, &models.Action{})
+}