日本語

破壊的変更とアップグレード影響分析

依存関係のアップグレードにおける破壊的変更と、それがコードベースに与える影響を評価します。

破壊的変更

Aikido は、ライブラリの変更履歴を確認して、バージョンアップに破壊的変更が含まれているかどうかを評価します。

Aikido のフィードでオープンソース依存関係の問題をクリックすると、問題の詳細がポップアップ表示され、問題を修正するために必要な最小限のバージョンアップが示されます。次の Spring Security の例では、CVE-2023-34034 は version 6.1.0 から version 6.1.2 にアップグレードすることで修正できます。Aikido は、この更新に破壊的変更がないと判断しており、それは次の :white_check_mark:.

をクリックすると :white_check_mark: 詳細と変更履歴へのリンクが表示されます。この場合、破壊的変更はありません。

次の Tomcat の version 8.5.11 から version 9.0.99 へのアップグレードのように破壊的変更がある場合、Aikido は :warning: アイコンを表示します。

をクリックすると :warning: 破壊的変更の説明と変更履歴へのリンクが表示されます。

アップグレード影響分析

依存関係の更新に破壊的変更が含まれていても、必ずしもその変更がコードに影響するとは限りません。破壊的変更がコードベースで使用されていない関数にある可能性があります。アップグレード影響分析では、コードベース内でライブラリの使用箇所をスキャンし、破壊的変更がコードベースに影響するかどうかを判断することで、さらに一歩踏み込みます。

Aikido AutoFix は、プルリクエストが作成されるとアップグレード影響分析を実行します。プルリクエストの説明には分析結果が含まれ、次の 3 つのカテゴリのいずれかに分類されます。

  • ライブラリアップグレードに破壊的変更なし :white_check_mark:
  • 破壊的変更はあるが、コードベースには影響しない :white_check_mark:
  • コードベースに影響する破壊的変更。手動での対応が必要です :warning:

次の例では、mongoose が version 5.13.21 から 6.13.6 に更新されます。プルリクエストには、コードベースに影響する 2 件の破壊的変更があることが示され、どのファイルが影響を受けるか、またその影響が何かが概説されています。