Class GitServlet

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

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 Summary

    Fields inherited from class jakarta.servlet.http.HttpServlet

    LEGACY_DO_HEAD
  • Constructor Summary

    Constructors
    Constructor
    Description
    New servlet that will load its base directory from web.xml.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addReceivePackFilter(jakarta.servlet.Filter filter)
    Add receive-pack filter
    void
    addUploadPackFilter(jakarta.servlet.Filter filter)
    Add upload-pack filter
    void
    init(jakarta.servlet.ServletConfig config)
     
    void
    Set AsIsFileService
    void
    Set a custom error handler for git-receive-pack.
    void
    setReceivePackFactory(org.eclipse.jgit.transport.resolver.ReceivePackFactory<jakarta.servlet.http.HttpServletRequest> f)
    Set receive-pack factory
    void
    setRepositoryResolver(org.eclipse.jgit.transport.resolver.RepositoryResolver<jakarta.servlet.http.HttpServletRequest> resolver)
    New servlet configured with a specific resolver.
    void
    Set a custom error handler for git-upload-pack.
    void
    setUploadPackFactory(org.eclipse.jgit.transport.resolver.UploadPackFactory<jakarta.servlet.http.HttpServletRequest> f)
    Set upload-pack factory

    Methods inherited from class org.eclipse.jgit.http.server.glue.MetaServlet

    destroy, getDelegateFilter, register, serve, serveRegex, service

    Methods inherited from class jakarta.servlet.http.HttpServlet

    doDelete, doGet, doHead, doOptions, doPatch, doPost, doPut, doTrace, getLastModified, isSensitiveHeader, service

    Methods inherited from class jakarta.servlet.GenericServlet

    getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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(org.eclipse.jgit.transport.resolver.RepositoryResolver<jakarta.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(org.eclipse.jgit.transport.resolver.UploadPackFactory<jakarta.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(jakarta.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(org.eclipse.jgit.transport.resolver.ReceivePackFactory<jakarta.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(jakarta.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(jakarta.servlet.ServletConfig config) throws jakarta.servlet.ServletException
      Specified by:
      init in interface jakarta.servlet.Servlet
      Overrides:
      init in class MetaServlet
      Throws:
      jakarta.servlet.ServletException