abapGit/docs/ref-exits.md
Alexander Tsybulsky 17eac7b6c3
Strip XML details user exit (#4599)
* exit draft

* call exit

* linter fix

* PRE_CALCULATE_REPO_STATUS docs

* settings UI

* wire status calculation and repo settings

* uppercase

* diff rendering fix

* adjust docs

* adjust docs

* Remove settings

* more docs adjustments

* pass repo meta data into the exit

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-03-06 09:35:35 +01:00

71 lines
3.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: User Exits
category: reference
order: 40
---
abapGit contains predefined user exits which can be used to modify the standard behavior.
If the compiled report 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`.
In both 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 upgrade of abapGit.
### CHANGE_LOCAL_HOST
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.
### ALLOW_SAP_OBJECTS
Force allowing serialization of SAP objects.
### CHANGE_PROXY_URL
todo
### CHANGE_PROXY_PORT
todo
### CHANGE_PROXY_AUTHENTICATION
todo
### CREATE_HTTP_CLIENT
Store username and password in RFC connection setup, see [https://github.com/abapGit/abapGit/issues/1841](https://github.com/abapGit/abapGit/issues/1841)
### HTTP_CLIENT
Can be used for setting logon tickets eg. in connection with abapGitServer connections between SAP systems.
Example: [https://gist.github.com/larshp/71609852a79aa1e877f8c4020d18feac](https://gist.github.com/larshp/71609852a79aa1e877f8c4020d18feac)
### CHANGE_TADIR
Can be used to skip certain objects, or force a different object setup than currently in TADIR.
Example: [https://gist.github.com/larshp/cca0ce0ba65efcde5dfcae416b0484f7](https://gist.github.com/larshp/cca0ce0ba65efcde5dfcae416b0484f7)
### GET_SSL_ID
Possibility to change the default `ANONYM` ssl id to something system specific
### CUSTOM_SERIALIZE_ABAP_CLIF
Allows for a custom serializer to be used for global classes' CLIF sources. See [#2321](https://github.com/abapGit/abapGit/issues/2321) and [#2491](https://github.com/abapGit/abapGit/pull/2491) for use cases.
This [example implementation](https://gist.github.com/flaiker/999c8165b89131608b05cd371529fef5) forces the old class serializer to be used for specific packages.
### DESERIALIZE_POSTPROCESS
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.
### ADJUST_DISPLAY_COMMIT_URL
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):\/\/github.com/<user\>/\<repo\>.git | http(s):\/\/github.com/<user\>/\<repo\>/commit/<sha1\> |
| bitbucket | http(s):\/\/bitbucket.org/<user\>/\<repo\>.git | http(s):\/\/bitbucket.org/<user\>/\<repo\>/commits/<sha1\> |
| gitlab | http(s):\/\/gitlab.com/<user\>/\<repo\>.git | http(s):\/\/gitlab.com/\<user\>/\<repo\>/-/commit/<sha1\> |
### PRE_CALCULATE_REPO_STATUS
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](https://github.com/sbcgua/abapgit_xml_stripper_plugin)
![diff sample](./img/deployment_diff_difference_sample.png)
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.