とことんDevOps | 日本仮想化技術のDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けする「とことんDevOps」では、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果、TipsなどDevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、コンテナ開発、IaCなど
読者登録と各種SNSのフォローもよろしくお願いいたします。

gh CLIでSBOM生成

GitHubではパブリックリポジトリや、自分がアサインされているプライベートリポジトリでSBOMがエクスポートできます。

github.blog

Insights > Dependency graph > Export SBOM の順に進んでいくとJSONファイルでダウンロードできます。

この機能をgh CLIから実現する拡張機能が公開されていました。

github.com

セットアップ

gh CLIがインストールされていない方はこちらを参考にインストールしてください。

gh CLIがインストールできたらgh-sbomをインストールします。

gh ext install advanced-security/gh-sbom

使ってみる

チェックできるようにデモリポジトリを用意しました。

github.com

SBOMを取得してみます。

gh sbom -r vtj-ttanaka/export-sbom-demo

-rオプションでデモのリポジトリを指定しています。-rを指定しない場合は、クローンしたリポジトリに移動してgh sbomを実行してください。

SPDXフォーマットのSBOMが出力されます。1行のJSONで出力されるので、見づらい場合はjqなどで整形するとよさそうです。

gh sbom -r vtj-ttanaka/export-sbom-demo | jq

CycloneDXフォーマットでSBOMを取得したい場合は-cをつけます。

gh sbom -c -r vtj-ttanaka/export-sbom-demo | jq

SPDXにはライセンス情報が常に含まれていますが、CycloneDXにはライセンス情報が含まれていません。ライセンス情報が必要であれば-lオプションをつけてください。

gh sbom -c -l -r vtj-ttanaka/export-sbom-demo | jq

少し時間がかかるかもしれないので気長に待ってみてください。

まとめ

gh CLIで取得できるのは楽ですね。わざわざブラウザを起動してリポジトリからリンクを辿ってExport SBOMをポチらなくてもリポジトリさえわかっていればSBOMが取得できます。ただ、InsightsにはSBOM以外にも色々な情報がみられるので、たまにはブラウザからみてみるのもおもしろいかもしれません。