mcpField
A
abapgit

abapgit

github.com/likweitan开发7286 次安装2 周前更新
代码仓库

关于 abapgit

abapgit 是面向 ABAP 开发者的技能,指导使用 abapGit 开展基于 Git 的开发。内容涵盖本地 SAP、BTP ABAP Environment 和 gCTS 中的配置、仓库操作、分支、CI/CD 与故障排查。

主要功能

  1. 01abapGit 环境配置指南
  2. 02克隆、拉取和推送仓库
  3. 03ABAP 分支与传输策略
  4. 04CI/CD 和 abaplint 配置
  5. 05常见仓库问题排查

适用场景

  1. 01在 SAP 系统中配置 abapGit
  2. 02在 Git 与 SAP 间迁移 ABAP 对象
  3. 03规划分支及传输工作流
  4. 04诊断 HTTPS 或序列化问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/likweitan/abap-skills --skill abapgit

安装后在 Claude Code 中输入/abapgit确认已加载。

详细介绍

abapGit 工作流

使用 abapGit 在 Git 仓库中管理 ABAP 开发对象的指南。

工作流

  1. 确定用户的目标:

    • 首次设置 abapGit
    • 克隆现有仓库
    • 将 ABAP 代码推送到 Git 仓库
    • 配置分支或传输策略
    • 为 ABAP 设置 CI/CD 流水线
    • 排查 abapGit 问题
  2. 识别环境:

    • 使用 abapGit standalone 的本地部署 SAP 系统
    • SAP BTP ABAP Environment(ADT 中的 abapGit 集成)
    • gCTS(启用 Git 的更改与传输系统)
  3. 指导实施,遵循适用于 ABAP 的 Git 工作流最佳实践

abapGit 概述

方面说明
是什么面向 ABAP 的开源 Git 客户端,在 SAP 系统内运行
序列化将 ABAP 对象转换为基于文件的格式,以便存储在 Git 中
反序列化将基于文件的格式导入系统,转换回 ABAP 对象
支持的对象类、接口、CDS、函数组、程序、表等
安装通过 abapGit standalone 报表或 Eclipse 插件

设置

安装 abapGit Standalone(本地部署)
  1. 创建报表 ZABAPGIT_STANDALONE 或 ZABAPGIT_FULL
  2. 从 https://raw.githubusercontent.com/abapGit/build/main/zabapgit_standalone.prog.abap 下载最新版本
  3. 将内容复制到报表中并激活
  4. 通过 SE38 或事务 ZABAPGIT 运行报表
ADT 中的 abapGit(BTP ABAP Environment)
  1. 在 ADT 中:窗口 → 显示视图 → 其他 → abapGit Repositories
  2. 使用 HTTPS URL 链接仓库
  3. 需要为 Git 服务配置通信安排
SSL 证书
  • 下载 GitHub/GitLab 根证书
  • 通过 STRUST(事务)→ SSL Client (Anonymous) 或 (Standard) 导入
  • 通过 HTTPS 连接到 Git 提供商时需要

核心操作

克隆仓库
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
将更改推送到 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
从 Git 拉取更新
1. Open the repository in abapGit
2. Click "Pull"
3. Review incoming changes
4. Activate pulled objects

.abapgit.xml 配置

仓库根目录中的 .abapgit.xml 文件用于控制序列化设置:

<?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>
关键设置
设置值说明
MASTER_LANGUAGEE、D 等文本的主语言
STARTING_FOLDER/src/序列化对象的根目录
FOLDER_LOGICPREFIX / FULL包层级映射到文件夹的方式
IGNORE文件模式反序列化时排除的文件
REQUIREMENTS软件组件导入前必须存在的依赖项
文件夹逻辑
  • PREFIX:移除包名前缀。Z_PKG 下的 Z_PKG_SUB → sub/ 文件夹
  • FULL:完整包名作为文件夹。Z_PKG_SUB → z_pkg_sub/

分支策略

推荐:ABAP 主干开发
main (production-ready)
  └── feature/add-validation
  └── feature/new-report
  └── bugfix/fix-calculation
  • 保持 main 分支稳定且可部署
  • 创建生命周期短的功能分支
  • 通过带代码审查的拉取请求进行合并
  • 每个开发分支对应一个 SAP 系统
基于传输的策略
DEV system ←→ feature branches
QAS system ←→ release branch
PRD system ←  main branch (tags for releases)

传输与 Git 工作流

方面基于传输基于 Git(abapGit)
版本控制传输请求Git 提交,包含完整历史记录
协作传输副本分支、拉取请求、代码审查
回滚困难git revert 或检出之前的提交
CI/CD有限与流水线全面集成
多系统传输路径在每个系统中克隆/拉取
冲突解决手动Git 合并工具
混合方式

许多团队使用 abapGit 进行版本控制,同时保留传输机制用于部署:

  1. 在 DEV 系统中开发
  2. 将更改提交到 Git(abapGit 推送)
  3. 使用传输请求将更改移至 QAS/PRD
  4. Git 作为事实来源和备份

CI/CD 集成

CI 流水线中的 abaplint
# .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 配置
{
  "global": {
    "files": "/src/**/*.*"
  },
  "syntax": {
    "version": "Cloud",
    "errorNamespace": "^(Z|Y|LCL_|LIF_)"
  },
  "rules": {
    "description": "ABAP lint configuration"
  }
}

故障排除

问题解决方案
SSL 握手错误通过 STRUST 导入 SSL 证书
授权错误检查 S_DEVELOP 授权对象
对象被传输锁定释放或移除传输锁定
序列化错误检查 abapGit 对对象类型的支持
命名空间冲突确保命名约定唯一
大型仓库速度慢使用浅克隆或拆分为多个子包

输出格式

在提供 abapGit 相关帮助时,请按以下结构组织回复:

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

参考资料

相关技能

  • abap:用于将 abaplint 集成到 abapGit 仓库
  • btp-abap-environment:用于在 BTP ABAP Environment 中设置 abapGit
  • abap-cloud:用于确保 abapGit 仓库符合 ABAP Cloud 要求

评论

支持 Markdown