ソフトウェア開発のための信頼できるパスを構築したいと思います。つまり、コードへのすべての変更は、承認される前に、作成者と1人のレビューアによって署名される必要があります。変更に対するこれらの署名は、リリース時に検証可能である必要があります。または、リポジトリが改ざんされていないこと、または追加の変更が追加されていないことを確認する他の手段が必要です。
私がこれに使用することを期待しているバージョン管理システムはgitですが、他のオプションも受け入れられます。署名は、GnuPGまたはSSL証明書を介して行うことができます。
私が考えているワークフローは大まかに次のようになります。
- 現在検証されているトランクは分岐しています
- 変更は、1人または複数の開発者によってブランチで開発されます
- 1人以上の開発者がブランチによって行われた変更に署名します
- レビュー担当者が変更をレビューしてテストします
- レビューアは、ブランチによって行われた変更に署名します
- ブランチは現在検証されているトランクに「マージ」されます
マージは、レビューされていない変更をトランクにマージできないようにする必要があるなど、絶対確実である必要はありません。リリースの直前に、トランクにレビューされていない(署名されていない)変更があるかどうかを確認する方法が必要です。そして一般的に、改ざんを防ぐ必要はなく、検出するだけです。
これを設定する方法と各操作がどのように行われるかについての簡単なガイドが欲しいです。いくつかのポインタを取得したら、詳細を自分で理解できます。
また、私はすでに「git tag -s」について技術的に知っていますが、この特定の問題にそれを適用する方法がわかりません。