GitLab
本チュートリアルでは、Shisho Cloud 上のワークフローを GitLab リポジトリにインポートしたのち、リポジトリ内のワークフローと Shisho Cloud 上のワークフローを同期する仕組みを GitLab の CI/CD を用いて構築します。
本チュートリアルは、以下の 4 ステップからなります:
- Shisho Cloud 上のワークフローを格納した GitLab プロジェクトを作成する
- Shisho Cloud において、特定プロジェクトの CI/CD からのアクセスを許可する
- GitLab において、ワークフローを Shisho Cloud にデプロイする CI/CD のジョブを作成する
- GitLab において、リポジトリ内と Shisho Cloud 上のワークフローの差分をチェックする GitLab CI/CD のジョブを作成する
3. のステップによって、リポジトリ内のワー クフローの変更が即座に Shisho Cloud に反映されるようになります。 また 4. のステップによって、Shisho Cloud の Web インターフェースから直接ワークフローを編集した場合に、その変更に対応するマージリクエストが作成されるようになります。 これらのセットアップによって、GitLab リポジトリと Shisho Cloud 上のワークフローが常に同期されるようになります。
GitLab CI/CD から Shisho Cloud にアクセスするために「Shisho Cloud のアクセストークンを GitLab CI/CD にシークレットとして登録する」というような操作の必要はありません。その代わりに、CI/CD のジョブに対して GitLab が発行する OIDC トークンの情報に基づき、Shisho Cloud がジョブに短命の認証情報を発行します。
ワークフローを格納した GitLab プロジェクトを作成する
Shisho Cloud 上の全ての検査ルールを Git でバージョン管理するために、まずは既に Shisho Cloud 上にあるワークフローをエクスポートして、リポジトリに取り込みましょう。
まず GitLab で新規プロジェクトを作成し、リポジトリをクローンしてください。クローンしたディレクトリへ Shisho Cloud 上のワークフローをエクスポートするには、次のコマンドを実行します。ただし、コマンド中の $SHISHO_CLOUD_ORG_ID はお使いの Shisho Cloud 組織の ID に置換してください。
shishoctl workflow export --structured --org $SHISHO_CLOUD_ORG_ID --path .
エクスポートが完了したら、作成されたファイルをコミットして GitLab にプッシュしてください。