GitLab Compliance - ハンズオンラボ: リポジトリ制御
完了までの推定時間: 15分
目標
学習者はリポジトリのアクセスと変更を管理するためのさまざまなリポジトリ制御を実装します。
タスク A. プッシュルール
このタスクでは、プッシュが特定の基準に従うようにリポジトリでプッシュルールを有効にします。
プロジェクトに移動します。
左サイドバーで Settings > Repository を選択し、Push Rules を展開します。
この例では、すべてのコミットがプロジェクト内の Issue を対象にしていることを確認したいとします。コミットメッセージに Issue ID が含まれていることで、Issue に関連するすべてのアクティビティが Issue に記録されます。これを実現するために、すべてのコミットメッセージにエピックまたは Issue ID が含まれるようにする正規表現を設定できます。
Require expression in commit messages に以下の正規表現を追加します:
^.*(#\d+|&\d+).*この正規表現は次のパターンに基づいて文字列を照合します:
- ^ - 文字列の先頭に一致
- .* - 任意の文字(改行を除く)に 0 回以上一致
- (#\d+|&\d+) - 次のいずれかに一致するキャプチャグループ:
- #\d+ - ハッシュ記号に続く 1 桁以上の数字
- &\d+ - アンパサンド記号に続く 1 桁以上の数字
- .* - 任意の文字(改行を除く)に 0 回以上一致
- $ - 文字列の末尾に一致(この場合は暗黙的)
Save push rules を選択します。
これをテストするために、まずプロジェクトに新しい Issue を作成しましょう。
左サイドバーで Plan > Work items を選択します。
New item を選択します。
Type フィールドが Issue に設定されていることを確認します。
Issue のタイトルに
Create compliance frameworksと入力します。他のオプションはすべてデフォルトのままにして Create issue を選択します。
次に、コミットを作成してプッシュルールがコミットメッセージに与える影響を確認しましょう。
左サイドバーで Code > Repository を選択します。
+ > New file を選択します。
Filename に
compliance_plan.txtと入力します。Commit message や Target Branch を変更せずに Commit changes を選択します。
ここでは、コミットメッセージが適切なパターンに従っていないというエラーが表示されます。
Commit message に
Starting work on issue #1と入力します。Commit changes を選択します。
これでコミットが正常に完了します。ここからイシューに戻ると、コミットが Issue で追跡されていることが確認できます。
タスク B. ブランチルールの設定
このタスクでは、リポジトリの main への直接プッシュを防ぐブランチルールを作成します。main がプロジェクトのデプロイターゲットである場合、適切なレビュープロセスを経たコードのみをデプロイしたいため、main への直接プッシュを防ぐのが理想的です。
プロジェクトに移動します。
左サイドバーで Settings > Repository を選択します。
Branch rules セクションを展開します。
main の横にある View Details を選択します。
Allowed to push and merge の Edit を選択します。
No oneオプションにチェックを入れ、Save changes を選択します。この変更により、誰も main に直接プッシュできなくなります。main へのマージのみが許可されます。これをテストするには:
左サイドバーで Code > Repository を選択します。
+ > New file を選択します。
任意の Filename を追加し、ファイル本文に任意のコンテンツを追加します。
Commit changes を選択します。
main ブランチへのプッシュオプションがなくなったことに注目します。
Target Branch フィールド(現在は生成されたブランチ名が入っています)を
mainに変更して Commit changes を選択します。このブランチへのプッシュは許可されていないというエラーが表示されます。
オプションで 別のブランチ名を追加して新しいコードをコミットします。
タスク C. ルールのクリーンアップ
次のラボセットに進む前に、違反によるコミットの妨げを防ぐために、リポジトリのコミットメッセージルールと main ブランチへのプッシュを禁止するルールを削除することをお勧めします。
左サイドバーで Settings > Repository を選択します。
Push rules セクションを展開します。
Require expression in commit message の内容を削除します。
Save push rules を選択します。
Branch rules セクションを展開します。
main ブランチの右側にある View Details オプションをクリックします。
“Allowed to push and merge” セクションの右側にある Edit オプションをクリックします。
設定を No one から Developers and Maintainers に変更します。
Save changes ボタンをクリックします。
ラボガイド完了
このラボ演習を完了しました。このコースの他のラボガイドを参照できます。
ご提案はありますか?
ラボに変更を加えたい場合は、マージリクエストで変更内容を送信してください。
