mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-05 21:15:49 +01:00
Cloned repositories for internal use are updated after push.
This commit is contained in:
@@ -1,11 +1,12 @@
|
||||
package app
|
||||
|
||||
import javax.servlet.ServletConfig
|
||||
import javax.servlet.ServletException
|
||||
import org.eclipse.jgit.http.server.GitServlet
|
||||
import javax.servlet.ServletContext
|
||||
import java.io._
|
||||
import javax.servlet._
|
||||
import javax.servlet.http._
|
||||
import util.Directory
|
||||
import java.io.File
|
||||
import org.eclipse.jgit.api.Git
|
||||
import org.eclipse.jgit.lib.Ref
|
||||
import org.eclipse.jgit.http.server.GitServlet
|
||||
|
||||
/**
|
||||
* Provides Git repository via HTTP.
|
||||
@@ -31,4 +32,23 @@ class GitRepositoryServlet extends GitServlet {
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* Override GitServlet#service() to pull pushed changes to cloned repositories for branch exploring.
|
||||
*/
|
||||
override def service(request: HttpServletRequest, response: HttpServletResponse): Unit = {
|
||||
super.service(request, response)
|
||||
|
||||
// TODO debug log
|
||||
println(request.getMethod + ": " + request.getRequestURI)
|
||||
|
||||
// update branches
|
||||
if(request.getMethod == "POST" && request.getRequestURI.endsWith("/git-receive-pack")){
|
||||
request.getRequestURI
|
||||
.replaceFirst("^" + request.getServletContext.getContextPath + "/git/", "")
|
||||
.replaceFirst("\\.git/git-receive-pack$", "").split("/") match {
|
||||
case Array(owner, repository) => Directory.updateAllBranches(owner, repository)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user