Visual Studio CodeでSBOMファイルを閲覧する際に役立つ拡張機能「Editor for SBOM」の紹介です。
はじめに
毎々お世話になっております、OSS管理エンジニア新人の明石です。今年度から「研修員」という肩書も外れてしまったので、チームの一員としてしっかり貢献できるようにならなければと思うこの頃です。
さて、今回はSBOMファイルを閲覧する際に役立つVisual Studio Code拡張「Editor for SBOM」をご紹介したいと思います。SBOMファイルはソースコードではなくデータなので、利用する際に何か特定の機能が必要という訳ではありません。ですが、本拡張を利用すれば普通にテキストファイルとして閲覧するより遥かに可読性が向上して情報を読み取りやすくなるかと思いますので、興味のある方はぜひ試して頂ければと思います。
「Editor for SBOM」とは?
「Editor for SBOM」は、SBOMの記述フォーマットであるSPDX Specificationで記述されたSBOMファイルの閲覧、編集をサポートする拡張機能です。導入すると一般的なプログラミング言語のようにシンタックスハイライトによる可読性の向上に加え、SBOMファイルの構造を解析して特定の位置へジャンプしたり、情報や定義を確認することが可能になります。
この「Editor for SBOM」、実は自分が業務の空き時間に実装していたツールをOSS化したものになります。
最初は自身の開発業務効率化のためだけに実装していたことからつたない部分も多々あるのですが、これを自分だけが抱えておくのは非常に勿体ない気がしたため、方々と調整を重ねた結果OSSとして公開できる運びとなりました。
限定的な場面でしか機能しないものではあるものの、そんな状況に遭遇した方にとっては有用な機能だと思っております。そういった方の役に立てられれば幸いです。
準備
Visual Studio Code(以降、VSCode)を通常通りインストールしていれば利用が可能です。
インストール方法
まず、下記からeditor-for-sbom-0.0.1.vsixをダウンロードしてください。
ダウンロードしたらVSCodeの左側アクティビティバーで拡張機能を選択後、サイドバー上部の「・・・」から「VSIXからのインストール...」をクリックするとファイル選択画面が出てくるので、先ほどダウンロードしたeditor-for-sbom-0.0.1.vsixを選択してインストールします。
インストールが完了すると右下に通知が表示されます。
なお、現在確認している現象としてほかの拡張や個人設定の兼ね合いによっては配色テーマが有効にならない場合があります。その場合は以下の項目から自分でテーマを設定してください。
ファイル → ユーザー設定 → 配色テーマ → spdx tag value theme
インストーラは準備ができ次第、VSCodeマーケットプレイスにも登録を予定しております。
機能紹介
すべての機能はSPDX Specification v2.2内で定義されているtag:value形式(.spdxファイル)を対象に実装したものになります。
Syntax Highlights
文字列を着色し、可読性を向上させます。
Snippets
各セクションの最小構成を補完候補に表示します。以下の単語を入力すると候補が表示されます。
- document
- package
- license
Completion
以下の入力に続く補完候補に、すでに入力された識別子を優先して表示します。
- SPDXID:
- SnippetSPDXID:
- LicenseID:
Go to declaration
以下のタグ値が宣言された位置に移動します(日本語で右クリックメニューの「宣言へ移動」から)。
- SPDXID
- SnippetSPDXID
- LicenseID
Hover information
以下のタグに記述された値(識別子)が示す情報をホバー表示します。
- SPDXID
- SnippetSPDXID
- LicenseID
Check Syntax Errors
入力された文字列が構文規則に従うかを解析し、違反箇所は強調して文字列の訂正を促します。
- ※こちらの機能は、現状本当に基本的な規則をチェックするのみとなっています。
なお、OSSということでソースコードもMITライセンスで公開しています。
こちらのソフトウェアの使用、またはその他の扱いによって生じる一切の請求、損害、その他の義務について、当社は何ら責任を負わないものとさせていただきますことをご了承ください。
さいごに
今回は自分が実装したVSCode拡張「Editor for SBOM」をご紹介させていただきました。もし何かの機会でtag:value
形式のSBOMを触られる方がいらっしゃいましたら、本拡張をお試し頂ければと思います。