evergreen-deprecation 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -13
- package/dist/src/action.js +9 -0
- package/dist/src/action.js.map +1 -1
- package/dist/src/agent-tools.js +3 -1
- package/dist/src/agent-tools.js.map +1 -1
- package/dist/src/as-of.d.ts +8 -0
- package/dist/src/as-of.js +21 -0
- package/dist/src/as-of.js.map +1 -0
- package/dist/src/badge.d.ts +15 -0
- package/dist/src/badge.js +81 -0
- package/dist/src/badge.js.map +1 -0
- package/dist/src/baseline.d.ts +15 -2
- package/dist/src/baseline.js +32 -3
- package/dist/src/baseline.js.map +1 -1
- package/dist/src/capabilities.js +18 -9
- package/dist/src/capabilities.js.map +1 -1
- package/dist/src/check-dependency.d.ts +2 -0
- package/dist/src/check-dependency.js +13 -1
- package/dist/src/check-dependency.js.map +1 -1
- package/dist/src/cli.js +400 -91
- package/dist/src/cli.js.map +1 -1
- package/dist/src/completions.d.ts +16 -0
- package/dist/src/completions.js +113 -0
- package/dist/src/completions.js.map +1 -0
- package/dist/src/conformance/checks/inputs.d.ts +7 -0
- package/dist/src/conformance/checks/inputs.js +21 -0
- package/dist/src/conformance/checks/inputs.js.map +1 -0
- package/dist/src/conformance/trace-reads.d.ts +19 -0
- package/dist/src/conformance/trace-reads.js +68 -0
- package/dist/src/conformance/trace-reads.js.map +1 -0
- package/dist/src/data-bundle.d.ts +1 -1
- package/dist/src/data-bundle.js +1 -1
- package/dist/src/data-bundle.js.map +1 -1
- package/dist/src/data-source.d.ts +3 -1
- package/dist/src/data-source.js +5 -2
- package/dist/src/data-source.js.map +1 -1
- package/dist/src/detector-inputs.d.ts +7 -0
- package/dist/src/detector-inputs.js +24 -0
- package/dist/src/detector-inputs.js.map +1 -0
- package/dist/src/detectors/android/index.d.ts +14 -0
- package/dist/src/detectors/android/index.js +299 -0
- package/dist/src/detectors/android/index.js.map +1 -0
- package/dist/src/detectors/ci-images/index.d.ts +3 -1
- package/dist/src/detectors/ci-images/index.js +2 -0
- package/dist/src/detectors/ci-images/index.js.map +1 -1
- package/dist/src/detectors/container/index.d.ts +3 -1
- package/dist/src/detectors/container/index.js +30 -7
- package/dist/src/detectors/container/index.js.map +1 -1
- package/dist/src/detectors/cpp/index.d.ts +14 -0
- package/dist/src/detectors/cpp/index.js +250 -0
- package/dist/src/detectors/cpp/index.js.map +1 -0
- package/dist/src/detectors/dart/index.d.ts +14 -0
- package/dist/src/detectors/dart/index.js +218 -0
- package/dist/src/detectors/dart/index.js.map +1 -0
- package/dist/src/detectors/dart/parse-fvm.d.ts +20 -0
- package/dist/src/detectors/dart/parse-fvm.js +30 -0
- package/dist/src/detectors/dart/parse-fvm.js.map +1 -0
- package/dist/src/detectors/dart/parse-pubspec-lock.d.ts +53 -0
- package/dist/src/detectors/dart/parse-pubspec-lock.js +251 -0
- package/dist/src/detectors/dart/parse-pubspec-lock.js.map +1 -0
- package/dist/src/detectors/dart/parse-pubspec.d.ts +66 -0
- package/dist/src/detectors/dart/parse-pubspec.js +208 -0
- package/dist/src/detectors/dart/parse-pubspec.js.map +1 -0
- package/dist/src/detectors/database/index.d.ts +14 -0
- package/dist/src/detectors/database/index.js +179 -0
- package/dist/src/detectors/database/index.js.map +1 -0
- package/dist/src/detectors/database/parse-compose.d.ts +21 -0
- package/dist/src/detectors/database/parse-compose.js +33 -0
- package/dist/src/detectors/database/parse-compose.js.map +1 -0
- package/dist/src/detectors/database/parse-terraform.d.ts +26 -0
- package/dist/src/detectors/database/parse-terraform.js +47 -0
- package/dist/src/detectors/database/parse-terraform.js.map +1 -0
- package/dist/src/detectors/dotnet/index.d.ts +3 -1
- package/dist/src/detectors/dotnet/index.js +6 -0
- package/dist/src/detectors/dotnet/index.js.map +1 -1
- package/dist/src/detectors/github-actions-dotnet.d.ts +22 -0
- package/dist/src/detectors/github-actions-dotnet.js +65 -0
- package/dist/src/detectors/github-actions-dotnet.js.map +1 -0
- package/dist/src/detectors/github-actions-node.d.ts +23 -0
- package/dist/src/detectors/github-actions-node.js +76 -0
- package/dist/src/detectors/github-actions-node.js.map +1 -0
- package/dist/src/detectors/github-actions.d.ts +3 -1
- package/dist/src/detectors/github-actions.js +90 -1
- package/dist/src/detectors/github-actions.js.map +1 -1
- package/dist/src/detectors/go/index.d.ts +3 -1
- package/dist/src/detectors/go/index.js +2 -0
- package/dist/src/detectors/go/index.js.map +1 -1
- package/dist/src/detectors/index.js +18 -0
- package/dist/src/detectors/index.js.map +1 -1
- package/dist/src/detectors/java/index.d.ts +3 -1
- package/dist/src/detectors/java/index.js +5 -0
- package/dist/src/detectors/java/index.js.map +1 -1
- package/dist/src/detectors/kubernetes/index.d.ts +3 -1
- package/dist/src/detectors/kubernetes/index.js +2 -0
- package/dist/src/detectors/kubernetes/index.js.map +1 -1
- package/dist/src/detectors/npm.d.ts +3 -1
- package/dist/src/detectors/npm.js +140 -29
- package/dist/src/detectors/npm.js.map +1 -1
- package/dist/src/detectors/php/index.d.ts +14 -0
- package/dist/src/detectors/php/index.js +208 -0
- package/dist/src/detectors/php/index.js.map +1 -0
- package/dist/src/detectors/python.d.ts +11 -1
- package/dist/src/detectors/python.js +64 -14
- package/dist/src/detectors/python.js.map +1 -1
- package/dist/src/detectors/ruby/index.d.ts +3 -1
- package/dist/src/detectors/ruby/index.js +2 -0
- package/dist/src/detectors/ruby/index.js.map +1 -1
- package/dist/src/detectors/rust/index.d.ts +3 -1
- package/dist/src/detectors/rust/index.js +2 -0
- package/dist/src/detectors/rust/index.js.map +1 -1
- package/dist/src/detectors/serverless/index.d.ts +15 -0
- package/dist/src/detectors/serverless/index.js +159 -0
- package/dist/src/detectors/serverless/index.js.map +1 -0
- package/dist/src/detectors/serverless/parse-serverless-yml.d.ts +22 -0
- package/dist/src/detectors/serverless/parse-serverless-yml.js +76 -0
- package/dist/src/detectors/serverless/parse-serverless-yml.js.map +1 -0
- package/dist/src/detectors/serverless/parse-template.d.ts +22 -0
- package/dist/src/detectors/serverless/parse-template.js +74 -0
- package/dist/src/detectors/serverless/parse-template.js.map +1 -0
- package/dist/src/detectors/serverless/parse-tf.d.ts +31 -0
- package/dist/src/detectors/serverless/parse-tf.js +334 -0
- package/dist/src/detectors/serverless/parse-tf.js.map +1 -0
- package/dist/src/detectors/shell/index.d.ts +14 -0
- package/dist/src/detectors/shell/index.js +168 -0
- package/dist/src/detectors/shell/index.js.map +1 -0
- package/dist/src/detectors/shell/parse-powershell.d.ts +17 -0
- package/dist/src/detectors/shell/parse-powershell.js +187 -0
- package/dist/src/detectors/shell/parse-powershell.js.map +1 -0
- package/dist/src/detectors/shell/parse-workflow.d.ts +29 -0
- package/dist/src/detectors/shell/parse-workflow.js +95 -0
- package/dist/src/detectors/shell/parse-workflow.js.map +1 -0
- package/dist/src/detectors/swift/index.d.ts +14 -0
- package/dist/src/detectors/swift/index.js +266 -0
- package/dist/src/detectors/swift/index.js.map +1 -0
- package/dist/src/detectors/swift/parse-xcode-project.d.ts +26 -0
- package/dist/src/detectors/swift/parse-xcode-project.js +113 -0
- package/dist/src/detectors/swift/parse-xcode-project.js.map +1 -0
- package/dist/src/detectors/terraform/hcl.d.ts +45 -0
- package/dist/src/detectors/terraform/hcl.js +184 -0
- package/dist/src/detectors/terraform/hcl.js.map +1 -0
- package/dist/src/detectors/terraform/index.d.ts +14 -0
- package/dist/src/detectors/terraform/index.js +221 -0
- package/dist/src/detectors/terraform/index.js.map +1 -0
- package/dist/src/detectors/terraform/parse-lock.d.ts +24 -0
- package/dist/src/detectors/terraform/parse-lock.js +44 -0
- package/dist/src/detectors/terraform/parse-lock.js.map +1 -0
- package/dist/src/detectors/terraform/parse-terraform.d.ts +37 -0
- package/dist/src/detectors/terraform/parse-terraform.js +57 -0
- package/dist/src/detectors/terraform/parse-terraform.js.map +1 -0
- package/dist/src/detectors/terraform/parse-version-files.d.ts +24 -0
- package/dist/src/detectors/terraform/parse-version-files.js +58 -0
- package/dist/src/detectors/terraform/parse-version-files.js.map +1 -0
- package/dist/src/doctor.d.ts +23 -1
- package/dist/src/doctor.js +89 -1
- package/dist/src/doctor.js.map +1 -1
- package/dist/src/domain.d.ts +55 -4
- package/dist/src/domain.js +32 -0
- package/dist/src/domain.js.map +1 -1
- package/dist/src/engine.d.ts +25 -2
- package/dist/src/engine.js +47 -2
- package/dist/src/engine.js.map +1 -1
- package/dist/src/exposure.d.ts +22 -0
- package/dist/src/exposure.js +62 -0
- package/dist/src/exposure.js.map +1 -0
- package/dist/src/forecast.d.ts +45 -0
- package/dist/src/forecast.js +68 -0
- package/dist/src/forecast.js.map +1 -0
- package/dist/src/github-action.d.ts +9 -0
- package/dist/src/github-action.js +21 -0
- package/dist/src/github-action.js.map +1 -1
- package/dist/src/init-agents.d.ts +7 -0
- package/dist/src/init-agents.js +33 -23
- package/dist/src/init-agents.js.map +1 -1
- package/dist/src/init-hooks.d.ts +30 -0
- package/dist/src/init-hooks.js +97 -0
- package/dist/src/init-hooks.js.map +1 -0
- package/dist/src/init-personal.d.ts +22 -0
- package/dist/src/init-personal.js +75 -0
- package/dist/src/init-personal.js.map +1 -0
- package/dist/src/migration-packet.d.ts +37 -1
- package/dist/src/migration-packet.js +104 -4
- package/dist/src/migration-packet.js.map +1 -1
- package/dist/src/min-support.d.ts +9 -0
- package/dist/src/min-support.js +31 -0
- package/dist/src/min-support.js.map +1 -0
- package/dist/src/registry.d.ts +8 -1
- package/dist/src/registry.js +26 -1
- package/dist/src/registry.js.map +1 -1
- package/dist/src/report-issue.d.ts +13 -0
- package/dist/src/report-issue.js +85 -0
- package/dist/src/report-issue.js.map +1 -0
- package/dist/src/reporters.d.ts +33 -1
- package/dist/src/reporters.js +182 -3
- package/dist/src/reporters.js.map +1 -1
- package/dist/src/runtime-pin.d.ts +9 -0
- package/dist/src/runtime-pin.js +52 -0
- package/dist/src/runtime-pin.js.map +1 -0
- package/dist/src/sdk.d.ts +23 -1
- package/dist/src/sdk.js +2 -2
- package/dist/src/sdk.js.map +1 -1
- package/dist/src/setup.d.ts +19 -0
- package/dist/src/setup.js +65 -0
- package/dist/src/setup.js.map +1 -0
- package/dist/src/source-usage.d.ts +36 -1
- package/dist/src/source-usage.js +746 -23
- package/dist/src/source-usage.js.map +1 -1
- package/dist/src/status-file.d.ts +11 -0
- package/dist/src/status-file.js +42 -0
- package/dist/src/status-file.js.map +1 -0
- package/dist/src/tui.d.ts +37 -0
- package/dist/src/tui.js +112 -0
- package/dist/src/tui.js.map +1 -0
- package/dist/src/usage/javascript.js +83 -0
- package/dist/src/usage/javascript.js.map +1 -1
- package/dist/src/usage/python.d.ts +15 -0
- package/dist/src/usage/python.js +243 -0
- package/dist/src/usage/python.js.map +1 -0
- package/dist/src/usage/queries/python.scm +48 -0
- package/dist/src/usage/symbols.d.ts +28 -0
- package/dist/src/usage/symbols.js +90 -0
- package/dist/src/usage/symbols.js.map +1 -0
- package/dist/src/usage/tree-sitter.d.ts +5 -0
- package/dist/src/usage/tree-sitter.js +21 -3
- package/dist/src/usage/tree-sitter.js.map +1 -1
- package/dist/src/usage-log.d.ts +39 -0
- package/dist/src/usage-log.js +112 -0
- package/dist/src/usage-log.js.map +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/watch.d.ts +37 -0
- package/dist/src/watch.js +109 -0
- package/dist/src/watch.js.map +1 -0
- package/examples/agents/copilot/.vscode/mcp.json +1 -1
- package/examples/agents/copilot/coding-agent-mcp.json +1 -1
- package/examples/agents/cursor/.cursor/mcp.json +1 -1
- package/examples/agents/gemini/gemini-extension.json +2 -2
- package/examples/agents/gemini/settings.json +1 -1
- package/examples/agents/kilo/kilo.jsonc +1 -1
- package/examples/capabilities.json +24 -15
- package/package.json +10 -3
- package/registry/android.json +150 -0
- package/registry/ci-images.json +217 -0
- package/registry/container.json +707 -0
- package/registry/dart.json +364 -0
- package/registry/database.json +449 -0
- package/registry/dotnet.json +601 -0
- package/registry/go.json +334 -0
- package/registry/java.json +53 -0
- package/registry/kubernetes.json +3015 -0
- package/registry/nodejs.json +4421 -0
- package/registry/npm.json +926 -0
- package/registry/php.json +747 -1
- package/registry/python.json +4136 -0
- package/registry/ruby.json +595 -0
- package/registry/serverless.json +259 -0
- package/registry/shell.json +339 -0
- package/registry/swift.json +61 -0
- package/registry/terraform.json +369 -0
- package/schemas/doctor.v1.schema.json +18 -1
- package/schemas/finding.v1.schema.json +20 -2
- package/schemas/public-validation.v1.schema.json +25 -1
- package/schemas/registry.v2.schema.json +2 -2
- package/schemas/scan.v1.schema.json +25 -2
- package/skills/evergreen-deprecation/SKILL.md +7 -0
package/README.md
CHANGED
|
@@ -8,14 +8,11 @@
|
|
|
8
8
|
</picture>
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
|
-
[](https://github.com/arminazimi/evergreen/actions/workflows/ci.yml)
|
|
13
|
-
[](https://www.npmjs.com/package/evergreen-deprecation)
|
|
11
|
+
[](https://github.com/arminazimi/evergreen/actions/workflows/ci.yml)
|
|
12
|
+
[](https://github.com/arminazimi/evergreen/actions/workflows/ci.yml)
|
|
13
|
+
[](https://www.npmjs.com/package/evergreen-deprecation)
|
|
14
|
+
[](https://github.com/arminazimi/evergreen/actions/workflows/ci.yml)
|
|
14
15
|
[](https://skills.sh/arminazimi/evergreen/evergreen-deprecation)
|
|
15
|
-
[](docs/COMPATIBILITY.md)
|
|
16
|
-
[](docs/GITHUB_ACTION.md#code-scanning)
|
|
17
|
-
[](docs/MCP.md)
|
|
18
|
-
[](LICENSE)
|
|
19
16
|
|
|
20
17
|
Evergreen finds **end-of-life and deprecated** runtimes, packages, and GitHub Actions in your repository, shows the exact file and line, and backs every finding with an authoritative source, a replacement, and migration steps. It runs on your machine as a CLI, a local MCP server, a GitHub Action (with SARIF for code scanning), and an Agent Skill, so people and coding agents can find lifecycle risk before it breaks a build, and check a dependency before adding it. Scans are deterministic and offline, and need no account.
|
|
21
18
|
|
|
@@ -26,17 +23,28 @@ Read the [public documentation](https://arminazimi.github.io/evergreen/), run th
|
|
|
26
23
|
| Ecosystem | What Evergreen reads | What it reports |
|
|
27
24
|
| --- | --- | --- |
|
|
28
25
|
| **Container base images** *(experimental)* | `Dockerfile`, `*.Dockerfile`, `Containerfile`, `compose.yaml`, `docker-compose.yml`: base images of official `node`, `python`, `postgres`, `mysql`, and `ruby` | Image release lines that are end of life. Variables, `latest`, and floating tags are listed as unclassified, never guessed. See [Container base images](docs/detectors/container.md) |
|
|
29
|
-
| **.NET** *(
|
|
26
|
+
| **.NET** *(beta)* | `global.json`, `*.csproj`/`*.fsproj`/`*.vbproj`, `Directory.Build.props`, `Directory.Packages.props`, `packages.lock.json`: the pinned SDK, target frameworks, and direct NuGet packages | .NET release lines past end of support, and direct packages their publisher deprecated, with the C# files that use them. .NET Framework, `netstandard`, MSBuild properties, floating versions, and ranges are not judged. See [.NET](docs/detectors/dotnet.md) |
|
|
30
27
|
| **Go** *(experimental)* | `go.mod` and `go.work`: `go` and `toolchain` directives, and direct `require` entries | Go release lines that no longer receive fixes, and direct modules with a lifecycle rule. Versions Evergreen cannot read are listed as unclassified. See [Go](docs/detectors/go.md) |
|
|
31
28
|
| **GitHub Actions** | `.github/workflows/*.yml`: `uses:` references to actions, including full-SHA pins resolved through a trailing version comment or a bundled release map | Actions on retired runtimes (such as Node.js 20) and retired or deprecated majors, at the exact line |
|
|
32
|
-
| **
|
|
33
|
-
| **
|
|
29
|
+
| **C and C++** *(experimental)* | `CMakeLists.txt`, `conanfile.txt`, `conanfile.py`, and `vcpkg.json` | CMake policy compatibility removals and deprecations, at the exact declaration. Other declarations require a matching reviewed rule. See [C and C++](docs/COMPATIBILITY.md#c-and-c-detector) |
|
|
30
|
+
| **CI runner images** *(experimental)* | `.gitlab-ci.yml` `image` and `services`, `.circleci/config.yml` `docker.image`, `machine.image`, and orbs, and `azure-pipelines.yml` `pool.vmImage` | Azure hosted-image labels a reviewed rule covers, at the exact line. GitLab images and CircleCI orbs, variables, and floating aliases are unclassified. A literal CircleCI image is not judged. See [CI runner images](docs/COMPATIBILITY.md#ci-runner-images-detector) |
|
|
31
|
+
| **Java and Kotlin (JVM)** *(beta)* | `pom.xml`, `build.gradle`, `build.gradle.kts`, `.java-version`, `.sdkmanrc`, `.tool-versions`: the JDK a project pins or targets, and direct Maven dependencies. See [Java and Kotlin](docs/detectors/java.md) | JDK feature releases that are out of support, and dependencies whose POM says they moved. Property references and expressions are listed as unclassified |
|
|
32
|
+
| **Kubernetes APIs** *(beta)* | `*.yaml`, `*.yml` manifests, Helm chart `templates/`, and `kustomization.yaml`: the literal `apiVersion` and `kind`, and kustomize patches. See [Kubernetes APIs](docs/detectors/kubernetes.md) | API versions the Kubernetes project says are no longer served. Helm values, cluster-guarded templates, and anything it cannot read literally are skipped |
|
|
34
33
|
| **Node.js** | `engines.node`, `volta`, `.nvmrc`, `.node-version` | Runtime versions that are end of life or out of support |
|
|
35
34
|
| **npm** | `package.json` dependencies, `package-lock.json`, `npm-shrinkwrap.json`, `yarn.lock`, `pnpm-lock.yaml`, and the imports and calls that use each package | Deprecated or unmaintained packages, with the replacement and where the package is used |
|
|
36
35
|
| **Python** | `pyproject.toml`, `requirements*.txt`, `.python-version`, `runtime.txt`, `.tool-versions`, `poetry.lock`, `uv.lock`, `Pipfile.lock` | Python versions that are end of life, and deprecated or obsolete packages |
|
|
36
|
+
| **Dart and Flutter** *(experimental)* | `pubspec.yaml`, `pubspec.lock`, `.fvmrc`, `.fvm/fvm_config.json`: SDK constraints, direct dependencies, resolved packages, and the pinned Flutter version | Dart SDK releases that no longer receive security updates when pinned exactly, and discontinued pub packages with the files that use them. Constraint ranges such as `>=3.8.0 <4.0.0` are not judged. See [Dart and Flutter](docs/detectors/dart.md) |
|
|
37
|
+
| **Database runtimes** *(experimental)* | `compose.yaml` / `docker-compose.yml` image tags (`postgres`, `mysql`, `mariadb`, `redis`, `mongo`) and `engine_version` on AWS managed database resources in `*.tf` | PostgreSQL 11–13 and MySQL 5.7 and 8.0 past end of life. Floating tags, variables, module blocks, and Compose files with YAML aliases are not judged. See [Database runtimes](docs/detectors/database.md) |
|
|
38
|
+
| **Shell and PowerShell** *(experimental)* | `#Requires -Version` in `*.ps1` / `*.psm1`, `PowerShellVersion` in `*.psd1`, and pinned `mcr.microsoft.com/powershell` image tags in `.github/workflows` | PowerShell 6.x and 7.0–7.3 past end of support. Windows PowerShell 5.1, shell names, Bash images, dynamic values, and directives with extra options are not judged. See [Shell and PowerShell](docs/detectors/shell.md) |
|
|
39
|
+
| **Terraform** *(experimental)* | `*.tf` (`required_version`, `required_providers`), `.terraform.lock.hcl`, `.terraform-version`, `.tool-versions`: constraints, locked providers, and the pinned Terraform CLI | Terraform CLI release lines that no longer receive support when pinned exactly or by a `~> X.Y.Z` constraint. Ranges such as `>= 1.5` are not judged. See [Terraform](docs/detectors/terraform.md) |
|
|
37
40
|
| **Rust** *(experimental)* | `Cargo.toml`, `Cargo.lock`, `rust-toolchain(.toml)`: the pinned toolchain and direct crate dependencies | Toolchains older than the newest stable release, and direct dependencies on unmaintained crates with the files that use them. `edition`, `rust-version`, `stable`, and anything it cannot read literally are not judged. See [Rust](docs/detectors/rust.md) |
|
|
41
|
+
| **Swift** *(beta)* | `.swift-version`, `.xcode-version`, `Package.swift`, `Package.resolved`, and the application-target `IPHONEOS_DEPLOYMENT_TARGET` in `project.pbxproj` | Xcode and iOS releases App Store Connect no longer accepts, Swift toolchain lines with a lifecycle rule, and packages with a rule. Libraries and `platforms:` minimums are not judged. See [Swift](docs/detectors/swift.md) |
|
|
42
|
+
| **Serverless runtimes** *(beta)* | `Runtime` in AWS SAM and CloudFormation templates, `provider.runtime` and `runtime` in `serverless.yml`, and `runtime` in Terraform `aws_lambda_function`, Google Cloud Functions, and Azure function apps | Lambda and Cloud Functions runtimes their vendor lists as end of life. See [Serverless runtimes](docs/detectors/serverless.md) |
|
|
43
|
+
| **Ruby** *(experimental)* | `.ruby-version`, `.tool-versions`, `Gemfile`, `Gemfile.lock` | Ruby release lines past end of support and yanked gems, with the Ruby files that use a gem. See [Compatibility](docs/COMPATIBILITY.md#ruby-detector) |
|
|
44
|
+
| **PHP** *(experimental)* | `.php-version`, `.tool-versions`, `composer.json`, `composer.lock` | PHP release lines past end of support and abandoned Composer packages. See [Compatibility](docs/COMPATIBILITY.md#php-detector) |
|
|
45
|
+
| **Android** *(experimental)* | `build.gradle(.kts)`, `settings.gradle(.kts)`, `libs.versions.toml`: SDK levels, Android Gradle Plugin, Kotlin plugin, and Maven dependencies | Declarations that a reviewed rule names, such as Google Play Billing Library majors 5 through 9. See [Compatibility](docs/COMPATIBILITY.md#android-detector) |
|
|
38
46
|
|
|
39
|
-
Each finding carries its rule's sources, review date, and migration steps; see [Lifecycle rules](docs/RULES.md). Other ecosystems are not guessed at: Evergreen reports a package it has no rule for as `no-data`, never as safe, and new ecosystems start from a [generated detector skeleton](docs/DETECTORS.md#start-a-new-detector-in-this-repository). The [compatibility matrix](docs/COMPATIBILITY.md) lists supported environments and hosts.
|
|
47
|
+
The level in parentheses is the detector's maturity; the full list with each level is the [ecosystem coverage matrix](docs/COMPATIBILITY.md#ecosystem-coverage), and earned precision and recall per detector are on the [accuracy dashboard](https://arminazimi.github.io/evergreen/dashboard/). Each finding carries its rule's sources, review date, and migration steps; see [Lifecycle rules](docs/RULES.md). Other ecosystems are not guessed at: Evergreen reports a package it has no rule for as `no-data`, never as safe, and new ecosystems start from a [generated detector skeleton](docs/DETECTORS.md#start-a-new-detector-in-this-repository). The [compatibility matrix](docs/COMPATIBILITY.md) lists supported environments and hosts.
|
|
40
48
|
|
|
41
49
|
## Product principles
|
|
42
50
|
|
|
@@ -54,6 +62,12 @@ Requirements: Node.js 22 or newer.
|
|
|
54
62
|
npx evergreen-deprecation scan .
|
|
55
63
|
```
|
|
56
64
|
|
|
65
|
+
Give an agent a short answer instead of the full report: one line per finding with its id, location, severity, and replacement, most severe first, capped at 25 findings (the rest are counted) and under 8 KiB:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
npx evergreen-deprecation scan . --format compact
|
|
69
|
+
```
|
|
70
|
+
|
|
57
71
|
Verify that the CLI, local MCP server, Agent Skill, plugin foundations, and CI
|
|
58
72
|
workspace are ready without changing configuration or uploading repository data:
|
|
59
73
|
|
|
@@ -120,6 +134,14 @@ npx evergreen-deprecation init --agents --dry-run # show the change
|
|
|
120
134
|
npx evergreen-deprecation init --agents
|
|
121
135
|
```
|
|
122
136
|
|
|
137
|
+
To do this for every coding agent a repository is already set up for, run `setup`. It detects Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, and Kilo Code configuration, shows the change for each host's instruction file, and writes only after you confirm (or pass `--yes`). It uses the same marked section as `init --agents`, so existing rules are never overwritten:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
npx evergreen-deprecation setup --dry-run # print the plan
|
|
141
|
+
npx evergreen-deprecation setup # ask, then write
|
|
142
|
+
npx evergreen-deprecation setup --yes # no prompt (CI, scripts)
|
|
143
|
+
```
|
|
144
|
+
|
|
123
145
|
Connect a coding agent through the local MCP server:
|
|
124
146
|
|
|
125
147
|
```bash
|
|
@@ -166,7 +188,7 @@ The initial detector reports unsupported major versions of five first-party acti
|
|
|
166
188
|
|
|
167
189
|
Pinned commit SHAs and dynamic expressions are intentionally left unclassified until Evergreen can resolve them without guessing.
|
|
168
190
|
|
|
169
|
-
The npm detector also reads `package.json`, npm/pnpm/Yarn lockfiles, Node.js runtime declarations, and a small evidence-backed registry of deprecated direct dependencies. Use `evergreen explain <finding-id>` to inspect a finding and its sources.
|
|
191
|
+
The npm detector also reads `package.json`, npm/pnpm/Yarn lockfiles, Node.js runtime declarations, and a small evidence-backed registry of deprecated direct dependencies. Use `evergreen explain <finding-id>` to inspect a finding and its sources. If a finding is wrong, `evergreen report-issue <finding-id>` prints a Markdown report with the rule, its evidence, and a few redacted lines of the declaring file, and never opens an issue or uses the network.
|
|
170
192
|
|
|
171
193
|
The Python detector reads PEP 621 and Poetry metadata from `pyproject.toml`, `requirements*.txt`, common runtime-version files, and uv/Poetry/PDM/Pipenv lockfiles. It reports unsupported Python declarations and lifecycle risks in direct dependencies while ignoring transitive-only lockfile entries.
|
|
172
194
|
|
|
@@ -192,7 +214,7 @@ permissions:
|
|
|
192
214
|
|
|
193
215
|
steps:
|
|
194
216
|
- uses: actions/checkout@v7
|
|
195
|
-
- uses: arminazimi/evergreen@v0.
|
|
217
|
+
- uses: arminazimi/evergreen@v0.6.0
|
|
196
218
|
with:
|
|
197
219
|
baseline: .evergreen-baseline.json
|
|
198
220
|
fail-on-severity: high
|
package/dist/src/action.js
CHANGED
|
@@ -40,13 +40,18 @@ async function main() {
|
|
|
40
40
|
const sarifPath = process.env["INPUT_UPLOAD-SARIF"] === "true"
|
|
41
41
|
? resolve(process.env.RUNNER_TEMP ?? workspace, "evergreen-results.sarif")
|
|
42
42
|
: undefined;
|
|
43
|
+
const badgePath = process.env["INPUT_UPLOAD-BADGE"] === "true"
|
|
44
|
+
? resolve(process.env.RUNNER_TEMP ?? workspace, "evergreen-badge.json")
|
|
45
|
+
: undefined;
|
|
43
46
|
const outcome = await runGitHubAction({
|
|
44
47
|
root,
|
|
45
48
|
reportPath,
|
|
46
49
|
...(sarifPath ? { sarifPath } : {}),
|
|
50
|
+
...(badgePath ? { badgePath } : {}),
|
|
47
51
|
...(process.env.INPUT_BASELINE ? { baselinePath: process.env.INPUT_BASELINE } : {}),
|
|
48
52
|
...(process.env["INPUT_BASELINE-WARN-DAYS"] ? { baselineWarnDays: Number(process.env["INPUT_BASELINE-WARN-DAYS"]) } : {}),
|
|
49
53
|
...(process.env["INPUT_ON-EXPIRED"] ? { onExpired: process.env["INPUT_ON-EXPIRED"] } : {}),
|
|
54
|
+
...(process.env["INPUT_MIN-SUPPORT-DAYS"] ? { minSupportDays: Number(process.env["INPUT_MIN-SUPPORT-DAYS"]) } : {}),
|
|
50
55
|
failOnSeverity: (process.env["INPUT_FAIL-ON-SEVERITY"] || "high"),
|
|
51
56
|
});
|
|
52
57
|
for (const annotation of outcome.annotations)
|
|
@@ -61,6 +66,10 @@ async function main() {
|
|
|
61
66
|
await setOutput("report-path", outcome.reportPath);
|
|
62
67
|
if (outcome.sarifPath)
|
|
63
68
|
await setOutput("sarif-path", outcome.sarifPath);
|
|
69
|
+
if (outcome.badgePath)
|
|
70
|
+
await setOutput("badge-path", outcome.badgePath);
|
|
71
|
+
if (outcome.badgeSvgPath)
|
|
72
|
+
await setOutput("badge-svg-path", outcome.badgeSvgPath);
|
|
64
73
|
await setOutput("finding-count", String(outcome.result.findings.length));
|
|
65
74
|
await writeSummary(outcome.result.findings, outcome.gateFailed, outcome.gate, outcome.result.data, outcome.expiredFailure, outcome.result.suppressions);
|
|
66
75
|
if (outcome.result.data?.stale)
|
package/dist/src/action.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/action.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/action.ts"],"names":[],"mappings":"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"}
|
package/dist/src/agent-tools.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { resolve } from "node:path";
|
|
3
3
|
import { applyBaseline, findingFingerprint, readBaseline } from "./baseline.js";
|
|
4
|
+
import { bundledRules } from "./check-dependency.js";
|
|
4
5
|
import { builtInDetectors } from "./detectors/index.js";
|
|
5
6
|
import { scanRepository } from "./engine.js";
|
|
6
7
|
import { createMigrationPacket } from "./migration-packet.js";
|
|
8
|
+
import { readPinnedRuntimes } from "./runtime-pin.js";
|
|
7
9
|
export const repositoryKey = (root) => createHash("sha256").update(root).digest("hex").slice(0, 8);
|
|
8
10
|
export class FindingNotObservedError extends Error {
|
|
9
11
|
constructor(findingId) {
|
|
@@ -55,7 +57,7 @@ export class EvergreenAgentTools {
|
|
|
55
57
|
}
|
|
56
58
|
async context(findingId, repositoryPath = ".") {
|
|
57
59
|
const result = await this.scan(repositoryPath);
|
|
58
|
-
return createMigrationPacket(result, findingId);
|
|
60
|
+
return createMigrationPacket(result, findingId, await bundledRules(), await readPinnedRuntimes(result.root));
|
|
59
61
|
}
|
|
60
62
|
async verify(findingId, repositoryPath = ".") {
|
|
61
63
|
const root = resolve(repositoryPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-tools.js","sourceRoot":"","sources":["../../src/agent-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-tools.js","sourceRoot":"","sources":["../../src/agent-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ScanResult } from "./domain.js";
|
|
2
|
+
import type { RegistryV2Rule } from "./registry.js";
|
|
3
|
+
/**
|
|
4
|
+
* Projects a scan onto a future day: each announced end of life whose deadline is on or before `asOf` is
|
|
5
|
+
* reported as the ended line it will be, at end-of-life severity. Finding identity never changes, so
|
|
6
|
+
* baselines still match. The scan itself stays clock-free; this is an explicit, deterministic step.
|
|
7
|
+
*/
|
|
8
|
+
export declare function applyAsOf(result: ScanResult, asOf: string, rules?: readonly RegistryV2Rule[] | Promise<readonly RegistryV2Rule[]>): Promise<ScanResult>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { bundledRules } from "./check-dependency.js";
|
|
2
|
+
/** The severity a scheduled end of life returns to once its date has come (decision 0010). */
|
|
3
|
+
const REACHED_SEVERITY = "high";
|
|
4
|
+
/**
|
|
5
|
+
* Projects a scan onto a future day: each announced end of life whose deadline is on or before `asOf` is
|
|
6
|
+
* reported as the ended line it will be, at end-of-life severity. Finding identity never changes, so
|
|
7
|
+
* baselines still match. The scan itself stays clock-free; this is an explicit, deterministic step.
|
|
8
|
+
*/
|
|
9
|
+
export async function applyAsOf(result, asOf, rules = bundledRules()) {
|
|
10
|
+
const reached = new Set((await rules)
|
|
11
|
+
.filter((rule) => rule.event === "scheduled-end-of-life" && rule.deadline !== undefined && rule.deadline <= asOf)
|
|
12
|
+
.map((rule) => rule.id));
|
|
13
|
+
return {
|
|
14
|
+
...result,
|
|
15
|
+
asOf,
|
|
16
|
+
findings: result.findings.map((finding) => reached.has(finding.ruleId)
|
|
17
|
+
? { ...finding, severity: REACHED_SEVERITY, summary: `As of ${asOf}, this has ended (deadline ${finding.deadline}). ${finding.summary}` }
|
|
18
|
+
: finding),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=as-of.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"as-of.js","sourceRoot":"","sources":["../../src/as-of.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIrD,8FAA8F;AAC9F,MAAM,gBAAgB,GAAG,MAAe,CAAC;AAEzC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAkB,EAClB,IAAY,EACZ,QAAwE,YAAY,EAAE;IAEtF,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,CAAC,MAAM,KAAK,CAAC;SACV,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,uBAAuB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;SAChH,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAC1B,CAAC;IACF,OAAO;QACL,GAAG,MAAM;QACT,IAAI;QACJ,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACxC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;YACzB,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,IAAI,8BAA8B,OAAO,CAAC,QAAQ,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE;YACzI,CAAC,CAAC,OAAO,CACZ;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ScanResult } from "./domain.js";
|
|
2
|
+
export interface BadgeState {
|
|
3
|
+
message: string;
|
|
4
|
+
color: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* What the README badge says. Counts findings after baseline comparison and names the highest
|
|
8
|
+
* remaining severity; `expired` and `stale` only ever add to that, they never hide a finding.
|
|
9
|
+
*/
|
|
10
|
+
export declare function badgeState(result: Pick<ScanResult, "findings" | "data">, expiredFailure?: boolean): BadgeState;
|
|
11
|
+
/**
|
|
12
|
+
* A self-contained SVG badge in the Evergreen brand colors. Text widths are fixed with
|
|
13
|
+
* `textLength`, so the layout does not depend on which font the viewer has.
|
|
14
|
+
*/
|
|
15
|
+
export declare function renderBadgeSvg(result: Pick<ScanResult, "findings" | "data">, expiredFailure?: boolean): string;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { severityValues } from "./domain.js";
|
|
2
|
+
/** Brand palette (brand/tokens.css) plus muted severity colors that sit next to it. */
|
|
3
|
+
const colors = {
|
|
4
|
+
clean: "#2F7D5B",
|
|
5
|
+
quiet: "#4C7C6D",
|
|
6
|
+
low: "#B89B3C",
|
|
7
|
+
medium: "#C9822F",
|
|
8
|
+
high: "#B84A3E",
|
|
9
|
+
expired: "#8E3B34",
|
|
10
|
+
};
|
|
11
|
+
const severityColors = {
|
|
12
|
+
critical: colors.high,
|
|
13
|
+
high: colors.high,
|
|
14
|
+
medium: colors.medium,
|
|
15
|
+
low: colors.low,
|
|
16
|
+
info: colors.quiet,
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* What the README badge says. Counts findings after baseline comparison and names the highest
|
|
20
|
+
* remaining severity; `expired` and `stale` only ever add to that, they never hide a finding.
|
|
21
|
+
*/
|
|
22
|
+
export function badgeState(result, expiredFailure = false) {
|
|
23
|
+
const count = result.findings.length;
|
|
24
|
+
const highest = [...severityValues].reverse().find((severity) => result.findings.some((finding) => finding.severity === severity));
|
|
25
|
+
const stale = result.data?.stale === true;
|
|
26
|
+
if (expiredFailure)
|
|
27
|
+
return { message: highest ? `${count} ${highest} · expired` : "expired", color: colors.expired };
|
|
28
|
+
if (highest)
|
|
29
|
+
return { message: `${count} ${highest}${stale ? " · stale" : ""}`, color: severityColors[highest] };
|
|
30
|
+
return stale ? { message: "stale", color: colors.quiet } : { message: "clean", color: colors.clean };
|
|
31
|
+
}
|
|
32
|
+
const LABEL = "evergreen";
|
|
33
|
+
const HEIGHT = 20;
|
|
34
|
+
const PAD = 7;
|
|
35
|
+
const ICON = 12;
|
|
36
|
+
const GAP = 4;
|
|
37
|
+
const LABEL_TEXT_WIDTH = 52;
|
|
38
|
+
const GLYPH_WIDTH = 6.4;
|
|
39
|
+
const FONT = "Verdana,Geneva,DejaVu Sans,sans-serif";
|
|
40
|
+
/** The Version Notches mark (brand/assets) in the badge's light-on-dark colors. */
|
|
41
|
+
function mark(x, y) {
|
|
42
|
+
const mask = (id, notch) => `<mask id="${id}"><rect width="256" height="256" fill="#fff"/><rect ${notch}/></mask>`;
|
|
43
|
+
return [
|
|
44
|
+
`<g transform="translate(${x} ${y}) scale(${ICON / 256})" fill="none" stroke-width="20">`,
|
|
45
|
+
mask("o", 'x="119" y="18" width="18" height="28"'),
|
|
46
|
+
mask("m", 'x="186" y="119" width="30" height="18"'),
|
|
47
|
+
mask("i", 'x="119" y="160" width="18" height="30"'),
|
|
48
|
+
'<circle cx="128" cy="128" r="96" stroke="#F3F6F4" mask="url(#o)"/>',
|
|
49
|
+
'<circle cx="128" cy="128" r="70" stroke="#9AC7B6" mask="url(#m)"/>',
|
|
50
|
+
'<circle cx="128" cy="128" r="44" stroke="#CFE8DD" mask="url(#i)"/>',
|
|
51
|
+
"</g>",
|
|
52
|
+
].join("");
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* A self-contained SVG badge in the Evergreen brand colors. Text widths are fixed with
|
|
56
|
+
* `textLength`, so the layout does not depend on which font the viewer has.
|
|
57
|
+
*/
|
|
58
|
+
export function renderBadgeSvg(result, expiredFailure = false) {
|
|
59
|
+
const { message, color } = badgeState(result, expiredFailure);
|
|
60
|
+
const labelWidth = PAD + ICON + GAP + LABEL_TEXT_WIDTH + PAD;
|
|
61
|
+
const messageText = Math.round(message.length * GLYPH_WIDTH);
|
|
62
|
+
const messageWidth = messageText + 2 * PAD;
|
|
63
|
+
const width = labelWidth + messageWidth;
|
|
64
|
+
const label = `${LABEL}: ${message}`;
|
|
65
|
+
return [
|
|
66
|
+
`<svg xmlns="http://www.w3.org/2000/svg" width="${width}" height="${HEIGHT}" viewBox="0 0 ${width} ${HEIGHT}" role="img" aria-label="${label}">`,
|
|
67
|
+
`<title>${label}</title>`,
|
|
68
|
+
`<clipPath id="r"><rect width="${width}" height="${HEIGHT}" rx="3"/></clipPath>`,
|
|
69
|
+
'<g clip-path="url(#r)">',
|
|
70
|
+
`<rect width="${labelWidth}" height="${HEIGHT}" fill="#0C1110"/>`,
|
|
71
|
+
`<rect x="${labelWidth}" width="${messageWidth}" height="${HEIGHT}" fill="${color}"/>`,
|
|
72
|
+
"</g>",
|
|
73
|
+
mark(PAD, 4),
|
|
74
|
+
`<g fill="#fff" font-family="${FONT}" font-size="11" font-weight="400" text-rendering="geometricPrecision">`,
|
|
75
|
+
`<text x="${PAD + ICON + GAP}" y="13.8" textLength="${LABEL_TEXT_WIDTH}" lengthAdjust="spacingAndGlyphs">${LABEL}</text>`,
|
|
76
|
+
`<text x="${labelWidth + PAD}" y="13.8" textLength="${messageText}" lengthAdjust="spacingAndGlyphs">${message}</text>`,
|
|
77
|
+
"</g>",
|
|
78
|
+
"</svg>",
|
|
79
|
+
].join("");
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.js","sourceRoot":"","sources":["../../src/badge.ts"],"names":[],"mappings":"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"}
|
package/dist/src/baseline.d.ts
CHANGED
|
@@ -18,19 +18,32 @@ export interface BaselineEntry extends Suppression {
|
|
|
18
18
|
ruleId: string;
|
|
19
19
|
path: string;
|
|
20
20
|
}
|
|
21
|
+
/** One scan's summary: how many findings the baseline recorded at that time. */
|
|
22
|
+
export interface BaselineHistoryEntry {
|
|
23
|
+
at: string;
|
|
24
|
+
count: number;
|
|
25
|
+
}
|
|
21
26
|
export interface Baseline {
|
|
22
27
|
schemaVersion: "evergreen.baseline.v1";
|
|
23
28
|
createdAt: string;
|
|
24
29
|
findings: BaselineEntry[];
|
|
30
|
+
/** Finding counts of earlier baselines, oldest first and bounded. Optional, so older files stay valid. */
|
|
31
|
+
history?: BaselineHistoryEntry[];
|
|
25
32
|
}
|
|
33
|
+
export declare const MAX_BASELINE_HISTORY = 100;
|
|
34
|
+
/** Adds one entry to a history, keeping it sorted by time and at most `MAX_BASELINE_HISTORY` long (newest kept). */
|
|
35
|
+
export declare function appendHistory(history: readonly BaselineHistoryEntry[] | undefined, entry: BaselineHistoryEntry): BaselineHistoryEntry[];
|
|
36
|
+
/** The line printed after a baseline is written: the change in findings since the last history entry. */
|
|
37
|
+
export declare function debtTrendLine(history: readonly BaselineHistoryEntry[]): string;
|
|
26
38
|
export declare function findingFingerprint(finding: Finding): string;
|
|
27
39
|
/** Checks the optional suppression fields of one baseline entry; returns what is wrong, if anything. */
|
|
28
40
|
export declare function suppressionIssues(entry: Suppression): string[];
|
|
29
41
|
/**
|
|
30
42
|
* Builds a baseline from a scan. `suppression`, when given, is recorded on every entry; without it the file has
|
|
31
|
-
* exactly the fields it always had.
|
|
43
|
+
* exactly the fields it always had. `previous`, the baseline being replaced, carries its history forward with this
|
|
44
|
+
* scan's count added; without it there is no history.
|
|
32
45
|
*/
|
|
33
|
-
export declare function createBaseline(result: ScanResult, suppression?: Suppression): Baseline;
|
|
46
|
+
export declare function createBaseline(result: ScanResult, suppression?: Suppression, previous?: Baseline): Baseline;
|
|
34
47
|
export declare function writeBaseline(path: string, baseline: Baseline): Promise<void>;
|
|
35
48
|
export declare function readBaseline(path: string): Promise<Baseline>;
|
|
36
49
|
export declare const DEFAULT_WARN_DAYS = 14;
|
package/dist/src/baseline.js
CHANGED
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { readFile, writeFile } from "node:fs/promises";
|
|
3
3
|
import { isIsoDate } from "./registry.js";
|
|
4
|
+
export const MAX_BASELINE_HISTORY = 100;
|
|
5
|
+
function validHistory(history) {
|
|
6
|
+
if (!Array.isArray(history))
|
|
7
|
+
return [];
|
|
8
|
+
return history.filter((entry) => typeof entry?.at === "string" && !Number.isNaN(Date.parse(entry.at)) && Number.isInteger(entry.count) && entry.count >= 0);
|
|
9
|
+
}
|
|
10
|
+
/** Adds one entry to a history, keeping it sorted by time and at most `MAX_BASELINE_HISTORY` long (newest kept). */
|
|
11
|
+
export function appendHistory(history, entry) {
|
|
12
|
+
return [...validHistory(history), entry].sort((left, right) => Date.parse(left.at) - Date.parse(right.at)).slice(-MAX_BASELINE_HISTORY);
|
|
13
|
+
}
|
|
14
|
+
/** A baseline written before histories existed counts as the first entry. */
|
|
15
|
+
function seedHistory(baseline) {
|
|
16
|
+
return Number.isNaN(Date.parse(baseline.createdAt)) ? [] : [{ at: baseline.createdAt, count: baseline.findings.length }];
|
|
17
|
+
}
|
|
18
|
+
/** The line printed after a baseline is written: the change in findings since the last history entry. */
|
|
19
|
+
export function debtTrendLine(history) {
|
|
20
|
+
if (history.length < 2)
|
|
21
|
+
return "No earlier baseline to compare with.";
|
|
22
|
+
const previous = history[history.length - 2];
|
|
23
|
+
const current = history[history.length - 1];
|
|
24
|
+
const delta = current.count - previous.count;
|
|
25
|
+
if (delta === 0)
|
|
26
|
+
return `Debt is unchanged at ${current.count} since ${previous.at}.`;
|
|
27
|
+
return `Debt ${delta < 0 ? "fell" : "rose"} by ${Math.abs(delta)} (${previous.count} to ${current.count}) since ${previous.at}: ${delta < 0 ? "better" : "worse"}.`;
|
|
28
|
+
}
|
|
4
29
|
export function findingFingerprint(finding) {
|
|
5
30
|
const usages = finding.usages
|
|
6
31
|
?.map((usage) => [usage.kind, usage.location.path, usage.symbol])
|
|
@@ -35,22 +60,26 @@ export function suppressionIssues(entry) {
|
|
|
35
60
|
}
|
|
36
61
|
/**
|
|
37
62
|
* Builds a baseline from a scan. `suppression`, when given, is recorded on every entry; without it the file has
|
|
38
|
-
* exactly the fields it always had.
|
|
63
|
+
* exactly the fields it always had. `previous`, the baseline being replaced, carries its history forward with this
|
|
64
|
+
* scan's count added; without it there is no history.
|
|
39
65
|
*/
|
|
40
|
-
export function createBaseline(result, suppression = {}) {
|
|
66
|
+
export function createBaseline(result, suppression = {}, previous) {
|
|
41
67
|
const issues = suppressionIssues(suppression);
|
|
42
68
|
if (issues.length > 0)
|
|
43
69
|
throw new Error(`Invalid suppression: ${issues.join("; ")}.`);
|
|
44
70
|
const extra = Object.fromEntries(Object.entries(suppression).filter(([, value]) => value !== undefined));
|
|
71
|
+
const createdAt = new Date().toISOString();
|
|
45
72
|
return {
|
|
46
73
|
schemaVersion: "evergreen.baseline.v1",
|
|
47
|
-
createdAt
|
|
74
|
+
createdAt,
|
|
48
75
|
findings: result.findings.map((finding) => ({
|
|
49
76
|
fingerprint: findingFingerprint(finding),
|
|
50
77
|
ruleId: finding.ruleId,
|
|
51
78
|
path: finding.location.path,
|
|
52
79
|
...extra,
|
|
53
80
|
})),
|
|
81
|
+
// Only a baseline that already has a history, or that replaces an earlier one, starts or extends a history.
|
|
82
|
+
...(previous ? { history: appendHistory(previous.history ?? seedHistory(previous), { at: createdAt, count: result.findings.length }) } : {}),
|
|
54
83
|
};
|
|
55
84
|
}
|
|
56
85
|
export async function writeBaseline(path, baseline) {
|
package/dist/src/baseline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/baseline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/baseline.ts"],"names":[],"mappings":"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"}
|
package/dist/src/capabilities.js
CHANGED
|
@@ -57,7 +57,7 @@ const workflowCapabilityIds = [
|
|
|
57
57
|
];
|
|
58
58
|
const manifest = {
|
|
59
59
|
schemaVersion: "evergreen.capabilities.v1",
|
|
60
|
-
manifestVersion: "1.
|
|
60
|
+
manifestVersion: "1.8.0",
|
|
61
61
|
product: {
|
|
62
62
|
name: "Evergreen",
|
|
63
63
|
package: "evergreen-deprecation",
|
|
@@ -74,19 +74,28 @@ const manifest = {
|
|
|
74
74
|
unknownSchemaMajor: "reject",
|
|
75
75
|
},
|
|
76
76
|
ecosystems: [
|
|
77
|
+
{ id: "android", status: "experimental", maturity: "experimental", detectorIds: ["android"] },
|
|
77
78
|
{ id: "ci-images", status: "experimental", maturity: "experimental", detectorIds: ["ci-images"] },
|
|
78
79
|
{ id: "container", status: "experimental", maturity: "experimental", detectorIds: ["container"] },
|
|
79
|
-
{ id: "
|
|
80
|
+
{ id: "cpp", status: "experimental", maturity: "experimental", detectorIds: ["cpp"] },
|
|
81
|
+
{ id: "dart", status: "experimental", maturity: "experimental", detectorIds: ["dart"] },
|
|
82
|
+
{ id: "dotnet", status: "supported", maturity: "beta", detectorIds: ["dotnet"] },
|
|
80
83
|
{ id: "github-actions", status: "supported", maturity: "stable", detectorIds: ["github-actions"] },
|
|
81
84
|
{ id: "go", status: "experimental", maturity: "experimental", detectorIds: ["go"] },
|
|
82
|
-
{ id: "java", status: "
|
|
83
|
-
{ id: "kubernetes", status: "
|
|
85
|
+
{ id: "java", status: "supported", maturity: "beta", detectorIds: ["java"] },
|
|
86
|
+
{ id: "kubernetes", status: "supported", maturity: "beta", detectorIds: ["kubernetes"] },
|
|
84
87
|
// nodejs and npm share the npm detector, so both take its level.
|
|
85
88
|
{ id: "nodejs", status: "supported", maturity: "stable", detectorIds: ["npm"] },
|
|
86
89
|
{ id: "npm", status: "supported", maturity: "stable", detectorIds: ["npm"] },
|
|
90
|
+
{ id: "php", status: "experimental", maturity: "experimental", detectorIds: ["php"] },
|
|
87
91
|
{ id: "python", status: "supported", maturity: "stable", detectorIds: ["python"] },
|
|
88
92
|
{ id: "ruby", status: "experimental", maturity: "experimental", detectorIds: ["ruby"] },
|
|
89
93
|
{ id: "rust", status: "experimental", maturity: "experimental", detectorIds: ["rust"] },
|
|
94
|
+
{ id: "serverless", status: "supported", maturity: "beta", detectorIds: ["serverless"] },
|
|
95
|
+
{ id: "swift", status: "supported", maturity: "beta", detectorIds: ["swift"] },
|
|
96
|
+
{ id: "terraform", status: "experimental", maturity: "experimental", detectorIds: ["terraform"] },
|
|
97
|
+
{ id: "database", status: "experimental", maturity: "experimental", detectorIds: ["database"] },
|
|
98
|
+
{ id: "shell", status: "experimental", maturity: "experimental", detectorIds: ["shell"] },
|
|
90
99
|
],
|
|
91
100
|
capabilities: [
|
|
92
101
|
{
|
|
@@ -94,35 +103,35 @@ const manifest = {
|
|
|
94
103
|
status: "supported",
|
|
95
104
|
version: "1",
|
|
96
105
|
description: "Scan a local repository with all built-in lifecycle detectors.",
|
|
97
|
-
ecosystems: ["ci-images", "container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "ruby", "rust"],
|
|
106
|
+
ecosystems: ["android", "ci-images", "container", "cpp", "dart", "database", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "php", "python", "ruby", "rust", "serverless", "shell", "swift", "terraform"],
|
|
98
107
|
},
|
|
99
108
|
{
|
|
100
109
|
id: "deprecation.list",
|
|
101
110
|
status: "supported",
|
|
102
111
|
version: "1",
|
|
103
112
|
description: "List compact lifecycle findings from a fresh local scan.",
|
|
104
|
-
ecosystems: ["ci-images", "container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "ruby", "rust"],
|
|
113
|
+
ecosystems: ["android", "ci-images", "container", "cpp", "dart", "database", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "php", "python", "ruby", "rust", "serverless", "shell", "swift", "terraform"],
|
|
105
114
|
},
|
|
106
115
|
{
|
|
107
116
|
id: "deprecation.explain",
|
|
108
117
|
status: "supported",
|
|
109
118
|
version: "1",
|
|
110
119
|
description: "Explain one evidence-backed finding by its exact identifier.",
|
|
111
|
-
ecosystems: ["ci-images", "container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "ruby", "rust"],
|
|
120
|
+
ecosystems: ["android", "ci-images", "container", "cpp", "dart", "database", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "php", "python", "ruby", "rust", "serverless", "shell", "swift", "terraform"],
|
|
112
121
|
},
|
|
113
122
|
{
|
|
114
123
|
id: "migration.context.create",
|
|
115
124
|
status: "supported",
|
|
116
125
|
version: "1",
|
|
117
126
|
description: "Create a validated migration packet for one finding.",
|
|
118
|
-
ecosystems: ["ci-images", "container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "ruby", "rust"],
|
|
127
|
+
ecosystems: ["android", "ci-images", "container", "cpp", "dart", "database", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "php", "python", "ruby", "rust", "serverless", "shell", "swift", "terraform"],
|
|
119
128
|
},
|
|
120
129
|
{
|
|
121
130
|
id: "migration.verify",
|
|
122
131
|
status: "supported",
|
|
123
132
|
version: "1",
|
|
124
133
|
description: "Re-scan and verify that an observed finding is absent.",
|
|
125
|
-
ecosystems: ["ci-images", "container", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "python", "ruby", "rust"],
|
|
134
|
+
ecosystems: ["android", "ci-images", "container", "cpp", "dart", "database", "dotnet", "github-actions", "go", "java", "kubernetes", "nodejs", "npm", "php", "python", "ruby", "rust", "serverless", "shell", "swift", "terraform"],
|
|
126
135
|
},
|
|
127
136
|
{
|
|
128
137
|
id: "environment.doctor",
|