patchrail 0.2.0__tar.gz → 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {patchrail-0.2.0 → patchrail-0.3.0}/.gitignore +2 -0
- patchrail-0.3.0/CHANGELOG.md +217 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/CONTRIBUTING.md +6 -1
- {patchrail-0.2.0 → patchrail-0.3.0}/PKG-INFO +17 -10
- {patchrail-0.2.0 → patchrail-0.3.0}/README.md +16 -9
- patchrail-0.3.0/examples/ci-triage/appveyor-dotnet-test-xunit.log +10 -0
- patchrail-0.3.0/examples/ci-triage/azure-pipelines-dotnet-test.log +18 -0
- patchrail-0.3.0/examples/ci-triage/bitbucket-pipelines-composer-platform.log +10 -0
- patchrail-0.3.0/examples/ci-triage/bitbucket-pipelines-npm-eresolve.log +18 -0
- patchrail-0.3.0/examples/ci-triage/bitbucket-pipelines-vue-tsc-typecheck.log +14 -0
- patchrail-0.3.0/examples/ci-triage/buildkite-docker-build.log +8 -0
- patchrail-0.3.0/examples/ci-triage/buildkite-pnpm-frozen-lockfile.log +11 -0
- patchrail-0.3.0/examples/ci-triage/cargo-test-panic-failure.log +11 -0
- patchrail-0.3.0/examples/ci-triage/circleci-bundler-native-extension.log +15 -0
- patchrail-0.3.0/examples/ci-triage/circleci-checkout-lfs-failure.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/circleci-checkout-lfs-failure.log +9 -0
- patchrail-0.3.0/examples/ci-triage/circleci-oom-exit-137.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/circleci-oom-exit-137.log +12 -0
- patchrail-0.3.0/examples/ci-triage/cirrus-ci-cargo-test-panic.log +18 -0
- patchrail-0.3.0/examples/ci-triage/cloudbuild-golangci-lint-failure.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/cloudbuild-golangci-lint-failure.log +6 -0
- patchrail-0.3.0/examples/ci-triage/codebuild-jest-test-failure.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/codebuild-jest-test-failure.log +19 -0
- patchrail-0.3.0/examples/ci-triage/codefresh-trivy-critical.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/codefresh-trivy-critical.log +15 -0
- patchrail-0.3.0/examples/ci-triage/concourse-ci-pip-resolution.log +11 -0
- patchrail-0.3.0/examples/ci-triage/db-migration-alembic-revision.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/db-migration-alembic-revision.log +8 -0
- patchrail-0.3.0/examples/ci-triage/db-migration-prisma-drift.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/db-migration-prisma-drift.log +8 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/demo-output.md +1 -2
- patchrail-0.3.0/examples/ci-triage/docker-compose-missing-env-file.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/docs-build-docusaurus-broken-links.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/docs-build-docusaurus-broken-links.log +21 -0
- patchrail-0.3.0/examples/ci-triage/docs-build-mkdocs-strict.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/docs-build-mkdocs-strict.log +7 -0
- patchrail-0.3.0/examples/ci-triage/docs-build-sphinx-toctree.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/docs-build-sphinx-toctree.log +18 -0
- patchrail-0.3.0/examples/ci-triage/dotnet-nuget-package-downgrade.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/dotnet-sdk-target-framework-mismatch.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/drone-ci-go-test-panic.log +12 -0
- patchrail-0.3.0/examples/ci-triage/elixir-mix-compile-error.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/elixir-mix-compile-error.log +12 -0
- patchrail-0.3.0/examples/ci-triage/elixir-mix-exunit-failure.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/elixir-mix-exunit-failure.log +15 -0
- patchrail-0.3.0/examples/ci-triage/github-actions-go-test-failure.log +8 -0
- patchrail-0.3.0/examples/ci-triage/github-actions-sbt-scala-compile.log +14 -0
- patchrail-0.3.0/examples/ci-triage/gitlab-ci-bundler-incompatible.log +16 -0
- patchrail-0.3.0/examples/ci-triage/gitlab-ci-gradle-kotlin-compile.log +15 -0
- patchrail-0.3.0/examples/ci-triage/gitlab-ci-job-timeout.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/gitlab-ci-job-timeout.log +11 -0
- patchrail-0.3.0/examples/ci-triage/gitlab-ci-network-dns-failure.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/gitlab-ci-network-dns-failure.log +12 -0
- patchrail-0.3.0/examples/ci-triage/go-integration-test-network-noise.log +14 -0
- patchrail-0.3.0/examples/ci-triage/go-timeout-race.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/go-timeout.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/go-undefined-function.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/govulncheck-vulnerability.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/govulncheck-vulnerability.log +14 -0
- patchrail-0.3.0/examples/ci-triage/harness-ci-tsc-noemit-ts2322.log +14 -0
- patchrail-0.3.0/examples/ci-triage/helm-lint-schema-and-kubeversion.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/helm-lint-schema-and-kubeversion.log +6 -0
- patchrail-0.3.0/examples/ci-triage/helm-upgrade-template-nil-pointer.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/helm-upgrade-template-nil-pointer.log +2 -0
- patchrail-0.3.0/examples/ci-triage/java-gradle-unsupported-major-version.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/java-maven-compilation.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/jenkins-maven-compilation.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/jenkins-maven-compilation.log +13 -0
- patchrail-0.3.0/examples/ci-triage/jenkins-pytest-collection-error.log +14 -0
- patchrail-0.3.0/examples/ci-triage/k8s-deploy-admission-webhook.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/k8s-deploy-admission-webhook.log +2 -0
- patchrail-0.3.0/examples/ci-triage/k8s-deploy-immutable-field.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/k8s-deploy-immutable-field.log +4 -0
- patchrail-0.3.0/examples/ci-triage/nightwatch-element-not-found.log +10 -0
- patchrail-0.3.0/examples/ci-triage/node-yarn-immutable-install.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/node-yarn-peer-version.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/npm-ci-lockfile-mismatch-failure.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/npm-ci-lockfile-mismatch-failure.log +12 -0
- patchrail-0.3.0/examples/ci-triage/php-phpunit-autoload-class-not-found.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/playwright-e2e-timeout-failure.log +14 -0
- patchrail-0.3.0/examples/ci-triage/playwright-missing-browsers.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/playwright-selector-timeout.expected.json +4 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-hatch-build-dependency.log +1 -1
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-no-matching-distribution.log +1 -1
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-prerelease-range.log +1 -1
- patchrail-0.3.0/examples/ci-triage/python-test-snapshot-diff.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/python-uv-resolution-no-solution.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/ruby-rspec-parallel-failure.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/ruby-rspec-parallel-failure.log +10 -0
- patchrail-0.3.0/examples/ci-triage/ruby-ruby-version-lock.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/ruby-yanked-gem.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/rust-snapshot-failure.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/rust-test-failure.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/semaphore-ci-pytest-assertion.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/semaphore-ci-pytest-assertion.log +17 -0
- patchrail-0.3.0/examples/ci-triage/shell-lint-shellcheck.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/shell-lint-shellcheck.log +10 -0
- patchrail-0.3.0/examples/ci-triage/shell-lint-shfmt.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/shell-lint-shfmt.log +12 -0
- patchrail-0.3.0/examples/ci-triage/teamcity-maven-compilation.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/teamcity-maven-compilation.log +12 -0
- patchrail-0.3.0/examples/ci-triage/terraform-plan-undeclared-resource-failure.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/terraform-plan-undeclared-resource-failure.log +15 -0
- patchrail-0.3.0/examples/ci-triage/travis-bundler-native-extension.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/travis-bundler-native-extension.log +12 -0
- patchrail-0.3.0/examples/ci-triage/trivy-scan-critical-failure.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/trivy-scan-critical-failure.log +16 -0
- patchrail-0.3.0/examples/ci-triage/tsc-noemit-typecheck-failure.log +14 -0
- patchrail-0.3.0/examples/ci-triage/typescript-typecheck.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/typescript-vite-env-drift.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/typescript-zod-schema-drift.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/webdriverio-session-timeout.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/webdriverio-session-timeout.log +9 -0
- patchrail-0.3.0/examples/ci-triage/woodpecker-ci-docker-build-copy.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/woodpecker-ci-docker-build-copy.log +9 -0
- patchrail-0.3.0/examples/ci-triage/xcode-swift-compile-error.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/xcode-swift-compile-error.log +14 -0
- patchrail-0.3.0/examples/ci-triage/xcode-swiftpm-resolution-failure.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/xcode-swiftpm-resolution-failure.log +10 -0
- patchrail-0.3.0/examples/ci-triage/xcode-xctest-failure.expected.json +4 -0
- patchrail-0.3.0/examples/ci-triage/xcode-xctest-failure.log +13 -0
- patchrail-0.3.0/examples/ci-triage-action/README.md +121 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage-action/sample/ci-report.md +1 -2
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage-action/sample/ci-result.json +2 -3
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage-action/sample/github-output.txt +3 -3
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage-action/sample/step-summary.md +1 -1
- {patchrail-0.2.0 → patchrail-0.3.0}/pyproject.toml +1 -1
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/__init__.py +1 -1
- patchrail-0.3.0/src/patchrail/ci/__init__.py +7 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/ci/classify.py +361 -36
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/cli.py +113 -36
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/ci-result.v1.schema.json +9 -1
- {patchrail-0.2.0 → patchrail-0.3.0}/uv.lock +1 -1
- patchrail-0.2.0/CHANGELOG.md +0 -83
- patchrail-0.2.0/examples/ci-triage-action/README.md +0 -71
- patchrail-0.2.0/src/patchrail/ci/__init__.py +0 -7
- {patchrail-0.2.0 → patchrail-0.3.0}/.agents/skills/patchrail-ci-triage/SKILL.md +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/.agents/skills/patchrail-release-captain/SKILL.md +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/.agents/skills/patchrail-review-guardrails/SKILL.md +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/ADOPTERS.md +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/AGENTS.md +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/CODE_OF_CONDUCT.md +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/ETHICS.md +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/GOVERNANCE.md +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/LICENSE +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/SECURITY.md +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/actions/ci-triage/action.yml +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/actions/ci-triage/scripts/ci_triage_action_outputs.py +0 -0
- /patchrail-0.2.0/examples/ci-triage/dotnet-nuget-package-downgrade.expected.json → /patchrail-0.3.0/examples/ci-triage/appveyor-dotnet-test-xunit.expected.json +0 -0
- /patchrail-0.2.0/examples/ci-triage/dotnet-sdk-target-framework-mismatch.expected.json → /patchrail-0.3.0/examples/ci-triage/azure-pipelines-dotnet-test.expected.json +0 -0
- /patchrail-0.2.0/examples/ci-triage/php-composer-missing-package.expected.json → /patchrail-0.3.0/examples/ci-triage/bitbucket-pipelines-composer-platform.expected.json +0 -0
- /patchrail-0.2.0/examples/ci-triage/node-npm-ci-lock-outdated.expected.json → /patchrail-0.3.0/examples/ci-triage/bitbucket-pipelines-npm-eresolve.expected.json +0 -0
- /patchrail-0.2.0/examples/ci-triage/typescript-generated-client-schema-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/bitbucket-pipelines-vue-tsc-typecheck.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/browser-playwright-navigation-timeout.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/browser-playwright-navigation-timeout.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/browser-playwright-webserver-timeout.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/browser-playwright-webserver-timeout.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/docker-base-image-manifest-not-found.expected.json → /patchrail-0.3.0/examples/ci-triage/buildkite-docker-build.expected.json +0 -0
- /patchrail-0.2.0/examples/ci-triage/node-npm-engine-mismatch.expected.json → /patchrail-0.3.0/examples/ci-triage/buildkite-pnpm-frozen-lockfile.expected.json +0 -0
- /patchrail-0.2.0/examples/ci-triage/rust-compile-error.expected.json → /patchrail-0.3.0/examples/ci-triage/cargo-test-panic-failure.expected.json +0 -0
- /patchrail-0.2.0/examples/ci-triage/ruby-bundler-conflict.expected.json → /patchrail-0.3.0/examples/ci-triage/circleci-bundler-native-extension.expected.json +0 -0
- /patchrail-0.2.0/examples/ci-triage/rust-e0277-trait-bound.expected.json → /patchrail-0.3.0/examples/ci-triage/cirrus-ci-cargo-test-panic.expected.json +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-pip-constraint-pin-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/concourse-ci-pip-resolution.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/cypress-browser-launch.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/cypress-browser-launch.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dependency-failure.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dependency-failure.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/docker-buildkit-missing-context.expected.json → /patchrail-0.3.0/examples/ci-triage/docker-base-image-manifest-not-found.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/docker-base-image-manifest-not-found.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/docker-buildkit-missing-stage.expected.json → /patchrail-0.3.0/examples/ci-triage/docker-buildkit-missing-context.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/docker-buildkit-missing-context.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/docker-compose-healthcheck.expected.json → /patchrail-0.3.0/examples/ci-triage/docker-buildkit-missing-stage.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/docker-buildkit-missing-stage.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/docker-compose-missing-env-file.expected.json → /patchrail-0.3.0/examples/ci-triage/docker-compose-healthcheck.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/docker-compose-healthcheck.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/docker-compose-missing-env-file.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dotnet-csharp-compile-error.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dotnet-csharp-compile-error.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dotnet-nuget-package-downgrade.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dotnet-nuget-version-conflict.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dotnet-nuget-version-conflict.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dotnet-sdk-target-framework-mismatch.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dotnet-xunit-assertion.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dotnet-xunit-assertion.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/go-assertion-fail.expected.json → /patchrail-0.3.0/examples/ci-triage/drone-ci-go-test-panic.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-bad-shell.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-bad-shell.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/go-compile-interface.expected.json → /patchrail-0.3.0/examples/ci-triage/github-actions-go-test-failure.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-invalid-workflow.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-invalid-workflow.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-matrix-expression.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-matrix-expression.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-missing-workflow-ref.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-missing-workflow-ref.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-permission-id-token.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-permission-id-token.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-permission.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-permission.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/java-gradle-dependency-resolution.expected.json → /patchrail-0.3.0/examples/ci-triage/github-actions-sbt-scala-compile.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-token-permission.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-token-permission.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-unresolved-action.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-unresolved-action.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-unresolved-checkout.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-unresolved-checkout.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-yaml-syntax.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-yaml-syntax.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/ruby-bundler-missing-gem.expected.json → /patchrail-0.3.0/examples/ci-triage/gitlab-ci-bundler-incompatible.expected.json +0 -0
- /patchrail-0.2.0/examples/ci-triage/java-gradle-no-tests-found.expected.json → /patchrail-0.3.0/examples/ci-triage/gitlab-ci-gradle-kotlin-compile.expected.json +0 -0
- /patchrail-0.2.0/examples/ci-triage/go-data-race-test.expected.json → /patchrail-0.3.0/examples/ci-triage/go-assertion-fail.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-assertion-fail.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-compile-failure.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-compile-failure.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/go-module-missing-symbol.expected.json → /patchrail-0.3.0/examples/ci-triage/go-compile-interface.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-compile-interface.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/go-panic-in-test.expected.json → /patchrail-0.3.0/examples/ci-triage/go-data-race-test.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-data-race-test.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/go-timeout-race.expected.json → /patchrail-0.3.0/examples/ci-triage/go-integration-test-network-noise.expected.json +0 -0
- /patchrail-0.2.0/examples/ci-triage/go-timeout.expected.json → /patchrail-0.3.0/examples/ci-triage/go-module-missing-symbol.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-module-missing-symbol.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/go-undefined-function.expected.json → /patchrail-0.3.0/examples/ci-triage/go-panic-in-test.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-panic-in-test.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-timeout-race.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-timeout.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-undefined-function.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-undefined-symbol.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-undefined-symbol.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/typescript-import-type-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/harness-ci-tsc-noemit-ts2322.expected.json +0 -0
- /patchrail-0.2.0/examples/ci-triage/java-gradle-toolchain-version.expected.json → /patchrail-0.3.0/examples/ci-triage/java-gradle-dependency-resolution.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/java-gradle-dependency-resolution.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/java-gradle-unsupported-major-version.expected.json → /patchrail-0.3.0/examples/ci-triage/java-gradle-no-tests-found.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/java-gradle-no-tests-found.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/java-maven-compilation.expected.json → /patchrail-0.3.0/examples/ci-triage/java-gradle-toolchain-version.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/java-gradle-toolchain-version.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/java-gradle-unsupported-major-version.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/java-maven-compilation.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-biome-format.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-biome-format.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-a11y.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-a11y.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-config-parser-drift.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-config-parser-drift.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-import-order.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-import-order.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-no-undef.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-no-undef.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-react-hooks.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-react-hooks.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-unused-vars.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-unused-vars.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-prettier-format.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-prettier-format.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-prettier-generated-client-drift.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-prettier-generated-client-drift.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-prettier.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-prettier.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-module-import.expected.json → /patchrail-0.3.0/examples/ci-triage/jenkins-pytest-collection-error.expected.json +0 -0
- /patchrail-0.2.0/examples/ci-triage/playwright-missing-browsers.expected.json → /patchrail-0.3.0/examples/ci-triage/nightwatch-element-not-found.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-lockfile-drift.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-lockfile-drift.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/node-npm-eresolve-react.expected.json → /patchrail-0.3.0/examples/ci-triage/node-npm-ci-lock-outdated.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-npm-ci-lock-outdated.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/node-npm-missing-package-lock.expected.json → /patchrail-0.3.0/examples/ci-triage/node-npm-engine-mismatch.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-npm-engine-mismatch.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/node-npm-workspace-lock-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/node-npm-eresolve-react.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-npm-eresolve-react.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-npm-missing-lockfile.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-npm-missing-lockfile.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/node-peer-dependency.expected.json → /patchrail-0.3.0/examples/ci-triage/node-npm-missing-package-lock.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-npm-missing-package-lock.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/node-pnpm-catalog-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/node-npm-workspace-lock-drift.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-npm-workspace-lock-drift.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/node-pnpm-frozen-lockfile.expected.json → /patchrail-0.3.0/examples/ci-triage/node-peer-dependency.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-peer-dependency.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/node-pnpm-lockfile-config-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/node-pnpm-catalog-drift.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-pnpm-catalog-drift.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/node-pnpm-peer-conflict-react.expected.json → /patchrail-0.3.0/examples/ci-triage/node-pnpm-frozen-lockfile.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-pnpm-frozen-lockfile.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/node-pnpm-peer-optional.expected.json → /patchrail-0.3.0/examples/ci-triage/node-pnpm-lockfile-config-drift.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-pnpm-lockfile-config-drift.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/node-pnpm-workspace-protocol.expected.json → /patchrail-0.3.0/examples/ci-triage/node-pnpm-peer-conflict-react.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-pnpm-peer-conflict-react.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/node-yarn-constraints-peer-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/node-pnpm-peer-optional.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-pnpm-peer-optional.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/node-yarn-immutable-cache-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/node-pnpm-workspace-protocol.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-pnpm-workspace-protocol.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/node-yarn-immutable-install.expected.json → /patchrail-0.3.0/examples/ci-triage/node-yarn-constraints-peer-drift.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-yarn-constraints-peer-drift.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/node-yarn-peer-version.expected.json → /patchrail-0.3.0/examples/ci-triage/node-yarn-immutable-cache-drift.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-yarn-immutable-cache-drift.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-yarn-immutable-install.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-yarn-peer-dependency.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-yarn-peer-dependency.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-yarn-peer-version.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/php-composer-lock-drift.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/php-composer-lock-drift.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/php-phpunit-autoload-class-not-found.expected.json → /patchrail-0.3.0/examples/ci-triage/php-composer-missing-package.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/php-composer-missing-package.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/php-composer-platform-version.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/php-composer-platform-version.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/php-phpunit-autoload-class-not-found.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/php-phpunit-failure.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/php-phpunit-failure.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/playwright-selector-timeout.expected.json → /patchrail-0.3.0/examples/ci-triage/playwright-e2e-timeout-failure.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/playwright-missing-browsers.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/playwright-selector-timeout.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-hatch-build-dependency.expected.json +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-pytest-env-token-redacted.expected.json → /patchrail-0.3.0/examples/ci-triage/python-module-import.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-module-import.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-conflicting-constraints.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-conflicting-constraints.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-constraint-marker-drift.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-constraint-marker-drift.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-pip-index-timeout-backtrack.expected.json → /patchrail-0.3.0/examples/ci-triage/python-pip-constraint-pin-drift.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-constraint-pin-drift.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-extra-conflict.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-extra-conflict.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-pip-marker-py310.expected.json → /patchrail-0.3.0/examples/ci-triage/python-pip-index-timeout-backtrack.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-index-timeout-backtrack.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-pip-platform-arm64-wheel.expected.json → /patchrail-0.3.0/examples/ci-triage/python-pip-marker-py310.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-marker-py310.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-missing-musllinux-wheel.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-missing-musllinux-wheel.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-no-matching-distribution.expected.json +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-pip-tools-backtracking.expected.json → /patchrail-0.3.0/examples/ci-triage/python-pip-platform-arm64-wheel.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-platform-arm64-wheel.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-platform-wheel.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-platform-wheel.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-prerelease-range.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-python-version-marker.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-python-version-marker.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-pip-tools-conflict.expected.json → /patchrail-0.3.0/examples/ci-triage/python-pip-tools-backtracking.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-tools-backtracking.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-pip-tools-extra-marker-conflict.expected.json → /patchrail-0.3.0/examples/ci-triage/python-pip-tools-conflict.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-tools-conflict.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-pip-yanked-only-candidate.expected.json → /patchrail-0.3.0/examples/ci-triage/python-pip-tools-extra-marker-conflict.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-tools-extra-marker-conflict.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-poetry-solver-conflict.expected.json → /patchrail-0.3.0/examples/ci-triage/python-pip-yanked-only-candidate.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-yanked-only-candidate.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-yanked-release.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-yanked-release.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-poetry-python-range-drift.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-poetry-python-range-drift.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-poetry-transitive-conflict.expected.json → /patchrail-0.3.0/examples/ci-triage/python-poetry-solver-conflict.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-poetry-solver-conflict.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-uv-extra-marker-conflict.expected.json → /patchrail-0.3.0/examples/ci-triage/python-poetry-transitive-conflict.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-poetry-transitive-conflict.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-test-assert-json.expected.json → /patchrail-0.3.0/examples/ci-triage/python-pytest-env-token-redacted.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pytest-env-token-redacted.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-test-failure.expected.json → /patchrail-0.3.0/examples/ci-triage/python-test-assert-json.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-test-assert-json.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-test-fixture-timeout.expected.json → /patchrail-0.3.0/examples/ci-triage/python-test-failure.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-test-failure.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-test-import-mode.expected.json → /patchrail-0.3.0/examples/ci-triage/python-test-fixture-timeout.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-test-fixture-timeout.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-test-module-not-found.expected.json → /patchrail-0.3.0/examples/ci-triage/python-test-import-mode.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-test-import-mode.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-test-parametrize-regression.expected.json → /patchrail-0.3.0/examples/ci-triage/python-test-module-not-found.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-test-module-not-found.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-test-snapshot-diff.expected.json → /patchrail-0.3.0/examples/ci-triage/python-test-parametrize-regression.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-test-parametrize-regression.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-test-snapshot-diff.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-tox-constraint-conflict.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-tox-constraint-conflict.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-uv-constraint-backtrack-fail.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-uv-constraint-backtrack-fail.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/python-uv-resolution-no-solution.expected.json → /patchrail-0.3.0/examples/ci-triage/python-uv-extra-marker-conflict.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-uv-extra-marker-conflict.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-uv-extra-python-marker-drift.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-uv-extra-python-marker-drift.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-uv-resolution-no-solution.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/ruby-bundler-platform-lock.expected.json → /patchrail-0.3.0/examples/ci-triage/ruby-bundler-conflict.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/ruby-bundler-conflict.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/ruby-gem-native-extension.expected.json → /patchrail-0.3.0/examples/ci-triage/ruby-bundler-missing-gem.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/ruby-bundler-missing-gem.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/ruby-rake-aborted.expected.json → /patchrail-0.3.0/examples/ci-triage/ruby-bundler-platform-lock.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/ruby-bundler-platform-lock.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/ruby-rspec-failure.expected.json → /patchrail-0.3.0/examples/ci-triage/ruby-gem-native-extension.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/ruby-gem-native-extension.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/ruby-ruby-version-lock.expected.json → /patchrail-0.3.0/examples/ci-triage/ruby-rake-aborted.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/ruby-rake-aborted.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/ruby-yanked-gem.expected.json → /patchrail-0.3.0/examples/ci-triage/ruby-rspec-failure.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/ruby-rspec-failure.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/ruby-ruby-version-lock.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/ruby-yanked-gem.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/rust-e0308-mismatched-types.expected.json → /patchrail-0.3.0/examples/ci-triage/rust-compile-error.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-compile-error.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/rust-e0382-moved-value.expected.json → /patchrail-0.3.0/examples/ci-triage/rust-e0277-trait-bound.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-e0277-trait-bound.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/rust-e0502-borrow-checker.expected.json → /patchrail-0.3.0/examples/ci-triage/rust-e0308-mismatched-types.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-e0308-mismatched-types.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/rust-e0599-method-not-found.expected.json → /patchrail-0.3.0/examples/ci-triage/rust-e0382-moved-value.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-e0382-moved-value.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/rust-panic-thread.expected.json → /patchrail-0.3.0/examples/ci-triage/rust-e0502-borrow-checker.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-e0502-borrow-checker.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/rust-snapshot-failure.expected.json → /patchrail-0.3.0/examples/ci-triage/rust-e0599-method-not-found.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-e0599-method-not-found.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/rust-test-failure.expected.json → /patchrail-0.3.0/examples/ci-triage/rust-panic-thread.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-panic-thread.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-snapshot-failure.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-test-failure.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-trait-bound-error.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-trait-bound-error.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-cargo-audit-rustsec.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-cargo-audit-rustsec.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-gosec-findings.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-gosec-findings.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-npm-audit-critical.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-npm-audit-critical.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-pip-audit-vulnerability.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-pip-audit-vulnerability.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-trivy-container-critical.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-trivy-container-critical.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/typescript-jsx-prop-mismatch.expected.json → /patchrail-0.3.0/examples/ci-triage/tsc-noemit-typecheck-failure.expected.json +0 -0
- /patchrail-0.2.0/examples/ci-triage/typescript-path-alias-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-generated-client-schema-drift.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-generated-client-schema-drift.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/typescript-route-param-mismatch.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-import-type-drift.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-import-type-drift.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/typescript-ts2304-missing-global.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-jsx-prop-mismatch.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-jsx-prop-mismatch.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-missing-name.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-missing-name.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/typescript-ts2322-prop.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-path-alias-drift.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-path-alias-drift.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/typescript-ts2345-route-param.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-route-param-mismatch.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-route-param-mismatch.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-schema-drift.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-schema-drift.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/typescript-ts2416-class-override.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-ts2304-missing-global.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-ts2304-missing-global.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/typescript-ts2551-import-name.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-ts2322-prop.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-ts2322-prop.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/typescript-ts2741-required-prop.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-ts2345-route-param.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-ts2345-route-param.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/typescript-ts2769-overload.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-ts2416-class-override.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-ts2416-class-override.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/typescript-ts7006-implicit-any.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-ts2551-import-name.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-ts2551-import-name.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/typescript-tsconfig-lib-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-ts2741-required-prop.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-ts2741-required-prop.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/typescript-typecheck.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-ts2769-overload.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-ts2769-overload.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/typescript-vite-env-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-ts7006-implicit-any.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-ts7006-implicit-any.log +0 -0
- /patchrail-0.2.0/examples/ci-triage/typescript-zod-schema-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-tsconfig-lib-drift.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-tsconfig-lib-drift.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-typecheck.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-vite-env-drift.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-zod-schema-drift.log +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/control-plane-demo/README.md +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/control-plane-demo/demo-output.md +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/README.md +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/client-profile-python.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/competition-observations.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/demo-summary.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/issues.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/payout-effort-observations.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/provider-github-export.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/run_demo.py +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/staleness-observations.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/testability-observations.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/github-action/README.md +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/github-action/patchrail-ci-triage-artifact/ci-report.md +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/github-action/patchrail-ci-triage-artifact/ci-result.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/github-action/patchrail-ci-triage-artifact/doctor.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/github-action/patchrail-ci-triage-artifact/fixture-benchmark-summary.md +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/github-action/patchrail-ci-triage-artifact/fixture-benchmark.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/local-agent-queue/README.md +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/local-agent-queue/demo-summary.expected.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/local-agent-queue/run_demo.py +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/pilot-outcome/README.md +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/pilot-outcome/patchrail-own-repo-20260603.md +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/examples/pilot-outcome/patchrail-own-repo-20260603.summary.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/__main__.py +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/funded_issues/__init__.py +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/funded_issues/algora_board.py +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/funded_issues/blocklist.py +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/funded_issues/discovery.py +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/funded_issues/importers.py +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/funded_issues/source_noise.py +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/funded_issues/store.py +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/queue/__init__.py +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/queue/server.py +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/queue/status.py +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/queue/store.py +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/reviewer_quick_check.py +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/__init__.py +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/application-dossier.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/ci-benchmark.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/ci-fixture-check.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/ci-pilot-metrics.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/ci-pilot-summary.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/funded-issues-client-report.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/funded-issues-recheck-queue.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/funded-issues-recheck-summary.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/funded-issues-report.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/funded-issues-shortlist.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/funded-issues-store-status.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/funded-issues-store.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/queue-audit-event.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/queue-audit-summary.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/queue-gate-report.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/queue-policy-resolution.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/queue-policy-scan.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/queue-proposal.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/queue-review.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/queue-status.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/queue-work-item.v1.schema.json +0 -0
- {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/reviewer-quick-check-artifacts.v1.schema.json +0 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.3.0 - 2026-07-09
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Deterministic Go test failures are no longer misread as
|
|
8
|
+
`network_transient_failure` when their logs contain incidental
|
|
9
|
+
network-shaped noise (`dial tcp`, `connection refused`, `context deadline
|
|
10
|
+
exceeded`, `i/o timeout`). The classifier now defers a broad transient-network
|
|
11
|
+
match built *entirely* from these ambiguous signals to the concrete failure
|
|
12
|
+
when one also matched, so a real bug isn't mislabeled "just retry". Genuine
|
|
13
|
+
outages still classify as transient because they trip a terminal signal (DNS
|
|
14
|
+
resolution, rate limit, gateway error, TLS handshake, or a git remote hang-up)
|
|
15
|
+
outside the ambiguous set. `go_test_failure` also now recognises the canonical
|
|
16
|
+
`--- FAIL:` marker. New `go-integration-test-network-noise` fixture guards this,
|
|
17
|
+
bringing the benchmark zoo to 208 cases.
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- `patchrail --version` now prints the installed version (e.g. `patchrail 0.3.0`)
|
|
22
|
+
and exits, so a maintainer can confirm which release they are running without
|
|
23
|
+
invoking a subcommand.
|
|
24
|
+
- `java_build_failure` now also recognises **sbt** (Scala on the JVM). sbt prints
|
|
25
|
+
none of the Maven/Gradle banners the rule keyed on, so a genuine
|
|
26
|
+
`(project / Test / compileIncremental) Compilation failed` — or an
|
|
27
|
+
`sbt.TestsFailedException` — previously fell through to `unknown`. New signals
|
|
28
|
+
cover the sbt session banner, incremental-compile failure, Scala
|
|
29
|
+
`not found: value`/`not found: type` errors, and the sbt test-failure
|
|
30
|
+
exception; the reproduction command now suggests `sbt test`. New sanitized
|
|
31
|
+
`github-actions-sbt-scala-compile` fixture (modelled on a real
|
|
32
|
+
`scalatest/scalatest` GitHub Actions run) guards this, bringing the benchmark
|
|
33
|
+
zoo to 209 cases.
|
|
34
|
+
- New sanitized `ruby-rspec-parallel-failure` fixture captures a real
|
|
35
|
+
`rubocop/rubocop` RSpec failure tail (parallel/turbo_tests summary with
|
|
36
|
+
`pending` before `failures`), bringing the benchmark zoo to 207 cases.
|
|
37
|
+
- New `xcode_build_failure` class classifies Apple-platform build and test
|
|
38
|
+
failures from `xcodebuild`, `swift build`/`swift test`, and Swift Package
|
|
39
|
+
Manager — Swift compile errors, missing modules (`error: no such module`),
|
|
40
|
+
unresolved package dependencies, and XCTest failures (`** BUILD FAILED **`,
|
|
41
|
+
`** TEST FAILED **`, `The following build commands failed:`). Backed by three
|
|
42
|
+
sanitized fixtures in `examples/ci-triage/`, bringing the benchmark zoo to 169
|
|
43
|
+
cases and the classifier to 40 failure classes.
|
|
44
|
+
- New `docs_build_failure` class classifies documentation-site build failures
|
|
45
|
+
from Sphinx (`sphinx-build -W` warnings-as-errors, missing toctree entries),
|
|
46
|
+
MkDocs (`mkdocs build --strict` broken links), and Docusaurus (`docusaurus
|
|
47
|
+
build` broken links). Backed by three sanitized fixtures in
|
|
48
|
+
`examples/ci-triage/`, bringing the benchmark zoo to 166 cases.
|
|
49
|
+
- `patchrail ci classes` lists every supported failure class with its likely
|
|
50
|
+
subsystem and reproduction command (plus the `unknown` fallback), in stable
|
|
51
|
+
order. Supports `--format text|json|markdown` and `--out`, so the set of
|
|
52
|
+
classes the classifier can diagnose is discoverable from the CLI instead of
|
|
53
|
+
only in the source. Closes #150.
|
|
54
|
+
|
|
55
|
+
### Fixed
|
|
56
|
+
|
|
57
|
+
- Real RSpec failures now classify as `ruby_bundle_failure` instead of
|
|
58
|
+
`unknown`. RSpec prints its rerun list as `rspec ./path/to/thing_spec.rb[…]`
|
|
59
|
+
and its summary as `N examples, [K pending, ]M failures` (rspec, parallel and
|
|
60
|
+
turbo_tests) — neither of which the old `rspec .*failures?` pattern matched,
|
|
61
|
+
so a pasted spec-failure tail without bundler setup lines fell through to
|
|
62
|
+
`unknown`. Two shape-matching patterns were added to the rule. Surfaced by
|
|
63
|
+
dogfooding a real `rubocop/rubocop` CI run.
|
|
64
|
+
- Python CI logs no longer misclassify as `python_dependency_resolution` just
|
|
65
|
+
because they run `python -m pip install`. That bare command line was a
|
|
66
|
+
detection pattern, but it appears in almost every Python CI job regardless of
|
|
67
|
+
what actually failed, so any failing Python job with no stronger signal was
|
|
68
|
+
reported as a dependency-resolution conflict with the misleading "pin or relax
|
|
69
|
+
the conflicting dependency range" advice. Dogfooded against a real
|
|
70
|
+
`pandas-dev/pandas` 32-bit CI run whose `pip install` failed at
|
|
71
|
+
`metadata-generation-failed` (a package build error, `Rust not found`) — it was
|
|
72
|
+
reported as `python_dependency_resolution` (0.53). The boilerplate pattern is
|
|
73
|
+
dropped, so a build/metadata failure with no genuine resolution signal now
|
|
74
|
+
stays honest (`unknown`) instead. To keep recall on real conflicts, two
|
|
75
|
+
genuine pip signals were added: pip's actual Requires-Python wording
|
|
76
|
+
(`requires a different Python:`) and its no-distribution `(from versions: …)`
|
|
77
|
+
line; the three synthetic no-matching-distribution fixtures were updated to
|
|
78
|
+
include the real `(from versions: …)` output pip prints. Benchmark stays at
|
|
79
|
+
206/206 top-1 with all confidence floors met; the bundled dependency-failure
|
|
80
|
+
demo now reports 0.89 (three genuine resolution signals) instead of 0.95.
|
|
81
|
+
Regression covered in `tests/`.
|
|
82
|
+
- `patchrail ci explain`/`classify` no longer hangs on large CI logs. The
|
|
83
|
+
`github_actions_workflow` rule paired two unanchored lookaheads
|
|
84
|
+
(`(?=[\s\S]*.github/workflows/…)(?=[\s\S]*Invalid workflow file…)`); under
|
|
85
|
+
`re.search` that compound is retried at every start position, so a log that
|
|
86
|
+
mentions `.github/workflows/*.yml` (every `actions/checkout` step does) but not
|
|
87
|
+
a workflow-error phrase drove the matcher into O(n²) backtracking and pegged a
|
|
88
|
+
core at 100% for minutes. Dogfooded against a real `cli/cli` Go CI run
|
|
89
|
+
(~200 KB) that never returned. The lookahead is now anchored with `\A` so it is
|
|
90
|
+
evaluated once, in linear time; the "workflow path AND error phrase present"
|
|
91
|
+
signal is unchanged. Regression covered in `tests/`.
|
|
92
|
+
- Rust CI failures no longer misclassify as `node_dependency_install`,
|
|
93
|
+
`dotnet_build_failure`, or `java_build_failure` because of generic boilerplate.
|
|
94
|
+
The `Swatinem/rust-cache` action prints `Lockfiles considered:` (which matched
|
|
95
|
+
the old bare `lockfile` node signal) and cargo prints `build failed, waiting
|
|
96
|
+
for other jobs to finish` (which matched the case-insensitive `Build FAILED` /
|
|
97
|
+
`BUILD FAILED` banners). The node lockfile signal now requires a whole-word
|
|
98
|
+
`lockfile`, and the .NET/Gradle banners are matched case-sensitively so they
|
|
99
|
+
fire only on the tool's actual `Build FAILED` / `BUILD FAILED` output. A real
|
|
100
|
+
`tokio-rs/tokio` rustdoc failure (`error[E0433]`) now classifies as
|
|
101
|
+
`rust_test_failure`. Regression covered in `tests/`.
|
|
102
|
+
- Sharper reproduce commands for three failure classes surfaced by `patchrail ci
|
|
103
|
+
classes` / `ci explain`. `node_script_missing` no longer suggests `npm run
|
|
104
|
+
build` (which just re-triggers the "missing script" error) and instead runs
|
|
105
|
+
`npm run` to list the scripts `package.json` actually defines, so you can
|
|
106
|
+
compare against the one your workflow calls. `security_scan_failure` names the
|
|
107
|
+
concrete scanners to rerun locally (`npm audit`, `pip-audit`, `cargo audit`,
|
|
108
|
+
`trivy fs .`, `bandit -r .`, `semgrep --config auto`) instead of the generic
|
|
109
|
+
"rerun the failing security scan locally". `github_actions_workflow` points at
|
|
110
|
+
`actionlint .github/workflows/`, which validates workflow syntax and action
|
|
111
|
+
refs locally, rather than only printing the YAML back with `gh workflow view`.
|
|
112
|
+
- Real GitHub Actions logs no longer misclassify as `git_checkout_failure` when
|
|
113
|
+
checkout actually succeeded. The rule dropped three boilerplate signals that
|
|
114
|
+
appear in almost every Actions log regardless of outcome — the `actions/checkout`
|
|
115
|
+
setup step, the `git submodule foreach` post-job cleanup line, and a bare
|
|
116
|
+
`git-lfs` mention — keeping only genuine checkout/clone/submodule/LFS *failure*
|
|
117
|
+
markers (`fatal: ...`, `Failed to fetch submodule`, `smudge filter lfs failed`,
|
|
118
|
+
`error downloading object`, …). Dogfooded against a real `pallets/flask` CI run
|
|
119
|
+
whose pytest jobs failed on a conftest `SyntaxError` but were reported as a git
|
|
120
|
+
checkout problem.
|
|
121
|
+
- `python_test_failure` now also recognizes pytest collection failures
|
|
122
|
+
(`ImportError while loading conftest ...`, `N errors during collection`), so a
|
|
123
|
+
broken `conftest.py` or import-time error surfaces as a test failure with the
|
|
124
|
+
`python -m pytest -q` reproduce line instead of falling through to a weaker or
|
|
125
|
+
wrong class.
|
|
126
|
+
- `patchrail ci explain` and `ci classify` now fail clearly on empty or
|
|
127
|
+
whitespace-only input (from `--log` or stdin) instead of silently reporting
|
|
128
|
+
`failure_class: unknown` with confidence `0.15` and exit code `0`. They print
|
|
129
|
+
`log input is empty` to stderr, exit with code `2`, and write nothing to
|
|
130
|
+
`--out`, so a bad shell redirect is no longer mistaken for an unclassifiable
|
|
131
|
+
log. Closes #151.
|
|
132
|
+
- Added `node_script_missing` to the published `ci-result` schema enum; the
|
|
133
|
+
classifier could already emit it, so a valid classification previously failed
|
|
134
|
+
schema validation for downstream consumers. A new test guards that every rule
|
|
135
|
+
class is declared in the schema enum.
|
|
136
|
+
|
|
137
|
+
## 0.2.0 - 2026-07-07
|
|
138
|
+
|
|
139
|
+
### Removed
|
|
140
|
+
|
|
141
|
+
- Removed the commercial `Guide:` link that `ci explain` appended to text and
|
|
142
|
+
Markdown reports, and the matching guide URL outputs from the GitHub Action.
|
|
143
|
+
Reports now end after the classification; per-class remediation write-ups
|
|
144
|
+
live in-repo under `docs/fix/`.
|
|
145
|
+
- Removed commercial product links and campaign-tagged URLs from the README,
|
|
146
|
+
docs, and the PyPI project URL list.
|
|
147
|
+
- Removed the distribution and web-metrics tooling (`ci share-links` and the
|
|
148
|
+
web metrics commands and store). PatchRail no longer ships link-tracking or
|
|
149
|
+
distribution helpers.
|
|
150
|
+
|
|
151
|
+
### Changed
|
|
152
|
+
|
|
153
|
+
- `funded-issues` is now explicitly labeled experimental. Discovery commands
|
|
154
|
+
default to safe-only filtering, and risky entries require an explicit
|
|
155
|
+
`--include-risky` flag.
|
|
156
|
+
- Rewrote the README around the open-source CI triage workflow: quickstart
|
|
157
|
+
with real classifier output, honest feature table, local-first safety
|
|
158
|
+
section, and the fixture contribution path.
|
|
159
|
+
|
|
160
|
+
### Added
|
|
161
|
+
|
|
162
|
+
- Added `node_script_missing` CI classification so npm/pnpm/yarn jobs that
|
|
163
|
+
call a missing package script are separated from dependency-install failures
|
|
164
|
+
and routed to a workflow/script repair path.
|
|
165
|
+
- Added a permanent source-level blocklist to the funded-issues tracker:
|
|
166
|
+
owners manually verified as fake-bounty sources are dropped at the
|
|
167
|
+
`merge_into_store` choke point (counted as `blocked` in the merge summary)
|
|
168
|
+
and `purge_blocklisted_entries` removes any legacy entries; `track` runs the
|
|
169
|
+
purge on every merge so existing stores self-heal.
|
|
170
|
+
- Added `funded-issues import-algora-board`, an offline parser for a locally
|
|
171
|
+
saved Algora organization bounty-board page. It extracts the funder-stated
|
|
172
|
+
USD amount, GitHub issue reference, posting age, and declared claim count
|
|
173
|
+
per bounty, and can merge the scored records into a tracker store. No
|
|
174
|
+
network access is performed.
|
|
175
|
+
- Added read-only competition and payout-vs-effort scoring signals plus the
|
|
176
|
+
`funded-issues competition` and `funded-issues payout-effort` batch
|
|
177
|
+
commands, all derived from public metadata observations with no claims,
|
|
178
|
+
comments, or maintainer contact.
|
|
179
|
+
- Added an offline owner-level `source_noise` heuristic and
|
|
180
|
+
`funded-issues apply-recheck`, a local-file-only command that transitions
|
|
181
|
+
tracker entries to closed / stale / active from recheck observations.
|
|
182
|
+
- Added .NET/NuGet/C# and xUnit fixture coverage for `dotnet restore`,
|
|
183
|
+
`dotnet build`, and `dotnet test` failure modes, growing the public CI
|
|
184
|
+
fixture zoo to 153 cases.
|
|
185
|
+
|
|
186
|
+
## 0.1.1 - 2026-06-12
|
|
187
|
+
|
|
188
|
+
- `ci explain` now ends text and Markdown reports with a `Guide:` link to the
|
|
189
|
+
matching getpatchrail.com `/fix` remediation page; unknown or unpublished
|
|
190
|
+
failure classes fall back to the `/fix` index without a network call.
|
|
191
|
+
- Added `funded-issues fresh`, a local read-only radar over the tracker store
|
|
192
|
+
that surfaces recently posted or recently labeled funded issues for fast
|
|
193
|
+
solver-side triage.
|
|
194
|
+
- Added `pre_commit_hook_failure` CI classification so pre-commit hook output is
|
|
195
|
+
recognized directly while the CLI still avoids linking to a missing `/fix`
|
|
196
|
+
page until that guide exists.
|
|
197
|
+
|
|
198
|
+
## 0.1.0 - 2026-06-02
|
|
199
|
+
|
|
200
|
+
- Initial public CI Janitor snapshot.
|
|
201
|
+
- Added `patchrail ci explain` and `patchrail ci classify`.
|
|
202
|
+
- Added local Markdown, JSON, and text reports.
|
|
203
|
+
- Added Apache-2.0 license and safety/ethics documentation.
|
|
204
|
+
- Added fixture-backed tests, local benchmark command, and GitHub Actions CI.
|
|
205
|
+
- Expanded the initial CI fixture zoo to 101 sanitized synthetic examples across
|
|
206
|
+
Python, Node, TypeScript, Go, Rust, and GitHub Actions failure modes.
|
|
207
|
+
- Added a read-only GitHub Actions triage artifact workflow.
|
|
208
|
+
- Added the experimental local Agent Control Plane queue with SQLite-backed
|
|
209
|
+
work items, approval states, audit export, CI result import, and proposal
|
|
210
|
+
records.
|
|
211
|
+
- Added the experimental read-only `funded-issues` CLI over local metadata,
|
|
212
|
+
with safe-only filtering and explicit anti-abuse blocked actions.
|
|
213
|
+
- Added permission-only adopter reporting and a public metrics tracker for
|
|
214
|
+
pilot outcomes, adoption signals, and open-source program evidence gaps.
|
|
215
|
+
- Added release-prep evidence docs, package smoke checks, and manual publish
|
|
216
|
+
gates. Release tags, PyPI publishing, GitHub Releases, and public
|
|
217
|
+
announcements remain maintainer actions.
|
|
@@ -22,7 +22,8 @@ patchrail redact --log failed-ci.log > failed-ci.redacted.log
|
|
|
22
22
|
|
|
23
23
|
3. Review `failed-ci.redacted.log` manually and remove anything PatchRail should
|
|
24
24
|
not publish: secrets, emails, private repo names, user names, customer names,
|
|
25
|
-
local home paths, and private URLs.
|
|
25
|
+
local home paths, and private URLs. See `docs/redaction.md` for exactly
|
|
26
|
+
which categories `patchrail redact` covers and which it doesn't.
|
|
26
27
|
4. Reduce the log to the shortest excerpt that still shows the root cause.
|
|
27
28
|
5. Add the fixture and expected metadata under `examples/ci-triage/`.
|
|
28
29
|
6. Run the fixture hygiene gate and benchmark:
|
|
@@ -38,6 +39,10 @@ patchrail ci benchmark examples/ci-triage --format json
|
|
|
38
39
|
If a real log cannot be safely redacted, create a minimal synthetic fixture that
|
|
39
40
|
preserves the error pattern without preserving private identifiers.
|
|
40
41
|
|
|
42
|
+
To catch a forgotten secret or a malformed fixture before it reaches a pull
|
|
43
|
+
request, see `docs/pre-commit-example.md` for an optional pre-commit hook
|
|
44
|
+
that runs `patchrail ci fixture-check` and `patchrail redact` automatically.
|
|
45
|
+
|
|
41
46
|
## Adding a CI fixture
|
|
42
47
|
|
|
43
48
|
1. Copy the smallest failing log excerpt that still shows the root cause.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: patchrail
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Local-first maintainer automation for open-source CI triage
|
|
5
5
|
Project-URL: Homepage, https://github.com/patchrail/patchrail
|
|
6
6
|
Project-URL: Documentation, https://github.com/patchrail/patchrail/tree/main/docs
|
|
@@ -49,11 +49,13 @@ entirely on your machine.
|
|
|
49
49
|
|
|
50
50
|
## Why maintainers use it
|
|
51
51
|
|
|
52
|
-
- **
|
|
52
|
+
- **40 failure classes** backed by real log signatures — dependency
|
|
53
53
|
resolution, flaky network, OOM-killed runners, Docker builds, lint,
|
|
54
|
-
type checks, and test failures across Python, Node,
|
|
55
|
-
Java, .NET, Ruby, PHP, and
|
|
56
|
-
|
|
54
|
+
type checks, docs-site builds, and test failures across Python, Node,
|
|
55
|
+
TypeScript, Go, Rust, Java, .NET, Ruby, PHP, C++, and Swift/Xcode. Run
|
|
56
|
+
`patchrail ci classes` to list them all (add `--format json` to check
|
|
57
|
+
coverage from a script).
|
|
58
|
+
- **169 sanitized CI log fixtures** keep the classifier honest: every rule is
|
|
57
59
|
benchmarked against the public fixture zoo in `examples/ci-triage/` on every
|
|
58
60
|
test run.
|
|
59
61
|
- **23 secret-redaction patterns** (GitHub/GitLab/npm/PyPI/AWS tokens, private
|
|
@@ -91,7 +93,7 @@ Real output:
|
|
|
91
93
|
# PatchRail CI Report
|
|
92
94
|
|
|
93
95
|
- Root cause: `python_dependency_resolution`
|
|
94
|
-
- Confidence: `0.
|
|
96
|
+
- Confidence: `0.89`
|
|
95
97
|
- Subsystem: Python dependency installation
|
|
96
98
|
- Reproduce: `python -m pip install -r requirements.txt`
|
|
97
99
|
- Suggested action: Pin or relax the conflicting dependency range, then rerun the same install command and the affected tests.
|
|
@@ -99,8 +101,8 @@ Real output:
|
|
|
99
101
|
## Evidence signals
|
|
100
102
|
|
|
101
103
|
- `Could not find a version that satisfies the requirement`
|
|
104
|
+
- `Cannot install .*because these package versions have conflicting dependencies`
|
|
102
105
|
- `ResolutionImpossible`
|
|
103
|
-
- `python -m pip install`
|
|
104
106
|
```
|
|
105
107
|
|
|
106
108
|
It also reads from stdin, so you can pipe a log straight in:
|
|
@@ -129,14 +131,17 @@ leaves the job:
|
|
|
129
131
|
log-path: test.log
|
|
130
132
|
```
|
|
131
133
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
+
The `@v1` drop-in exposes `failure-class`, `confidence`, and `guide-url`, plus a
|
|
135
|
+
run annotation and job summary. See
|
|
136
|
+
[docs/using-the-action.md](docs/using-the-action.md) for its full inputs and
|
|
137
|
+
outputs, or [examples/ci-triage-action](examples/ci-triage-action/README.md) for
|
|
138
|
+
the artifact shapes of both `@v1` and the richer in-repo composite.
|
|
134
139
|
|
|
135
140
|
## Features
|
|
136
141
|
|
|
137
142
|
| Feature | Status | Notes |
|
|
138
143
|
| --- | --- | --- |
|
|
139
|
-
| CI failure triage (`ci explain`, `ci classify`) | Beta |
|
|
144
|
+
| CI failure triage (`ci explain`, `ci classify`, `ci classes`) | Beta | 40 failure classes for GitHub Actions-style logs and common toolchains |
|
|
140
145
|
| Secret redaction (`redact`, `ci explain --redact`) | Beta | 23 patterns for tokens, keys, emails, and home paths |
|
|
141
146
|
| Reports | Beta | Markdown, JSON, and plain text |
|
|
142
147
|
| Fixture benchmark (`ci benchmark`) | Beta | Scores the classifier against all 153 public fixtures |
|
|
@@ -179,9 +184,11 @@ Details in [docs/roadmap.md](docs/roadmap.md).
|
|
|
179
184
|
## Documentation
|
|
180
185
|
|
|
181
186
|
- [Quickstart](docs/quickstart.md)
|
|
187
|
+
- [jq cookbook for the JSON classifier output](docs/json-cookbook.md)
|
|
182
188
|
- [Fix guides per failure class](docs/fix/README.md)
|
|
183
189
|
- [CI Failure Zoo](docs/ci-failure-zoo.md)
|
|
184
190
|
- [GitHub Actions CI triage](docs/github-action.md)
|
|
191
|
+
- [Using the action in your own repository](docs/using-the-action.md)
|
|
185
192
|
- [Agent Control Plane](docs/agent-control-plane.md)
|
|
186
193
|
- [API reference](docs/api-reference.md)
|
|
187
194
|
- [Threat model](docs/threat-model.md)
|
|
@@ -18,11 +18,13 @@ entirely on your machine.
|
|
|
18
18
|
|
|
19
19
|
## Why maintainers use it
|
|
20
20
|
|
|
21
|
-
- **
|
|
21
|
+
- **40 failure classes** backed by real log signatures — dependency
|
|
22
22
|
resolution, flaky network, OOM-killed runners, Docker builds, lint,
|
|
23
|
-
type checks, and test failures across Python, Node,
|
|
24
|
-
Java, .NET, Ruby, PHP, and
|
|
25
|
-
|
|
23
|
+
type checks, docs-site builds, and test failures across Python, Node,
|
|
24
|
+
TypeScript, Go, Rust, Java, .NET, Ruby, PHP, C++, and Swift/Xcode. Run
|
|
25
|
+
`patchrail ci classes` to list them all (add `--format json` to check
|
|
26
|
+
coverage from a script).
|
|
27
|
+
- **169 sanitized CI log fixtures** keep the classifier honest: every rule is
|
|
26
28
|
benchmarked against the public fixture zoo in `examples/ci-triage/` on every
|
|
27
29
|
test run.
|
|
28
30
|
- **23 secret-redaction patterns** (GitHub/GitLab/npm/PyPI/AWS tokens, private
|
|
@@ -60,7 +62,7 @@ Real output:
|
|
|
60
62
|
# PatchRail CI Report
|
|
61
63
|
|
|
62
64
|
- Root cause: `python_dependency_resolution`
|
|
63
|
-
- Confidence: `0.
|
|
65
|
+
- Confidence: `0.89`
|
|
64
66
|
- Subsystem: Python dependency installation
|
|
65
67
|
- Reproduce: `python -m pip install -r requirements.txt`
|
|
66
68
|
- Suggested action: Pin or relax the conflicting dependency range, then rerun the same install command and the affected tests.
|
|
@@ -68,8 +70,8 @@ Real output:
|
|
|
68
70
|
## Evidence signals
|
|
69
71
|
|
|
70
72
|
- `Could not find a version that satisfies the requirement`
|
|
73
|
+
- `Cannot install .*because these package versions have conflicting dependencies`
|
|
71
74
|
- `ResolutionImpossible`
|
|
72
|
-
- `python -m pip install`
|
|
73
75
|
```
|
|
74
76
|
|
|
75
77
|
It also reads from stdin, so you can pipe a log straight in:
|
|
@@ -98,14 +100,17 @@ leaves the job:
|
|
|
98
100
|
log-path: test.log
|
|
99
101
|
```
|
|
100
102
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
+
The `@v1` drop-in exposes `failure-class`, `confidence`, and `guide-url`, plus a
|
|
104
|
+
run annotation and job summary. See
|
|
105
|
+
[docs/using-the-action.md](docs/using-the-action.md) for its full inputs and
|
|
106
|
+
outputs, or [examples/ci-triage-action](examples/ci-triage-action/README.md) for
|
|
107
|
+
the artifact shapes of both `@v1` and the richer in-repo composite.
|
|
103
108
|
|
|
104
109
|
## Features
|
|
105
110
|
|
|
106
111
|
| Feature | Status | Notes |
|
|
107
112
|
| --- | --- | --- |
|
|
108
|
-
| CI failure triage (`ci explain`, `ci classify`) | Beta |
|
|
113
|
+
| CI failure triage (`ci explain`, `ci classify`, `ci classes`) | Beta | 40 failure classes for GitHub Actions-style logs and common toolchains |
|
|
109
114
|
| Secret redaction (`redact`, `ci explain --redact`) | Beta | 23 patterns for tokens, keys, emails, and home paths |
|
|
110
115
|
| Reports | Beta | Markdown, JSON, and plain text |
|
|
111
116
|
| Fixture benchmark (`ci benchmark`) | Beta | Scores the classifier against all 153 public fixtures |
|
|
@@ -148,9 +153,11 @@ Details in [docs/roadmap.md](docs/roadmap.md).
|
|
|
148
153
|
## Documentation
|
|
149
154
|
|
|
150
155
|
- [Quickstart](docs/quickstart.md)
|
|
156
|
+
- [jq cookbook for the JSON classifier output](docs/json-cookbook.md)
|
|
151
157
|
- [Fix guides per failure class](docs/fix/README.md)
|
|
152
158
|
- [CI Failure Zoo](docs/ci-failure-zoo.md)
|
|
153
159
|
- [GitHub Actions CI triage](docs/github-action.md)
|
|
160
|
+
- [Using the action in your own repository](docs/using-the-action.md)
|
|
154
161
|
- [Agent Control Plane](docs/agent-control-plane.md)
|
|
155
162
|
- [API reference](docs/api-reference.md)
|
|
156
163
|
- [Threat model](docs/threat-model.md)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
> dotnet test .\src\Billing.Tests\Billing.Tests.csproj
|
|
2
|
+
Starting test execution, please wait...
|
|
3
|
+
[xUnit.net 00:00:01.24] Billing.Tests.InvoiceCalculatorTests.AppliesTaxRate_ForRegion [FAIL]
|
|
4
|
+
[xUnit.net 00:00:01.24] Assert.Equal() Failure
|
|
5
|
+
[xUnit.net 00:00:01.24] Expected: 108.50m
|
|
6
|
+
[xUnit.net 00:00:01.24] Actual: 108.00m
|
|
7
|
+
Failed Billing.Tests.InvoiceCalculatorTests.AppliesTaxRate_ForRegion [12 ms]
|
|
8
|
+
|
|
9
|
+
Failed! - Failed: 1, Passed: 46, Skipped: 0, Total: 47
|
|
10
|
+
Command exited with code 1
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
##[section]Starting: dotnet test
|
|
2
|
+
==============================================================================
|
|
3
|
+
Task : .NET Core
|
|
4
|
+
Description : Build, test, package, or publish a dotnet application
|
|
5
|
+
==============================================================================
|
|
6
|
+
##[command]dotnet test ./tests/Billing.Tests.csproj --logger trx
|
|
7
|
+
Starting test execution, please wait...
|
|
8
|
+
|
|
9
|
+
X Billing.Tests.InvoiceCalculatorTests.AppliesDiscountAboveThreshold [12 ms]
|
|
10
|
+
Error Message:
|
|
11
|
+
Xunit.Sdk.EqualException
|
|
12
|
+
Assert.Equal() Failure
|
|
13
|
+
Expected: 90.00m
|
|
14
|
+
Actual: 100.00m
|
|
15
|
+
|
|
16
|
+
Failed! - Failed: 1, Passed: 47, Skipped: 0, Total: 48
|
|
17
|
+
##[error]Process completed with exit code 1.
|
|
18
|
+
##[section]Finishing: dotnet test
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
+ composer install --no-dev --prefer-dist
|
|
2
|
+
Loading composer repositories with package information
|
|
3
|
+
Updating dependencies
|
|
4
|
+
Your requirements could not be resolved to an installable set of packages.
|
|
5
|
+
|
|
6
|
+
Problem 1
|
|
7
|
+
- Root composer.json requires php >=8.2 but your php version (8.1.27) does not satisfy that requirement.
|
|
8
|
+
- vendor/example/pdf-toolkit v3.0.1 requires php >=8.2 -> your php version (8.1.27) does not satisfy that requirement.
|
|
9
|
+
|
|
10
|
+
Build failed with exit code 2
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
+ npm install
|
|
2
|
+
npm ERR! code ERESOLVE
|
|
3
|
+
npm ERR! ERESOLVE unable to resolve dependency tree
|
|
4
|
+
npm ERR!
|
|
5
|
+
npm ERR! While resolving: checkout-service@2.1.0
|
|
6
|
+
npm ERR! Found: react@18.3.1
|
|
7
|
+
npm ERR! node_modules/react
|
|
8
|
+
npm ERR! react@"^18.3.1" from the root project
|
|
9
|
+
npm ERR!
|
|
10
|
+
npm ERR! Could not resolve dependency:
|
|
11
|
+
npm ERR! peer react@"^17.0.0" from react-legacy-widgets@4.2.0
|
|
12
|
+
npm ERR! node_modules/react-legacy-widgets
|
|
13
|
+
npm ERR! react-legacy-widgets@"^4.2.0" from the root project
|
|
14
|
+
npm ERR!
|
|
15
|
+
npm ERR! Fix the upstream dependency conflict, or retry
|
|
16
|
+
npm ERR! this command with --force or --legacy-peer-deps
|
|
17
|
+
npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2026-07-08T09_12_00_000Z-debug-0.log
|
|
18
|
+
Build failed with exit code 1.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
+ vue-tsc --noEmit -p tsconfig.json --composite false
|
|
2
|
+
src/components/OrderSummary.vue:28:11 - error TS2322: Type 'number | undefined' is not assignable to type 'number'.
|
|
3
|
+
|
|
4
|
+
28 <TotalLabel :amount="order.total" />
|
|
5
|
+
~~~~~~
|
|
6
|
+
|
|
7
|
+
src/types/order.ts:9:3
|
|
8
|
+
9 total: number;
|
|
9
|
+
~~~~~
|
|
10
|
+
The expected type comes from property 'total' which is declared here on type 'Order'.
|
|
11
|
+
|
|
12
|
+
Found 1 error in src/components/OrderSummary.vue:28
|
|
13
|
+
|
|
14
|
+
Build failed with exit code 2
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
~~~ Running commands
|
|
2
|
+
$ docker build -t app:ci .
|
|
3
|
+
[+] Building 4.2s (8/12)
|
|
4
|
+
#8 [5/9] COPY app/config/production.yaml /app/config/production.yaml
|
|
5
|
+
failed to solve: failed to compute cache key: "/app/config/production.yaml": not found
|
|
6
|
+
no such file or directory
|
|
7
|
+
^^^ +++
|
|
8
|
+
user command error: exited with status 1
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
~~~ Running commands
|
|
2
|
+
$ pnpm install --frozen-lockfile
|
|
3
|
+
Lockfile is up to date, resolution step is skipped
|
|
4
|
+
Fetching dependencies
|
|
5
|
+
|
|
6
|
+
ERR_PNPM_OUTDATED_LOCKFILE Cannot install with "frozen-lockfile" because pnpm-lock.yaml is not up to date with dashboard-ui/package.json
|
|
7
|
+
|
|
8
|
+
Failure reason:
|
|
9
|
+
specifiers in the lockfile ({"date-fns":"^2.30.0"}) don't match specs in package.json ({"date-fns":"^3.6.0"})
|
|
10
|
+
|
|
11
|
+
user command error: exited with status 1
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Run cargo test
|
|
2
|
+
running 12 tests
|
|
3
|
+
thread 'store::tests::rejects_negative_balance' panicked at crates/store/src/lib.rs:58:9:
|
|
4
|
+
assertion failed: `(left == right)`
|
|
5
|
+
left: `-5`,
|
|
6
|
+
right: `0`
|
|
7
|
+
test store::tests::rejects_negative_balance ... FAILED
|
|
8
|
+
|
|
9
|
+
test result: FAILED. 11 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out
|
|
10
|
+
|
|
11
|
+
error: test failed, to rerun pass `-p store --lib`
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/bin/bash -eo pipefail
|
|
2
|
+
bundle install --jobs=4 --retry=3
|
|
3
|
+
Fetching gem metadata from https://rubygems.org/...
|
|
4
|
+
Installing nokogiri 1.16.5 with native extensions
|
|
5
|
+
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
|
|
6
|
+
|
|
7
|
+
current directory: /builds/project/vendor/bundle/ruby/3.2.0/gems/nokogiri-1.16.5/ext/nokogiri
|
|
8
|
+
/usr/bin/ruby3.2 extconf.rb
|
|
9
|
+
checking if the C compiler accepts ... *** extconf.rb failed ***
|
|
10
|
+
Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers.
|
|
11
|
+
Check the mkmf.log file for more details.
|
|
12
|
+
|
|
13
|
+
An error occurred while installing nokogiri (1.16.5), and Bundler cannot continue.
|
|
14
|
+
|
|
15
|
+
Exited with code exit status 1
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
#!/bin/bash -eo pipefail
|
|
2
|
+
Checkout code
|
|
3
|
+
Cloning git repository
|
|
4
|
+
Cloning into 'project'...
|
|
5
|
+
Downloading assets/demo-render.mov (82 MB)
|
|
6
|
+
Error downloading object: assets/demo-render.mov (a1b2c3d): Smudge error: Error downloading assets/demo-render.mov (a1b2c3d4e5f67890): smudge filter lfs failed
|
|
7
|
+
error downloading object
|
|
8
|
+
|
|
9
|
+
Exited with code exit status 1
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/bin/bash -eo pipefail
|
|
2
|
+
yarn build
|
|
3
|
+
$ yarn build
|
|
4
|
+
yarn run v1.22.19
|
|
5
|
+
$ webpack --mode production
|
|
6
|
+
<--- Last few GCs --->
|
|
7
|
+
|
|
8
|
+
FATAL ERROR: JavaScript heap out of memory
|
|
9
|
+
Out of memory: Killed process 412 (node) total-vm:5231212kB
|
|
10
|
+
|
|
11
|
+
Exited with code exit status 137
|
|
12
|
+
CircleCI received exit code 137
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
$ cargo test --workspace
|
|
2
|
+
running 18 tests
|
|
3
|
+
test scheduler::tests::retries_backoff_capped ... FAILED
|
|
4
|
+
|
|
5
|
+
failures:
|
|
6
|
+
|
|
7
|
+
---- scheduler::tests::retries_backoff_capped stdout ----
|
|
8
|
+
thread 'scheduler::tests::retries_backoff_capped' panicked at crates/scheduler/src/lib.rs:73:9:
|
|
9
|
+
assertion `left == right` failed
|
|
10
|
+
left: 32
|
|
11
|
+
right: 30
|
|
12
|
+
|
|
13
|
+
failures:
|
|
14
|
+
scheduler::tests::retries_backoff_capped
|
|
15
|
+
|
|
16
|
+
test result: FAILED. 17 passed; 1 failed; 0 ignored; 0 measured
|
|
17
|
+
error: test failed, to rerun pass `-p scheduler --lib`
|
|
18
|
+
Cirrus CI task failed with exit code 101
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
Step #2 - "lint": + golangci-lint run ./...
|
|
2
|
+
Step #2 - "lint": internal/pricing/discount.go:58:2: ineffectual assignment to err (ineffassign)
|
|
3
|
+
Step #2 - "lint": internal/pricing/discount.go:71:14: S1021: should merge variable declaration with assignment (gosimple)
|
|
4
|
+
Step #2 - "lint": 2 issues found
|
|
5
|
+
Finished Step #2 - "lint"
|
|
6
|
+
ERROR: build step 2 "golangci/golangci-lint" failed: exit status 1
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[Container] Running command npm test
|
|
2
|
+
|
|
3
|
+
> checkout-api@1.4.0 test
|
|
4
|
+
> jest --ci
|
|
5
|
+
|
|
6
|
+
FAIL src/handlers/refund.test.ts
|
|
7
|
+
refund handler
|
|
8
|
+
✕ rejects refunds above the remaining balance (14 ms)
|
|
9
|
+
|
|
10
|
+
● refund handler > rejects refunds above the remaining balance
|
|
11
|
+
|
|
12
|
+
expect(received).toBe(expected)
|
|
13
|
+
|
|
14
|
+
Expected: 400
|
|
15
|
+
Received: 200
|
|
16
|
+
|
|
17
|
+
Tests: 1 failed, 22 passed, 23 total
|
|
18
|
+
Test Suites: 1 failed, 6 passed, 7 total
|
|
19
|
+
[Container] Command did not exit successfully npm test exit status 1
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Step: Scan image
|
|
2
|
+
$ trivy image --exit-code 1 --severity CRITICAL registry.example.com/api-gateway:sha-9f31c02
|
|
3
|
+
|
|
4
|
+
api-gateway:sha-9f31c02 (alpine 3.18.4)
|
|
5
|
+
=======================================
|
|
6
|
+
Total: 2 (CRITICAL: 2)
|
|
7
|
+
|
|
8
|
+
+-------------+------------------+----------+-------------------+---------------+
|
|
9
|
+
| LIBRARY | VULNERABILITY ID | SEVERITY | INSTALLED VERSION | FIXED VERSION |
|
|
10
|
+
+-------------+------------------+----------+-------------------+---------------+
|
|
11
|
+
| openssl | CVE-2024-0727 | CRITICAL | 3.1.4-r0 | 3.1.4-r5 |
|
|
12
|
+
| libcrypto3 | CVE-2024-0727 | CRITICAL | 3.1.4-r0 | 3.1.4-r5 |
|
|
13
|
+
+-------------+------------------+----------+-------------------+---------------+
|
|
14
|
+
|
|
15
|
+
Codefresh step failed: exit code 1
|