User Exits

Improve this page

abapGit contains predefined user exits which can be used to modify the standard behavior.


If the standalone version is installed, create include ZABAPGIT_USER_EXIT and add local class ZCL_ABAPGIT_USER_EXIT implementing ZIF_ABAPGIT_EXIT.

If the development version is installed create global class ZCL_ABAPGIT_USER_EXIT implementing ZIF_ABAPGIT_EXIT.

To support both versions with the same code, proceed as follows:

  1. Implement ZCL_ABAPGIT_USER_EXIT as global class and test with the developer version.
  2. Cut & paste complete code of ZCL_ABAPGIT_USER_EXIT into include ZABAPGIT_USER_EXIT and change the beginning to a local class.
    CLASS zcl_abapgit_user_exit DEFINITION
  3. Activate the include.

In either cases, add the object in a package different from the main abapGit code.

The list of user exits can change at any time, make sure to syntax check user exits after updating abapGit.



If the hostnames are not properly configured, this exit can be used to modify the settings. This is especially useful when running abapGitServer on the local system.


Force allowing serialization of SAP objects.


Determine the proxy URL from the repository URL.


Determine the proxy port from the repository URL.


Determine based on the repository URL if authentication is required when accessing the proxy.


Store username and password in RFC connection setup (see #1841).


Can be used for setting logon tickets eg. in connection with abapGitServer connections between SAP systems (Example).


Can be used to skip certain objects, or force a different object setup than currently in TADIR (Example.


Possibility to change the default ANONYM ssl id to something system specific.


Allows for a custom serializer to be used for global classes’ CLIF sources. See #2321 and #2491 for use cases. This example implementation forces the old class serializer to be used for specific packages.


Can be used for any postprocessing operation for deserialized objects. Since it is a postprocessing step, only logs can be added to II_LOG and one should not terminate the process by raising exception, which may lead to inconsistencies.


Can be used to set the URL to display a commit. There are default implementations for some providers:

 Provider Repo URL Show Commit URL
github http(s)://<user>/<repo>.git http(s)://<user>/<repo>/commit/<sha1>
bitbucket http(s)://<user>/<repo>.git http(s)://<user>/<repo>/commits/<sha1>
gitlab http(s)://<user>/<repo>.git http(s)://<user>/<repo>/-/commit/<sha1>


Can be used to modify local and remote files before calculating diff status. Useful to remove diffs which are caused by deployment between different system version (see also abapgit xml stripper plugin).

diff sample

The exit also receives a repo meta data snapshot (zif_abapgit_persistence=>ty_repo) to identify the repo and it’s attributes in the current system (e.g. package). This can be used to enable/disable the exit for specific repos.


Can be used to add a message at list level (repository overview, see #4653).


Can be used to add a message at repo level (repository view, see #4653).


This exit allows you to extend abapGit with new features that are not suitable for abapGit itself. For example, you can link to a new page from a wall message. Another use case is redirecting menu items to a custom page rather than standard abapGit, for example using a company-specific solution to replace “Advanced > Run Code Inspector” (see #4722).