smart-tests-cli 2.13.0__tar.gz → 2.14.0__tar.gz
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.
- smart_tests_cli-2.14.0/.claude/skills/merge-v1-to-main/SKILL.md +131 -0
- {smart_tests_cli-2.13.0/smart_tests_cli.egg-info → smart_tests_cli-2.14.0}/PKG-INFO +1 -1
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/gate.py +33 -2
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/subset.py +1 -1
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/jar/exe_deploy.jar +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/maven.py +42 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0/smart_tests_cli.egg-info}/PKG-INFO +1 -1
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests_cli.egg-info/SOURCES.txt +4 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests_cli.egg-info/scm_file_list.json +4 -0
- smart_tests_cli-2.14.0/smart_tests_cli.egg-info/scm_version.json +8 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/CommitGraphCollector.java +76 -14
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/test/java/com/launchableinc/ingest/commits/CommitGraphCollectorTest.java +91 -0
- smart_tests_cli-2.14.0/tests/commands/test_gate.py +227 -0
- smart_tests_cli-2.14.0/tests/data/maven/dryrun-test/target/surefire-reports/TEST-com.example.demo.CalculatorTest.xml +4 -0
- smart_tests_cli-2.14.0/tests/data/maven/dryrun-test/target/surefire-reports/TEST-com.example.demo.UserTest.xml +4 -0
- smart_tests_cli-2.14.0/tests/data/maven/subset_scan_dryrun_results_result.json +12 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_maven.py +30 -0
- smart_tests_cli-2.13.0/smart_tests_cli.egg-info/scm_version.json +0 -8
- smart_tests_cli-2.13.0/tests/commands/test_gate.py +0 -126
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/.bazelrc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/.bazelversion +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/.dockerignore +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/.editorconfig +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/.github/release.yml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/.github/workflows/bazel-test.yml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/.github/workflows/e2e.yml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/.github/workflows/pre-commit.yml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/.github/workflows/publish.yml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/.github/workflows/test.yml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/.github/workflows/update_maven_install_json.yml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/.gitignore +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/.pre-commit-config.yaml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/.python-version +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/.tagpr +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/CLAUDE.md +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/CONTRIBUTING.md +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/Dockerfile +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/LICENSE.txt +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/MODULE.bazel +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/MODULE.bazel.lock +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/README.md +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/WORKSPACE.bzlmod +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/build-java.sh +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/pyproject.toml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/renovate.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/scripts/update_docs.sh +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/scripts/update_schema.sh +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/setup.cfg +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/setup.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/__main__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/app.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/args4p/README.md +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/args4p/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/args4p/argument.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/args4p/command.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/args4p/converters/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/args4p/decorators.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/args4p/exceptions.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/args4p/option.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/args4p/parameter.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/args4p/typer/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/analyze/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/analyze/subset.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/compare/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/compare/subsets.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/detect_flakes.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/get/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/get/api_schema.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/get/docs.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/inspect/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/inspect/model.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/inspect/subset.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/record/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/record/attachment.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/record/build.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/record/case_event.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/record/commit.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/record/deployment.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/record/session.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/record/tests.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/stats/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/stats/test_sessions.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/test_path_writer.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/update/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/update/alias.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/verify.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/view/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/view/flaky_tests.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/view/longest_tests.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/view/never_failing_tests.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/commands/view/test_results.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/antora.yml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/adb.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/ant.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/bazel.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/behave.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/ci-tool-integrations/github-actions.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/ci-tool-integrations.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/ctest.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/cucumber.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/cypress.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/dotnet-test.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/flutter.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/go-test.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/googletest.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/gradle.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/jest.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/karma.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/maven.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/minitest.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/playwright.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/prove.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/pytest.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/robot.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/rspec.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-languages/c-plus-plus.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-languages/dotnet.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-languages/go.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-languages/java.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-languages/javascript.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-languages/perl.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-languages/python.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-languages/ruby.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/appium.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/cucumber.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/googletest.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/jest.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/junit.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/minitest.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/nose.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/nunit.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/prove.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/robot.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/rspec.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/selenium.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/testng.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/vitest.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/archive/xctest.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/0607-inference.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/0607-subset-creation.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/0607-training.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/507088cf-209d-4856-be3e-60477c166d92.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/confidence-curve.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/customer-example-curve.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/data-flow.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/demo.gif +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/eval-sessions-prioritized.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/eval-sessions.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/flavors.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/github-comment.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/groups-2-record-after.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/hi-rate-fail-quarantine/auto-quarantine.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/hi-rate-fail-quarantine/failure-test.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/hi-rate-fail-quarantine/manual-quarantine.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/how-long-train-ml-model.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/icons/icon-vertical-three-dots-dark.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/illustion-run-whitelisted-tests-1.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/illustration-ignore-flakes-1.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/illustration-rotate-optimize-coverage.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/illustration-run-recently-failed-tests.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/in-place.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/link-to-results-example.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/model-training-evaluation-confidence-curves.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/new-code-existing-tests.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/object-model-june.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/object-model-v2.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/object-model.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/optimization-target.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/predictive-test-selection-observation-mode.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/prioritized-evaluation-session.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/pts/pts-observe.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/pts-v2-working.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/recording-data.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/recording-from-multiple-repos-built-separately-detailed.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/recording-from-multiple-repos-built-separately.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/recording-from-multiple-repos.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-07-25-at-20-41-20.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-07-25-at-20-44-15.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-07-25-at-20-45-10.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-08-22-at-22-50-49.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-04-29-at-1-48-30-pm.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-04-29-at-2-14-11-pm.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-4-50-56-pm.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-5-06-32-pm.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-5-09-04-pm.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-5-21-37-pm.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/sending-data/builds-dashboard.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/sending-data/create-api-key.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/sending-data/initial-settings.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/sending-data/organization-profile-id.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/sending-data/record-session.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/sending-data/test-session-interface.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/shift-left.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/single-session-compared.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/single-session-result.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/slack-desktop-with-app-messages.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/smart-subset-formation-flow.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/smart-tests-builds-interface-v1png.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/smart-tests-cli-3.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/smart-tests-monthly-time-saved.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/smart-tests_api_key_setting_20210613.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/smart-tests_invite_url_20220613.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/smart-tests_settings_20220613.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/subscription-ux.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/subset/dynamic-parallel.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/subset-creation.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/subset-exclude.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/subsetting-diagram-2x.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/target-line.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/test-insights-example.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/test-pyramid.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/test-runs-log.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition-2.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition-3.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition-4.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/test-session-details-with-content.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/test-session-report-example.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/test-sessions-layout.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/testing-bottleneck-infinity.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/training-wheels.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/trends.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/triage-email-demo.avif +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/use-case-1.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/use-case-2.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/assets/images/zis-with-groups.png +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/nav.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/pages/getting-started.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/pages/index.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/partials/abbr.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/ROOT/partials/conditionals.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/administration/pages/data-examples.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/administration/pages/data-privacy-and-protection.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/administration/pages/security-policies.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/administration/pages/troubleshooting.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/concepts/pages/branch.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/concepts/pages/build.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/concepts/pages/insight.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/concepts/pages/object-model.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/concepts/pages/organization.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/concepts/pages/subset.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/concepts/pages/test-session.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/concepts/pages/test-suite.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/concepts/pages/workspace.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/features/pages/high-failure-rate-tests-and-quarantine.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/features/pages/intelligent-test-failure-diagnostics.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/features/pages/predictive-test-selection/how-we-select-tests.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/features/pages/predictive-test-selection/use-cases-for-predictive-test-selection.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/features/pages/predictive-test-selection/viewing-time-savings.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/features/pages/predictive-test-selection.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/features/pages/test-notifications/github-app-for-test-sessions.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/features/pages/test-notifications/test-notifications-via-slack.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/features/pages/test-notifications.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/features/pages/test-results-and-reports.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/features/pages/test-suite-parallelization.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/features/pages/test-trends-and-insights.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/references/pages/ai-assistance.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/references/pages/cli-reference.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/references/pages/cli-version.txt +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/references/pages/faq.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/references/pages/integrations/raw.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/references/pages/integrations/use-the-generic-file-based-runner-integration.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/references/pages/integrations.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/references/pages/onboarding-guide/best-practices-checklist.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/references/pages/onboarding-guide/optional-configurations.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/references/pages/onboarding-guide.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/references/pages/supported-languages.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/references/pages/supported-test-frameworks.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/choose-a-value-for-build-name.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/deal-with-shallow-clones.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/record-builds-for-microservices.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/record-builds-for-multistage-build.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/record-builds-from-multiple-repositories.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/record-builds.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/run-under-restricted-networks.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-sessions/record-sessions.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/attach-log-files.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/convert-test-reports-to-junit-format.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/ensure-record-tests-always-runs.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/manage-complex-test-session-layouts.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/record-test-results.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/separate-out-test-suites.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/use-flavors-to-run-the-best-tests-for-an-environment.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/send-data-to-smart-tests.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/getting-started.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/migration-to-github-oidc-auth.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/use-the-cli-with-docker-image.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/choose-a-subset-optimization-target.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/combine-with-rule-based-test-selection.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/observe-subset-behavior.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/replace-static-parallel-suites-dynamic-parallel-subset.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/request-and-run-a-subset-of-tests.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/smart-subset-optimization-target.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/smart-tests-extension-for-VS-code.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/subset-predictive-test-selection.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/subset-with-the-smart-tests-cli.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/use-groups-to-split-subsets.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/zero-input-subsetting.adoc +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/plugins/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/schema/openapi-schema.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/adb.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/ant.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/bazel.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/behave.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/codeceptjs.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/ctest.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/cts.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/cucumber.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/cypress.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/dotnet.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/file.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/flutter.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/go_test.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/googletest.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/gradle.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/jasmine.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/jest.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/karma.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/minitest.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/nunit.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/playwright.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/prove.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/pytest.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/raw.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/robot.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/rspec.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/smart_tests.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/vitest.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/test_runners/xctest.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/testpath.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/authentication.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/ci_provider.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/commands.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/commit_ingester.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/common_tz.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/edit_distance.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/env_keys.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/exceptions.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/fail_fast_mode.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/file_name_pattern.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/git_log_parser.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/glob.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/gzipgen.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/http_client.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/input_snapshot.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/java.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/link.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/logger.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/no_build.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/sax.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/session.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/smart_tests_client.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/subprocess.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/tracking.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/utils/typer_types.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests/version.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests_cli.egg-info/dependency_links.txt +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests_cli.egg-info/entry_points.txt +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests_cli.egg-info/requires.txt +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests_cli.egg-info/top_level.txt +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/BUILD +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/Authenticator.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/BUILD +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/BackgroundWorkStatus.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/BoundedExecutorService.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/ChunkStreamer.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/CommitChunkStreamer.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/ConcurrentConsumer.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/CountingDiffFormatter.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/FileChunkStreamer.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/FlushableConsumer.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/GitFile.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/GitHubActionsAuthenticator.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/GitHubIdTokenAuthenticator.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/IOConsumer.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/JSAsyncFileCollectionProgress.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/JSAsyncFileCollectionResponse.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/JSCommit.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/JSFileChange.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/LaunchableHttpClient.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/Main.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/ObjectRevFilter.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/ProgressReporter.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/SSLBypass.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/TokenAuthenticator.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/TreeReceiver.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/main/java/com/launchableinc/ingest/commits/VirtualFile.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/maven_install.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/test/java/com/launchableinc/ingest/commits/AllTests.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/test/java/com/launchableinc/ingest/commits/BUILD +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/test/java/com/launchableinc/ingest/commits/BoundedExecutorServiceTest.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/test/java/com/launchableinc/ingest/commits/ConcurrentConsumerTest.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/test/java/com/launchableinc/ingest/commits/FileChunkStreamerTest.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/test/java/com/launchableinc/ingest/commits/GitFileTest.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/test/java/com/launchableinc/ingest/commits/MainTest.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/test/java/com/launchableinc/ingest/commits/PassThroughTreeReceiverImpl.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/test/java/com/launchableinc/ingest/commits/ProgressReporterTest.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/test/java/com/launchableinc/ingest/commits/SSLBypassTest.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/src/test/java/com/launchableinc/ingest/commits/java8-compat.sh +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/test-runner/__main__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/args4p/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/args4p/converters/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/args4p/converters/test_converters.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/args4p/test_badcode.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/args4p/test_badinput.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/args4p/test_command.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/args4p/test_decorators.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/args4p/test_help.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/args4p/test_parameter.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/args4p/test_typer.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/cli_test_case.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/compare/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/compare/test_subsets.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/inspect/test_model.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/inspect/test_subset.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/record/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/record/test_attachment.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/record/test_build.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/record/test_case_event.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/record/test_commit.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/record/test_deployment.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/record/test_session.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/record/test_tests.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/test_api_error.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/test_detect_flakes.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/test_subset.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/test_verify.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/test_view_flaky_tests.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/test_view_longest_tests.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/test_view_never_failing_tests.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/test_view_test_results.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/update/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/commands/update/test_alias.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/adb/subset_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/ant/junitreport/TEST-com.example.HelloWorldTest.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/ant/junitreport/TEST-com.example.library.CacheTest.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/ant/junitreport/TESTS-TestSuites.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/ant/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/ant/src/com/example/HelloWorld.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/ant/src/com/example/HelloWorldTest.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/ant/src/com/example/library/Cache.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/ant/src/com/example/library/CacheTest.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/ant/subset_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.cache_status +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.log +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test2/test.cache_status +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test2/test.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test3/test.cache_status +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test3/test.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test4/test.cache_status +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test4/test.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test5/test.cache_status +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test5/test.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test6/test.cache_status +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test6/test.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test7/test.cache_status +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test7/test.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test8/test.cache_status +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test8/test.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test9/test.cache_status +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test9/test.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/build_event.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/build_event_rest.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/record_test_with_build_event_json_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/record_test_with_multiple_build_event_json_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/bazel/subset_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/behave/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/behave/reports/report.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/behave/subset_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/broken_xml/broken.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/broken_xml/normal.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/codeceptjs/codeceptjs-result.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/codeceptjs/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/ctest/Testing/latest/Test.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/ctest/ctest_list.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/ctest/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/ctest/subset_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cts/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cts/subset_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cts/test_result.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cucumber/features/foo/bar.feature +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cucumber/features/foo/is_it_friday_yet.feature +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cucumber/features/foo-bar.feature +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cucumber/features/is_it_friday_yet.feature +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cucumber/record_test_json_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cucumber/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cucumber/report/TEST-features-foo-bar.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cucumber/report/TEST-features-foo-is_it_friday_yet.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cucumber/report/TEST-features-is_it_friday_yet.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cucumber/report/dummy.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cucumber/report/result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cypress/empty.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cypress/empty.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cypress/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cypress/subset_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/cypress/test-result.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/dotnet/junit-result-with-metadata.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/dotnet/junit-result.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/dotnet/record_test_result-junit-with-metadata.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/dotnet/record_test_result-junit.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/dotnet/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/dotnet/test-result.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/file/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/file/record_test_result_custom_attribute.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/file/result.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/file/result_custom_attribute.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/flutter/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/flutter/report.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/git_log_ingest/sample.out +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/go_test/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/go_test/reportv1/reportv1.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/go_test/reportv2/reportv2.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/go_test/subset_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/googletest/fail/output.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/googletest/fail/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/googletest/output_a.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/googletest/output_b.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/googletest/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/googletest/subset_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/gradle/java/app/src/test/java/com/example/sample_app_gradle/App2Test.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/gradle/java/app/src/test/java/com/example/sample_app_gradle/AppTest.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/gradle/java/app/src/test/java/com/example/sample_app_gradle/sub/App3Test.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/gradle/recursion/expected.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/gradle/recursion/foo/bar/reports/1.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/jasmine/README.md +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/jasmine/jasmine-test-results-v3.99.0.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/jasmine/jasmine-test-results.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/jasmine/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/jasmine/subset_payload.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/jest/junit.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/jest/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/jest/subset_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/karma/README.md +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/karma/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/karma/sample-report.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/karma/subset_payload.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/karma/subset_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/maven/createdFile_1.lst +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/maven/createdFile_2.lst +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/maven/java/test/src/java/com/example/sample_app_maven/App2Test.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/maven/java/test/src/java/com/example/sample_app_maven/AppTest.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/maven/java/test/src/java/com/launchableinc/rocket_car_maven/e2e/E2ETest.java +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/maven/list.lst +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/maven/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/maven/reports/TEST-1.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/maven/reports/TEST-2.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/maven/reports/TEST-nested.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/maven/reports/dummy.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/maven/subset_by_absolute_time_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/maven/subset_by_confidence_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/maven/subset_from_file_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/maven/subset_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/maven/subset_scan_test_compile_lst_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/maven/subset_with_exclude_rules_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/minitest/TEST-Admin_UserTest.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/minitest/TEST-Admin_UserTest_ChildlenTest.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/minitest/TEST-UserControllerTest.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/minitest/TEST-UserCopyTest.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/minitest/TEST-UserTest.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/minitest/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/minitest/record_test_result_chunk1.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/minitest/record_test_result_chunk2.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/minitest/subset_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/minitest/test/example_test.rb +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/nunit/list.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/nunit/nunit-reporter-bug-with-nested-type.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/nunit/nunit-reporter-bug-with-nested-type.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/nunit/output-linux.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/nunit/output-windows.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/nunit/record_test_result-linux.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/nunit/record_test_result-windows.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/nunit/src/.gitignore +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/nunit/src/Program.cs +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/nunit/src/README.md +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/nunit/src/Test.cs +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/nunit/src/calc.csproj +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/nunit/subset_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/playwright/packages/e2e/.gitkeep +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/playwright/playwright.config.ts +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/playwright/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/playwright/record_test_result_with_json.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/playwright/record_test_result_with_json_base.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/playwright/record_test_result_with_prefix.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/playwright/report.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/playwright/report.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/playwright/report_with_json_base.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/playwright/report_with_prefix.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/prove/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/prove/report.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/pytest/pytest.ini +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/pytest/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/pytest/record_test_result_json.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/pytest/report.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/pytest/report.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/pytest/subset_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/pytest/tests/conftest.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/pytest/tests/fooo/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/pytest/tests/fooo/filenameonly_test.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/pytest/tests/fooo/func4_test.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/pytest/tests/funcs3_test.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/pytest/tests/test_funcs1.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/pytest/tests/test_funcs2.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/robot/dryrun.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/robot/output.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/robot/output_legacy.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/robot/record_test_executed_only_one_file_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/robot/record_test_legacy_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/robot/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/robot/single-output.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/robot/subset_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/rspec/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/rspec/rspec.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/vitest/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/vitest/report.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/xctest/junit.xml +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/xctest/record_test_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/data/xctest/subset_result.json +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/helper.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/plugins/foo.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_cli_test_case.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_plugin.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_adb.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_ant.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_bazel.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_behave.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_codeceptjs.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_ctest.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_cts.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_cucumber.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_cypress.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_dotnet.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_file.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_go_test.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_googletest.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_gradle.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_jasmine.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_jest.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_karma.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_minitest.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_nunit.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_playwright.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_prove.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_pytest.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_raw.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_robot.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_rspec.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_vitest.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_runners/test_xctest.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_testpath.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/test_version.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/utils/__init__.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/utils/test_authentication.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/utils/test_edit_distance.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/utils/test_fail_fast_mode.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/utils/test_file_name_pattern.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/utils/test_git_log_parser.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/utils/test_glob.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/utils/test_gzipgen.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/utils/test_http_client.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/utils/test_link.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/utils/test_logger.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/utils/test_session.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/utils/test_tracking.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/utils/test_typer.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tests/utils/test_typer_types.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tools/README.md +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/tools/generate_reference.py +0 -0
- {smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/uv.lock +0 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: merge-v1-to-main
|
|
3
|
+
description: Merge v1 branch changes into main, resolving the conflicts that arise from the v1/main code structure difference
|
|
4
|
+
trigger: When the user says "merge v1 to main", "port v1 to main", "forward port", or similar
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Background
|
|
8
|
+
|
|
9
|
+
This repository maintains two branches in parallel:
|
|
10
|
+
|
|
11
|
+
- `v1` — the legacy CLI (`launchable/` Python package, `launchable/jar/exe_deploy.jar`)
|
|
12
|
+
- `main` — the rebranded CLI (`smart_tests/` Python package, `smart_tests/jar/exe_deploy.jar`)
|
|
13
|
+
|
|
14
|
+
Features are usually developed on `v1` first, then ported to `main` via `git merge v1`.
|
|
15
|
+
|
|
16
|
+
## Procedure
|
|
17
|
+
|
|
18
|
+
### 1. Create a feature branch from main
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
git checkout -b feature/<ticket>-<description>-main origin/main
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### 2. Find the merge base
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
export MERGE_BASE=$(git merge-base origin/v1 origin/main)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 3. Merge v1
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
git merge origin/v1
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
This will typically produce conflicts in several categories. Handle each as described below.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Conflict Resolution Patterns
|
|
41
|
+
|
|
42
|
+
### `deleted by us: launchable/commands/<file>.py`
|
|
43
|
+
|
|
44
|
+
v1 touched a file that was renamed/moved in main. Find where it lives in main:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
git log --oneline ${MERGE_BASE}..origin/main -- smart_tests/commands/<file>.py
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
If those changes are already reflected in `smart_tests/`, just remove the leftover:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
git rm launchable/commands/<file>.py
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
If the v1 changes are **not** yet in main, apply them as a patch:
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
git diff $MERGE_BASE origin/v1 -- launchable/commands/<file>.py > PATCH
|
|
60
|
+
patch -l smart_tests/commands/<file>.py < PATCH
|
|
61
|
+
git rm launchable/commands/<file>.py
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### `both modified: tests/commands/test_<cmd>.py`
|
|
65
|
+
|
|
66
|
+
v1 uses `LAUNCHABLE_TOKEN` / `launchable_token`; main uses `SMART_TESTS_TOKEN` / `smart_tests_token`.
|
|
67
|
+
Both sides often add the same tests under different token names.
|
|
68
|
+
|
|
69
|
+
Resolution: keep the `SMART_TESTS_TOKEN` versions (main side) and discard the `LAUNCHABLE_TOKEN` duplicates.
|
|
70
|
+
|
|
71
|
+
If v1 adds a genuinely new test not present in main, port it by renaming the token constant.
|
|
72
|
+
|
|
73
|
+
### `both modified: smart_tests/jar/exe_deploy.jar`
|
|
74
|
+
|
|
75
|
+
Java source was modified on both sides. Resolve the Java source conflicts first (see below), then:
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
bash build-java.sh
|
|
79
|
+
git add smart_tests/jar/exe_deploy.jar
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Java source conflicts (`src/main/java/...`)
|
|
83
|
+
|
|
84
|
+
v1 and main share the same Java source tree. Common differences:
|
|
85
|
+
|
|
86
|
+
| Area | v1 style | main style |
|
|
87
|
+
|---|---|---|
|
|
88
|
+
| `GitFile` construction | `objectReader` (single reader) | `readers::get` (ThreadLocal) |
|
|
89
|
+
| `collectFiles` signature | `(RevCommit start, TreeWalk treeWalk, TreeReceiver, Consumer<VirtualFile>)` | `(Collection<ObjectId> advertised, TreeReceiver, FlushableConsumer<VirtualFile>)` |
|
|
90
|
+
| Static imports | `ImmutableList.*`, `Arrays.*` | `ImmutableList.toImmutableList`, `Arrays.stream` (specific) |
|
|
91
|
+
|
|
92
|
+
Resolution strategy:
|
|
93
|
+
- Keep HEAD (main) structural code (method signatures, `reportAllFiles` block, `readers::get`)
|
|
94
|
+
- Apply the logic change from v1 (the new feature/fix)
|
|
95
|
+
- If v1 uses wildcard static imports, narrow them back to the specific identifiers main uses
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## After Resolving All Conflicts
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
bash build-java.sh # rebuild jar and run tests
|
|
103
|
+
git add <all resolved files>
|
|
104
|
+
git commit # complete the merge commit
|
|
105
|
+
git push -u origin <branch>
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Then create a PR targeting `main` following the `create-gh-pull-request` skill.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Verifying Correct Resolution
|
|
113
|
+
|
|
114
|
+
After the merge commit, confirm:
|
|
115
|
+
|
|
116
|
+
1. No conflict markers remain: `git diff HEAD | grep -E '^[<=>]{7}'` should be empty
|
|
117
|
+
2. Tests pass: `build-java.sh` exits 0
|
|
118
|
+
3. `smart_tests/jar/exe_deploy.jar` is staged (CI will fail otherwise)
|
|
119
|
+
4. No `launchable/` paths leak into the commit unless they are legitimately v1-only files
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Big Reset
|
|
124
|
+
|
|
125
|
+
If you get hopelessly confused:
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
git commit --all # save current state
|
|
129
|
+
git tag rescue-$(date +%s) # tag it for recovery
|
|
130
|
+
git reset --hard origin/main # start over from main
|
|
131
|
+
```
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import json
|
|
2
|
+
import os
|
|
2
3
|
import sys
|
|
3
4
|
from http import HTTPStatus
|
|
4
5
|
from typing import Annotated
|
|
@@ -12,6 +13,7 @@ from smart_tests.utils.tracking import TrackingClient
|
|
|
12
13
|
from .. import args4p
|
|
13
14
|
from ..app import Application
|
|
14
15
|
from ..args4p import typer
|
|
16
|
+
from ..testpath import unparse_test_path
|
|
15
17
|
from ..utils.commands import Command
|
|
16
18
|
from ..utils.session import SessionId
|
|
17
19
|
from ..utils.smart_tests_client import SmartTestsClient
|
|
@@ -21,8 +23,8 @@ from ..utils.smart_tests_client import SmartTestsClient
|
|
|
21
23
|
def gate(app_instance: Application,
|
|
22
24
|
session: Annotated[SessionId, SessionId.as_option()],
|
|
23
25
|
is_json_format: Annotated[bool, typer.Option(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
"--json",
|
|
27
|
+
help="display JSON format")] = False):
|
|
26
28
|
tracking_client = TrackingClient(Command.GATE, app=app_instance)
|
|
27
29
|
client = SmartTestsClient(tracking_client=tracking_client, app=app_instance)
|
|
28
30
|
try:
|
|
@@ -50,6 +52,14 @@ def gate(app_instance: Application,
|
|
|
50
52
|
client.print_exception_and_recover(e, "Warning: failed to fetch gate status")
|
|
51
53
|
|
|
52
54
|
|
|
55
|
+
def _escape_github_actions_command_value(value: str) -> str:
|
|
56
|
+
return value.replace('\r', '%0D').replace('\n', '%0A')
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def _escape_github_actions_log_line(line: str) -> str:
|
|
60
|
+
return line.replace('::', '%3A%3A', 1) if line.startswith('::') else line
|
|
61
|
+
|
|
62
|
+
|
|
53
63
|
def display_as_json(res: Response):
|
|
54
64
|
res_json = res.json()
|
|
55
65
|
click.echo(json.dumps(res_json, indent=2))
|
|
@@ -68,3 +78,24 @@ def display_as_table(res: Response):
|
|
|
68
78
|
]]
|
|
69
79
|
|
|
70
80
|
click.echo(tabulate(rows, headers, tablefmt="github"))
|
|
81
|
+
|
|
82
|
+
failed_tests = res_json.get('actionableFailedTests', [])
|
|
83
|
+
is_github_actions = os.getenv('GITHUB_ACTIONS')
|
|
84
|
+
if failed_tests:
|
|
85
|
+
click.echo("\nActionable Failure Details:\n")
|
|
86
|
+
for i, test in enumerate(failed_tests, 1):
|
|
87
|
+
test_path = unparse_test_path(test.get("testPath", []))
|
|
88
|
+
stderr = (test.get("stderr") or "").strip()
|
|
89
|
+
if is_github_actions:
|
|
90
|
+
safe_test_path = _escape_github_actions_command_value(test_path)
|
|
91
|
+
click.echo("::group::{}. {}".format(i, safe_test_path))
|
|
92
|
+
if stderr:
|
|
93
|
+
for line in stderr.splitlines():
|
|
94
|
+
click.echo(_escape_github_actions_log_line(line))
|
|
95
|
+
click.echo("::endgroup::")
|
|
96
|
+
else:
|
|
97
|
+
click.echo("{}. {}".format(i, test_path))
|
|
98
|
+
if stderr:
|
|
99
|
+
for line in stderr.splitlines():
|
|
100
|
+
click.echo(" {}".format(line))
|
|
101
|
+
click.echo("")
|
|
@@ -881,7 +881,7 @@ class Subset(TestPathWriter):
|
|
|
881
881
|
|
|
882
882
|
if self._requires_test_input():
|
|
883
883
|
if self.input_given:
|
|
884
|
-
print_error_and_die("ERROR: Given arguments did not match any tests. They appear to be incorrect/non-existent.", tracking_client, Tracking.ErrorEvent.USER_ERROR) # noqa E501
|
|
884
|
+
print_error_and_die("ERROR: Given arguments did not match any tests. They appear to be incorrect/non-existent.", self.tracking_client, Tracking.ErrorEvent.USER_ERROR) # noqa E501
|
|
885
885
|
else:
|
|
886
886
|
print_error_and_die(
|
|
887
887
|
"ERROR: Expecting tests to be given, but none provided. See https://help.launchableinc.com/features/predictive-test-selection/requesting-and-running-a-subset-of-tests/ and provide ones, or use the `--get-tests-from-previous-sessions` option", # noqa E501
|
|
Binary file
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import glob
|
|
2
2
|
import os
|
|
3
3
|
import re
|
|
4
|
+
import xml.etree.ElementTree as ET
|
|
4
5
|
from typing import Annotated, Dict, List
|
|
5
6
|
|
|
6
7
|
import click
|
|
@@ -50,6 +51,29 @@ def is_file(f: str) -> bool:
|
|
|
50
51
|
return False
|
|
51
52
|
|
|
52
53
|
|
|
54
|
+
def parse_surefire_reports() -> List[Dict[str, str]]:
|
|
55
|
+
"""Collect the test classes Surefire discovered from its TEST-*.xml reports.
|
|
56
|
+
|
|
57
|
+
Intended to be run against reports produced by a JUnit 5 dry run
|
|
58
|
+
(`mvn test -Djunit.platform.execution.dryRun.enabled=true`): Surefire applies
|
|
59
|
+
all of its own filtering (excludedGroups, includedGroups, excludes, profiles,
|
|
60
|
+
...) before the dry run, so only the tests Maven would actually execute get a
|
|
61
|
+
report. Each report's root `name` attribute is the fully-qualified class name.
|
|
62
|
+
"""
|
|
63
|
+
test_paths = []
|
|
64
|
+
report_pattern = os.path.join('**', 'target', 'surefire-reports', 'TEST-*.xml')
|
|
65
|
+
report_files = glob.glob(report_pattern, recursive=True)
|
|
66
|
+
|
|
67
|
+
for report_file in report_files:
|
|
68
|
+
try:
|
|
69
|
+
if classname := ET.parse(report_file).getroot().get('name'):
|
|
70
|
+
test_paths.append({"type": "class", "name": classname})
|
|
71
|
+
except ET.ParseError as e:
|
|
72
|
+
click.secho(f"Warning: Could not parse {report_file}: {e}", fg='yellow', err=True)
|
|
73
|
+
|
|
74
|
+
return test_paths
|
|
75
|
+
|
|
76
|
+
|
|
53
77
|
@smart_tests.subset
|
|
54
78
|
def subset(
|
|
55
79
|
client: Subset,
|
|
@@ -68,6 +92,12 @@ def subset(
|
|
|
68
92
|
help="Scan testCompile/default-testCompile/createdFiles.lst for *.lst files generated by `mvn compile` and "
|
|
69
93
|
"use them as test inputs."
|
|
70
94
|
)] = False,
|
|
95
|
+
is_scan_dryrun_results: Annotated[bool, typer.Option(
|
|
96
|
+
"--scan-dryrun-results",
|
|
97
|
+
help="Scan surefire reports generated by `mvn test -Djunit.platform.execution.dryRun.enabled=true`. "
|
|
98
|
+
"Only the tests Maven would actually run (after applying pom.xml excludedGroups/excludes/etc.) are "
|
|
99
|
+
"sent to the subset. Run the dry run before this command. JUnit 5 only."
|
|
100
|
+
)] = False,
|
|
71
101
|
exclude_rules: Annotated[List[str], typer.Option(
|
|
72
102
|
"--exclude",
|
|
73
103
|
multiple=True,
|
|
@@ -108,6 +138,18 @@ def subset(
|
|
|
108
138
|
if source_roots is None:
|
|
109
139
|
source_roots = []
|
|
110
140
|
|
|
141
|
+
if is_scan_dryrun_results:
|
|
142
|
+
tests = parse_surefire_reports()
|
|
143
|
+
if not tests:
|
|
144
|
+
raise BadCmdLineException(
|
|
145
|
+
"No surefire reports found under **/target/surefire-reports/. "
|
|
146
|
+
"Run `mvn test -Djunit.platform.execution.dryRun.enabled=true` before this command.")
|
|
147
|
+
for test in tests:
|
|
148
|
+
client.test_paths.append([test])
|
|
149
|
+
client.same_bin_formatter = lambda s: [{"type": "class", "name": s}]
|
|
150
|
+
client.run()
|
|
151
|
+
return
|
|
152
|
+
|
|
111
153
|
files_to_read = list(test_compile_created_file)
|
|
112
154
|
if is_scan_test_compile_lst:
|
|
113
155
|
if len(test_compile_created_file) > 0:
|
|
@@ -19,6 +19,7 @@ pyproject.toml
|
|
|
19
19
|
renovate.json
|
|
20
20
|
setup.py
|
|
21
21
|
uv.lock
|
|
22
|
+
.claude/skills/merge-v1-to-main/SKILL.md
|
|
22
23
|
.github/release.yml
|
|
23
24
|
.github/workflows/bazel-test.yml
|
|
24
25
|
.github/workflows/e2e.yml
|
|
@@ -548,8 +549,11 @@ tests/data/maven/subset_by_absolute_time_result.json
|
|
|
548
549
|
tests/data/maven/subset_by_confidence_result.json
|
|
549
550
|
tests/data/maven/subset_from_file_result.json
|
|
550
551
|
tests/data/maven/subset_result.json
|
|
552
|
+
tests/data/maven/subset_scan_dryrun_results_result.json
|
|
551
553
|
tests/data/maven/subset_scan_test_compile_lst_result.json
|
|
552
554
|
tests/data/maven/subset_with_exclude_rules_result.json
|
|
555
|
+
tests/data/maven/dryrun-test/target/surefire-reports/TEST-com.example.demo.CalculatorTest.xml
|
|
556
|
+
tests/data/maven/dryrun-test/target/surefire-reports/TEST-com.example.demo.UserTest.xml
|
|
553
557
|
tests/data/maven/java/test/src/java/com/example/sample_app_maven/App2Test.java
|
|
554
558
|
tests/data/maven/java/test/src/java/com/example/sample_app_maven/AppTest.java
|
|
555
559
|
tests/data/maven/java/test/src/java/com/launchableinc/rocket_car_maven/e2e/E2ETest.java
|
{smart_tests_cli-2.13.0 → smart_tests_cli-2.14.0}/smart_tests_cli.egg-info/scm_file_list.json
RENAMED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
"files": [
|
|
3
3
|
".bazelrc",
|
|
4
4
|
".bazelversion",
|
|
5
|
+
".claude/skills/merge-v1-to-main/SKILL.md",
|
|
5
6
|
".dockerignore",
|
|
6
7
|
".editorconfig",
|
|
7
8
|
".github/release.yml",
|
|
@@ -530,6 +531,8 @@
|
|
|
530
531
|
"tests/data/karma/subset_result.json",
|
|
531
532
|
"tests/data/maven/createdFile_1.lst",
|
|
532
533
|
"tests/data/maven/createdFile_2.lst",
|
|
534
|
+
"tests/data/maven/dryrun-test/target/surefire-reports/TEST-com.example.demo.CalculatorTest.xml",
|
|
535
|
+
"tests/data/maven/dryrun-test/target/surefire-reports/TEST-com.example.demo.UserTest.xml",
|
|
533
536
|
"tests/data/maven/java/test/src/java/com/example/sample_app_maven/App2Test.java",
|
|
534
537
|
"tests/data/maven/java/test/src/java/com/example/sample_app_maven/AppTest.java",
|
|
535
538
|
"tests/data/maven/java/test/src/java/com/launchableinc/rocket_car_maven/e2e/E2ETest.java",
|
|
@@ -543,6 +546,7 @@
|
|
|
543
546
|
"tests/data/maven/subset_by_confidence_result.json",
|
|
544
547
|
"tests/data/maven/subset_from_file_result.json",
|
|
545
548
|
"tests/data/maven/subset_result.json",
|
|
549
|
+
"tests/data/maven/subset_scan_dryrun_results_result.json",
|
|
546
550
|
"tests/data/maven/subset_scan_test_compile_lst_result.json",
|
|
547
551
|
"tests/data/maven/subset_with_exclude_rules_result.json",
|
|
548
552
|
"tests/data/minitest/TEST-Admin_UserTest.xml",
|
|
@@ -23,6 +23,7 @@ import org.eclipse.jgit.diff.DiffEntry;
|
|
|
23
23
|
import org.eclipse.jgit.errors.ConfigInvalidException;
|
|
24
24
|
import org.eclipse.jgit.errors.InvalidObjectIdException;
|
|
25
25
|
import org.eclipse.jgit.errors.MissingObjectException;
|
|
26
|
+
import org.eclipse.jgit.lib.AnyObjectId;
|
|
26
27
|
import org.eclipse.jgit.lib.ConfigConstants;
|
|
27
28
|
import org.eclipse.jgit.lib.FileMode;
|
|
28
29
|
import org.eclipse.jgit.lib.ObjectId;
|
|
@@ -49,6 +50,7 @@ import java.io.InputStreamReader;
|
|
|
49
50
|
import java.io.OutputStream;
|
|
50
51
|
import java.io.UncheckedIOException;
|
|
51
52
|
import java.net.URL;
|
|
53
|
+
import java.nio.charset.StandardCharsets;
|
|
52
54
|
import java.time.Duration;
|
|
53
55
|
import java.util.ArrayList;
|
|
54
56
|
import java.util.Collection;
|
|
@@ -68,6 +70,7 @@ import java.util.zip.GZIPOutputStream;
|
|
|
68
70
|
|
|
69
71
|
import static com.google.common.collect.ImmutableList.toImmutableList;
|
|
70
72
|
import static java.util.Arrays.stream;
|
|
73
|
+
import static org.eclipse.jgit.lib.Constants.OBJ_BLOB;
|
|
71
74
|
|
|
72
75
|
/**
|
|
73
76
|
* Compares what commits the local repository and the remote repository have, then send delta over.
|
|
@@ -528,26 +531,44 @@ public class CommitGraphCollector {
|
|
|
528
531
|
OUTER:
|
|
529
532
|
while (treeWalk.next()) {
|
|
530
533
|
ObjectId head = treeWalk.getObjectId(0);
|
|
531
|
-
for (int i = 1; i < c; i++) {
|
|
532
|
-
if (head.equals(treeWalk.getObjectId(i))) {
|
|
533
|
-
// file at the head is identical to one of the uninteresting commits,
|
|
534
|
-
// meaning we have already seen this file/directory on the server.
|
|
535
|
-
// if it is a dir, there's no need to visit this whole subtree, so skip over
|
|
536
|
-
continue OUTER;
|
|
537
|
-
}
|
|
538
|
-
}
|
|
539
534
|
|
|
540
535
|
if (treeWalk.isSubtree()) {
|
|
536
|
+
for (int i = 1; i < c; i++) {
|
|
537
|
+
if (head.equals(treeWalk.getObjectId(i))) {
|
|
538
|
+
continue OUTER;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
541
|
treeWalk.enterSubtree();
|
|
542
|
+
continue;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
String filePath = treeWalk.getPathString();
|
|
546
|
+
FileMode mode = treeWalk.getFileMode(0);
|
|
547
|
+
ObjectId blobId;
|
|
548
|
+
|
|
549
|
+
if (mode == FileMode.SYMLINK) {
|
|
550
|
+
blobId = resolveSymlinkTarget(start.getTree(), filePath, head);
|
|
551
|
+
if (blobId == null) {
|
|
552
|
+
continue;
|
|
553
|
+
}
|
|
554
|
+
} else if ((mode.getBits() & FileMode.TYPE_MASK) == FileMode.TYPE_FILE) {
|
|
555
|
+
blobId = head;
|
|
542
556
|
} else {
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
557
|
+
continue;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
// Dedup check uses the actual content blob ID so that symlink target changes are
|
|
561
|
+
// detected even when the symlink path string (and thus its own blob) is unchanged.
|
|
562
|
+
for (int i = 1; i < c; i++) {
|
|
563
|
+
if (blobId.equals(treeWalk.getObjectId(i))) {
|
|
564
|
+
continue OUTER;
|
|
549
565
|
}
|
|
550
566
|
}
|
|
567
|
+
|
|
568
|
+
GitFile f = new GitFile(name, filePath, blobId, readers::get);
|
|
569
|
+
if (f.size() < 1024 * 1024 && f.isText() && !f.path.equals(HEADER_FILE)) {
|
|
570
|
+
treeReceiver.accept(f);
|
|
571
|
+
}
|
|
551
572
|
}
|
|
552
573
|
|
|
553
574
|
// Now let the server select the files it actually wants to see
|
|
@@ -562,6 +583,47 @@ public class CommitGraphCollector {
|
|
|
562
583
|
}
|
|
563
584
|
}
|
|
564
585
|
|
|
586
|
+
private ObjectId resolveSymlinkTarget(AnyObjectId treeId, String symlinkPath, ObjectId symlinkBlobId) {
|
|
587
|
+
try {
|
|
588
|
+
byte[] raw = objectReader.open(symlinkBlobId, OBJ_BLOB).getCachedBytes(10_000);
|
|
589
|
+
String targetRelative = new String(raw, StandardCharsets.UTF_8).trim();
|
|
590
|
+
|
|
591
|
+
java.nio.file.Path symlinkDir = java.nio.file.Paths.get(symlinkPath).getParent();
|
|
592
|
+
java.nio.file.Path resolved;
|
|
593
|
+
if (symlinkDir != null) {
|
|
594
|
+
resolved = symlinkDir.resolve(targetRelative).normalize();
|
|
595
|
+
} else {
|
|
596
|
+
resolved = java.nio.file.Paths.get(targetRelative).normalize();
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
if (resolved.isAbsolute() || resolved.startsWith("..")) {
|
|
600
|
+
logger.debug("Skipping symlink {} -> {} (points outside repository)", symlinkPath, targetRelative);
|
|
601
|
+
return null;
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
String resolvedPath = resolved.toString().replace(java.io.File.separatorChar, '/');
|
|
605
|
+
|
|
606
|
+
try (TreeWalk tw = TreeWalk.forPath(git, resolvedPath, treeId)) {
|
|
607
|
+
if (tw == null) {
|
|
608
|
+
logger.debug("Skipping symlink {} -> {} (target not found in tree)", symlinkPath, resolvedPath);
|
|
609
|
+
return null;
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
FileMode targetMode = tw.getFileMode(0);
|
|
613
|
+
if ((targetMode.getBits() & FileMode.TYPE_MASK) == FileMode.TYPE_FILE) {
|
|
614
|
+
return tw.getObjectId(0);
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
logger.debug("Skipping symlink {} -> {} (target is not a regular file, mode={})",
|
|
618
|
+
symlinkPath, resolvedPath, targetMode);
|
|
619
|
+
return null;
|
|
620
|
+
}
|
|
621
|
+
} catch (IOException e) {
|
|
622
|
+
logger.warn("Failed to resolve symlink {}: {}", symlinkPath, e.getMessage());
|
|
623
|
+
return null;
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
|
|
565
627
|
/**
|
|
566
628
|
* Creates a per repository "header" file as a {@link VirtualFile}.
|
|
567
629
|
* Currently, this is just the list of files in the repository.
|
|
@@ -29,6 +29,7 @@ import java.io.InputStream;
|
|
|
29
29
|
import java.nio.charset.StandardCharsets;
|
|
30
30
|
import java.nio.file.Files;
|
|
31
31
|
import java.util.ArrayList;
|
|
32
|
+
import java.util.Collections;
|
|
32
33
|
import java.util.List;
|
|
33
34
|
|
|
34
35
|
import static com.google.common.truth.Truth.assertThat;
|
|
@@ -226,6 +227,96 @@ public class CommitGraphCollectorTest {
|
|
|
226
227
|
}
|
|
227
228
|
}
|
|
228
229
|
|
|
230
|
+
@Test
|
|
231
|
+
public void symlinkResolvedAsRegularFile() throws Exception {
|
|
232
|
+
try (Git repo = Git.init().setDirectory(ws).call()) {
|
|
233
|
+
Files.writeString(ws.toPath().resolve("real.txt"), "hello");
|
|
234
|
+
repo.add().addFilepattern("real.txt").call();
|
|
235
|
+
commit(repo).setMessage("add real file").call();
|
|
236
|
+
|
|
237
|
+
Files.createSymbolicLink(ws.toPath().resolve("link.txt"), java.nio.file.Path.of("real.txt"));
|
|
238
|
+
repo.add().addFilepattern("link.txt").call();
|
|
239
|
+
commit(repo).setMessage("add symlink").call();
|
|
240
|
+
|
|
241
|
+
assertThat(collectFilePaths(repo)).containsAtLeast("real.txt", "link.txt");
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
@Test
|
|
246
|
+
public void symlinkAcrossDirectories() throws Exception {
|
|
247
|
+
try (Git repo = Git.init().setDirectory(ws).call()) {
|
|
248
|
+
Files.createDirectory(ws.toPath().resolve("sub"));
|
|
249
|
+
|
|
250
|
+
// subdir -> parent: sub/link.txt -> ../root.txt
|
|
251
|
+
Files.writeString(ws.toPath().resolve("root.txt"), "root content");
|
|
252
|
+
Files.createSymbolicLink(ws.toPath().resolve("sub").resolve("link.txt"), java.nio.file.Path.of("../root.txt"));
|
|
253
|
+
repo.add().addFilepattern("root.txt").addFilepattern("sub/link.txt").call();
|
|
254
|
+
|
|
255
|
+
// parent -> subdir: link2.txt -> sub/deep.txt
|
|
256
|
+
Files.writeString(ws.toPath().resolve("sub").resolve("deep.txt"), "deep content");
|
|
257
|
+
Files.createSymbolicLink(ws.toPath().resolve("link2.txt"), java.nio.file.Path.of("sub/deep.txt"));
|
|
258
|
+
repo.add().addFilepattern("sub/deep.txt").addFilepattern("link2.txt").call();
|
|
259
|
+
|
|
260
|
+
commit(repo).setMessage("add cross-directory symlinks").call();
|
|
261
|
+
|
|
262
|
+
assertThat(collectFilePaths(repo)).containsAtLeast("root.txt", "sub/link.txt", "sub/deep.txt", "link2.txt");
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
@Test
|
|
267
|
+
public void brokenSymlinkSkipped() throws Exception {
|
|
268
|
+
try (Git repo = Git.init().setDirectory(ws).call()) {
|
|
269
|
+
Files.writeString(ws.toPath().resolve("target.txt"), "content");
|
|
270
|
+
Files.createSymbolicLink(ws.toPath().resolve("broken.txt"), java.nio.file.Path.of("target.txt"));
|
|
271
|
+
repo.add().addFilepattern("target.txt").addFilepattern("broken.txt").call();
|
|
272
|
+
commit(repo).setMessage("add files").call();
|
|
273
|
+
|
|
274
|
+
repo.rm().addFilepattern("target.txt").call();
|
|
275
|
+
commit(repo).setMessage("remove target").call();
|
|
276
|
+
|
|
277
|
+
assertThat(collectFilePaths(repo)).doesNotContain("broken.txt");
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
@Test
|
|
282
|
+
public void symlinkOutsideRepoSkipped() throws Exception {
|
|
283
|
+
try (Git repo = Git.init().setDirectory(ws).call()) {
|
|
284
|
+
Files.createSymbolicLink(ws.toPath().resolve("escape.txt"), java.nio.file.Path.of("../outside.txt"));
|
|
285
|
+
repo.add().addFilepattern("escape.txt").call();
|
|
286
|
+
commit(repo).setMessage("add symlink to outside").call();
|
|
287
|
+
|
|
288
|
+
assertThat(collectFilePaths(repo)).doesNotContain("escape.txt");
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
@Test
|
|
293
|
+
public void regularFilesUnaffectedBySymlinkChange() throws Exception {
|
|
294
|
+
try (Git repo = Git.init().setDirectory(ws).call()) {
|
|
295
|
+
Files.writeString(ws.toPath().resolve("a.txt"), "aaa");
|
|
296
|
+
Files.writeString(ws.toPath().resolve("b.txt"), "bbb");
|
|
297
|
+
repo.add().addFilepattern("a.txt").addFilepattern("b.txt").call();
|
|
298
|
+
commit(repo).setMessage("add regular files").call();
|
|
299
|
+
|
|
300
|
+
assertThat(collectFilePaths(repo)).containsExactly("a.txt", "b.txt");
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
private List<String> collectFilePaths(Git repo) throws IOException {
|
|
305
|
+
List<VirtualFile> files = new ArrayList<>();
|
|
306
|
+
CommitGraphCollector cgc = new CommitGraphCollector("test", repo.getRepository());
|
|
307
|
+
cgc.new ByRepository(repo.getRepository(), "main")
|
|
308
|
+
.collectFiles(Collections.emptyList(), new PassThroughTreeReceiverImpl(),
|
|
309
|
+
FlushableConsumer.of(files::add));
|
|
310
|
+
|
|
311
|
+
List<String> paths = new ArrayList<>();
|
|
312
|
+
for (VirtualFile f : files) {
|
|
313
|
+
if (!f.path().equals(CommitGraphCollector.HEADER_FILE)) {
|
|
314
|
+
paths.add(f.path());
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
return paths;
|
|
318
|
+
}
|
|
319
|
+
|
|
229
320
|
private CommitCommand commit(Git r) {
|
|
230
321
|
return r.commit().setAll(true).setSign(false);
|
|
231
322
|
}
|