# 言語別の依存関係スキャン（SCA）対応

Aikido は、すべての push と pull request に対して、IDE 上でリアルタイムに、またスケジュールされた再スキャン（デフォルトは毎日）として SCA を実行し、変更されていない依存関係に対しても新たに公開された CVE を検出できるようにします。SCA は既知の CVE とリスクの高いオープンソースライセンスをカバーします。

以下は、対応している言語とそれぞれの lockfile の一覧です。lockfile は、ビルド時の速度を向上させ、ビルドの再現性を高め、サプライチェーン攻撃に対する第一の防御層となるため、デフォルトでの使用を推奨します。もちろん、lockfile は Aikido が脆弱なパッケージを見つけるのにも役立ちます。

lockfile は、ルートおよびすべてのサブフォルダ内でスキャンします。

| Language                        | スキャン対象の lockfile                                                                                                                                             |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| <p>JavaScript<br>TypeScript</p> | <p>npm-shrinkwrap.json</p><p>package-lock.json</p><p>yarn.lock</p><p>pnpm-lock.yaml</p><p>pnpm-lock.yml</p><p>bun.lock</p><p>deno.lock</p><p>libman.json</p> |
| PHP                             | composer.lock                                                                                                                                                |
| Java                            | <p>gradle.lockfile</p><p>build.gradle</p><p>pom.xml</p><p>.jar</p><p>.war</p><p>.ear<br>ivy.xml</p>                                                          |
| Swift                           | <p>Package.resolved</p><p>Podfile.lock</p>                                                                                                                   |
| Go                              | go.mod                                                                                                                                                       |
| Python                          | <p>Pipfile.lock</p><p>poetry.lock</p><p>uv.lock</p><p>pdm.lock</p><p>requirements.txt</p><p>requirements.lock</p><p>Conda: requirements.yml</p>              |
| .NET                            | <p>.csproj</p><p>.deps.json</p><p>packages.lock.json</p><p>packages.config</p><p>Packages.props<br>paket.lock</p>                                            |
| Ruby                            | gemfile.lock                                                                                                                                                 |
| Rust                            | <p>cargo.lock</p><p>cargo.toml</p>                                                                                                                           |
| Kotlin                          | build.gradle.kts, gradle.lockfile                                                                                                                            |
| Dart                            | pubspec.lock                                                                                                                                                 |
| Elixir                          | mix.lock                                                                                                                                                     |
| C/C++                           | <p>conan.lock</p><p>vcpkg.json</p><p>lockfile のない C/C++ 依存関係 (<a href="https://help.aikido.dev/doc/cc-lockfile-less-scanning/doczSgARAloY">詳細情報</a>)</p>     |
| Scala                           | <p>build.sbt</p><p>plugins.sbt</p><p>dependencies.scala</p><p>libraries.scala</p><p>.sbt.lock</p>                                                            |
| Clojure                         | <p>deps.edn<br>project.clj</p>                                                                                                                               |
| Unity UPM                       | packages-lock.json（Aikido は NPM から取得した UPM パッケージのみをスキャンしてインポートします）                                                                                           |
