目次
そもそもabapGitServerって?
ABAPで実装されたGit Serverになります。
先日ご紹介したabapGit と abapGitServerを組み合わせて利用することによって。 外部のgitホスティングサービス or 適宜gitサーバを立てる必要がくなります。
注意点!
外部のgitホスティングサービスを利用しないので完全にローカルな環境でOKかというとそうでもなくて。
abapGitServerのWebフロントエンド部分にCloudflareのCDNjsを利用しています。 このためWebフロントエンドにアクセスする環境がCloudflare(https://cdnjs.cloudflare.com
)につながらない場合では当然ライブラリが利用できません。 このような場合はabapGitServerの利用は諦めることになるかと思います。 (ライブラリを自前で用意して、参照先を書き換えれば使えるのでしょうけど……)
下記のようなWebフロントエンド画面に各種ライブラリが利用されています。
abapGitServerのリポジトリ
abapGitServerを利用する前提条件
abapGitServerを利用するには上記ライブラリが事前に必要となります。
abapGitserverの導入
まずは前提条件になっている物を導入していきます。
前提条件:abapGitのインストール
abapGitを触ってみた(GitHub編)を参照して下さい。
前提条件:ABAP-Swaggerのインストール
今回、abapGitにてローカルパッケージ($ABAP-SWAGGER)にhttps://github.com/larshp/ABAP-Swagger
のクローンを行った。
OFFLINE Projectの場合は、
上記赤枠からzipファイルをダウンロードして、
abapGitの+ Offlineからリポジトリの作成及びzipファイルインポートを行って下さい。
abapGitServerのインストール
今回、abapGitにてローカルパッケージ($ABAPGITSERVER)にhttps://github.com/larshp/abapGitserver
のクローンを行った。
OFFLINE Projectの場合は、
上記赤枠からzipファイルをダウンロードして、
abapGitの+ Offlineからリポジトリの作成及びzipファイルインポートを行って下さい。
abapGitServerの開始
TRCD:ZABAPGITSERVERからWebフロントエンドにアクセスします。
TRCD:ZABAPGITSERVERを実行
Error when calling frontend services 7……失敗しました。
考えてみるとHTTPの設定をすっかり忘れていました。
現在の状態を確認します。
TRCD:SMICM -> ジャンプ -> サービス
HTTPのサービス名/ポートが0で無効になっていますね。
HTTPの設定
TRCD:RZ10からicm/server_portの設定を行います。
今回はDEFAULTプロファイルに下記の設定を追加します。
パラメータ名 | パラメータ値 |
---|---|
icm/server_port_0 | PROT=HTTP,PORT=8000 |
TRCD:RZ10からDEFAULT & 拡張更新を選択して変更を選択
該当の値を追加して保存を選択
有効化を選択します
プロファイルを変更したのでSAP MMCから再起動を行います。
再起動後、TRCD:SMICM -> ジャンプ -> サービス にて状態の確認をおこないます。
httpが8000で有効になっている事を確認できました。
気を取り直してTRCD:ZABAPGITSERVERからWebフロントエンドにアクセスします。
IEが立ち上がり、接続ユーザを聞かれるので適宜入力。
abapGitServerの画面が立ち上がります。
ちなみにabapGitServerのロゴ画像ですがレバパテらしいです。(うな丼かと思った……)
ちなみにここでアクセスするアドレスは
http://<SAPLOCALHOSTFULL>:<port>/sap/zabaptgitserver
となっています。
前述した通り、このWebフロントエンドはCloudflareのCDNjsライブラリを利用しているので。 下記のような画面がでる場合は、アクセスできるようにcdnjs.cloudflare.com
を信頼済みサイトに入れて下さい。
abapGitServerでリポジトリの作成
abapGitServerのウェブフロントエンドが表示されたら。
+ Createボタンからレポジトリの作成を行います。
必要事項を入力してCreateを選択
Name | Description |
---|---|
AGSHelloWorld | helloworld |
AGSHelloWorld | helloworld |
上のabapGitServerリンクから前の画面に戻ります。
リポジトリが作成されました。
今回作成されたリポジトリAGSHelloWorldを選択すると。
リポジトリのURLが記述されています。
abapGitからClone
abapGitを起動して+Cloneボタンを選択
Git clone urlに先程作成されたリポジトリに表示されていたURLを入力し、対象となるパッケージを指定してOKを選択する。
接続情報を聞かれるので適宜入力。
cloneされました。
abapGitのリポジトリにオブジェクトを追加する
今回はZAGSHELLOWORLDというサンプルプログラムを対象パッケージに登録します。
プログラムの登録後にabapGitで対象リポジトリにオブジェクトが登録された事を確認します。
abapGitでCommit & push
abapGitで対象リポジトリのStageボタンを選択
Add all and Commit(3)を選択
- committer name
- committer e-mail
- comment
を入力してCommitを選択
abapGitでCommitされた事を確認
abapGitServerから該当リポジトリのcommitsを選択
先程、commitしたfirstCommitが反映されている事を確認できる。
abapGitServerで変更差分の表示
先程作成したレポートを更新してcommit & push
abapGitServerのWebフロントエンドからCommitsを選択
下記のようにcommit履歴が表示される。
descriptionの所を選択
commit間の変更箇所が表示される
総評
abapGitのpush先として社外のホスティングサービスを利用するのが難しい & 社内に何らかのgitサーバを立てるのもちょっと……という場合に。 abapGitServerはさっくり使えるリポジトリとして有効かと思われます。
ただしWebフロントエンドにアクセスする環境が外部(Cloudflare)に出れないような所だと利用できなのは抑えておきたいポイントです。