RSP-03衛星のデコード対応にあたり、Libre Space Foundation の GitLab 上にある
satnogs-decoders リポジトリに対して .ksy ファイルの追加を行いました。
ここでは、ブランチ作成からMR(Merge Request)提出までの流れをステップ形式で整理します。
ユーザアカウント作成等は省略いたします
🔧 Step 1:リポジトリを Fork & Clone
誰でも取り組めるように、windowsPCのpowershell上で行いました
git clone https://gitlab.com/your_account/satnogs-decoders.git
cd satnogs-decoders
git checkout -b feature/rsp03_clean
🗂 Step 2:ksy/ フォルダへの .ksy ファイル追加
今回追加したファイル:ksy/rsp03.ksy
RSP-03衛星のGMSKビーコンをKaitai Struct形式で構文解析するためのファイルで、AX.25 UIフレームを含み、packet_type に応じて packet1 ~ packet3 を switch-case で切り替える構造です。
参考)4. SatNOGSでのRSP-03対応:変調方式と復調チャレンジ②
Step3 コミットとPush
完成した .ksy をコミットし、GitLabへPushします。
git add ksy/rsp03.ksy
git commit -m "feat(rsp03): Add AX.25 GMSK decoder with beacon format v1"
git push origin feature/rsp03_clean
恥ずかしながら、知らずにMRを繰り返し行ってしまいトラブルがでました。MRのチェック処理にてSigned-off-byでエラーが多発しました。補足ですが最後のcommitを置き換えて(上書きして)から、リモートもそれに合わせて“上書きpush”し、余計なコミットを増やさないでMRをきれいに保つことが必要でした
微修正の場合は、以下のようにして
git commit --amend
git push --force
各コマンドの意味
- git commit --amend 直前のコミットを差し替えます。直前のコミットメッセージや内容(ステージ済みの変更)を上書きできるので、軽微な修正・Signed-off-by の付け忘れ・メッセージ修正に最適。新しいコミットIDに生まれ変わる(=履歴を書き換える)点に注意。
- git push --force ローカルの“書き換えた履歴”で、リモートの同ブランチを上書きします。通常の git push は拒否されるため、MRのブランチに対して強制プッシュが必要になります。実務ではより安全な --force-with-lease を推奨(他人の変更をうっかり消しにくい)。
処理が進む中で、commitが複数残ってしまい、記事、下段でSquashして対応をしました
✅ PowerShellでコミットログが表示されている画面のスクリーンショット

Step4 GitLab上でMerge Requestを作成
GitLabでfeature/rsp03_cleanブランチから master ブランチに対するMerge Requestを作成し、コミュニティメンバーへレビューを依頼します。
✅ Merge Request画面のスクリーンショット
(例:Add rsp03.ksy for GMSK beacon decoding のMRが作成された画面)
MR作成後、パイプラインが通過したことの確認(緑のチェックマークが表示されている画面)

✅ GitでコミットをSquashする手順(feature/rsp03_clean ブランチ上)※SatNOGSメンバーより指示がありcommitを1つにする
🔧 手順概要(例えば最新3コミットをまとめる)
git checkout feature/rsp03_clean
git rebase -i HEAD~3
📝 実行後に表示される編集画面(例)
pick 31d33e8a Add rsp03.ksy for GMSK beacon decoding (AX.25 included)
pick 7b389586 Fix rsp03.ksy: correct switch-on for AX.25 frame parsing
pick 38cb66bb feat(rsp03): Add AX.25 GMSK decoder with beacon format v1
✍️ 1つ目の行を pick のまま、残りを squash に変更:
pick 31d33e8a Add rsp03.ksy for GMSK beacon decoding (AX.25 included)
squash 7b389586 Fix rsp03.ksy: correct switch-on for AX.25 frame parsing
squash 38cb66bb feat(rsp03): Add AX.25 GMSK decoder with beacon format v1
💬 その後、コミットメッセージ編集画面が表示されます:
内容を1つのメッセージに統合するなどして保存・終了。
🔄 Push反映(forceが必要)
git push origin feature/rsp03_clean --force
※ --force を使うことで、GitLabのMR上の履歴も更新されます。
📝 Step 6:関連資料の同梱(MRのcommit欄に添付)
訂正 ## yamlファイル、README.mdファイルは不要です
以下の資料を、Git commit のコメントに記載 or 添付ファイルとして同梱しました:
資料としては提出のみ、MRリクエストは不要です
- README.md:.ksy の構造や利用方法の補足
- HKBeaconFormat(PDF or 抜粋):RSP-03のGMSKデータ構造仕様
- yaml ファイル
yamlファイルは不要で、ksyファイル内にdoc | :fieldという形式で記載する
the kaitai structure and the fields definitions (which define the exposed properties/fields to the influxDB) should be in the same file KSY file.
📤 Step 7:MRの作成とコミュニケーション
*ファイル構造と命名規則(rsp03.ksy)を明確にの指示あり。ひたすら修正、MRの繰り返しでした。Kaitaiチェックがうまく使えておりませんでした
*MRタイトル例:[Add rsp03.ksy decoder file for RSP-03 AX.25 GMSK beacon support]
次回は「5-② Kaitai構文とデコード設計の工夫」について記載予定
関連記事リンク
0. 初めに — リーマンサット RSP-03 受信チャレンジの歩み
4. SatNOGSでのRSP-03対応:変調方式と復調チャレンジ②
5. GitLabでの開発・連携メモ②(Kaitai構文とデコード設計の工夫)
6.SatNOGSコミュニティとのやりとり