Skip to content

Commit 178e89d

Browse files
committed
add pages hook
1 parent 6290d8d commit 178e89d

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed

src/main/scala/Plugin.scala

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import gitbucket.core.controller.ControllerBase
2-
import gitbucket.plugin.pages.PagesController
2+
import gitbucket.plugin.pages.{ PagesController, PagesHook }
33
import io.github.gitbucket.solidbase.migration.{ SqlMigration, LiquibaseMigration }
44
import io.github.gitbucket.solidbase.model.Version
55

@@ -28,5 +28,9 @@ class Plugin extends gitbucket.core.plugin.Plugin {
2828
override val controllers: Seq[(String, ControllerBase)] = Seq(
2929
"/*" -> new PagesController
3030
)
31+
32+
override val repositoryHooks = Seq(
33+
new PagesHook
34+
)
3135
}
3236

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package gitbucket.plugin.pages
2+
3+
import gitbucket.core.plugin.RepositoryHook
4+
import gitbucket.plugin.model.PageSourceType
5+
import gitbucket.plugin.model.Profile.profile.blockingApi._
6+
import gitbucket.plugin.service.PagesService
7+
8+
class PagesHook
9+
extends PagesHookBase
10+
with PagesService
11+
12+
trait PagesHookBase extends RepositoryHook {
13+
self: PagesService =>
14+
15+
override def created(owner: String, repository: String)(implicit session: Session): Unit =
16+
registerPageOptions(owner, repository, PageSourceType.GH_PAGES)
17+
18+
override def deleted(owner: String, repository: String)(implicit session: Session): Unit =
19+
deletePageOptions(owner, repository)
20+
21+
override def renamed(owner: String, oldRepository: String, newRepository: String)(implicit session: Session): Unit =
22+
renameRepository(owner, oldRepository, newRepository)
23+
24+
override def transferred(oldOwner: String, newOwner: String, repository: String)(implicit session: Session): Unit =
25+
renameUserName(oldOwner, newOwner, repository)
26+
27+
override def forked(owner: String, newOwner: String, repository: String)(implicit session: Session): Unit = {
28+
val source = getPageOptions(owner, repository) match {
29+
case Some(p) => p.source
30+
case None => PageSourceType.GH_PAGES
31+
}
32+
registerPageOptions(newOwner, repository, source)
33+
}
34+
}

0 commit comments

Comments
 (0)