mcpField
A
abapgit

abapgit

github.com/likweitan開発7286 回インストール2 週間前に更新
リポジトリ

abapgit について

abapgitは、abapGitを使ったGitベースの開発をABAP開発者向けに案内するスキルです。オンプレミスSAP、BTP ABAP Environment、gCTSでの設定、リポジトリ操作、ブランチ、CI/CD、問題の調査を扱います。

主な機能

  1. 01abapGit環境の設定ガイド
  2. 02リポジトリのクローン、プル、プッシュ
  3. 03ABAPのブランチと移送戦略
  4. 04CI/CDとabaplintの設定
  5. 05リポジトリの一般的な問題の調査

活用シーン

  1. 01SAPシステムでabapGitを設定
  2. 02GitとSAP間でABAPオブジェクトを移動
  3. 03移送ワークフローと併用するブランチの計画
  4. 04HTTPSまたはシリアライズの問題を調査

インストール

コマンドをコピーしてターミナルで実行します。

$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 スタンドアロンを使用するオンプレミスの SAP システム
    • SAP BTP ABAP Environment(ADT における abapGit 統合)
    • gCTS(Git 対応の変更および移送システム)
  3. ABAP 固有の Git ワークフローに関するベストプラクティスを用いて、実装をガイドします

abapGit の概要

項目説明
概要ABAP 用のオープンソース Git クライアントで、SAP システム内で動作します
シリアライズABAP オブジェクトを Git で保存するためのファイル形式に変換します
デシリアライズファイル形式をシステム内の ABAP オブジェクトに戻します
対応オブジェクトクラス、インターフェース、CDS、関数グループ、プログラム、テーブルなど
インストールabapGit スタンドアロンレポートまたは Eclipse プラグインを使用します

セットアップ

abapGit スタンドアロンのインストール(オンプレミス)
  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 で、Window → Show View → Other → abapGit Repositories を選択します
  2. HTTPS URL を使用してリポジトリをリンクします
  3. Git サービス用の通信アレンジメントが必要です
SSL 証明書
  • GitHub/GitLab のルート証明書をダウンロードします
  • STRUST(トランザクション)→ SSL Client(Anonymous)または(Standard)からインポートします
  • Git プロバイダーへの HTTPS 接続に必要です

主な操作

リポジトリをクローンする
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 システムを 1 つ使用します
移送ベースの戦略
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 push)
  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:abapGit リポジトリとの abaplint 統合に使用します
  • btp-abap-environment:BTP ABAP Environment での abapGit セットアップに使用します
  • abap-cloud:abapGit リポジトリが ABAP Cloud に準拠していることを確認するために使用します

コメント