agentsclimarketplace

Abapgit

Skill likweitan/abap-skills/skills/abapgit

Help with abapGit workflows including repository setup, cloning, serialization, branching strategies, transport-vs-git workflows, CI/CD integration, and .abapgit.xml configuration. Use when users ask about abapGit, git for ABAP, ABAP version control, abapGit clone, abapGit pull, abapGit push, branching strategy for ABAP, abapGit configuration, serialization, deserialization, transport vs git, gCTS, abapGit CI/CD, or managing ABAP code in git repositories. Triggers include "set up abapGit", "clone a repo", "push ABAP to git", "abapGit branching", "abapGit configuration", ".abapgit.xml", "transport vs git", or "CI/CD for ABAP".From its SKILL.md

Install
npx -y skills add likweitan/abap-skills --skill abapgit

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • fetches URLsInstructs the agent to fetch 1 URL, including https://raw.githubusercontent.com/abapGit/build/main/zabapgit_standalone.prog.abap.

SKILL.md

7.8 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it

abapGit Workflows

Guide for managing ABAP development objects in Git repositories using abapGit.

Workflow

  1. Determine the user's goal:

    • Setting up abapGit for the first time
    • Cloning an existing repository
    • Pushing ABAP code to a Git repository
    • Configuring branching or transport strategies
    • Setting up CI/CD pipelines for ABAP
    • Troubleshooting abapGit issues
  2. Identify the environment:

    • On-premise SAP system with abapGit standalone
    • SAP BTP ABAP Environment (abapGit integration in ADT)
    • gCTS (Git-enabled Change and Transport System)
  3. Guide implementation with best practices for ABAP-specific Git workflows

abapGit Overview

AspectDescription
WhatOpen-source Git client for ABAP, runs inside the SAP system
SerializationConverts ABAP objects to file-based format for Git storage
DeserializationImports file-based format back into ABAP objects in the system
Supported ObjectsClasses, interfaces, CDS, function groups, programs, tables, etc.
InstallationVia abapGit standalone report or Eclipse plugin

Setup

Installing abapGit Standalone (On-Premise)

  1. Create report ZABAPGIT_STANDALONE or ZABAPGIT_FULL
  2. Download latest version from https://raw.githubusercontent.com/abapGit/build/main/zabapgit_standalone.prog.abap
  3. Copy content into the report and activate
  4. Run the report via SE38 or transaction ZABAPGIT

abapGit in ADT (BTP ABAP Environment)

  1. In ADT: Window → Show View → Other → abapGit Repositories
  2. Link repository using HTTPS URL
  3. Requires communication arrangement for Git service

SSL Certificates

  • Download GitHub/GitLab root certificates
  • Import via STRUST (transaction) → SSL Client (Anonymous) or (Standard)
  • Required for HTTPS connections to Git providers

Core Operations

Clone a Repository

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

Push Changes to Git

1. Stage changed objects (select what to include)
2. Write a meaningful commit message
3. Push to remote branch
4. Resolve conflicts if any

Pull Updates from Git

1. Open the repository in abapGit
2. Click "Pull"
3. Review incoming changes
4. Activate pulled objects

.abapgit.xml Configuration

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>

Key Settings

SettingValuesDescription
MASTER_LANGUAGEE, D, etc.Master language for texts
STARTING_FOLDER/src/Root folder for serialized objects
FOLDER_LOGICPREFIX / FULLHow package hierarchy maps to folders
IGNOREFile patternsFiles to exclude from deserialization
REQUIREMENTSSoftware componentsDependencies that must be present before import

Folder Logic

  • PREFIX: Package name prefix is removed. Z_PKG_SUB under Z_PKGsub/ folder
  • FULL: Full package name becomes folder. Z_PKG_SUBz_pkg_sub/

Branching Strategy

Recommended: Trunk-Based for ABAP

main (production-ready)
  └── feature/add-validation
  └── feature/new-report
  └── bugfix/fix-calculation
  • Keep main branch stable and deployable
  • Create short-lived feature branches
  • Merge via pull requests with code review
  • One SAP system per branch for development

Transport-Based Strategy

DEV system ←→ feature branches
QAS system ←→ release branch
PRD system ←  main branch (tags for releases)

Transport vs. Git Workflows

AspectTransport-BasedGit-Based (abapGit)
VersioningTransport requestsGit commits with full history
CollaborationTransport of copiesBranches, pull requests, code review
RollbackDifficultgit revert or checkout previous commit
CI/CDLimitedFull integration with pipelines
Multi-systemTransport routesClone/pull to each system
Conflict resolutionManualGit merge tools

Hybrid Approach

Many teams use abapGit for version control while retaining transports for deployment:

  1. Develop in DEV system
  2. Commit changes to Git (abapGit push)
  3. Use transport requests to move to QAS/PRD
  4. Git serves as source of truth and backup

CI/CD Integration

abaplint in CI Pipeline

# .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

abaplint.json Configuration

{
  "global": {
    "files": "/src/**/*.*"
  },
  "syntax": {
    "version": "Cloud",
    "errorNamespace": "^(Z|Y|LCL_|LIF_)"
  },
  "rules": {
    "description": "ABAP lint configuration"
  }
}

Troubleshooting

IssueSolution
SSL handshake errorImport SSL certificates via STRUST
Authorization errorCheck S_DEVELOP authorization object
Object locked by transportRelease or remove transport lock
Serialization errorCheck object type support in abapGit
Namespace conflictsEnsure unique naming conventions
Large repository slowUse shallow clone or split into sub-packages

Output Format

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]

References

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most project setup skills give in ~1.7k tokens

Counted across 1,553 of the 3,091 authors here whose files we hold, read 2026-09-06

  • Write the configuration filein 36 of 1553
  • Create the directory structurein 35 of 1553, across 33 files
  • Verify the setupin 31 of 1553, across 28 files
  • Run the setup scriptin 30 of 1553, across 29 files
  • Pre-determine the required sample sizein 29 of 1553, across 12 files
  • Check if the configuration already existsin 29 of 1553
  • Document every testin 26 of 1553, across 10 files
  • Start with a hypothesisin 26 of 1553, across 11 files
  • Ask one question at a timein 22 of 1553
  • Test a single variable per testin 21 of 1553, across 9 files
  • Read product marketing context before asking questionsin 19 of 1553, across 8 files
  • Do not peek and stop earlyin 18 of 1553, across 7 files

Said here and by no other author read

  • Determine the user goal
  • Stage changed objects
  • Write a meaningful commit message
  • Push to remote branch
  • Resolve conflicts if any
  • Review incoming changes

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.