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