Commit hook test.

This commit is contained in:
takezoe
2013-05-31 20:28:06 +09:00
parent c71e18a4ef
commit 888777f7e8

View File

@@ -1,10 +1,14 @@
package servlet package servlet
import java.io._
import javax.servlet._
import javax.servlet.http._
import org.eclipse.jgit.http.server.GitServlet import org.eclipse.jgit.http.server.GitServlet
import org.eclipse.jgit.lib._
import org.eclipse.jgit.transport._
import org.eclipse.jgit.transport.resolver._
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
import javax.servlet.ServletConfig
import javax.servlet.ServletContext
import javax.servlet.http.HttpServletRequest
import util.Directory import util.Directory
/** /**
@@ -17,8 +21,10 @@ class GitRepositoryServlet extends GitServlet {
private val logger = LoggerFactory.getLogger(classOf[GitRepositoryServlet]) private val logger = LoggerFactory.getLogger(classOf[GitRepositoryServlet])
// TODO are there any other ways...?
override def init(config: ServletConfig): Unit = { override def init(config: ServletConfig): Unit = {
setReceivePackFactory(new GitBucketRecievePackFactory())
// TODO are there any other ways...?
super.init(new ServletConfig(){ super.init(new ServletConfig(){
def getInitParameter(name: String): String = name match { def getInitParameter(name: String): String = name match {
case "base-path" => Directory.RepositoryHome case "base-path" => Directory.RepositoryHome
@@ -35,3 +41,38 @@ class GitRepositoryServlet extends GitServlet {
} }
} }
class GitBucketRecievePackFactory extends ReceivePackFactory[HttpServletRequest] {
override def create(req: HttpServletRequest, db: Repository): ReceivePack = {
val receivePack = new ReceivePack(db)
println("----")
println("contextPath: " + req.getContextPath)
println("requestURI: " + req.getRequestURI)
println("remoteUser:" + req.getRemoteUser)
val userName = req.getSession.getAttribute("USER_INFO")
println("userName: " + userName)
println("----")
receivePack.setPostReceiveHook(new CommitLogHook())
receivePack
}
}
import scala.collection.JavaConverters._
class CommitLogHook extends PostReceiveHook {
def onPostReceive(receivePack: ReceivePack, commands: java.util.Collection[ReceiveCommand]): Unit = {
println("**** hook ****")
commands.asScala.foreach { command =>
println(command.getRefName)
println(command.getMessage)
println(command.getRef().getName())
println("--")
}
}
}