smart-tests-cli 2.15.0__tar.gz → 2.15.1__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.
Files changed (681) hide show
  1. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/PKG-INFO +1 -1
  2. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/verify.py +21 -12
  3. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/jar/exe_deploy.jar +0 -0
  4. smart_tests_cli-2.15.1/smart_tests/utils/authentication.py +155 -0
  5. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/env_keys.py +10 -0
  6. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/java.py +18 -1
  7. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests_cli.egg-info/PKG-INFO +1 -1
  8. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests_cli.egg-info/SOURCES.txt +2 -0
  9. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests_cli.egg-info/scm_file_list.json +2 -0
  10. smart_tests_cli-2.15.1/smart_tests_cli.egg-info/scm_version.json +8 -0
  11. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/GitHubIdTokenAuthenticator.java +43 -2
  12. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/Main.java +21 -2
  13. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/test_verify.py +39 -1
  14. smart_tests_cli-2.15.1/tests/data/maven/record_test_nested_displayname_result.json +27 -0
  15. smart_tests_cli-2.15.1/tests/data/maven/reports-nested-displayname/TEST-nested-displayname.xml +4 -0
  16. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_maven.py +44 -35
  17. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/utils/test_authentication.py +82 -0
  18. smart_tests_cli-2.15.0/smart_tests/utils/authentication.py +0 -99
  19. smart_tests_cli-2.15.0/smart_tests_cli.egg-info/scm_version.json +0 -8
  20. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/.bazelrc +0 -0
  21. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/.bazelversion +0 -0
  22. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/.claude/skills/merge-v1-to-main/SKILL.md +0 -0
  23. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/.dockerignore +0 -0
  24. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/.editorconfig +0 -0
  25. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/.github/release.yml +0 -0
  26. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/.github/workflows/bazel-test.yml +0 -0
  27. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/.github/workflows/e2e.yml +0 -0
  28. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/.github/workflows/pre-commit.yml +0 -0
  29. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/.github/workflows/publish.yml +0 -0
  30. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/.github/workflows/test.yml +0 -0
  31. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/.github/workflows/update_maven_install_json.yml +0 -0
  32. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/.gitignore +0 -0
  33. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/.pre-commit-config.yaml +0 -0
  34. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/.python-version +0 -0
  35. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/.tagpr +0 -0
  36. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/CLAUDE.md +0 -0
  37. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/CONTRIBUTING.md +0 -0
  38. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/Dockerfile +0 -0
  39. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/LICENSE.txt +0 -0
  40. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/MODULE.bazel +0 -0
  41. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/MODULE.bazel.lock +0 -0
  42. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/README.md +0 -0
  43. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/WORKSPACE.bzlmod +0 -0
  44. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/build-java.sh +0 -0
  45. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/pyproject.toml +0 -0
  46. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/renovate.json +0 -0
  47. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/scripts/update_docs.sh +0 -0
  48. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/scripts/update_schema.sh +0 -0
  49. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/setup.cfg +0 -0
  50. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/setup.py +0 -0
  51. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/__init__.py +0 -0
  52. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/__main__.py +0 -0
  53. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/app.py +0 -0
  54. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/args4p/README.md +0 -0
  55. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/args4p/__init__.py +0 -0
  56. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/args4p/argument.py +0 -0
  57. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/args4p/command.py +0 -0
  58. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/args4p/converters/__init__.py +0 -0
  59. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/args4p/decorators.py +0 -0
  60. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/args4p/exceptions.py +0 -0
  61. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/args4p/option.py +0 -0
  62. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/args4p/parameter.py +0 -0
  63. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/args4p/typer/__init__.py +0 -0
  64. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/__init__.py +0 -0
  65. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/analyze/__init__.py +0 -0
  66. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/analyze/subset.py +0 -0
  67. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/compare/__init__.py +0 -0
  68. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/compare/subsets.py +0 -0
  69. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/detect_flakes.py +0 -0
  70. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/gate.py +0 -0
  71. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/get/__init__.py +0 -0
  72. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/get/api_schema.py +0 -0
  73. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/get/docs.py +0 -0
  74. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/inspect/__init__.py +0 -0
  75. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/inspect/model.py +0 -0
  76. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/inspect/subset.py +0 -0
  77. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/inspect/tests.py +0 -0
  78. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/record/__init__.py +0 -0
  79. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/record/attachment.py +0 -0
  80. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/record/build.py +0 -0
  81. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/record/case_event.py +0 -0
  82. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/record/commit.py +0 -0
  83. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/record/deployment.py +0 -0
  84. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/record/session.py +0 -0
  85. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/record/tests.py +0 -0
  86. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/stats/__init__.py +0 -0
  87. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/stats/test_sessions.py +0 -0
  88. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/subset.py +0 -0
  89. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/test_path_writer.py +0 -0
  90. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/update/__init__.py +0 -0
  91. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/update/alias.py +0 -0
  92. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/view/__init__.py +0 -0
  93. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/view/flaky_tests.py +0 -0
  94. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/view/longest_tests.py +0 -0
  95. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/view/never_failing_tests.py +0 -0
  96. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/commands/view/test_results.py +0 -0
  97. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/antora.yml +0 -0
  98. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/adb.adoc +0 -0
  99. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/ant.adoc +0 -0
  100. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/bazel.adoc +0 -0
  101. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/behave.adoc +0 -0
  102. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/ci-tool-integrations/github-actions.adoc +0 -0
  103. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/ci-tool-integrations.adoc +0 -0
  104. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/ctest.adoc +0 -0
  105. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/cucumber.adoc +0 -0
  106. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/cypress.adoc +0 -0
  107. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/dotnet-test.adoc +0 -0
  108. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/flutter.adoc +0 -0
  109. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/go-test.adoc +0 -0
  110. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/googletest.adoc +0 -0
  111. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/gradle.adoc +0 -0
  112. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/jest.adoc +0 -0
  113. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/karma.adoc +0 -0
  114. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/maven.adoc +0 -0
  115. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/minitest.adoc +0 -0
  116. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/playwright.adoc +0 -0
  117. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/prove.adoc +0 -0
  118. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/pytest.adoc +0 -0
  119. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/robot.adoc +0 -0
  120. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/rspec.adoc +0 -0
  121. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-languages/c-plus-plus.adoc +0 -0
  122. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-languages/dotnet.adoc +0 -0
  123. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-languages/go.adoc +0 -0
  124. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-languages/java.adoc +0 -0
  125. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-languages/javascript.adoc +0 -0
  126. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-languages/perl.adoc +0 -0
  127. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-languages/python.adoc +0 -0
  128. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-languages/ruby.adoc +0 -0
  129. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/appium.adoc +0 -0
  130. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/cucumber.adoc +0 -0
  131. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/googletest.adoc +0 -0
  132. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/jest.adoc +0 -0
  133. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/junit.adoc +0 -0
  134. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/minitest.adoc +0 -0
  135. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/nose.adoc +0 -0
  136. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/nunit.adoc +0 -0
  137. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/prove.adoc +0 -0
  138. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/robot.adoc +0 -0
  139. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/rspec.adoc +0 -0
  140. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/selenium.adoc +0 -0
  141. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/testng.adoc +0 -0
  142. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/vitest.adoc +0 -0
  143. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/archive/xctest.adoc +0 -0
  144. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/0607-inference.png +0 -0
  145. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/0607-subset-creation.png +0 -0
  146. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/0607-training.png +0 -0
  147. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/507088cf-209d-4856-be3e-60477c166d92.png +0 -0
  148. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/confidence-curve.png +0 -0
  149. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/customer-example-curve.png +0 -0
  150. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/data-flow.png +0 -0
  151. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/demo.gif +0 -0
  152. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/eval-sessions-prioritized.png +0 -0
  153. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/eval-sessions.png +0 -0
  154. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/flavors.png +0 -0
  155. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/github-comment.png +0 -0
  156. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/groups-2-record-after.png +0 -0
  157. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/hi-rate-fail-quarantine/auto-quarantine.png +0 -0
  158. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/hi-rate-fail-quarantine/failure-test.png +0 -0
  159. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/hi-rate-fail-quarantine/manual-quarantine.png +0 -0
  160. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/how-long-train-ml-model.png +0 -0
  161. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/icons/icon-vertical-three-dots-dark.png +0 -0
  162. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/illustion-run-whitelisted-tests-1.png +0 -0
  163. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/illustration-ignore-flakes-1.png +0 -0
  164. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/illustration-rotate-optimize-coverage.png +0 -0
  165. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/illustration-run-recently-failed-tests.png +0 -0
  166. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/in-place.png +0 -0
  167. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/link-to-results-example.png +0 -0
  168. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/model-training-evaluation-confidence-curves.png +0 -0
  169. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/new-code-existing-tests.png +0 -0
  170. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/object-model-june.png +0 -0
  171. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/object-model-v2.png +0 -0
  172. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/object-model.png +0 -0
  173. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/optimization-target.png +0 -0
  174. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/predictive-test-selection-observation-mode.png +0 -0
  175. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/prioritized-evaluation-session.png +0 -0
  176. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/pts/pts-observe.png +0 -0
  177. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/pts-v2-working.png +0 -0
  178. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/recording-data.png +0 -0
  179. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/recording-from-multiple-repos-built-separately-detailed.png +0 -0
  180. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/recording-from-multiple-repos-built-separately.png +0 -0
  181. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/recording-from-multiple-repos.png +0 -0
  182. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-07-25-at-20-41-20.png +0 -0
  183. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-07-25-at-20-44-15.png +0 -0
  184. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-07-25-at-20-45-10.png +0 -0
  185. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-08-22-at-22-50-49.png +0 -0
  186. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-04-29-at-1-48-30-pm.png +0 -0
  187. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-04-29-at-2-14-11-pm.png +0 -0
  188. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-4-50-56-pm.png +0 -0
  189. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-5-06-32-pm.png +0 -0
  190. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-5-09-04-pm.png +0 -0
  191. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-5-21-37-pm.png +0 -0
  192. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/sending-data/builds-dashboard.png +0 -0
  193. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/sending-data/create-api-key.png +0 -0
  194. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/sending-data/initial-settings.png +0 -0
  195. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/sending-data/organization-profile-id.png +0 -0
  196. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/sending-data/record-session.png +0 -0
  197. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/sending-data/test-session-interface.png +0 -0
  198. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/shift-left.png +0 -0
  199. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/single-session-compared.png +0 -0
  200. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/single-session-result.png +0 -0
  201. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/slack-desktop-with-app-messages.png +0 -0
  202. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/smart-subset-formation-flow.png +0 -0
  203. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/smart-tests-builds-interface-v1png.png +0 -0
  204. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/smart-tests-cli-3.png +0 -0
  205. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/smart-tests-monthly-time-saved.png +0 -0
  206. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/smart-tests_api_key_setting_20210613.png +0 -0
  207. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/smart-tests_invite_url_20220613.png +0 -0
  208. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/smart-tests_settings_20220613.png +0 -0
  209. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/subscription-ux.png +0 -0
  210. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/subset/dynamic-parallel.png +0 -0
  211. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/subset-creation.png +0 -0
  212. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/subset-exclude.png +0 -0
  213. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/subsetting-diagram-2x.png +0 -0
  214. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/target-line.png +0 -0
  215. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/test-insights-example.png +0 -0
  216. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/test-pyramid.png +0 -0
  217. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/test-runs-log.png +0 -0
  218. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition-2.png +0 -0
  219. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition-3.png +0 -0
  220. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition-4.png +0 -0
  221. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition.png +0 -0
  222. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/test-session-details-with-content.png +0 -0
  223. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/test-session-report-example.png +0 -0
  224. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/test-sessions-layout.png +0 -0
  225. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/testing-bottleneck-infinity.png +0 -0
  226. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/training-wheels.png +0 -0
  227. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/trends.png +0 -0
  228. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/triage-email-demo.avif +0 -0
  229. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/use-case-1.png +0 -0
  230. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/use-case-2.png +0 -0
  231. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/assets/images/zis-with-groups.png +0 -0
  232. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/nav.adoc +0 -0
  233. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/pages/getting-started.adoc +0 -0
  234. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/pages/index.adoc +0 -0
  235. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/partials/abbr.adoc +0 -0
  236. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/ROOT/partials/conditionals.adoc +0 -0
  237. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/administration/pages/data-examples.adoc +0 -0
  238. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/administration/pages/data-privacy-and-protection.adoc +0 -0
  239. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/administration/pages/security-policies.adoc +0 -0
  240. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/administration/pages/troubleshooting.adoc +0 -0
  241. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/concepts/pages/branch.adoc +0 -0
  242. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/concepts/pages/build.adoc +0 -0
  243. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/concepts/pages/insight.adoc +0 -0
  244. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/concepts/pages/object-model.adoc +0 -0
  245. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/concepts/pages/organization.adoc +0 -0
  246. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/concepts/pages/subset.adoc +0 -0
  247. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/concepts/pages/test-session.adoc +0 -0
  248. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/concepts/pages/test-suite.adoc +0 -0
  249. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/concepts/pages/workspace.adoc +0 -0
  250. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/features/pages/high-failure-rate-tests-and-quarantine.adoc +0 -0
  251. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/features/pages/intelligent-test-failure-diagnostics.adoc +0 -0
  252. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/features/pages/predictive-test-selection/how-we-select-tests.adoc +0 -0
  253. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/features/pages/predictive-test-selection/use-cases-for-predictive-test-selection.adoc +0 -0
  254. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/features/pages/predictive-test-selection/viewing-time-savings.adoc +0 -0
  255. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/features/pages/predictive-test-selection.adoc +0 -0
  256. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/features/pages/test-notifications/github-app-for-test-sessions.adoc +0 -0
  257. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/features/pages/test-notifications/test-notifications-via-slack.adoc +0 -0
  258. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/features/pages/test-notifications.adoc +0 -0
  259. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/features/pages/test-results-and-reports.adoc +0 -0
  260. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/features/pages/test-suite-parallelization.adoc +0 -0
  261. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/features/pages/test-trends-and-insights.adoc +0 -0
  262. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/references/pages/ai-assistance.adoc +0 -0
  263. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/references/pages/cli-reference.adoc +0 -0
  264. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/references/pages/cli-version.txt +0 -0
  265. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/references/pages/faq.adoc +0 -0
  266. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/references/pages/integrations/raw.adoc +0 -0
  267. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/references/pages/integrations/use-the-generic-file-based-runner-integration.adoc +0 -0
  268. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/references/pages/integrations.adoc +0 -0
  269. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/references/pages/onboarding-guide/best-practices-checklist.adoc +0 -0
  270. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/references/pages/onboarding-guide/optional-configurations.adoc +0 -0
  271. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/references/pages/onboarding-guide.adoc +0 -0
  272. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/references/pages/supported-languages.adoc +0 -0
  273. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/references/pages/supported-test-frameworks.adoc +0 -0
  274. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/choose-a-value-for-build-name.adoc +0 -0
  275. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/deal-with-shallow-clones.adoc +0 -0
  276. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/record-builds-for-microservices.adoc +0 -0
  277. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/record-builds-for-multistage-build.adoc +0 -0
  278. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/record-builds-from-multiple-repositories.adoc +0 -0
  279. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/record-builds.adoc +0 -0
  280. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/run-under-restricted-networks.adoc +0 -0
  281. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-sessions/record-sessions.adoc +0 -0
  282. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/attach-log-files.adoc +0 -0
  283. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/convert-test-reports-to-junit-format.adoc +0 -0
  284. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/ensure-record-tests-always-runs.adoc +0 -0
  285. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/manage-complex-test-session-layouts.adoc +0 -0
  286. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/record-test-results.adoc +0 -0
  287. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/separate-out-test-suites.adoc +0 -0
  288. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/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
  289. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/send-data-to-smart-tests.adoc +0 -0
  290. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/getting-started.adoc +0 -0
  291. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/migration-to-github-oidc-auth.adoc +0 -0
  292. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/use-the-cli-with-docker-image.adoc +0 -0
  293. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/choose-a-subset-optimization-target.adoc +0 -0
  294. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/combine-with-rule-based-test-selection.adoc +0 -0
  295. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/observe-subset-behavior.adoc +0 -0
  296. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/replace-static-parallel-suites-dynamic-parallel-subset.adoc +0 -0
  297. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/request-and-run-a-subset-of-tests.adoc +0 -0
  298. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/smart-subset-optimization-target.adoc +0 -0
  299. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/smart-tests-extension-for-VS-code.adoc +0 -0
  300. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/subset-predictive-test-selection.adoc +0 -0
  301. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/subset-with-the-smart-tests-cli.adoc +0 -0
  302. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/use-groups-to-split-subsets.adoc +0 -0
  303. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/zero-input-subsetting.adoc +0 -0
  304. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/plugins/__init__.py +0 -0
  305. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/schema/openapi-schema.json +0 -0
  306. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/__init__.py +0 -0
  307. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/adb.py +0 -0
  308. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/ant.py +0 -0
  309. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/bazel.py +0 -0
  310. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/behave.py +0 -0
  311. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/codeceptjs.py +0 -0
  312. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/ctest.py +0 -0
  313. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/cts.py +0 -0
  314. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/cucumber.py +0 -0
  315. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/cypress.py +0 -0
  316. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/dotnet.py +0 -0
  317. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/file.py +0 -0
  318. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/flutter.py +0 -0
  319. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/go_test.py +0 -0
  320. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/googletest.py +0 -0
  321. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/gradle.py +0 -0
  322. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/jasmine.py +0 -0
  323. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/jest.py +0 -0
  324. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/karma.py +0 -0
  325. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/maven.py +0 -0
  326. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/minitest.py +0 -0
  327. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/nunit.py +0 -0
  328. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/playwright.py +0 -0
  329. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/prove.py +0 -0
  330. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/pytest.py +0 -0
  331. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/raw.py +0 -0
  332. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/robot.py +0 -0
  333. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/rspec.py +0 -0
  334. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/smart_tests.py +0 -0
  335. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/vitest.py +0 -0
  336. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/test_runners/xctest.py +0 -0
  337. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/testpath.py +0 -0
  338. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/__init__.py +0 -0
  339. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/ci_provider.py +0 -0
  340. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/commands.py +0 -0
  341. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/commit_ingester.py +0 -0
  342. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/common_tz.py +0 -0
  343. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/edit_distance.py +0 -0
  344. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/exceptions.py +0 -0
  345. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/fail_fast_mode.py +0 -0
  346. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/file_name_pattern.py +0 -0
  347. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/git_log_parser.py +0 -0
  348. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/glob.py +0 -0
  349. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/gzipgen.py +0 -0
  350. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/http_client.py +0 -0
  351. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/input_snapshot.py +0 -0
  352. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/link.py +0 -0
  353. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/logger.py +0 -0
  354. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/no_build.py +0 -0
  355. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/sax.py +0 -0
  356. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/session.py +0 -0
  357. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/smart_tests_client.py +0 -0
  358. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/subprocess.py +0 -0
  359. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/tracking.py +0 -0
  360. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/utils/typer_types.py +0 -0
  361. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests/version.py +0 -0
  362. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests_cli.egg-info/dependency_links.txt +0 -0
  363. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests_cli.egg-info/entry_points.txt +0 -0
  364. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests_cli.egg-info/requires.txt +0 -0
  365. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/smart_tests_cli.egg-info/top_level.txt +0 -0
  366. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/BUILD +0 -0
  367. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/Authenticator.java +0 -0
  368. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/BUILD +0 -0
  369. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/BackgroundWorkStatus.java +0 -0
  370. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/BoundedExecutorService.java +0 -0
  371. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/ChunkStreamer.java +0 -0
  372. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/CommitChunkStreamer.java +0 -0
  373. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/CommitGraphCollector.java +0 -0
  374. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/ConcurrentConsumer.java +0 -0
  375. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/CountingDiffFormatter.java +0 -0
  376. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/FileChunkStreamer.java +0 -0
  377. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/FlushableConsumer.java +0 -0
  378. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/GitFile.java +0 -0
  379. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/GitHubActionsAuthenticator.java +0 -0
  380. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/IOConsumer.java +0 -0
  381. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/JSAsyncFileCollectionProgress.java +0 -0
  382. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/JSAsyncFileCollectionResponse.java +0 -0
  383. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/JSCommit.java +0 -0
  384. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/JSFileChange.java +0 -0
  385. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/LaunchableHttpClient.java +0 -0
  386. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/ObjectRevFilter.java +0 -0
  387. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/ProgressReporter.java +0 -0
  388. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/SSLBypass.java +0 -0
  389. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/TokenAuthenticator.java +0 -0
  390. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/TreeReceiver.java +0 -0
  391. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/main/java/com/launchableinc/ingest/commits/VirtualFile.java +0 -0
  392. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/maven_install.json +0 -0
  393. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/test/java/com/launchableinc/ingest/commits/AllTests.java +0 -0
  394. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/test/java/com/launchableinc/ingest/commits/BUILD +0 -0
  395. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/test/java/com/launchableinc/ingest/commits/BoundedExecutorServiceTest.java +0 -0
  396. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/test/java/com/launchableinc/ingest/commits/CommitGraphCollectorTest.java +0 -0
  397. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/test/java/com/launchableinc/ingest/commits/ConcurrentConsumerTest.java +0 -0
  398. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/test/java/com/launchableinc/ingest/commits/FileChunkStreamerTest.java +0 -0
  399. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/test/java/com/launchableinc/ingest/commits/GitFileTest.java +0 -0
  400. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/test/java/com/launchableinc/ingest/commits/MainTest.java +0 -0
  401. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/test/java/com/launchableinc/ingest/commits/PassThroughTreeReceiverImpl.java +0 -0
  402. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/test/java/com/launchableinc/ingest/commits/ProgressReporterTest.java +0 -0
  403. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/test/java/com/launchableinc/ingest/commits/SSLBypassTest.java +0 -0
  404. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/src/test/java/com/launchableinc/ingest/commits/java8-compat.sh +0 -0
  405. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/test-runner/__main__.py +0 -0
  406. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/__init__.py +0 -0
  407. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/args4p/__init__.py +0 -0
  408. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/args4p/converters/__init__.py +0 -0
  409. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/args4p/converters/test_converters.py +0 -0
  410. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/args4p/test_badcode.py +0 -0
  411. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/args4p/test_badinput.py +0 -0
  412. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/args4p/test_command.py +0 -0
  413. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/args4p/test_decorators.py +0 -0
  414. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/args4p/test_help.py +0 -0
  415. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/args4p/test_parameter.py +0 -0
  416. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/args4p/test_typer.py +0 -0
  417. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/cli_test_case.py +0 -0
  418. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/__init__.py +0 -0
  419. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/compare/__init__.py +0 -0
  420. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/compare/test_subsets.py +0 -0
  421. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/inspect/test_model.py +0 -0
  422. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/inspect/test_subset.py +0 -0
  423. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/inspect/test_tests.py +0 -0
  424. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/record/__init__.py +0 -0
  425. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/record/test_attachment.py +0 -0
  426. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/record/test_build.py +0 -0
  427. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/record/test_case_event.py +0 -0
  428. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/record/test_commit.py +0 -0
  429. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/record/test_deployment.py +0 -0
  430. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/record/test_session.py +0 -0
  431. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/record/test_tests.py +0 -0
  432. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/test_api_error.py +0 -0
  433. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/test_detect_flakes.py +0 -0
  434. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/test_gate.py +0 -0
  435. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/test_subset.py +0 -0
  436. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/test_view_flaky_tests.py +0 -0
  437. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/test_view_longest_tests.py +0 -0
  438. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/test_view_never_failing_tests.py +0 -0
  439. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/test_view_test_results.py +0 -0
  440. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/update/__init__.py +0 -0
  441. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/commands/update/test_alias.py +0 -0
  442. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/adb/subset_result.json +0 -0
  443. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/ant/junitreport/TEST-com.example.HelloWorldTest.xml +0 -0
  444. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/ant/junitreport/TEST-com.example.library.CacheTest.xml +0 -0
  445. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/ant/junitreport/TESTS-TestSuites.xml +0 -0
  446. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/ant/record_test_result.json +0 -0
  447. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/ant/src/com/example/HelloWorld.java +0 -0
  448. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/ant/src/com/example/HelloWorldTest.java +0 -0
  449. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/ant/src/com/example/library/Cache.java +0 -0
  450. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/ant/src/com/example/library/CacheTest.java +0 -0
  451. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/ant/subset_result.json +0 -0
  452. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.cache_status +0 -0
  453. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.log +0 -0
  454. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.xml +0 -0
  455. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test2/test.cache_status +0 -0
  456. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test2/test.xml +0 -0
  457. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test3/test.cache_status +0 -0
  458. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test3/test.xml +0 -0
  459. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test4/test.cache_status +0 -0
  460. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test4/test.xml +0 -0
  461. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test5/test.cache_status +0 -0
  462. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test5/test.xml +0 -0
  463. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test6/test.cache_status +0 -0
  464. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test6/test.xml +0 -0
  465. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test7/test.cache_status +0 -0
  466. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test7/test.xml +0 -0
  467. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test8/test.cache_status +0 -0
  468. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test8/test.xml +0 -0
  469. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test9/test.cache_status +0 -0
  470. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test9/test.xml +0 -0
  471. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/build_event.json +0 -0
  472. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/build_event_rest.json +0 -0
  473. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/record_test_result.json +0 -0
  474. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/record_test_with_build_event_json_result.json +0 -0
  475. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/record_test_with_multiple_build_event_json_result.json +0 -0
  476. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/bazel/subset_result.json +0 -0
  477. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/behave/record_test_result.json +0 -0
  478. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/behave/reports/report.xml +0 -0
  479. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/behave/subset_result.json +0 -0
  480. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/broken_xml/broken.xml +0 -0
  481. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/broken_xml/normal.xml +0 -0
  482. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/codeceptjs/codeceptjs-result.xml +0 -0
  483. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/codeceptjs/record_test_result.json +0 -0
  484. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/ctest/Testing/latest/Test.xml +0 -0
  485. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/ctest/ctest_list.json +0 -0
  486. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/ctest/record_test_result.json +0 -0
  487. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/ctest/subset_result.json +0 -0
  488. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cts/record_test_result.json +0 -0
  489. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cts/subset_result.json +0 -0
  490. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cts/test_result.xml +0 -0
  491. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cucumber/features/foo/bar.feature +0 -0
  492. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cucumber/features/foo/is_it_friday_yet.feature +0 -0
  493. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cucumber/features/foo-bar.feature +0 -0
  494. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cucumber/features/is_it_friday_yet.feature +0 -0
  495. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cucumber/record_test_json_result.json +0 -0
  496. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cucumber/record_test_result.json +0 -0
  497. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cucumber/report/TEST-features-foo-bar.xml +0 -0
  498. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cucumber/report/TEST-features-foo-is_it_friday_yet.xml +0 -0
  499. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cucumber/report/TEST-features-is_it_friday_yet.xml +0 -0
  500. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cucumber/report/dummy.xml +0 -0
  501. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cucumber/report/result.json +0 -0
  502. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cypress/empty.json +0 -0
  503. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cypress/empty.xml +0 -0
  504. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cypress/record_test_result.json +0 -0
  505. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cypress/subset_result.json +0 -0
  506. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/cypress/test-result.xml +0 -0
  507. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/dotnet/junit-result-with-metadata.xml +0 -0
  508. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/dotnet/junit-result.xml +0 -0
  509. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/dotnet/record_test_result-junit-with-metadata.json +0 -0
  510. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/dotnet/record_test_result-junit.json +0 -0
  511. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/dotnet/record_test_result.json +0 -0
  512. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/dotnet/test-result.xml +0 -0
  513. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/file/record_test_result.json +0 -0
  514. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/file/record_test_result_custom_attribute.json +0 -0
  515. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/file/result.xml +0 -0
  516. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/file/result_custom_attribute.xml +0 -0
  517. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/flutter/record_test_result.json +0 -0
  518. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/flutter/report.json +0 -0
  519. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/git_log_ingest/sample.out +0 -0
  520. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/go_test/record_test_result.json +0 -0
  521. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/go_test/reportv1/reportv1.xml +0 -0
  522. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/go_test/reportv2/reportv2.xml +0 -0
  523. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/go_test/subset_result.json +0 -0
  524. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/googletest/fail/output.xml +0 -0
  525. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/googletest/fail/record_test_result.json +0 -0
  526. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/googletest/output_a.xml +0 -0
  527. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/googletest/output_b.xml +0 -0
  528. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/googletest/record_test_result.json +0 -0
  529. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/googletest/subset_result.json +0 -0
  530. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/gradle/java/app/src/test/java/com/example/sample_app_gradle/App2Test.java +0 -0
  531. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/gradle/java/app/src/test/java/com/example/sample_app_gradle/AppTest.java +0 -0
  532. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/gradle/java/app/src/test/java/com/example/sample_app_gradle/sub/App3Test.java +0 -0
  533. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/gradle/recursion/expected.json +0 -0
  534. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/gradle/recursion/foo/bar/reports/1.xml +0 -0
  535. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/jasmine/README.md +0 -0
  536. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/jasmine/jasmine-test-results-v3.99.0.json +0 -0
  537. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/jasmine/jasmine-test-results.json +0 -0
  538. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/jasmine/record_test_result.json +0 -0
  539. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/jasmine/subset_payload.json +0 -0
  540. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/jest/junit.xml +0 -0
  541. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/jest/record_test_result.json +0 -0
  542. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/jest/subset_result.json +0 -0
  543. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/karma/README.md +0 -0
  544. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/karma/record_test_result.json +0 -0
  545. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/karma/sample-report.json +0 -0
  546. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/karma/subset_payload.json +0 -0
  547. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/karma/subset_result.json +0 -0
  548. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/createdFile_1.lst +0 -0
  549. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/createdFile_2.lst +0 -0
  550. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/dryrun-test/target/surefire-reports/TEST-com.example.demo.CalculatorTest.xml +0 -0
  551. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/dryrun-test/target/surefire-reports/TEST-com.example.demo.UserTest.xml +0 -0
  552. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/java/test/src/java/com/example/sample_app_maven/App2Test.java +0 -0
  553. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/java/test/src/java/com/example/sample_app_maven/AppTest.java +0 -0
  554. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/java/test/src/java/com/launchableinc/rocket_car_maven/e2e/E2ETest.java +0 -0
  555. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/list.lst +0 -0
  556. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/record_test_result.json +0 -0
  557. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/reports/TEST-1.xml +0 -0
  558. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/reports/TEST-2.xml +0 -0
  559. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/reports/TEST-nested.xml +0 -0
  560. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/reports/dummy.xml +0 -0
  561. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/subset_by_absolute_time_result.json +0 -0
  562. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/subset_by_confidence_result.json +0 -0
  563. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/subset_from_file_result.json +0 -0
  564. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/subset_result.json +0 -0
  565. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/subset_scan_dryrun_results_result.json +0 -0
  566. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/subset_scan_test_compile_lst_result.json +0 -0
  567. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/maven/subset_with_exclude_rules_result.json +0 -0
  568. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/minitest/TEST-Admin_UserTest.xml +0 -0
  569. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/minitest/TEST-Admin_UserTest_ChildlenTest.xml +0 -0
  570. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/minitest/TEST-UserControllerTest.xml +0 -0
  571. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/minitest/TEST-UserCopyTest.xml +0 -0
  572. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/minitest/TEST-UserTest.xml +0 -0
  573. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/minitest/record_test_result.json +0 -0
  574. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/minitest/record_test_result_chunk1.json +0 -0
  575. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/minitest/record_test_result_chunk2.json +0 -0
  576. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/minitest/subset_result.json +0 -0
  577. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/minitest/test/example_test.rb +0 -0
  578. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/nunit/list.xml +0 -0
  579. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/nunit/nunit-reporter-bug-with-nested-type.json +0 -0
  580. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/nunit/nunit-reporter-bug-with-nested-type.xml +0 -0
  581. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/nunit/output-linux.xml +0 -0
  582. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/nunit/output-windows.xml +0 -0
  583. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/nunit/record_test_result-linux.json +0 -0
  584. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/nunit/record_test_result-windows.json +0 -0
  585. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/nunit/src/.gitignore +0 -0
  586. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/nunit/src/Program.cs +0 -0
  587. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/nunit/src/README.md +0 -0
  588. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/nunit/src/Test.cs +0 -0
  589. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/nunit/src/calc.csproj +0 -0
  590. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/nunit/subset_result.json +0 -0
  591. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/playwright/packages/e2e/.gitkeep +0 -0
  592. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/playwright/playwright.config.ts +0 -0
  593. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/playwright/record_test_result.json +0 -0
  594. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/playwright/record_test_result_with_json.json +0 -0
  595. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/playwright/record_test_result_with_json_base.json +0 -0
  596. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/playwright/record_test_result_with_prefix.json +0 -0
  597. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/playwright/report.json +0 -0
  598. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/playwright/report.xml +0 -0
  599. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/playwright/report_with_json_base.json +0 -0
  600. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/playwright/report_with_prefix.json +0 -0
  601. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/prove/record_test_result.json +0 -0
  602. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/prove/report.xml +0 -0
  603. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/pytest/pytest.ini +0 -0
  604. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/pytest/record_test_result.json +0 -0
  605. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/pytest/record_test_result_json.json +0 -0
  606. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/pytest/report.json +0 -0
  607. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/pytest/report.xml +0 -0
  608. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/pytest/subset_result.json +0 -0
  609. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/pytest/tests/conftest.py +0 -0
  610. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/pytest/tests/fooo/__init__.py +0 -0
  611. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/pytest/tests/fooo/filenameonly_test.py +0 -0
  612. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/pytest/tests/fooo/func4_test.py +0 -0
  613. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/pytest/tests/funcs3_test.py +0 -0
  614. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/pytest/tests/test_funcs1.py +0 -0
  615. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/pytest/tests/test_funcs2.py +0 -0
  616. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/robot/dryrun.xml +0 -0
  617. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/robot/output.xml +0 -0
  618. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/robot/output_legacy.xml +0 -0
  619. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/robot/record_test_executed_only_one_file_result.json +0 -0
  620. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/robot/record_test_legacy_result.json +0 -0
  621. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/robot/record_test_result.json +0 -0
  622. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/robot/single-output.xml +0 -0
  623. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/robot/subset_result.json +0 -0
  624. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/rspec/record_test_result.json +0 -0
  625. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/rspec/rspec.xml +0 -0
  626. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/vitest/record_test_result.json +0 -0
  627. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/vitest/report.xml +0 -0
  628. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/xctest/junit.xml +0 -0
  629. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/xctest/record_test_result.json +0 -0
  630. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/data/xctest/subset_result.json +0 -0
  631. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/helper.py +0 -0
  632. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/plugins/foo.py +0 -0
  633. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_cli_test_case.py +0 -0
  634. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_plugin.py +0 -0
  635. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/__init__.py +0 -0
  636. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_adb.py +0 -0
  637. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_ant.py +0 -0
  638. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_bazel.py +0 -0
  639. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_behave.py +0 -0
  640. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_codeceptjs.py +0 -0
  641. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_ctest.py +0 -0
  642. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_cts.py +0 -0
  643. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_cucumber.py +0 -0
  644. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_cypress.py +0 -0
  645. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_dotnet.py +0 -0
  646. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_file.py +0 -0
  647. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_go_test.py +0 -0
  648. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_googletest.py +0 -0
  649. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_gradle.py +0 -0
  650. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_jasmine.py +0 -0
  651. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_jest.py +0 -0
  652. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_karma.py +0 -0
  653. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_minitest.py +0 -0
  654. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_nunit.py +0 -0
  655. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_playwright.py +0 -0
  656. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_prove.py +0 -0
  657. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_pytest.py +0 -0
  658. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_raw.py +0 -0
  659. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_robot.py +0 -0
  660. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_rspec.py +0 -0
  661. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_vitest.py +0 -0
  662. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_runners/test_xctest.py +0 -0
  663. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_testpath.py +0 -0
  664. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/test_version.py +0 -0
  665. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/utils/__init__.py +0 -0
  666. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/utils/test_edit_distance.py +0 -0
  667. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/utils/test_fail_fast_mode.py +0 -0
  668. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/utils/test_file_name_pattern.py +0 -0
  669. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/utils/test_git_log_parser.py +0 -0
  670. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/utils/test_glob.py +0 -0
  671. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/utils/test_gzipgen.py +0 -0
  672. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/utils/test_http_client.py +0 -0
  673. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/utils/test_link.py +0 -0
  674. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/utils/test_logger.py +0 -0
  675. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/utils/test_session.py +0 -0
  676. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/utils/test_tracking.py +0 -0
  677. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/utils/test_typer.py +0 -0
  678. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tests/utils/test_typer_types.py +0 -0
  679. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tools/README.md +0 -0
  680. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/tools/generate_reference.py +0 -0
  681. {smart_tests_cli-2.15.0 → smart_tests_cli-2.15.1}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: smart-tests-cli
3
- Version: 2.15.0
3
+ Version: 2.15.1
4
4
  Summary: Smart Tests CLI
5
5
  Author-email: CloudBees <support@cloudbees.com>
6
6
  License: Apache Software License v2
@@ -18,7 +18,7 @@ from .. import args4p
18
18
  from ..app import Application
19
19
  from ..utils.authentication import ensure_org_workspace, get_oidc_token, get_org_workspace
20
20
  from ..utils.commands import Command
21
- from ..utils.env_keys import OIDC_TOKEN_KEY, ORGANIZATION_KEY, TOKEN_KEY, WORKSPACE_KEY
21
+ from ..utils.env_keys import GITHUB_OIDC_KEY, LEGACY_GITHUB_OIDC_KEY, OIDC_TOKEN_KEY, ORGANIZATION_KEY, TOKEN_KEY, WORKSPACE_KEY
22
22
  from ..utils.http_client import DEFAULT_GET_TIMEOUT, _HttpClient
23
23
  from ..utils.java import get_java_command
24
24
  from ..utils.smart_tests_client import SmartTestsClient
@@ -204,20 +204,27 @@ def verify_oidc(app_instance: Application):
204
204
  Credential-free OIDC bootstrap. Presents the pipeline's OIDC id-token to Intake's
205
205
  /intake/oidc/verify endpoint and translates the 200/403/401 contract into CLI behavior:
206
206
 
207
- - 200: the subject is registered. Print `export` lines (org/workspace/oidc-token) so the
208
- pipeline can `eval "$(smart-tests verify --oidc)"` and authenticate subsequent
209
- commands with the same token. Exit 0.
207
+ - 200: the subject is registered. Print `export` lines (org/workspace, plus the OIDC token
208
+ when it is a fixed pass-through value) so the pipeline can
209
+ `eval "$(smart-tests verify --oidc)"` and authenticate subsequent commands. Exit 0.
210
210
  - 403: the token verified but its subject isn't registered to any workspace yet. Show the
211
211
  normalized `sub` so the user can register it from the WebApp settings. Exit 1.
212
212
  - 401: the token is missing/expired/invalid. Exit 1.
213
213
  '''
214
214
  tracking_client = TrackingClient(Command.VERIFY, app=app_instance)
215
215
 
216
- token = get_oidc_token()
217
- if not token:
218
- msg = (f"OIDC authentication requires the {OIDC_TOKEN_KEY} environment variable to hold the "
219
- "pipeline's OIDC id-token. In Jenkins, bind an id-token credential to this variable; "
220
- "see the OIDC pipeline-authentication setup guide.")
216
+ # authentication_headers() supplies the bearer for the request below; here we only confirm an OIDC
217
+ # flow is configured (fail fast) and decide whether the token can be echoed back. A pass-through
218
+ # token (SMART_TESTS_OIDC_TOKEN, e.g. a Jenkins-bound credential) is a fixed value we re-export;
219
+ # the GitHub flows mint a short-lived token per request, so exporting one here would only leave a
220
+ # stale value behind.
221
+ passthrough_token = get_oidc_token()
222
+ github_oidc_configured = os.getenv(GITHUB_OIDC_KEY) or os.getenv(LEGACY_GITHUB_OIDC_KEY)
223
+ if not passthrough_token and not github_oidc_configured:
224
+ msg = (f"OIDC authentication requires an OIDC flow to be configured: set {OIDC_TOKEN_KEY} to "
225
+ "the pipeline's OIDC id-token (e.g. a Jenkins-bound credential), or set "
226
+ f"{GITHUB_OIDC_KEY}=1 in GitHub Actions to fetch one automatically. "
227
+ "See the OIDC pipeline-authentication setup guide.")
221
228
  click.secho(msg, fg='red', err=True)
222
229
  tracking_client.send_error_event(
223
230
  event_name=Tracking.ErrorEvent.USER_ERROR,
@@ -296,11 +303,13 @@ def verify_oidc(app_instance: Application):
296
303
 
297
304
  # Emit eval-able export lines so the pipeline can hydrate its environment:
298
305
  # eval "$(smart-tests verify --oidc)"
299
- # Subsequent commands then read org/workspace from these vars and present the same OIDC token
300
- # (kept in SMART_TESTS_OIDC_TOKEN) as their bearer.
306
+ # Subsequent commands read org/workspace from these vars. For a pass-through token we also
307
+ # re-export it as the bearer; the GitHub flows re-mint a fresh short-lived token per request in
308
+ # authentication_headers(), so exporting one here would only leave a stale value behind.
301
309
  click.echo(f'export {ORGANIZATION_KEY}={_shell_quote(org)}')
302
310
  click.echo(f'export {WORKSPACE_KEY}={_shell_quote(workspace)}')
303
- click.echo(f'export {OIDC_TOKEN_KEY}={_shell_quote(token)}')
311
+ if passthrough_token:
312
+ click.echo(f'export {OIDC_TOKEN_KEY}={_shell_quote(passthrough_token)}')
304
313
  click.secho(
305
314
  f"OIDC authentication verified for organization {org!r}, workspace {workspace!r}" + emoji(" \U0001f389"),
306
315
  fg='green', err=True)
@@ -0,0 +1,155 @@
1
+ import os
2
+ from typing import Optional, Tuple
3
+ from urllib.parse import quote
4
+
5
+ import click
6
+ import requests
7
+
8
+ import smart_tests.args4p.typer as typer
9
+
10
+ from .env_keys import (GITHUB_OIDC_KEY, LEGACY_GITHUB_OIDC_KEY, OIDC_AUDIENCE_KEY,
11
+ OIDC_TOKEN_KEY, ORGANIZATION_KEY, WORKSPACE_KEY, get_token)
12
+
13
+ # Default audience Intake expects in an OIDC id-token (launchableinc.intake.oidc.audience).
14
+ DEFAULT_OIDC_AUDIENCE = "https://app.cloudbees.io/smart-tests"
15
+ # Header the CLI sends to opt into Intake's deprecated GitHub Actions OIDC path. Absent it, a
16
+ # GitHub-issued token is verified through the generic OIDC path. Mirrors RESTAuthConverter.
17
+ LEGACY_GITHUB_OIDC_HEADER = "GitHub-OIDC-Legacy"
18
+
19
+ # authentication_headers() runs on every API request, so guard the legacy deprecation notice to
20
+ # print at most once per process instead of once per request.
21
+ _legacy_oidc_warning_shown = False
22
+
23
+
24
+ def get_org_workspace():
25
+ '''
26
+ Returns (org,ws) tuple from LAUNCHABLE_TOKEN, or (None,None) if not found.
27
+ Use ensure_org_workspace() if this is supposed to be an error condition
28
+ '''
29
+ token = get_token()
30
+ if token:
31
+ try:
32
+ _, user, _ = token.split(":", 2)
33
+ org, workspace = user.split("/", 1)
34
+ return org, workspace
35
+ except ValueError:
36
+ click.secho("Invalid value in LAUNCHABLE_TOKEN environment variable.", fg="red")
37
+ raise typer.Exit(1)
38
+
39
+ return os.getenv(ORGANIZATION_KEY), os.getenv(WORKSPACE_KEY)
40
+
41
+
42
+ def ensure_org_workspace() -> Tuple[str, str]:
43
+ org, workspace = get_org_workspace()
44
+ if org is None or workspace is None:
45
+ click.secho(
46
+ "Could not identify Smart Tests organization/workspace. "
47
+ "Please confirm if you set SMART_TESTS_TOKEN "
48
+ "(or LAUNCHABLE_TOKEN for backward compatibility) or SMART_TESTS_ORGANIZATION and "
49
+ "SMART_TESTS_WORKSPACE environment variables", fg='red', err=True)
50
+ raise typer.Exit(1)
51
+ return org, workspace
52
+
53
+
54
+ def get_oidc_token():
55
+ '''
56
+ Returns the CI-issued OIDC id-token (e.g. a Jenkins-minted RS256 JWT) from the environment,
57
+ or None if not set. This is the same token `smart-tests verify --oidc` exchanges for an
58
+ org/workspace, and the one subsequent workspace-scoped calls present as their bearer.
59
+ '''
60
+ return os.getenv(OIDC_TOKEN_KEY)
61
+
62
+
63
+ def authentication_headers():
64
+ token = get_token()
65
+ if token:
66
+ return {'Authorization': f'Bearer {token}'}
67
+
68
+ # A pipeline that authenticated via `verify --oidc` carries no SMART_TESTS_TOKEN; it presents
69
+ # its OIDC id-token directly. Intake routes this by `iss` (RESTAuthVerifier) to the generic OIDC
70
+ # verifier, so subsequent workspace-scoped calls authenticate with the same JWT.
71
+ oidc_token = get_oidc_token()
72
+ if oidc_token:
73
+ return {'Authorization': f'Bearer {oidc_token}'}
74
+
75
+ # Generic GitHub Actions OIDC: fetch the id-token minted for the Smart Tests audience and present
76
+ # it like any other OIDC token. Intake routes by `iss` to the generic verifier and matches the
77
+ # normalized `repo:OWNER/REPO` subject against trusted_oidc_subjects. The audience is required
78
+ # here because the generic path enforces `aud` for GitHub's issuer.
79
+ if os.getenv(GITHUB_OIDC_KEY):
80
+ id_token = _fetch_github_id_token(audience=_expected_oidc_audience())
81
+ return {'Authorization': f'Bearer {id_token}'}
82
+
83
+ # Deprecated legacy GitHub Actions OIDC: Intake matches the `repository` claim against
84
+ # trusted_github_repositories. The legacy path never checks `aud`, so no audience is requested.
85
+ # The header tells Intake to take the legacy branch; without it the token would be verified
86
+ # through the generic path.
87
+ if os.getenv(LEGACY_GITHUB_OIDC_KEY):
88
+ global _legacy_oidc_warning_shown
89
+ if not _legacy_oidc_warning_shown:
90
+ _legacy_oidc_warning_shown = True
91
+ click.secho(
92
+ f"{LEGACY_GITHUB_OIDC_KEY} enables the deprecated GitHub Actions OIDC flow. Migrate "
93
+ f"by registering your repository as a Trusted OIDC subject and switching to "
94
+ f"{GITHUB_OIDC_KEY}=1. See "
95
+ "https://docs.cloudbees.com/docs/cloudbees-smart-tests/latest/send-data-to-smart-tests/set-up-smart-tests/migration-to-github-oidc-auth", # noqa: E501
96
+ fg='yellow', err=True)
97
+ id_token = _fetch_github_id_token()
98
+ return {
99
+ 'Authorization': f'Bearer {id_token}',
100
+ LEGACY_GITHUB_OIDC_HEADER: '1',
101
+ }
102
+
103
+ if os.getenv('GITHUB_ACTIONS'):
104
+ headers = {
105
+ 'GitHub-Actions': os.environ['GITHUB_ACTIONS'],
106
+ 'GitHub-Run-Id': os.environ['GITHUB_RUN_ID'],
107
+ 'GitHub-Repository': os.environ['GITHUB_REPOSITORY'],
108
+ 'GitHub-Workflow': os.environ['GITHUB_WORKFLOW'],
109
+ 'GitHub-Run-Number': os.environ['GITHUB_RUN_NUMBER'],
110
+ 'GitHub-Event-Name': os.environ['GITHUB_EVENT_NAME'],
111
+ 'GitHub-Sha': os.environ['GITHUB_SHA'],
112
+ }
113
+
114
+ # GITHUB_PR_HEAD_SHA might not exist
115
+ pr_head_sha = os.getenv('GITHUB_PR_HEAD_SHA')
116
+ if pr_head_sha:
117
+ headers['GitHub-Pr-Head-Sha'] = pr_head_sha
118
+
119
+ return headers
120
+ return {}
121
+
122
+
123
+ def _expected_oidc_audience() -> str:
124
+ '''Audience the GitHub id-token must carry for Intake's generic OIDC path to accept it.'''
125
+ return os.getenv(OIDC_AUDIENCE_KEY) or DEFAULT_OIDC_AUDIENCE
126
+
127
+
128
+ def _fetch_github_id_token(audience: Optional[str] = None) -> str:
129
+ '''
130
+ Retrieve a GitHub Actions OIDC id-token via the runner's token endpoint.
131
+
132
+ Requires the `id-token: write` workflow permission, which populates ACTIONS_ID_TOKEN_REQUEST_URL
133
+ and ACTIONS_ID_TOKEN_REQUEST_TOKEN. When `audience` is given it is requested so the token's `aud`
134
+ claim matches what Intake expects (the generic OIDC path enforces it); the legacy path omits it.
135
+ '''
136
+ req_url = os.getenv('ACTIONS_ID_TOKEN_REQUEST_URL')
137
+ rt_token = os.getenv('ACTIONS_ID_TOKEN_REQUEST_TOKEN')
138
+ if not req_url or not rt_token:
139
+ click.secho(
140
+ "GitHub Actions OIDC tokens cannot be retrieved."
141
+ "Confirm that you have added necessary permissions following "
142
+ "https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers#adding-permissions-settings", # noqa: E501
143
+ fg='red', err=True)
144
+ raise typer.Exit(1)
145
+ if audience:
146
+ sep = '&' if '?' in req_url else '?'
147
+ req_url = f"{req_url}{sep}audience={quote(audience, safe='')}"
148
+ r = requests.get(req_url,
149
+ headers={
150
+ 'Authorization': f'Bearer {rt_token}',
151
+ 'Accept': 'application/json; api-version=2.0',
152
+ 'Content-Type': 'application/json',
153
+ })
154
+ r.raise_for_status()
155
+ return r.json()['value']
@@ -9,6 +9,16 @@ OIDC_TOKEN_KEY = "SMART_TESTS_OIDC_TOKEN"
9
9
  ORGANIZATION_KEY = "SMART_TESTS_ORGANIZATION"
10
10
  WORKSPACE_KEY = "SMART_TESTS_WORKSPACE"
11
11
  BASE_URL_KEY = "SMART_TESTS_BASE_URL"
12
+ # Opt in to the generic GitHub Actions OIDC flow: the CLI fetches the GitHub id-token and presents
13
+ # it like any other OIDC token. Intake verifies it against trusted_oidc_subjects (self-serve in the
14
+ # webapp) instead of the deprecated trusted_github_repositories path. See authentication_headers().
15
+ GITHUB_OIDC_KEY = "SMART_TESTS_GITHUB_OIDC_TOKEN_AUTH"
16
+ # Deprecated opt in to the legacy GitHub Actions OIDC flow (repository-claim matching). Kept working
17
+ # for backward compatibility; when set, the CLI signals Intake to use the legacy path via a header.
18
+ LEGACY_GITHUB_OIDC_KEY = "EXPERIMENTAL_GITHUB_OIDC_TOKEN_AUTH"
19
+ # Audience the GitHub id-token must be minted for so the generic OIDC path's aud check passes.
20
+ # Overridable for non-production Intake environments.
21
+ OIDC_AUDIENCE_KEY = "SMART_TESTS_OIDC_AUDIENCE"
12
22
  SKIP_TIMEOUT_RETRY = "SMART_TESTS_SKIP_TIMEOUT_RETRY"
13
23
  COMMIT_TIMEOUT = "SMART_TESTS_COMMIT_TIMEOUT"
14
24
  SKIP_CERT_VERIFICATION = "SMART_TESTS_SKIP_CERT_VERIFICATION"
@@ -48,6 +48,12 @@ def junit5_nested_class_path_builder(
48
48
  Note: Launchable allows $ in test paths. But we decided to remove it in this case
49
49
  because $ in the class name is not a common case.
50
50
 
51
+ Separately, when a @Nested class carries an explicit @DisplayName, Surefire (>= ~3.5.x)
52
+ drops the outer class name from the `classname` attribute entirely and reports just the
53
+ @DisplayName value (e.g. classname="addFollowList", with no dot and no $). In that case we
54
+ fall back to the enclosing <testsuite name="..."> attribute, which is always the outer
55
+ class's fully-qualified name.
56
+
51
57
  Args:
52
58
  default_path_builder: The original path builder function to wrap
53
59
 
@@ -56,6 +62,17 @@ def junit5_nested_class_path_builder(
56
62
  """
57
63
  def path_builder(case: TestCase, suite: TestSuite, report_file: str) -> TestPath:
58
64
  test_path = default_path_builder(case, suite, report_file)
59
- return [{**item, "name": item["name"].split("$")[0]} if item["type"] == "class" else item for item in test_path]
65
+
66
+ def fix_class(item):
67
+ if item["type"] != "class":
68
+ return item
69
+ name = item["name"]
70
+ if "." not in name:
71
+ suite_name = suite._elem.attrib.get("name")
72
+ if suite_name and "." in suite_name:
73
+ name = suite_name
74
+ return {**item, "name": name.split("$")[0]}
75
+
76
+ return [fix_class(item) for item in test_path]
60
77
 
61
78
  return path_builder
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: smart-tests-cli
3
- Version: 2.15.0
3
+ Version: 2.15.1
4
4
  Summary: Smart Tests CLI
5
5
  Author-email: CloudBees <support@cloudbees.com>
6
6
  License: Apache Software License v2
@@ -546,6 +546,7 @@ tests/data/karma/subset_result.json
546
546
  tests/data/maven/createdFile_1.lst
547
547
  tests/data/maven/createdFile_2.lst
548
548
  tests/data/maven/list.lst
549
+ tests/data/maven/record_test_nested_displayname_result.json
549
550
  tests/data/maven/record_test_result.json
550
551
  tests/data/maven/subset_by_absolute_time_result.json
551
552
  tests/data/maven/subset_by_confidence_result.json
@@ -563,6 +564,7 @@ tests/data/maven/reports/TEST-1.xml
563
564
  tests/data/maven/reports/TEST-2.xml
564
565
  tests/data/maven/reports/TEST-nested.xml
565
566
  tests/data/maven/reports/dummy.xml
567
+ tests/data/maven/reports-nested-displayname/TEST-nested-displayname.xml
566
568
  tests/data/minitest/TEST-Admin_UserTest.xml
567
569
  tests/data/minitest/TEST-Admin_UserTest_ChildlenTest.xml
568
570
  tests/data/minitest/TEST-UserControllerTest.xml
@@ -539,7 +539,9 @@
539
539
  "tests/data/maven/java/test/src/java/com/example/sample_app_maven/AppTest.java",
540
540
  "tests/data/maven/java/test/src/java/com/launchableinc/rocket_car_maven/e2e/E2ETest.java",
541
541
  "tests/data/maven/list.lst",
542
+ "tests/data/maven/record_test_nested_displayname_result.json",
542
543
  "tests/data/maven/record_test_result.json",
544
+ "tests/data/maven/reports-nested-displayname/TEST-nested-displayname.xml",
543
545
  "tests/data/maven/reports/TEST-1.xml",
544
546
  "tests/data/maven/reports/TEST-2.xml",
545
547
  "tests/data/maven/reports/TEST-nested.xml",
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "2.15.1",
3
+ "distance": 0,
4
+ "node": "ga228846b9d3b9fa01d2612f6094402c40af16362",
5
+ "dirty": false,
6
+ "branch": "main",
7
+ "node_date": "2026-09-29"
8
+ }
@@ -6,6 +6,9 @@ import com.google.common.base.Strings;
6
6
  import com.google.common.collect.ImmutableList;
7
7
  import java.io.IOException;
8
8
  import java.io.UncheckedIOException;
9
+ import java.io.UnsupportedEncodingException;
10
+ import java.net.URLEncoder;
11
+ import java.nio.charset.StandardCharsets;
9
12
  import org.apache.http.Header;
10
13
  import org.apache.http.client.methods.CloseableHttpResponse;
11
14
  import org.apache.http.client.methods.HttpGet;
@@ -15,10 +18,29 @@ import org.apache.http.message.BasicHeader;
15
18
  import org.kohsuke.args4j.CmdLineException;
16
19
 
17
20
  public class GitHubIdTokenAuthenticator implements Authenticator {
21
+ // Default audience Intake expects in an OIDC id-token (launchableinc.intake.oidc.audience).
22
+ // Mirrors the Python CLI's DEFAULT_OIDC_AUDIENCE.
23
+ static final String DEFAULT_OIDC_AUDIENCE = "https://app.cloudbees.io/smart-tests";
24
+ // Header the CLI sends to opt into Intake's deprecated GitHub Actions OIDC path. Absent it, a
25
+ // GitHub-issued token is verified through the generic OIDC path. Mirrors RESTAuthConverter.
26
+ static final String LEGACY_GITHUB_OIDC_HEADER = "GitHub-OIDC-Legacy";
27
+
18
28
  private static final ObjectMapper objectMapper = new ObjectMapper();
19
29
  private final String idToken;
30
+ private final boolean legacy;
20
31
 
21
- public GitHubIdTokenAuthenticator() throws CmdLineException {
32
+ /**
33
+ * Retrieves a GitHub Actions OIDC id-token via the runner's token endpoint.
34
+ *
35
+ * @param audience When non-empty, requested so the token's {@code aud} claim matches what
36
+ * Intake's generic OIDC path enforces. Pass {@code null}/empty for the legacy path, which
37
+ * never checks {@code aud}.
38
+ * @param legacy When true, signals Intake to take the deprecated GitHub Actions OIDC path via the
39
+ * {@link #LEGACY_GITHUB_OIDC_HEADER} header; without it the token is verified through the
40
+ * generic path.
41
+ */
42
+ public GitHubIdTokenAuthenticator(String audience, boolean legacy) throws CmdLineException {
43
+ this.legacy = legacy;
22
44
  String reqUrl = System.getenv("ACTIONS_ID_TOKEN_REQUEST_URL");
23
45
  String rtToken = System.getenv("ACTIONS_ID_TOKEN_REQUEST_TOKEN");
24
46
  if (Strings.isNullOrEmpty(reqUrl) || Strings.isNullOrEmpty(rtToken)) {
@@ -28,6 +50,11 @@ public class GitHubIdTokenAuthenticator implements Authenticator {
28
50
  + "https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers#adding-permissions-settings");
29
51
  }
30
52
 
53
+ if (!Strings.isNullOrEmpty(audience)) {
54
+ String sep = reqUrl.contains("?") ? "&" : "?";
55
+ reqUrl = reqUrl + sep + "audience=" + encode(audience);
56
+ }
57
+
31
58
  HttpGet request = new HttpGet(reqUrl);
32
59
  request.setHeader("Authorization", "Bearer " + rtToken);
33
60
  request.setHeader("Accept", "applicaiton/json; api-version=2.0");
@@ -49,7 +76,21 @@ public class GitHubIdTokenAuthenticator implements Authenticator {
49
76
 
50
77
  @Override
51
78
  public ImmutableList<Header> getAuthenticationHeaders() {
52
- return ImmutableList.of(new BasicHeader("Authorization", "Bearer " + idToken));
79
+ ImmutableList.Builder<Header> headers = ImmutableList.builder();
80
+ headers.add(new BasicHeader("Authorization", "Bearer " + idToken));
81
+ if (legacy) {
82
+ headers.add(new BasicHeader(LEGACY_GITHUB_OIDC_HEADER, "1"));
83
+ }
84
+ return headers.build();
85
+ }
86
+
87
+ private static String encode(String value) {
88
+ try {
89
+ return URLEncoder.encode(value, StandardCharsets.UTF_8.name());
90
+ } catch (UnsupportedEncodingException e) {
91
+ // UTF-8 is always supported.
92
+ throw new AssertionError(e);
93
+ }
53
94
  }
54
95
 
55
96
  @JsonIgnoreProperties(ignoreUnknown = true)
@@ -1,6 +1,7 @@
1
1
  package com.launchableinc.ingest.commits;
2
2
 
3
3
  import com.google.common.annotations.VisibleForTesting;
4
+ import com.google.common.base.Strings;
4
5
  import java.io.File;
5
6
  import java.io.IOException;
6
7
  import java.net.MalformedURLException;
@@ -110,8 +111,26 @@ public class Main {
110
111
  this.ws = w;
111
112
  }
112
113
 
113
- if (System.getenv("EXPERIMENTAL_GITHUB_OIDC_TOKEN_AUTH") != null) {
114
- authenticator = new GitHubIdTokenAuthenticator();
114
+ if (!Strings.isNullOrEmpty(System.getenv("SMART_TESTS_GITHUB_OIDC_TOKEN_AUTH"))) {
115
+ // Generic GitHub Actions OIDC: fetch the id-token minted for the Smart Tests audience and
116
+ // present it like any other OIDC token. Intake routes by `iss` to the generic verifier
117
+ // and matches the normalized `repo:OWNER/REPO` subject against trusted_oidc_subjects. The
118
+ // audience is required because the generic path enforces `aud` for GitHub's issuer.
119
+ String audience = System.getenv("SMART_TESTS_OIDC_AUDIENCE");
120
+ if (Strings.isNullOrEmpty(audience)) {
121
+ audience = GitHubIdTokenAuthenticator.DEFAULT_OIDC_AUDIENCE;
122
+ }
123
+ authenticator = new GitHubIdTokenAuthenticator(audience, false);
124
+ } else if (!Strings.isNullOrEmpty(System.getenv("EXPERIMENTAL_GITHUB_OIDC_TOKEN_AUTH"))) {
125
+ // Deprecated legacy GitHub Actions OIDC: Intake matches the `repository` claim against
126
+ // trusted_github_repositories. The legacy path never checks `aud`, so no audience is
127
+ // requested; the legacy header tells Intake to take the legacy branch.
128
+ System.err.println(
129
+ "EXPERIMENTAL_GITHUB_OIDC_TOKEN_AUTH enables the deprecated GitHub Actions OIDC flow."
130
+ + " Migrate by registering your repository as a Trusted OIDC subject and switching"
131
+ + " to SMART_TESTS_GITHUB_OIDC_TOKEN_AUTH=1. See "
132
+ + "https://docs.cloudbees.com/docs/cloudbees-smart-tests/latest/send-data-to-smart-tests/set-up-smart-tests/migration-to-github-oidc-auth");
133
+ authenticator = new GitHubIdTokenAuthenticator(null, true);
115
134
  } else {
116
135
  authenticator = new GitHubActionsAuthenticator();
117
136
  }
@@ -179,11 +179,49 @@ class VerifyOidcCommandTest(CliTestCase):
179
179
 
180
180
  @patch.dict(os.environ, {}, clear=True)
181
181
  def test_oidc_missing_token(self):
182
- """No OIDC token in the environment → usage error, exit 2."""
182
+ """No OIDC flow configured → usage error, exit 2."""
183
183
  result = self.cli("verify", "--oidc")
184
184
  self.assert_exit_code(result, 2)
185
185
  self.assertIn("SMART_TESTS_OIDC_TOKEN", result.output)
186
186
 
187
+ gh_id_token = "gh-header.gh-payload.gh-signature"
188
+ gh_oidc_env = {
189
+ "SMART_TESTS_GITHUB_OIDC_TOKEN_AUTH": "1",
190
+ "SMART_TESTS_BASE_URL": base_url,
191
+ "ACTIONS_ID_TOKEN_REQUEST_URL": "http://gh-oidc.local/token",
192
+ "ACTIONS_ID_TOKEN_REQUEST_TOKEN": "runner-rt-token",
193
+ }
194
+
195
+ @responses.activate
196
+ @patch.dict(os.environ, gh_oidc_env, clear=True)
197
+ def test_oidc_github_generic_no_token_export(self):
198
+ """GitHub generic flow (no SMART_TESTS_OIDC_TOKEN): the CLI fetches a fresh id-token, presents
199
+ it as the bearer, and on 200 exports org/workspace but NOT the short-lived token."""
200
+ responses.add(
201
+ responses.GET,
202
+ "http://gh-oidc.local/token",
203
+ json={"value": self.gh_id_token},
204
+ status=200,
205
+ )
206
+ responses.add(
207
+ responses.POST,
208
+ self.oidc_verify_url,
209
+ json={"organization": "acme", "workspace": "prod"},
210
+ status=200,
211
+ )
212
+
213
+ result = self.cli("verify", "--oidc")
214
+ self.assert_success(result)
215
+
216
+ self.assertIn("export SMART_TESTS_ORGANIZATION='acme'", result.output)
217
+ self.assertIn("export SMART_TESTS_WORKSPACE='prod'", result.output)
218
+ # The GitHub token is minted per request, so it must not be exported for reuse.
219
+ self.assertNotIn("export SMART_TESTS_OIDC_TOKEN", result.output)
220
+
221
+ # The fetched GitHub id-token is the bearer presented to the verify endpoint.
222
+ verify_call = next(c for c in responses.calls if "/oidc/verify" in c.request.url)
223
+ self.assertEqual(verify_call.request.headers["Authorization"], f"Bearer {self.gh_id_token}")
224
+
187
225
 
188
226
  def _make_jwt(claims: dict) -> str:
189
227
  """Build an unsigned-looking JWT (header.payload.signature) with the given claims payload."""
@@ -0,0 +1,27 @@
1
+ {
2
+ "events": [
3
+ {
4
+ "type": "case",
5
+ "testPath": [
6
+ {
7
+ "type": "class",
8
+ "name": "com.example.sample_app_maven.NestedDisplayNameTest"
9
+ },
10
+ {
11
+ "type": "testcase",
12
+ "name": "methodIsCalled"
13
+ }
14
+ ],
15
+ "duration": 0.001,
16
+ "status": 1,
17
+ "stdout": "",
18
+ "stderr": "",
19
+ "data": null
20
+ }
21
+ ],
22
+ "testRunner": "maven",
23
+ "group": "",
24
+ "noBuild": false,
25
+ "flavors": [],
26
+ "testSuite": ""
27
+ }
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="com.example.sample_app_maven.NestedDisplayNameTest" time="0.001" tests="1" errors="0" skipped="0" failures="0">
3
+ <testcase name="methodIsCalled" classname="addFollowList" time="0.001" />
4
+ </testsuite>
@@ -4,8 +4,12 @@ import tempfile
4
4
  from unittest import mock
5
5
 
6
6
  import responses # type: ignore
7
+ from junitparser import JUnitXml # type: ignore
7
8
 
9
+ from smart_tests.commands.record.case_event import CaseEvent
8
10
  from smart_tests.test_runners import maven
11
+ from smart_tests.testpath import FilePathNormalizer
12
+ from smart_tests.utils.java import junit5_nested_class_path_builder
9
13
  from tests.cli_test_case import CliTestCase
10
14
 
11
15
 
@@ -106,47 +110,52 @@ class MavenTest(CliTestCase):
106
110
  self.assert_success(result)
107
111
  self.assert_record_tests_payload("record_test_result.json")
108
112
 
113
+ def _build_path_builder(self):
114
+ """Builds the same wrapped path_builder that maven.py's record_tests wires up."""
115
+ default_path_builder = CaseEvent.default_path_builder(FilePathNormalizer())
116
+ return junit5_nested_class_path_builder(default_path_builder)
117
+
118
+ def _class_path_for_first_case(self, report_path):
119
+ path_builder = self._build_path_builder()
120
+ xml = JUnitXml.fromfile(str(self.test_files_dir.joinpath(report_path)))
121
+ suite = next(iter(xml))
122
+ case = next(iter(suite))
123
+ test_path = path_builder(case, suite, str(report_path))
124
+ return next(item["name"] for item in test_path if item["type"] == "class")
125
+
126
+ def test_junit5_nested_class_path_builder_strips_dollar_suffix(self):
127
+ """@Nested class WITHOUT @DisplayName: Surefire keeps "Outer$Inner" as classname."""
128
+ class_name = self._class_path_for_first_case('reports/TEST-nested.xml')
129
+ self.assertEqual(class_name, "com.example.sample_app_maven.NestedTest")
130
+ self.assertNotIn("$", class_name)
131
+
132
+ def test_junit5_nested_class_path_builder_falls_back_to_suite_name(self):
133
+ """@Nested class WITH @DisplayName: Surefire (>= ~3.5.x) drops the outer class from
134
+ `classname` entirely (e.g. classname="addFollowList"). We must fall back to the
135
+ enclosing <testsuite name="..."> attribute, which is always the outer class FQCN."""
136
+ class_name = self._class_path_for_first_case('reports-nested-displayname/TEST-nested-displayname.xml')
137
+ self.assertEqual(class_name, "com.example.sample_app_maven.NestedDisplayNameTest")
138
+ self.assertNotIn("$", class_name)
139
+ self.assertNotEqual(class_name, "addFollowList")
140
+
109
141
  @responses.activate
110
142
  @mock.patch.dict(os.environ, {"SMART_TESTS_TOKEN": CliTestCase.smart_tests_token})
111
143
  def test_record_test_maven_with_nested_class(self):
112
144
  """Verify that class names containing $ (inner class marker) are processed correctly during test recording"""
113
- # Test the path_builder function directly by extracting it from the maven module
114
- from unittest import TestCase as UnitTestCase
115
- from unittest import TestSuite as UnitTestSuite
116
-
117
- # Extract the implementation from maven.py directly
118
- # This gets the implementation without going through the CLI/Click command
119
- def create_custom_path_builder(default_path_builder):
120
- def path_builder(case, suite, report_file):
121
- test_path = default_path_builder(case, suite, report_file)
122
- return [{**item, "name": item["name"].split("$")[0]} if item["type"] == "class" else item for item in test_path]
123
- return path_builder
124
-
125
- # Mock the default path builder that would return a class with $ in it
126
- def default_path_builder(case, suite, report_file):
127
- return [{"type": "class", "name": "com.launchableinc.rocket_car_maven.NestedTest$InnerClass"}]
128
-
129
- # Create our custom path builder function
130
- custom_path_builder = create_custom_path_builder(default_path_builder)
131
-
132
- # Test it directly with dummy inputs
133
- test_case = UnitTestCase()
134
- test_suite = UnitTestSuite()
135
- report_file = "TEST-nested.xml"
136
-
137
- # Call the path_builder
138
- result_path = custom_path_builder(test_case, test_suite, report_file)
139
-
140
- # Verify the result - it should remove everything after $
141
- self.assertEqual(result_path[0]["name"], "com.launchableinc.rocket_car_maven.NestedTest")
142
- self.assertNotIn("$", result_path[0]["name"])
143
-
144
- # Now run the actual CLI command to ensure integration works
145
145
  result = self.cli('record', 'tests', 'maven', '--session', self.session,
146
- str(self.test_files_dir) + "/maven/reports/TEST-1.xml",
147
- str(self.test_files_dir) + "/maven/reports/TEST-2.xml",
148
- str(self.test_files_dir) + "/maven/reports/TEST-nested.xml")
146
+ str(self.test_files_dir.joinpath('reports/TEST-1.xml')),
147
+ str(self.test_files_dir.joinpath('reports/TEST-2.xml')),
148
+ str(self.test_files_dir.joinpath('reports/TEST-nested.xml')))
149
+ self.assert_success(result)
150
+
151
+ @responses.activate
152
+ @mock.patch.dict(os.environ, {"SMART_TESTS_TOKEN": CliTestCase.smart_tests_token})
153
+ def test_record_test_maven_with_nested_displayname_class(self):
154
+ """Verify the bare-@DisplayName-as-classname bug (no dot, no $) is corrected end-to-end."""
155
+ result = self.cli('record', 'tests', 'maven', '--session', self.session,
156
+ str(self.test_files_dir.joinpath('reports-nested-displayname/TEST-nested-displayname.xml')))
149
157
  self.assert_success(result)
158
+ self.assert_record_tests_payload("record_test_nested_displayname_result.json")
150
159
 
151
160
  @responses.activate
152
161
  @mock.patch.dict(os.environ, {"SMART_TESTS_TOKEN": CliTestCase.smart_tests_token})