Technical Articles
Inside Steampunk – Vital parts of Steampunk’s abapGit
abapGit is a central part of the Steampunk product, but what is so special about it?
You need to create a report, paste the source of zabapGit in it, activate it, and run it. That would be the typical approach outside of Steampunk. In Steampunk, SAP uses the zabapGit sources transformed from Z- to SAP-namespace, and these are, with some Steampunk-specific adjustments, part of the core of the Steampunk product.
Is it then possible to execute abapGit in Steampunk like in on-premise systems by calling the transaction?
No, Steampunk doesn’t support SAP Dynpro technology, the abapGit’s UI’s underlying technology. That was one of the main reasons we created the abapGit ADT plugin to enable Steampunk users to use abapGit. The abapGit ADT plugin has worked with every Steampunk system and the ABAP Development Tools (ADT) since Steampunk’s general availability. It’s developed open-source and maintained by a few ADT developers, and it’s not yet feature-complete compared to the abapGit Dynpro UI. But we’re working on it.
abapGit ADT Plugin
A separate layer is needed to connect the plugin with the abapGit core functionality, as all the ADT plugins communicate over HTTP calls with their respective endpoints. Hence, we need an additional endpoint for the abapGit plugin. This layer is an extension to the current abapGit sources and enables abapGit to react to incoming HTTP calls. The abapGit ADT REST layer empowers abapGit with many possibilities to interact with tools other than SAP GUI or ADT. Consequently, we decided to open source the abapGit ADT REST layer and let the enormous abapGit community participate in our development. Unfortunately, we couldn’t name it like abapGit ADT REST due to legal and branding restrictions, so we decided to use a project name to keep the confusion as low as possible.
Welcome – Project Odense
We are planning to update the sources regularly as soon as we have some changes or bugfixes. Unfortunately, the sources are in SAP-namespace and could not be imported in systems with development or customer user licenses. The intention behind open sourcing the abapGit ADT REST layer was to provide a blueprint for the ABAP community.
While reading through all of this text, you recognized that abapGit consists of three vital parts in Steampunk:
- abapGit core
- abapGit ADT REST
- abapGit ADT plugin
In the below picture, you’ll find a more technical view of how everything is connected.
Technical representation of abapGit Parts in Steampunk
We’re very curious to see what cool stuff the abapGit community will do with Project Odense. Just thinking of all the possibilities like ABAP tooling for code editors outside ADT, integration pipelines for abapGit/abapLint, a tighter coupling of abapLint services, we’re excited.
Let’s see what happens 🙂
This is very cool. But I a couple of things are a little unclear:
Can this run on a regular on premise system? And how would we install it? The doc says to clone via abapGit, but as a customer or development license user, I cannot create SAP-namespace objects 🙁
I'm really keen on the idea and would love to install this and tinker with it, but unfortunately am stuck in the starting blocks.
Hello Mike,
The idea behind open sourcing the abapGIT ADT REST layer was to provide a blueprint for the ABAP Community. I heard rumors that the abapGit community will create some automatic renaming that transfers the project to a consumable Z-namespace.
I'll add a disclaimer to the blog, pointing out that this will only work in SAP Namespace.
Yea, its in the plans 🙂
But would like to do real semantic renaming running on CI, so it might take some days
Thanks, that makes more sense now 🙂