Class GitServlet

java.lang.Object
javax.servlet.GenericServlet
javax.servlet.http.HttpServlet
org.eclipse.jgit.http.server.glue.MetaServlet
org.eclipse.jgit.http.server.GitServlet
All Implemented Interfaces:
Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig

public class GitServlet extends MetaServlet
Handles Git repository access over HTTP.

Applications embedding this servlet should map a directory path within the application to this servlet, for example:

   <servlet>
     <servlet-name>GitServlet</servlet-name>
     <servlet-class>org.eclipse.jgit.http.server.GitServlet</servlet-class>
     <init-param>
       <param-name>base-path</param-name>
       <param-value>/var/srv/git</param-value>
     </init-param>
     <init-param>
       <param-name>export-all</param-name>
       <param-value>0</param-value>
     </init-param>
 </servlet>
   <servlet-mapping>
     <servlet-name>GitServlet</servlet-name>
     <url-pattern>/git/*</url-pattern>
   </servlet-mapping>
 

Applications may wish to add additional repository action URLs to this servlet by taking advantage of its extension from MetaServlet. Callers may register their own URL suffix translations through MetaServlet.serve(String), or their regex translations through MetaServlet.serveRegex(String). Each translation should contain a complete filter pipeline which ends with the HttpServlet that should handle the requested action.

See Also:
  • Field Details

  • Constructor Details

    • GitServlet

      public GitServlet()
      New servlet that will load its base directory from web.xml.

      The required parameter base-path must be configured to point to the local filesystem directory where all served Git repositories reside.

  • Method Details

    • setRepositoryResolver

      public void setRepositoryResolver(RepositoryResolver<javax.servlet.http.HttpServletRequest> resolver)
      New servlet configured with a specific resolver.
      Parameters:
      resolver - the resolver to use when matching URL to Git repository. If null the base-path parameter will be looked for in the parameter table during init, which usually comes from the web.xml file of the web application.
    • setAsIsFileService

      public void setAsIsFileService(AsIsFileService f)
      Set AsIsFileService
      Parameters:
      f - the filter to validate direct access to repository files through a dumb client. If null then dumb client support is completely disabled.
    • setUploadPackFactory

      public void setUploadPackFactory(UploadPackFactory<javax.servlet.http.HttpServletRequest> f)
      Set upload-pack factory
      Parameters:
      f - the factory to construct and configure an UploadPack session when a fetch or clone is requested by a client.
    • setUploadPackErrorHandler

      public void setUploadPackErrorHandler(UploadPackErrorHandler h)
      Set a custom error handler for git-upload-pack.
      Parameters:
      h - A custom error handler for git-upload-pack.
      Since:
      5.9.1
    • addUploadPackFilter

      public void addUploadPackFilter(javax.servlet.Filter filter)
      Add upload-pack filter
      Parameters:
      filter - filter to apply before any of the UploadPack operations. The UploadPack instance is available in the request attribute ServletUtils.ATTRIBUTE_HANDLER.
    • setReceivePackFactory

      public void setReceivePackFactory(ReceivePackFactory<javax.servlet.http.HttpServletRequest> f)
      Set receive-pack factory
      Parameters:
      f - the factory to construct and configure a ReceivePack session when a push is requested by a client.
    • setReceivePackErrorHandler

      public void setReceivePackErrorHandler(ReceivePackErrorHandler h)
      Set a custom error handler for git-receive-pack.
      Parameters:
      h - A custom error handler for git-receive-pack.
      Since:
      5.9.1
    • addReceivePackFilter

      public void addReceivePackFilter(javax.servlet.Filter filter)
      Add receive-pack filter
      Parameters:
      filter - filter to apply before any of the ReceivePack operations. The ReceivePack instance is available in the request attribute ServletUtils.ATTRIBUTE_HANDLER.
    • init

      public void init(javax.servlet.ServletConfig config) throws javax.servlet.ServletException
      Specified by:
      init in interface javax.servlet.Servlet
      Overrides:
      init in class MetaServlet
      Throws:
      javax.servlet.ServletException