# オープンソース依存関係向けAutoFix

{% hint style="info" %}
Aikidoのローカルスキャンアカウントは、UI内のAutoFixにアクセスできません。ローカルでAutoFixを使いたい場合は、IDEプラグインのご利用をおすすめします。
{% endhint %}

Aikido AutoFixは、影響を受けるパッケージをアップグレードすることで、オープンソース依存関係の脆弱性を修正するプルリクエストを作成します。アップグレードは常に、問題を解決するために必要な最小バージョンを対象とします。メジャー版よりもマイナー版やパッチ版の更新が優先され、破壊的変更を最小限に抑えます。AutoFixはリポジトリとロックファイルごとに修正をまとめるため、各PRは集中した内容のまま、マージしやすく保たれます。場合によっては、1つのアップグレードで単一の脆弱性だけでなく、脆弱性のクラス全体が解消されることもあります。

メジャーバージョンのアップグレードが提案される場合、その脆弱性を解消するマイナー版またはパッチ版は存在しません。

<figure><img src="https://help.aikido.dev/_assets/44214a00bfb3/image-241.png" alt=""><figcaption></figcaption></figure>

### AutoFixのオプション <a href="#autofix-options" id="autofix-options"></a>

AutoFixは脆弱性を2つの方法で修正できます：

* **直接依存関係を更新** 脆弱性の原因となっているトップレベル依存関係を特定し、アップグレードします。パッケージマネージャーが、脆弱なサブ依存関係の正しいバージョンを自動的に解決します。これはデフォルトで推奨される方法で、JavaScript、.NET、Java、Kotlin、Pythonでサポートされています。
* **依存関係を更新** 脆弱なサブ依存関係を特定の修正版に固定します。これは、トップレベル依存関係をまだアップグレードできない場合、たとえばメジャーバージョンの更新が破壊的変更になる場合などに有用です。

{% hint style="info" %}
3つ目の選択肢として、 **Aikido Libraries** ドロップイン代替品。 [詳細はこちら](https://help.aikido.dev/docs/docs-ja/autofix-and-remediation/aikido-libraries-overview).
{% endhint %}

<figure><img src="https://help.aikido.dev/_assets/cc860fae6d3c/image-428.png" alt=""><figcaption></figcaption></figure>

使用する場合 **依存関係を更新** 複数の脆弱性を一度に修正するには、 **利用可能な修正すべて** のドロップダウンで、含めるパッケージを制御できます：

1. **利用可能な修正すべて：** メジャーバージョンの更新も含め、すべて修正します
2. **マイナー版とパッチ版のみ：** メジャーバージョンの更新を必要とする修正はすべてスキップします
3. **重大な問題のみ：** Aikidoで優先度がCriticalの問題のみを修正します

<figure><img src="https://help.aikido.dev/_assets/d4e249a403fe/image-429.png" alt=""><figcaption></figcaption></figure>

その後、PR作成の進捗状況を示す進捗ウィンドウ（右下）が表示されます。PRの準備が整い次第、更新が届きます。

![](https://help.aikido.dev/_assets/f1d809f4ba69/ucarecdn-16361918-0a43-4db3-b7ff-f250361d5fae.png)

### AutoFixの設定と最初のPR作成の例動画 <a href="#example-of-setting-up-autofix-and-creating-your-first-pr" id="example-of-setting-up-autofix-and-creating-your-first-pr"></a>

[動画](https://ucarecdn.com/4d1a26c8-3ccf-4762-818c-e3430058f9a9/)
