Provides guidance on abapGit workflows including repository setup, cloning, serialization, branching, transport-vs-git, CI/CD, and .abapgit.xml configuration.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sap-fiori-url-generator:abapgitThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Guide for managing ABAP development objects in Git repositories using abapGit.
Guide for managing ABAP development objects in Git repositories using abapGit.
Determine the user's goal:
Identify the environment:
Guide implementation with best practices for ABAP-specific Git workflows
| Aspect | Description |
|---|---|
| What | Open-source Git client for ABAP, runs inside the SAP system |
| Serialization | Converts ABAP objects to file-based format for Git storage |
| Deserialization | Imports file-based format back into ABAP objects in the system |
| Supported Objects | Classes, interfaces, CDS, function groups, programs, tables, etc. |
| Installation | Via abapGit standalone report or Eclipse plugin |
ZABAPGIT_STANDALONE or ZABAPGIT_FULLSE38 or transaction ZABAPGITSTRUST (transaction) → SSL Client (Anonymous) or (Standard)1. Open abapGit (standalone or ADT)
2. Click "+ Clone" / "Link abapGit Repository"
3. Enter repository URL (HTTPS)
4. Select target package (create if needed)
5. Select branch (default: main)
6. Pull objects into the system
1. Stage changed objects (select what to include)
2. Write a meaningful commit message
3. Push to remote branch
4. Resolve conflicts if any
1. Open the repository in abapGit
2. Click "Pull"
3. Review incoming changes
4. Activate pulled objects
The .abapgit.xml file in the repository root controls serialization settings:
<?xml version="1.0" encoding="utf-8"?>
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DATA>
<MASTER_LANGUAGE>E</MASTER_LANGUAGE>
<STARTING_FOLDER>/src/</STARTING_FOLDER>
<FOLDER_LOGIC>PREFIX</FOLDER_LOGIC>
<IGNORE>
<item>/.gitignore</item>
<item>/LICENSE</item>
<item>/README.md</item>
<item>/package.json</item>
<item>/.travis.yml</item>
</IGNORE>
<REQUIREMENTS/>
</DATA>
</asx:values>
</asx:abap>
| Setting | Values | Description |
|---|---|---|
MASTER_LANGUAGE | E, D, etc. | Master language for texts |
STARTING_FOLDER | /src/ | Root folder for serialized objects |
FOLDER_LOGIC | PREFIX / FULL | How package hierarchy maps to folders |
IGNORE | File patterns | Files to exclude from deserialization |
REQUIREMENTS | Software components | Dependencies that must be present before import |
Z_PKG_SUB under Z_PKG → sub/ folderZ_PKG_SUB → z_pkg_sub/main (production-ready)
└── feature/add-validation
└── feature/new-report
└── bugfix/fix-calculation
main branch stable and deployableDEV system ←→ feature branches
QAS system ←→ release branch
PRD system ← main branch (tags for releases)
| Aspect | Transport-Based | Git-Based (abapGit) |
|---|---|---|
| Versioning | Transport requests | Git commits with full history |
| Collaboration | Transport of copies | Branches, pull requests, code review |
| Rollback | Difficult | git revert or checkout previous commit |
| CI/CD | Limited | Full integration with pipelines |
| Multi-system | Transport routes | Clone/pull to each system |
| Conflict resolution | Manual | Git merge tools |
Many teams use abapGit for version control while retaining transports for deployment:
# .github/workflows/abaplint.yml
name: abaplint
on: [push, pull_request]
jobs:
abaplint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: niclas-timm/abaplint-action@main
{
"global": {
"files": "/src/**/*.*"
},
"syntax": {
"version": "Cloud",
"errorNamespace": "^(Z|Y|LCL_|LIF_)"
},
"rules": {
"description": "ABAP lint configuration"
}
}
| Issue | Solution |
|---|---|
| SSL handshake error | Import SSL certificates via STRUST |
| Authorization error | Check S_DEVELOP authorization object |
| Object locked by transport | Release or remove transport lock |
| Serialization error | Check object type support in abapGit |
| Namespace conflicts | Ensure unique naming conventions |
| Large repository slow | Use shallow clone or split into sub-packages |
When helping with abapGit topics, structure responses as:
## abapGit Guidance
### Context
- Environment: [On-premise / BTP / gCTS]
- Operation: [Clone / Push / Pull / Setup]
### Steps
[Step-by-step instructions]
### Configuration
[Relevant .abapgit.xml or abaplint settings]
npx claudepluginhub likweitan/abap-skills --plugin sap-fiori-url-generatorAssists with ABAP code for SAP systems: internal tables, structures, ABAP SQL, OOP, RAP, CDS views, EML statements, ABAP Cloud, strings, dynamic programming, RTTI/RTTC, field symbols, data references, exceptions, unit testing.
Checks ABAP code quality with abaplint static analysis and Clean ABAP manual review. Lints syntax, validates best practices, and helps configure abaplint.json.
Creates new ABAP programs (Report, CRUD, ALV, Batch) with Main+Include structure supporting OOP or Procedural paradigms using a multi-phase coding and QA pipeline.