SBOMエクスポートが非同期処理に変更
本文の状態
日本語全文を表示中
詳細モードで約2分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
GitHub Changelog
GitHubが、リポジトリページと新APIエンドポイントからのSBOM(ソフトウェア部品表)エクスポート処理を非同期化した。これにより、大規模リポジトリでもタイムアウトせずにSBOMを生成できるようになった。
Continue in AI NEW LAB
このニュースを、実務の判断につなげる
AI NEW LABで、試したことや先に確認したい条件を共有できます。まずはログインなしで読めます。
AI NEW LABで論点を見るSource Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
リポジトリページおよび新しいAPIエンドポイントからのソフトウェア部品表(Software Bill of Materials、SBOM)エクスポートは、非同期操作になりました。以前は、リポジトリの依存関係グラフページに移動して「Export SBOM」ボタンをクリックするか、/repos/{owner}/{repo}/dependency-graph/sbom REST APIからSBOMをリクエストすると、10秒のハードコードされたタイムアウト値がありました。これはほとんどのケースで機能していましたが、依存関係ツリーが複雑な大規模リポジトリでは、処理にそれ以上の時間がかかることが頻繁にありました。さらに、複数のリクエストが複数の独立したバックエンドワーカーを起動し、いずれかが完了する保証はありませんでした。
ブラウザでSBOMをダウンロード
現在、ジョブの完了をポーリングする新しいWebエクスペリエンスと、それに対応する新しいAPIエンドポイントが導入されました。これらは非同期で動作するため、タイムアウトが発生しません。新しいUIを使用するには、リポジトリのInsightsタブに移動し、Dependency Graph、そしてExport SBOMの順にクリックします。ファイルの準備が整うと、このページからダウンロードできるようになります。
SBOMへのAPIアクセス
APIアクセスについては、SBOMへの非同期アクセスを実現するために連携する2つの新しいエンドポイントが追加されました:
GET /repos/{owner}/{repo}/dependency-graph/sbom/generate-report: このエンドポイントは、一意の識別子 {sbom-uuid} を含むURLを返します。これは、サービスがリクエストの処理を開始したことを示します。
GET /repos/{owner}/{repo}/dependency-graph/sbom/fetch-report/{sbom-uuid}: このエンドポイントは、レポートのダウンロード準備が整うまでHTTPステータスコード201を返し、準備が整った時点でSBOMの実データへの302リダイレクトを実行します。
制限事項と注意点
以前の動作と同様に、SBOMエクスポートはリクエストを開始した時点のリポジトリの状態を反映します。SBOMはHEAD以外のrefでは利用できません。
匿名ユーザーは、リポジトリごとに同時に実行できるSBOMリクエストが1つに制限されます。ログイン済みユーザーはこの制限の対象外です。
GitHub Communityで議論に参加しましょう。
この投稿「SBOM exports are now computed asynchronously」は、The GitHub Blogで最初に公開されました。
原文を表示
Software Bill of Materials (SBOM) exports from repository pages and new API endpoints are now asynchronous operations. Previously, navigating to a repository’s dependency graph page and clicking the Export SBOM button, or requesting an SBOM from the /repos/{owner}/{repo}/dependency-graph/sbom REST API had a hard-coded timeout value of ten seconds. This worked for most cases, but large repositories with complex dependency trees could often take longer to process. Further, multiple requests would spawn multiple independent back-end workers, with no guarantee that any would complete.
Download SBOMs in your browser
Now, there’s a new web experience which polls for job completion and new API endpoints to match. These work asynchronously, eliminating timeouts. To use the new UI, navigate to a repository’s Insights tab, click Dependency Graph, then click Export SBOM. Once the file is ready, you’ll be able to download it from this page.
API access to SBOMs
For API access, there are two new endpoints which work together to provide asynchronous access to SBOMs:
GET /repos/{owner}/{repo}/dependency-graph/sbom/generate-report: This returns a URL containing a unique identifier, {sbom-uuid}, indicating the service has started working on the request.
GET /repos/{owner}/{repo}/dependency-graph/sbom/fetch-report/{sbom-uuid}: This returns a 201 until the report is ready for download, at which point it will perform a 302 redirect to the actual contents of the SBOM.
Limitations and caveats
Similar to the previous behavior, the SBOM export represents the state of the repository at the time you initiate the request. SBOMs are not available for refs other than HEAD.
Anonymous users are restricted to one concurrent SBOM request per repository. Logged-in users are not subject to this restriction.
Join the discussion within GitHub Community.
The post SBOM exports are now computed asynchronously appeared first on The GitHub Blog.
関連記事
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み