pact_broker 2.89.1 → 2.93.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +58 -0
- data/db/ddl_statements/all_verifications.rb +21 -0
- data/db/migrations/20210608_add_uuid_to_webhook.rb +1 -0
- data/db/migrations/20210701_recreate_all_verifications.rb +18 -0
- data/db/migrations/20211101_recreate_all_verifications.rb +10 -0
- data/db/migrations/20211102_create_table_temp_integrations.rb +26 -0
- data/db/migrations/20211103_migrate_integrations.rb +21 -0
- data/db/migrations/20211104_switch_integrations_and_temp_integrations.rb +25 -0
- data/db/migrations/20211120_create_pact_version_provider_tag_successful_verifications.rb +23 -0
- data/db/migrations/20211121_migrate_pact_version_provider_tag_successful_verifications_data.rb +11 -0
- data/docs/CONFIGURATION.md +30 -0
- data/lib/pact_broker/api/decorators/embedded_environment_decorator.rb +25 -0
- data/lib/pact_broker/api/decorators/matrix_decorator.rb +17 -2
- data/lib/pact_broker/api/decorators/version_decorator.rb +2 -0
- data/lib/pact_broker/api/renderers/html_pact_renderer.rb +4 -0
- data/lib/pact_broker/api/resources/deployed_versions_for_version_and_environment.rb +2 -2
- data/lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb +5 -1
- data/lib/pact_broker/api/resources/verifications.rb +1 -1
- data/lib/pact_broker/app.rb +1 -1
- data/lib/pact_broker/certificates/service.rb +32 -2
- data/lib/pact_broker/config/runtime_configuration.rb +9 -0
- data/lib/pact_broker/config/runtime_configuration_database_methods.rb +6 -0
- data/lib/pact_broker/config/runtime_configuration_logging_methods.rb +6 -2
- data/lib/pact_broker/db/clean_incremental.rb +26 -9
- data/lib/pact_broker/db/data_migrations/migrate_integrations.rb +40 -0
- data/lib/pact_broker/db/data_migrations/migrate_pact_version_provider_tag_successful_verifications.rb +38 -0
- data/lib/pact_broker/db/migrate_data.rb +2 -0
- data/lib/pact_broker/deployments/deployed_version.rb +9 -1
- data/lib/pact_broker/doc/views/webhooks.markdown +23 -0
- data/lib/pact_broker/domain/pacticipant.rb +38 -6
- data/lib/pact_broker/initializers/database_connection.rb +6 -4
- data/lib/pact_broker/integrations/integration.rb +34 -10
- data/lib/pact_broker/integrations/repository.rb +22 -0
- data/lib/pact_broker/integrations/service.rb +2 -2
- data/lib/pact_broker/locale/en.yml +1 -2
- data/lib/pact_broker/matrix/quick_row.rb +16 -0
- data/lib/pact_broker/pacticipants/repository.rb +5 -0
- data/lib/pact_broker/pacticipants/service.rb +1 -1
- data/lib/pact_broker/pacts/merger.rb +8 -4
- data/lib/pact_broker/pacts/pact_publication_dataset_module.rb +52 -59
- data/lib/pact_broker/pacts/pact_publication_wip_dataset_module.rb +37 -4
- data/lib/pact_broker/pacts/pacts_for_verification_repository.rb +2 -2
- data/lib/pact_broker/pacts/repository.rb +1 -0
- data/lib/pact_broker/repositories.rb +5 -0
- data/lib/pact_broker/tasks/clean_task.rb +11 -0
- data/lib/pact_broker/test/http_test_data_builder.rb +1 -0
- data/lib/pact_broker/test/test_data_builder.rb +42 -9
- data/lib/pact_broker/ui/views/index/_css_and_js.haml +1 -0
- data/lib/pact_broker/ui/views/layouts/main.haml +4 -0
- data/lib/pact_broker/ui/views/matrix/show.haml +1 -0
- data/lib/pact_broker/verifications/pact_version_provider_tag_successful_verification.rb +11 -0
- data/lib/pact_broker/verifications/repository.rb +16 -0
- data/lib/pact_broker/version.rb +1 -1
- data/lib/pact_broker/webhooks/pact_and_verification_parameters.rb +1 -2
- data/pact_broker.gemspec +8 -1
- data/public/css/bootstrap-grid.css +170 -17
- data/public/css/bootstrap-grid.css.map +1 -1
- data/public/css/bootstrap-grid.min.css +5 -5
- data/public/css/bootstrap-grid.min.css.map +1 -1
- data/public/css/bootstrap-reboot.css +16 -22
- data/public/css/bootstrap-reboot.css.map +1 -1
- data/public/css/bootstrap-reboot.min.css +5 -5
- data/public/css/bootstrap-reboot.min.css.map +1 -1
- data/public/css/bootstrap.css +585 -308
- data/public/css/bootstrap.css.map +1 -1
- data/public/css/bootstrap.min.css +5 -5
- data/public/css/bootstrap.min.css.map +1 -1
- data/public/images/question.svg +1 -0
- data/public/javascripts/set-css-asset-base-url.js +23 -0
- data/public/js/bootstrap.bundle.js +1294 -1335
- data/public/js/bootstrap.bundle.js.map +1 -1
- data/public/js/bootstrap.bundle.min.js +4 -4
- data/public/js/bootstrap.bundle.min.js.map +1 -1
- data/public/js/bootstrap.js +1232 -1310
- data/public/js/bootstrap.js.map +1 -1
- data/public/js/bootstrap.min.js +4 -4
- data/public/js/bootstrap.min.js.map +1 -1
- data/public/stylesheets/index.css +14 -5
- data/public/stylesheets/matrix.css +6 -1
- data/public/stylesheets/pact.css +6 -1
- metadata +19 -1068
- data/.codeclimate.yml +0 -49
- data/.csslintrc +0 -2
- data/.dockerignore +0 -2
- data/.eslintignore +0 -1
- data/.eslintrc.yml +0 -277
- data/.github/FUNDING.yml +0 -4
- data/.github/ISSUE_TEMPLATE.md +0 -32
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -9
- data/.github/workflows/release_gem.yml +0 -52
- data/.github/workflows/test-ruby-3.yml +0 -19
- data/.github/workflows/test.yml +0 -95
- data/.github/workflows/trigger_pact_docs_update.yml +0 -23
- data/.gitignore +0 -45
- data/.optic/.gitignore +0 -2
- data/.optic/api/specification.json +0 -1
- data/.optic/ignore +0 -14
- data/.rspec +0 -3
- data/.rubocop.yml +0 -314
- data/.ruby-version +0 -1
- data/CODE_OF_CONDUCT.md +0 -76
- data/CONTRIBUTING.md +0 -29
- data/DEVELOPER_DOCUMENTATION.md +0 -161
- data/DEVELOPER_SETUP.md +0 -165
- data/Dockerfile +0 -52
- data/ISSUES.md +0 -31
- data/LICENSE.txt +0 -22
- data/MATRIX.md +0 -4
- data/RELEASING.md +0 -5
- data/Rakefile +0 -23
- data/UPGRADING.md +0 -18
- data/config/boot.rb +0 -21
- data/config/database.travis.yml +0 -13
- data/config/database.yml +0 -79
- data/config.ru +0 -11
- data/db/test/backwards_compatibility/.rspec +0 -3
- data/db/test/backwards_compatibility/Appraisals +0 -57
- data/db/test/backwards_compatibility/Gemfile +0 -12
- data/db/test/backwards_compatibility/Rakefile +0 -72
- data/db/test/backwards_compatibility/config.ru +0 -21
- data/db/test/backwards_compatibility/gemfiles/1.18.0.gemfile +0 -15
- data/db/test/backwards_compatibility/gemfiles/1.18.0.gemfile.lock +0 -212
- data/db/test/backwards_compatibility/gemfiles/2.0.0.gemfile +0 -15
- data/db/test/backwards_compatibility/gemfiles/2.0.0.gemfile.lock +0 -210
- data/db/test/backwards_compatibility/gemfiles/2.1.0.gemfile +0 -15
- data/db/test/backwards_compatibility/gemfiles/2.1.0.gemfile.lock +0 -211
- data/db/test/backwards_compatibility/gemfiles/2.2.0.gemfile +0 -15
- data/db/test/backwards_compatibility/gemfiles/2.2.0.gemfile.lock +0 -199
- data/db/test/backwards_compatibility/gemfiles/2.3.0.gemfile +0 -14
- data/db/test/backwards_compatibility/gemfiles/2.3.0.gemfile.lock +0 -198
- data/db/test/backwards_compatibility/gemfiles/2.4.2.gemfile +0 -14
- data/db/test/backwards_compatibility/gemfiles/2.4.2.gemfile.lock +0 -198
- data/db/test/backwards_compatibility/gemfiles/2.5.1.gemfile +0 -14
- data/db/test/backwards_compatibility/gemfiles/2.5.1.gemfile.lock +0 -198
- data/db/test/backwards_compatibility/gemfiles/2.6.0.gemfile +0 -14
- data/db/test/backwards_compatibility/gemfiles/2.6.0.gemfile.lock +0 -198
- data/db/test/backwards_compatibility/gemfiles/head.gemfile +0 -14
- data/db/test/backwards_compatibility/gemfiles/head.gemfile.lock +0 -182
- data/db/test/backwards_compatibility/spec/fixtures/foo-bar.json +0 -22
- data/db/test/backwards_compatibility/spec/publish_pact_spec.rb +0 -72
- data/db/test/backwards_compatibility/spec/spec_helper.rb +0 -20
- data/db/test/backwards_compatibility/spec/support/fixture_helpers.rb +0 -12
- data/db/test/backwards_compatibility/spec/support/request_helpers.rb +0 -19
- data/db/test/change_migration_strategy/Rakefile +0 -21
- data/db/test/change_migration_strategy/before/Gemfile +0 -7
- data/docker-compose-ci-mysql.yml +0 -38
- data/docker-compose-dev-postgres.yml +0 -43
- data/docker-compose-issue-repro-with-pact-broker-docker-image.yml +0 -44
- data/docker-compose-test.yml +0 -102
- data/docs/configuration.yml +0 -385
- data/docs/images/Pactflow logo - black small.png +0 -0
- data/example/Gemfile +0 -6
- data/example/README.md +0 -64
- data/example/config/pact_broker.yml +0 -9
- data/example/config/puma.rb +0 -3
- data/example/config.ru +0 -10
- data/issue-reproduction/Dockerfile-pact-broker +0 -42
- data/lib/pact_broker/versions/latest_version.rb +0 -21
- data/optic.yml +0 -5
- data/pact_broker_client-pact_broker.json +0 -133
- data/public/js/npm.js +0 -13
- data/regression/.gitignore +0 -1
- data/regression/can_i_deploy_spec.rb +0 -43
- data/regression/index_spec.rb +0 -26
- data/regression/regression_helper.rb +0 -63
- data/regression/script/approval-all.sh +0 -6
- data/regression/script/clear.sh +0 -3
- data/regression/script/run.sh +0 -3
- data/scaffolding/README.md +0 -23
- data/scaffolding/run.rb +0 -242
- data/scaffolding/templates/decorator.rb.erb +0 -15
- data/scaffolding/templates/decorator_spec.erb.rb +0 -0
- data/scaffolding/templates/migration.erb +0 -12
- data/scaffolding/templates/model.erb +0 -14
- data/scaffolding/templates/repository.rb.erb +0 -18
- data/scaffolding/templates/repository_spec.rb.erb +0 -9
- data/scaffolding/templates/resource.erb +0 -46
- data/scaffolding/templates/resource_spec.rb.erb +0 -78
- data/scaffolding/templates/service.rb.erb +0 -22
- data/scaffolding/templates/service_spec.rb.erb +0 -9
- data/script/data/auto-create-things-for-tags.rb +0 -22
- data/script/data/branches.rb +0 -35
- data/script/data/contract-published-requiring-verification.rb +0 -26
- data/script/data/environments.rb +0 -45
- data/script/data/expand-currently-deployed.rb +0 -47
- data/script/data/issue-494.rb +0 -25
- data/script/data/pending.rb +0 -26
- data/script/data/tags.rb +0 -35
- data/script/data/verify-pact-for-multiple-selectors.rb +0 -30
- data/script/data/webhook.rb +0 -22
- data/script/db-spec.sh +0 -16
- data/script/demonstrate-version-branches.rb +0 -33
- data/script/dev/rubocop-modified-files.sh +0 -3
- data/script/dev/webhook-server-with-random-errors.sh +0 -25
- data/script/docker/db-execute-sql-file.sh +0 -2
- data/script/docker/db-psql.sh +0 -3
- data/script/docker/db-reload.sh +0 -11
- data/script/docker/db-restore.sh +0 -5
- data/script/docker/db-rm.sh +0 -3
- data/script/docker/db-start.sh +0 -7
- data/script/docker/mysql-db-start.sh +0 -10
- data/script/docker-container/test.sh +0 -3
- data/script/docs/generate-api-docs.rb +0 -117
- data/script/docs/generate-configuration-docs.rb +0 -107
- data/script/docs/regenerate-api-docs.sh +0 -11
- data/script/exercise-api-for-optic.sh +0 -3
- data/script/foo-bar-verification.json +0 -59
- data/script/foo-bar.json +0 -33
- data/script/generate-certificates-for-webooks-certificate-spec.rb +0 -49
- data/script/generate-erd +0 -55
- data/script/github-issues/add-branch-support/issue-text.txt +0 -7
- data/script/github-issues/add-branch-support/issues.txt +0 -0
- data/script/github-issues/add-branch-support/raise-issue-in-client-repos.sh +0 -10
- data/script/github-issues/add-branch-support-for-provider-versions/issue-text.txt +0 -9
- data/script/github-issues/add-branch-support-for-provider-versions/issues.txt +0 -6
- data/script/github-issues/add-branch-support-for-provider-versions/raise-issue-in-client-repos.sh +0 -10
- data/script/github-issues/branch-consumer-version-selector/issue-text.txt +0 -52
- data/script/github-issues/branch-consumer-version-selector/issues.txt +0 -9
- data/script/github-issues/branch-consumer-version-selector/raise-issue-in-client-repos.sh +0 -10
- data/script/github-issues/consumer-version-selectors-docs/issue-text.txt +0 -11
- data/script/github-issues/consumer-version-selectors-docs/issues.txt +0 -6
- data/script/github-issues/consumer-version-selectors-docs/raise-issue-in-client-repos.sh +0 -10
- data/script/github-issues/deployed-and-released-selectors-docs/issue-text.txt +0 -26
- data/script/github-issues/deployed-and-released-selectors-docs/issues.txt +0 -9
- data/script/github-issues/deployed-and-released-selectors-docs/raise-issue-in-client-repos.sh +0 -10
- data/script/github-issues/include-pending-by-default/issue-text.txt +0 -5
- data/script/github-issues/include-pending-by-default/issues.txt +0 -10
- data/script/github-issues/include-pending-by-default/raise-issue-in-client-repos.sh +0 -10
- data/script/import-pg-database.sh +0 -5
- data/script/insert-self-signed-certificate-from-url.rb +0 -35
- data/script/prod/clean-up.sql +0 -11
- data/script/prod/migrate-latest-pacts.sh +0 -29
- data/script/prod/redact-data.sql +0 -16
- data/script/pry.rb +0 -31
- data/script/publish-2.sh +0 -4
- data/script/publish-new.sh +0 -31
- data/script/publish-not-a-pact.sh +0 -4
- data/script/publish-verification.sh +0 -5
- data/script/publish.sh +0 -28
- data/script/query.rb +0 -20
- data/script/recreate-docker-pg-db.sh +0 -20
- data/script/recreate-mysql-db.sh +0 -18
- data/script/recreate-pg-db.sh +0 -16
- data/script/recreate-test-database.sh +0 -2
- data/script/release-via-github-action.sh +0 -7
- data/script/release.sh +0 -11
- data/script/reproduce-issue-can-i-deploy-ignore.rb +0 -48
- data/script/reproduce-issue-starting-up.rb +0 -38
- data/script/reproduce-issue.rb +0 -37
- data/script/restart.sh +0 -18
- data/script/run-with-ssl.rb +0 -44
- data/script/seed-example-matrix.rb +0 -105
- data/script/seed-for-webhook-test.rb +0 -59
- data/script/seed-matrix.rb +0 -90
- data/script/seed.rb +0 -101
- data/script/test/approval-all.sh +0 -6
- data/script/test/run-rake-on-docker-compose-mysql.sh +0 -8
- data/script/trigger-release.sh +0 -30
- data/script/update-hal-browser +0 -6
- data/script/watch.sh +0 -7
- data/script/webhook-server.ru +0 -10
- data/spec/features/base_equality_only_on_content_that_affects_verification_results_spec.rb +0 -34
- data/spec/features/can_i_deploy_spec.rb +0 -31
- data/spec/features/create_branch_version_spec.rb +0 -29
- data/spec/features/create_environment_spec.rb +0 -47
- data/spec/features/create_pacticipant_spec.rb +0 -36
- data/spec/features/create_tag_spec.rb +0 -42
- data/spec/features/create_version_spec.rb +0 -56
- data/spec/features/create_webhook_spec.rb +0 -189
- data/spec/features/delete_environment_spec.rb +0 -16
- data/spec/features/delete_integration_spec.rb +0 -27
- data/spec/features/delete_label_spec.rb +0 -28
- data/spec/features/delete_pact_spec.rb +0 -31
- data/spec/features/delete_pact_versions_for_branch_spec.rb +0 -34
- data/spec/features/delete_pact_versions_spec.rb +0 -29
- data/spec/features/delete_tagged_pact_versions_spec.rb +0 -28
- data/spec/features/delete_verification_spec.rb +0 -27
- data/spec/features/delete_version_spec.rb +0 -22
- data/spec/features/delete_webhook_spec.rb +0 -34
- data/spec/features/edit_webhook_spec.rb +0 -61
- data/spec/features/end_deployment_spec.rb +0 -29
- data/spec/features/end_support_spec.rb +0 -67
- data/spec/features/execute_unsaved_webhook_spec.rb +0 -53
- data/spec/features/execute_webhook_spec.rb +0 -92
- data/spec/features/get_branch_version_spec.rb +0 -12
- data/spec/features/get_can_i_deploy_badge_spec.rb +0 -13
- data/spec/features/get_currently_deployed_versions_for_environment_spec.rb +0 -76
- data/spec/features/get_currently_deployed_versions_for_version_spec.rb +0 -27
- data/spec/features/get_currently_supported_versions_for_environment_spec.rb +0 -57
- data/spec/features/get_dashboard_spec.rb +0 -29
- data/spec/features/get_deployed_versions_for_version_and_environment.rb +0 -27
- data/spec/features/get_diff_spec.rb +0 -53
- data/spec/features/get_environment_spec.rb +0 -19
- data/spec/features/get_environments_spec.rb +0 -30
- data/spec/features/get_integrations_dot_file_spec.rb +0 -23
- data/spec/features/get_integrations_spec.rb +0 -17
- data/spec/features/get_label_spec.rb +0 -28
- data/spec/features/get_latest_pact_badge_spec.rb +0 -54
- data/spec/features/get_latest_tagged_pact_badge_spec.rb +0 -38
- data/spec/features/get_latest_tagged_pact_spec.rb +0 -22
- data/spec/features/get_latest_untagged_pact_badge_spec.rb +0 -38
- data/spec/features/get_latest_untagged_pact_spec.rb +0 -22
- data/spec/features/get_latest_verification_for_pact_spec.rb +0 -59
- data/spec/features/get_matrix_badge_spec.rb +0 -50
- data/spec/features/get_matrix_for_consumer_and_provider_spec.rb +0 -22
- data/spec/features/get_matrix_spec.rb +0 -34
- data/spec/features/get_pact_spec.rb +0 -65
- data/spec/features/get_pact_version.rb +0 -36
- data/spec/features/get_pact_versions_spec.rb +0 -34
- data/spec/features/get_pacticipants_by_label_spec.rb +0 -27
- data/spec/features/get_previous_distinct_version.rb +0 -51
- data/spec/features/get_provider_pacts_for_verification_spec.rb +0 -95
- data/spec/features/get_provider_pacts_spec.rb +0 -93
- data/spec/features/get_released_versions_for_version_and_environment.rb +0 -27
- data/spec/features/get_tagged_pact_versions_spec.rb +0 -26
- data/spec/features/get_triggered_webhooks_for_pact_spec.rb +0 -20
- data/spec/features/get_triggered_webhooks_for_verification_spec.rb +0 -21
- data/spec/features/get_verifications_for_consumer_version_spec.rb +0 -33
- data/spec/features/get_version_spec.rb +0 -44
- data/spec/features/get_versions_spec.rb +0 -39
- data/spec/features/label_pacticipant_spec.rb +0 -22
- data/spec/features/merge_pact_spec.rb +0 -63
- data/spec/features/metadata_spec.rb +0 -66
- data/spec/features/metrics_spec.rb +0 -23
- data/spec/features/pending_pacts_spec.rb +0 -109
- data/spec/features/pending_pacts_with_tags_spec.rb +0 -138
- data/spec/features/publish_not_a_pact_spec.rb +0 -37
- data/spec/features/publish_pact_all_in_one_approval_spec.rb +0 -72
- data/spec/features/publish_pact_all_in_one_spec.rb +0 -61
- data/spec/features/publish_pact_spec.rb +0 -124
- data/spec/features/publish_verification_results_and_version_spec.rb +0 -70
- data/spec/features/publish_verification_spec.rb +0 -72
- data/spec/features/record_deployment_spec.rb +0 -106
- data/spec/features/record_release_spec.rb +0 -84
- data/spec/features/record_undeployment_spec.rb +0 -67
- data/spec/features/tag_version_spec.rb +0 -13
- data/spec/features/update_environment_spec.rb +0 -44
- data/spec/features/update_matrix_spec.rb +0 -146
- data/spec/features/update_pacticipant_spec.rb +0 -98
- data/spec/features/update_version_spec.rb +0 -100
- data/spec/features/update_webhook_spec.rb +0 -47
- data/spec/features/wip_pacts_spec.rb +0 -387
- data/spec/fixtures/a_consumer-a_provider-2.json +0 -22
- data/spec/fixtures/a_consumer-a_provider-3.json +0 -22
- data/spec/fixtures/a_consumer-a_provider-conflict.json +0 -22
- data/spec/fixtures/a_consumer-a_provider-merged.json +0 -34
- data/spec/fixtures/a_consumer-a_provider.json +0 -22
- data/spec/fixtures/approvals/clean_incremental_dry_run.approved.json +0 -100
- data/spec/fixtures/approvals/docs_webhooks_executing_a_saved_webhook_options.approved.json +0 -20
- data/spec/fixtures/approvals/docs_webhooks_executing_a_saved_webhook_post.approved.json +0 -43
- data/spec/fixtures/approvals/docs_webhooks_executing_an_unsaved_webhook_options.approved.json +0 -20
- data/spec/fixtures/approvals/docs_webhooks_executing_an_unsaved_webhook_post.approved.json +0 -63
- data/spec/fixtures/approvals/docs_webhooks_logs_of_triggered_webhook_get.approved.json +0 -20
- data/spec/fixtures/approvals/docs_webhooks_logs_of_triggered_webhook_options.approved.json +0 -20
- data/spec/fixtures/approvals/docs_webhooks_pact_webhooks_get.approved.json +0 -45
- data/spec/fixtures/approvals/docs_webhooks_pact_webhooks_options.approved.json +0 -20
- data/spec/fixtures/approvals/docs_webhooks_triggered_webhooks_for_pact_publication_get.approved.json +0 -52
- data/spec/fixtures/approvals/docs_webhooks_triggered_webhooks_for_pact_publication_options.approved.json +0 -20
- data/spec/fixtures/approvals/docs_webhooks_triggered_webhooks_for_verification_publication_get.approved.json +0 -32
- data/spec/fixtures/approvals/docs_webhooks_triggered_webhooks_for_verification_publication_options.approved.json +0 -20
- data/spec/fixtures/approvals/docs_webhooks_webhook_get.approved.json +0 -74
- data/spec/fixtures/approvals/docs_webhooks_webhook_options.approved.json +0 -20
- data/spec/fixtures/approvals/docs_webhooks_webhook_put.approved.json +0 -77
- data/spec/fixtures/approvals/docs_webhooks_webhooks_for_a_provider_get.approved.json +0 -41
- data/spec/fixtures/approvals/docs_webhooks_webhooks_for_a_provider_options.approved.json +0 -20
- data/spec/fixtures/approvals/docs_webhooks_webhooks_for_consumer_and_provider_get.approved.json +0 -45
- data/spec/fixtures/approvals/docs_webhooks_webhooks_for_consumer_and_provider_options.approved.json +0 -20
- data/spec/fixtures/approvals/docs_webhooks_webhooks_for_consumer_get.approved.json +0 -41
- data/spec/fixtures/approvals/docs_webhooks_webhooks_for_consumer_options.approved.json +0 -20
- data/spec/fixtures/approvals/docs_webhooks_webhooks_get.approved.json +0 -45
- data/spec/fixtures/approvals/docs_webhooks_webhooks_options.approved.json +0 -20
- data/spec/fixtures/approvals/docs_webhooks_webhooks_post.approved.json +0 -78
- data/spec/fixtures/approvals/docs_webhooks_webhooks_status_get.approved.json +0 -79
- data/spec/fixtures/approvals/docs_webhooks_webhooks_status_options.approved.json +0 -20
- data/spec/fixtures/approvals/get_provider_pacts_for_verification.approved.json +0 -56
- data/spec/fixtures/approvals/matrix_integration_environment_spec.approved.json +0 -62
- data/spec/fixtures/approvals/matrix_integration_ignore_spec.approved.json +0 -124
- data/spec/fixtures/approvals/matrix_integration_spec.approved.json +0 -173
- data/spec/fixtures/approvals/modifiable_resources.approved.json +0 -105
- data/spec/fixtures/approvals/publish_contract_no_branch.approved.json +0 -165
- data/spec/fixtures/approvals/publish_contract_nothing_exists.approved.json +0 -156
- data/spec/fixtures/approvals/publish_contract_nothing_exists_with_webhook.approved.json +0 -156
- data/spec/fixtures/approvals/publish_contract_verification_already_exists.approved.json +0 -147
- data/spec/fixtures/approvals/publish_contract_with_validation_error.approved.json +0 -41
- data/spec/fixtures/approvals/publish_contracts_results_decorator.approved.json +0 -61
- data/spec/fixtures/certificate-invalid.pem +0 -29
- data/spec/fixtures/certificate.pem +0 -53
- data/spec/fixtures/certificates/cacert.pem +0 -21
- data/spec/fixtures/certificates/cert.pem +0 -20
- data/spec/fixtures/certificates/key.pem +0 -27
- data/spec/fixtures/certificates/self-signed.badssl.com.pem +0 -21
- data/spec/fixtures/consumer-provider.json +0 -25
- data/spec/fixtures/dashboard.json +0 -87
- data/spec/fixtures/expected.gv +0 -4
- data/spec/fixtures/foo-bar.json +0 -22
- data/spec/fixtures/invalid-publish-contract-body.json +0 -38
- data/spec/fixtures/renderer_pact.json +0 -34
- data/spec/fixtures/update_pacticipant.json +0 -5
- data/spec/fixtures/updated_pacticipant.json +0 -11
- data/spec/fixtures/verification.json +0 -11
- data/spec/fixtures/webhook_valid.json +0 -17
- data/spec/fixtures/webhook_valid_with_pacticipants.json +0 -23
- data/spec/integration/app_spec.rb +0 -209
- data/spec/integration/endpoints/group_spec.rb +0 -19
- data/spec/integration/pact_metdata_spec.rb +0 -105
- data/spec/integration/ui/index_spec.rb +0 -50
- data/spec/integration/ui/matrix_spec.rb +0 -36
- data/spec/integration/webhooks/certificate_spec.rb +0 -47
- data/spec/integration/webhooks/contract_publication_spec.rb +0 -68
- data/spec/integration/webhooks/contract_requiring_verification_published_spec.rb +0 -67
- data/spec/integration/webhooks/pact_publication_spec.rb +0 -51
- data/spec/integration/webhooks_documentation_spec.rb +0 -348
- data/spec/lib/pact/doc/generator_spec.rb +0 -80
- data/spec/lib/pact/doc/interaction_view_model_spec.rb +0 -232
- data/spec/lib/pact/doc/markdown/consumer_contract_renderer_spec.rb +0 -71
- data/spec/lib/pact/doc/markdown/index_renderer_spec.rb +0 -29
- data/spec/lib/pact_broker/api/contracts/environment_schema_spec.rb +0 -91
- data/spec/lib/pact_broker/api/contracts/pacticipant_schema_spec.rb +0 -46
- data/spec/lib/pact_broker/api/contracts/pacts_for_verification_json_query_schema_combinations_spec.rb +0 -87
- data/spec/lib/pact_broker/api/contracts/pacts_for_verification_json_query_schema_spec.rb +0 -358
- data/spec/lib/pact_broker/api/contracts/pacts_for_verification_query_string_schema_spec.rb +0 -97
- data/spec/lib/pact_broker/api/contracts/publish_contracts_schema_spec.rb +0 -127
- data/spec/lib/pact_broker/api/contracts/put_pact_params_contract_spec.rb +0 -133
- data/spec/lib/pact_broker/api/contracts/verification_contract_spec.rb +0 -112
- data/spec/lib/pact_broker/api/contracts/webhook_contract_spec.rb +0 -379
- data/spec/lib/pact_broker/api/decorators/dashboard_decorator_spec.rb +0 -94
- data/spec/lib/pact_broker/api/decorators/embedded_label_decorator_spec.rb +0 -34
- data/spec/lib/pact_broker/api/decorators/embedded_tag_decorator_spec.rb +0 -41
- data/spec/lib/pact_broker/api/decorators/embedded_version_decorator_spec.rb +0 -39
- data/spec/lib/pact_broker/api/decorators/extended_pact_decorator_spec.rb +0 -62
- data/spec/lib/pact_broker/api/decorators/integration_decorator_spec.rb +0 -86
- data/spec/lib/pact_broker/api/decorators/integrations_decorator_spec.rb +0 -29
- data/spec/lib/pact_broker/api/decorators/label_decorator_spec.rb +0 -42
- data/spec/lib/pact_broker/api/decorators/latest_pact_decorator_spec.rb +0 -25
- data/spec/lib/pact_broker/api/decorators/matrix_decorator_spec.rb +0 -259
- data/spec/lib/pact_broker/api/decorators/pact_collection_decorator_spec.rb +0 -23
- data/spec/lib/pact_broker/api/decorators/pact_decorator_spec.rb +0 -136
- data/spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb +0 -61
- data/spec/lib/pact_broker/api/decorators/pact_webhooks_status_decorator_spec.rb +0 -138
- data/spec/lib/pact_broker/api/decorators/pacticipant_collection_decorator_spec.rb +0 -62
- data/spec/lib/pact_broker/api/decorators/pacticipant_decorator_spec.rb +0 -89
- data/spec/lib/pact_broker/api/decorators/pacts_for_verification_query_decorator_spec.rb +0 -175
- data/spec/lib/pact_broker/api/decorators/provider_pacts_decorator_spec.rb +0 -58
- data/spec/lib/pact_broker/api/decorators/publish_contracts_results_decorator_spec.rb +0 -53
- data/spec/lib/pact_broker/api/decorators/reason_decorator_spec.rb +0 -95
- data/spec/lib/pact_broker/api/decorators/relationships_csv_decorator_spec.rb +0 -28
- data/spec/lib/pact_broker/api/decorators/representable_pact_spec.rb +0 -29
- data/spec/lib/pact_broker/api/decorators/tag_decorator_spec.rb +0 -57
- data/spec/lib/pact_broker/api/decorators/tagged_pact_versions_decorator_spec.rb +0 -79
- data/spec/lib/pact_broker/api/decorators/triggered_webhook_decorator_spec.rb +0 -69
- data/spec/lib/pact_broker/api/decorators/triggered_webhooks_decorator_spec.rb +0 -28
- data/spec/lib/pact_broker/api/decorators/verifiable_pact_decorator_spec.rb +0 -94
- data/spec/lib/pact_broker/api/decorators/verifiable_pacts_decorator_spec.rb +0 -29
- data/spec/lib/pact_broker/api/decorators/verification_decorator_spec.rb +0 -81
- data/spec/lib/pact_broker/api/decorators/verification_summary_decorator_spec.rb +0 -65
- data/spec/lib/pact_broker/api/decorators/version_decorator_spec.rb +0 -121
- data/spec/lib/pact_broker/api/decorators/versions_decorator_spec.rb +0 -49
- data/spec/lib/pact_broker/api/decorators/webhook_decorator_spec.rb +0 -210
- data/spec/lib/pact_broker/api/decorators/webhook_execution_result_decorator_spec.rb +0 -128
- data/spec/lib/pact_broker/api/decorators/webhook_request_template_decorator_spec.rb +0 -78
- data/spec/lib/pact_broker/api/decorators/webhooks_decorator_spec.rb +0 -48
- data/spec/lib/pact_broker/api/middleware/basic_auth_spec.rb +0 -312
- data/spec/lib/pact_broker/api/middleware/configuration_spec.rb +0 -43
- data/spec/lib/pact_broker/api/pact_broker_urls_spec.rb +0 -221
- data/spec/lib/pact_broker/api/renderers/html_pact_renderer_spec.rb +0 -141
- data/spec/lib/pact_broker/api/renderers/integrations_dot_renderer_spec.rb +0 -29
- data/spec/lib/pact_broker/api/resources/all_webhooks_spec.rb +0 -145
- data/spec/lib/pact_broker/api/resources/badge_spec.rb +0 -212
- data/spec/lib/pact_broker/api/resources/can_i_deploy_badge_spec.rb +0 -80
- data/spec/lib/pact_broker/api/resources/can_i_deploy_pacticipant_version_spec.rb +0 -31
- data/spec/lib/pact_broker/api/resources/can_i_deploy_spec.rb +0 -51
- data/spec/lib/pact_broker/api/resources/dashboard_spec.rb +0 -36
- data/spec/lib/pact_broker/api/resources/default_base_resource_approval_spec.rb +0 -60
- data/spec/lib/pact_broker/api/resources/default_base_resource_spec.rb +0 -224
- data/spec/lib/pact_broker/api/resources/error_response_body_generator_spec.rb +0 -69
- data/spec/lib/pact_broker/api/resources/group_spec.rb +0 -82
- data/spec/lib/pact_broker/api/resources/latest_pact_spec.rb +0 -80
- data/spec/lib/pact_broker/api/resources/latest_provider_pacts_spec.rb +0 -52
- data/spec/lib/pact_broker/api/resources/latest_verifications_for_consumer_version_spec.rb +0 -68
- data/spec/lib/pact_broker/api/resources/matrix_badge_spec.rb +0 -11
- data/spec/lib/pact_broker/api/resources/matrix_spec.rb +0 -42
- data/spec/lib/pact_broker/api/resources/pact_spec.rb +0 -178
- data/spec/lib/pact_broker/api/resources/pact_triggered_webhooks_spec.rb +0 -54
- data/spec/lib/pact_broker/api/resources/pacticipant_spec.rb +0 -60
- data/spec/lib/pact_broker/api/resources/pacticipant_webhooks_spec.rb +0 -238
- data/spec/lib/pact_broker/api/resources/pacticipants_spec.rb +0 -87
- data/spec/lib/pact_broker/api/resources/provider_pacts_for_verification_spec.rb +0 -116
- data/spec/lib/pact_broker/api/resources/provider_pacts_spec.rb +0 -75
- data/spec/lib/pact_broker/api/resources/released_version_spec.rb +0 -61
- data/spec/lib/pact_broker/api/resources/tag_spec.rb +0 -166
- data/spec/lib/pact_broker/api/resources/tagged_pact_versions_spec.rb +0 -96
- data/spec/lib/pact_broker/api/resources/triggered_webhook_logs_spec.rb +0 -32
- data/spec/lib/pact_broker/api/resources/verification_spec.rb +0 -87
- data/spec/lib/pact_broker/api/resources/verification_triggered_webhooks_spec.rb +0 -67
- data/spec/lib/pact_broker/api/resources/verifications_spec.rb +0 -135
- data/spec/lib/pact_broker/api/resources/webhook_execution_spec.rb +0 -92
- data/spec/lib/pact_broker/api/resources/webhook_spec.rb +0 -115
- data/spec/lib/pact_broker/app_basic_auth_spec.rb +0 -122
- data/spec/lib/pact_broker/app_spec.rb +0 -348
- data/spec/lib/pact_broker/badges/service_spec.rb +0 -348
- data/spec/lib/pact_broker/build_http_options_spec.rb +0 -47
- data/spec/lib/pact_broker/certificates/service_spec.rb +0 -80
- data/spec/lib/pact_broker/config/load_spec.rb +0 -110
- data/spec/lib/pact_broker/config/runtime_configuration_documentation_spec.rb +0 -30
- data/spec/lib/pact_broker/config/runtime_configuration_logging_methods_spec.rb +0 -22
- data/spec/lib/pact_broker/config/runtime_configuration_spec.rb +0 -71
- data/spec/lib/pact_broker/config/save_spec.rb +0 -100
- data/spec/lib/pact_broker/config/space_delimited_integer_list_spec.rb +0 -47
- data/spec/lib/pact_broker/config/space_delimited_string_list_spec.rb +0 -45
- data/spec/lib/pact_broker/configuration_spec.rb +0 -167
- data/spec/lib/pact_broker/contracts/service_spec.rb +0 -193
- data/spec/lib/pact_broker/db/clean_incremental_spec.rb +0 -120
- data/spec/lib/pact_broker/db/clean_old_spec.rb +0 -123
- data/spec/lib/pact_broker/db/clean_spec.rb +0 -153
- data/spec/lib/pact_broker/db/data_migrations/create_branches_spec.rb +0 -57
- data/spec/lib/pact_broker/db/data_migrations/migrate_webhook_headers_spec.rb +0 -78
- data/spec/lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications_spec.rb +0 -40
- data/spec/lib/pact_broker/db/data_migrations/set_interactions_counts_spec.rb +0 -38
- data/spec/lib/pact_broker/db/data_migrations/set_latest_version_sequence_value_spec.rb +0 -68
- data/spec/lib/pact_broker/db/data_migrations/set_pacticipant_main_branch_spec.rb +0 -41
- data/spec/lib/pact_broker/db/delete_overwritten_data_spec.rb +0 -161
- data/spec/lib/pact_broker/db/log_quietener_spec.rb +0 -52
- data/spec/lib/pact_broker/db/validate_encoding_spec.rb +0 -66
- data/spec/lib/pact_broker/deployments/deployed_version_service_spec.rb +0 -42
- data/spec/lib/pact_broker/deployments/deployed_version_spec.rb +0 -109
- data/spec/lib/pact_broker/deployments/environment_service_spec.rb +0 -58
- data/spec/lib/pact_broker/deployments/environment_spec.rb +0 -27
- data/spec/lib/pact_broker/diagnostic/resources/dependencies_spec.rb +0 -85
- data/spec/lib/pact_broker/diagnostic/resources/heartbeat_spec.rb +0 -34
- data/spec/lib/pact_broker/doc/controllers/app_spec.rb +0 -82
- data/spec/lib/pact_broker/doc/coverage_spec.rb +0 -39
- data/spec/lib/pact_broker/domain/group_spec.rb +0 -25
- data/spec/lib/pact_broker/domain/index_item_spec.rb +0 -24
- data/spec/lib/pact_broker/domain/order_versions_spec.rb +0 -84
- data/spec/lib/pact_broker/domain/pact_spec.rb +0 -27
- data/spec/lib/pact_broker/domain/tag_spec.rb +0 -134
- data/spec/lib/pact_broker/domain/verification_spec.rb +0 -133
- data/spec/lib/pact_broker/domain/version_spec.rb +0 -490
- data/spec/lib/pact_broker/domain/webhook_request_spec.rb +0 -196
- data/spec/lib/pact_broker/domain/webhook_spec.rb +0 -168
- data/spec/lib/pact_broker/errors/error_logger_spec.rb +0 -65
- data/spec/lib/pact_broker/errors_spec.rb +0 -54
- data/spec/lib/pact_broker/events/subscriber_spec.rb +0 -43
- data/spec/lib/pact_broker/feature_toggle_spec.rb +0 -80
- data/spec/lib/pact_broker/groups/service_spec.rb +0 -52
- data/spec/lib/pact_broker/hash_refinements_spec.rb +0 -63
- data/spec/lib/pact_broker/index/service_spec.rb +0 -400
- data/spec/lib/pact_broker/index/service_view_spec.rb +0 -144
- data/spec/lib/pact_broker/integrations/integration_spec.rb +0 -108
- data/spec/lib/pact_broker/integrations/service_spec.rb +0 -282
- data/spec/lib/pact_broker/labels/repository_spec.rb +0 -124
- data/spec/lib/pact_broker/labels/service_spec.rb +0 -28
- data/spec/lib/pact_broker/matrix/aggregated_row_spec.rb +0 -100
- data/spec/lib/pact_broker/matrix/can_i_deploy_query_schema_spec.rb +0 -72
- data/spec/lib/pact_broker/matrix/deployment_status_summary_spec.rb +0 -300
- data/spec/lib/pact_broker/matrix/every_row_spec.rb +0 -133
- data/spec/lib/pact_broker/matrix/head_row_spec.rb +0 -89
- data/spec/lib/pact_broker/matrix/integration_environment_spec.rb +0 -187
- data/spec/lib/pact_broker/matrix/integration_ignore_spec.rb +0 -238
- data/spec/lib/pact_broker/matrix/integration_spec.rb +0 -504
- data/spec/lib/pact_broker/matrix/parse_can_i_deploy_query_spec.rb +0 -77
- data/spec/lib/pact_broker/matrix/parse_query_spec.rb +0 -141
- data/spec/lib/pact_broker/matrix/quick_row_spec.rb +0 -74
- data/spec/lib/pact_broker/matrix/repository_dependency_spec.rb +0 -56
- data/spec/lib/pact_broker/matrix/repository_query_limit_spec.rb +0 -78
- data/spec/lib/pact_broker/matrix/repository_spec.rb +0 -888
- data/spec/lib/pact_broker/matrix/row_spec.rb +0 -74
- data/spec/lib/pact_broker/matrix/service_spec.rb +0 -200
- data/spec/lib/pact_broker/messages_spec.rb +0 -29
- data/spec/lib/pact_broker/metrics/service_spec.rb +0 -131
- data/spec/lib/pact_broker/pacticipants/find_potential_duplicate_pacticipant_names_spec.rb +0 -63
- data/spec/lib/pact_broker/pacticipants/generate_display_name_spec.rb +0 -39
- data/spec/lib/pact_broker/pacticipants/repository_spec.rb +0 -239
- data/spec/lib/pact_broker/pacticipants/service_spec.rb +0 -217
- data/spec/lib/pact_broker/pacts/build_verifiable_pact_notices_spec.rb +0 -75
- data/spec/lib/pact_broker/pacts/content_spec.rb +0 -447
- data/spec/lib/pact_broker/pacts/create_formatted_diff_spec.rb +0 -29
- data/spec/lib/pact_broker/pacts/diff_spec.rb +0 -99
- data/spec/lib/pact_broker/pacts/generate_interaction_sha_spec.rb +0 -45
- data/spec/lib/pact_broker/pacts/generate_sha_spec.rb +0 -92
- data/spec/lib/pact_broker/pacts/merger_spec.rb +0 -171
- data/spec/lib/pact_broker/pacts/metadata_spec.rb +0 -147
- data/spec/lib/pact_broker/pacts/pact_params_spec.rb +0 -111
- data/spec/lib/pact_broker/pacts/pact_publication_clean_selector_dataset_module_spec.rb +0 -97
- data/spec/lib/pact_broker/pacts/pact_publication_dataset_module_spec.rb +0 -499
- data/spec/lib/pact_broker/pacts/pact_publication_latest_verification_spec.rb +0 -29
- data/spec/lib/pact_broker/pacts/pact_publication_selector_dataset_module_spec.rb +0 -185
- data/spec/lib/pact_broker/pacts/pact_publication_spec.rb +0 -559
- data/spec/lib/pact_broker/pacts/pact_version_spec.rb +0 -343
- data/spec/lib/pact_broker/pacts/repository_find_for_currently_deployed_spec.rb +0 -124
- data/spec/lib/pact_broker/pacts/repository_find_for_currently_supported_releases_spec.rb +0 -159
- data/spec/lib/pact_broker/pacts/repository_find_for_verification_fallback_spec.rb +0 -87
- data/spec/lib/pact_broker/pacts/repository_find_for_verification_spec.rb +0 -380
- data/spec/lib/pact_broker/pacts/repository_find_wip_pact_versions_for_provider_branch_spec.rb +0 -282
- data/spec/lib/pact_broker/pacts/repository_find_wip_pact_versions_for_provider_spec.rb +0 -375
- data/spec/lib/pact_broker/pacts/repository_spec.rb +0 -1079
- data/spec/lib/pact_broker/pacts/selected_pact_spec.rb +0 -23
- data/spec/lib/pact_broker/pacts/selector_spec.rb +0 -77
- data/spec/lib/pact_broker/pacts/selectors_spec.rb +0 -30
- data/spec/lib/pact_broker/pacts/service_spec.rb +0 -355
- data/spec/lib/pact_broker/pacts/sort_content_spec.rb +0 -57
- data/spec/lib/pact_broker/pacts/squash_pacts_for_verification_spec.rb +0 -70
- data/spec/lib/pact_broker/pacts/verifiable_pact_messages_spec.rb +0 -253
- data/spec/lib/pact_broker/pacts/verifiable_pact_spec.rb +0 -0
- data/spec/lib/pact_broker/relationships/groupify_spec.rb +0 -43
- data/spec/lib/pact_broker/tags/repository_spec.rb +0 -144
- data/spec/lib/pact_broker/tags/service_spec.rb +0 -66
- data/spec/lib/pact_broker/ui/controllers/can_i_deploy_spec.rb +0 -26
- data/spec/lib/pact_broker/ui/controllers/clusters_spec.rb +0 -27
- data/spec/lib/pact_broker/ui/controllers/index_spec.rb +0 -132
- data/spec/lib/pact_broker/ui/view_models/index_item_spec.rb +0 -173
- data/spec/lib/pact_broker/ui/view_models/index_items_spec.rb +0 -35
- data/spec/lib/pact_broker/ui/view_models/matrix_deployed_version_spec.rb +0 -29
- data/spec/lib/pact_broker/ui/view_models/matrix_line_spec.rb +0 -41
- data/spec/lib/pact_broker/verifications/pseudo_branch_status_spec.rb +0 -56
- data/spec/lib/pact_broker/verifications/repository_spec.rb +0 -350
- data/spec/lib/pact_broker/verifications/sequence_spec.rb +0 -73
- data/spec/lib/pact_broker/verifications/service_spec.rb +0 -266
- data/spec/lib/pact_broker/verifications/summary_for_consumer_version_spec.rb +0 -72
- data/spec/lib/pact_broker/versions/abbreviate_number_spec.rb +0 -23
- data/spec/lib/pact_broker/versions/branch_service_spec.rb +0 -71
- data/spec/lib/pact_broker/versions/branch_version_repository_spec.rb +0 -81
- data/spec/lib/pact_broker/versions/branch_version_spec.rb +0 -27
- data/spec/lib/pact_broker/versions/parse_semantic_version_spec.rb +0 -42
- data/spec/lib/pact_broker/versions/repository_spec.rb +0 -302
- data/spec/lib/pact_broker/versions/service_spec.rb +0 -137
- data/spec/lib/pact_broker/webhooks/check_host_whitelist_spec.rb +0 -85
- data/spec/lib/pact_broker/webhooks/execution_configuration_spec.rb +0 -18
- data/spec/lib/pact_broker/webhooks/job_spec.rb +0 -188
- data/spec/lib/pact_broker/webhooks/pact_and_verification_parameters_spec.rb +0 -16
- data/spec/lib/pact_broker/webhooks/redact_logs_spec.rb +0 -60
- data/spec/lib/pact_broker/webhooks/render_spec.rb +0 -221
- data/spec/lib/pact_broker/webhooks/repository_spec.rb +0 -933
- data/spec/lib/pact_broker/webhooks/service_spec.rb +0 -184
- data/spec/lib/pact_broker/webhooks/status_spec.rb +0 -54
- data/spec/lib/pact_broker/webhooks/trigger_service_spec.rb +0 -461
- data/spec/lib/pact_broker/webhooks/triggered_webhook_spec.rb +0 -40
- data/spec/lib/pact_broker/webhooks/webhook_request_logger_spec.rb +0 -207
- data/spec/lib/pact_broker/webhooks/webhook_request_template_spec.rb +0 -227
- data/spec/lib/pact_broker/webhooks/webhook_spec.rb +0 -39
- data/spec/lib/rack/hal_browser/redirect_spec.rb +0 -63
- data/spec/lib/rack/pact_broker/add_pact_broker_version_header_spec.rb +0 -16
- data/spec/lib/rack/pact_broker/database_transaction_spec.rb +0 -77
- data/spec/lib/rack/pact_broker/invalid_uri_protection_spec.rb +0 -50
- data/spec/lib/rack/pact_broker/request_target_spec.rb +0 -69
- data/spec/lib/rack/pact_broker/set_base_url_spec.rb +0 -86
- data/spec/lib/rack/pact_broker/use_when_spec.rb +0 -49
- data/spec/lib/sequel/plugins/insert_ignore_spec.rb +0 -82
- data/spec/lib/sequel/plugins/upsert_spec.rb +0 -159
- data/spec/lib/webmachine/rack_adapter_monkey_patch_spec.rb +0 -49
- data/spec/migrations/20180201_create_head_matrix_spec.rb +0 -132
- data/spec/migrations/23_pact_versions_spec.rb +0 -77
- data/spec/migrations/24_populate_pact_contents_spec.rb +0 -22
- data/spec/migrations/34_latest_tagged_pacts_spec.rb +0 -84
- data/spec/migrations/34_pact_revisions_spec.rb +0 -82
- data/spec/migrations/41_migrate_execution_data_spec.rb +0 -109
- data/spec/migrations/42_delete_ophan_webhook_data_spec.rb +0 -98
- data/spec/migrations/44_add_provider_version_to_verification_spec.rb +0 -56
- data/spec/migrations/50_create_latest_matrix_spec.rb +0 -181
- data/spec/migrations/change_migration_strategy_spec.rb +0 -85
- data/spec/migrations/rollback_spec.rb +0 -8
- data/spec/service_consumers/hal_relation_proxy_app.rb +0 -61
- data/spec/service_consumers/pact_helper.rb +0 -61
- data/spec/service_consumers/provider_states_for_pact_broker_client.rb +0 -341
- data/spec/service_consumers/provider_states_for_pact_broker_client_2.rb +0 -36
- data/spec/service_consumers/provider_states_for_pact_ruby.rb +0 -158
- data/spec/spec_helper.rb +0 -65
- data/spec/support/approvals.rb +0 -55
- data/spec/support/database.rb +0 -9
- data/spec/support/database_cleaner.rb +0 -44
- data/spec/support/documentation.rb +0 -64
- data/spec/support/fixture_helpers.rb +0 -10
- data/spec/support/fixture_pact.rb +0 -34
- data/spec/support/foo-bar.json +0 -34
- data/spec/support/generated_index.md +0 -4
- data/spec/support/generated_markdown.md +0 -55
- data/spec/support/interaction_view_model.json +0 -63
- data/spec/support/interaction_view_model_with_terms.json +0 -50
- data/spec/support/logging.rb +0 -6
- data/spec/support/markdown_pact.json +0 -48
- data/spec/support/markdown_pact_v3.json +0 -44
- data/spec/support/markdown_pact_with_html.json +0 -27
- data/spec/support/markdown_pact_with_markdown_chars_in_names.json +0 -11
- data/spec/support/metadata_test_server.rb +0 -40
- data/spec/support/migration_helpers.rb +0 -16
- data/spec/support/rack_helpers.rb +0 -20
- data/spec/support/rspec_match_hash.rb +0 -26
- data/spec/support/rspec_matchers.rb +0 -9
- data/spec/support/shared_context.rb +0 -32
- data/spec/support/shared_examples_for_responses.rb +0 -96
- data/spec/support/simplecov.rb +0 -23
- data/spec/support/ssl_pact_broker_server.rb +0 -46
- data/spec/support/ssl_webhook_server.rb +0 -39
- data/spec/support/test_data_builder.rb +0 -3
- data/spec/support/verification_job.rb +0 -37
- data/spec/support/warning_silencer.rb +0 -10
- data/spec/support/webhook_endpoint_middleware.rb +0 -22
- data/tasks/audit.rake +0 -6
- data/tasks/database/annotate.rb +0 -48
- data/tasks/database/table_dependency_calculator.rb +0 -8
- data/tasks/database.rb +0 -161
- data/tasks/db.rake +0 -147
- data/tasks/development.rake +0 -52
- data/tasks/docker_database.rb +0 -26
- data/tasks/pact.rake +0 -16
- data/tasks/release.rake +0 -6
- data/tasks/rspec.rake +0 -32
- data/tasks/test_db.rake +0 -32
- data/vendor/hal-browser/.gitignore +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c3be3c5c9c91694873befa3ac15ff196bbcf49b75f250fc22485079ee1630699
|
4
|
+
data.tar.gz: 00aa9e23a79856cf4db4353191d1fd33ae3acf93a991f0074949ad1ccaefc4d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 568d1158ee7c4bf41731e26f849f30b5831ccf8d141399a549deabf679a32a1b7f0766bbe385fb604453b69476deff7788afdc5f276902fa09f065fcdb1e459f
|
7
|
+
data.tar.gz: da3b98bed787330c0730b2cf5e270dbee54fcea4106b0866f2fff0b9a7c6b00e31a57a8f2264ac057e24f706a9a96591890b052979fa73f362a15f4ad6e8d5c9
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,61 @@
|
|
1
|
+
<a name="v2.93.0"></a>
|
2
|
+
### v2.93.0 (2021-12-07)
|
3
|
+
|
4
|
+
#### Features
|
5
|
+
|
6
|
+
* remove feature flag for new_wip_calculations ([972ceadd](/../../commit/972ceadd))
|
7
|
+
* call the database clean within a transaction ([408c84ef](/../../commit/408c84ef))
|
8
|
+
|
9
|
+
#### Bug Fixes
|
10
|
+
|
11
|
+
* fix clean performance fix (#530) ([6c71e57b](/../../commit/6c71e57b))
|
12
|
+
* fix performance issue loading latest version for pacticipant ([c575d132](/../../commit/c575d132))
|
13
|
+
|
14
|
+
<a name="v2.92.0"></a>
|
15
|
+
### v2.92.0 (2021-11-27)
|
16
|
+
|
17
|
+
#### Features
|
18
|
+
|
19
|
+
* allow SQL caller logging to be enabled ([861d8f21](/../../commit/861d8f21))
|
20
|
+
* use a separate table to track the successful verifications of pact versions for each provider version tag (feature toggled with "new_wip_calculation") ([df0acfa3](/../../commit/df0acfa3))
|
21
|
+
|
22
|
+
#### Bug Fixes
|
23
|
+
|
24
|
+
* **cleanup**
|
25
|
+
* Improve delete orphans SQL query (#527) ([853354ea](/../../commit/853354ea))
|
26
|
+
|
27
|
+
* cast PACT_BROKER_DATABASE_CONNECTION_VALIDATION_TIMEOUT to an integer ([8816c61f](/../../commit/8816c61f))
|
28
|
+
|
29
|
+
<a name="v2.91.0"></a>
|
30
|
+
### v2.91.0 (2021-11-15)
|
31
|
+
|
32
|
+
#### Features
|
33
|
+
|
34
|
+
* add environments to matrix response ([fd50f22c](/../../commit/fd50f22c))
|
35
|
+
* remove feature toggle around change to return the pact for the latest tagged version, rather than the latest pact that has a version with the tag ([fac3fc8a](/../../commit/fac3fc8a))
|
36
|
+
|
37
|
+
#### Bug Fixes
|
38
|
+
|
39
|
+
* load images from the correct path when the Pact Broker application is run from a non root context ([a268ef25](/../../commit/a268ef25))
|
40
|
+
|
41
|
+
<a name="v2.90.0"></a>
|
42
|
+
### v2.90.0 (2021-11-12)
|
43
|
+
|
44
|
+
#### Features
|
45
|
+
|
46
|
+
* do not let clean task delete currently deployed or currently released+supported versions ([b05f0b67](/../../commit/b05f0b67))
|
47
|
+
* allow webhook certificates to be configured in the pact_broker.yml file ([7c60c955](/../../commit/7c60c955))
|
48
|
+
|
49
|
+
#### Bug Fixes
|
50
|
+
|
51
|
+
* handle conflict check for pacts where the interactions are missing in one or the other ([71844f0f](/../../commit/71844f0f))
|
52
|
+
* fix error that occurs in some versions of Sqlite when running 20210702_drop_unused_columns_from_deployed_versions.rb ([0daa4459](/../../commit/0daa4459))
|
53
|
+
* correct logic when redacting database URL without a password ([30d66cf7](/../../commit/30d66cf7))
|
54
|
+
* set resolved environment for environment selectors ([f02474b7](/../../commit/f02474b7))
|
55
|
+
|
56
|
+
* **deps**
|
57
|
+
* upgrade to bootstrap v4.6.1 ([0433107c](/../../commit/0433107c))
|
58
|
+
|
1
59
|
<a name="v2.89.1"></a>
|
2
60
|
### v2.89.1 (2021-10-28)
|
3
61
|
|
@@ -0,0 +1,21 @@
|
|
1
|
+
def all_verifications_v2(connection)
|
2
|
+
# Need to fully qualify build_url because versions now has a build_url too.
|
3
|
+
# We don't use this view any more but we get an error when modifying other tables and views
|
4
|
+
# if we don't update this, so it must force some re-calculation to be done.
|
5
|
+
# See https://github.com/pact-foundation/pact_broker/issues/521
|
6
|
+
connection
|
7
|
+
.from(:verifications)
|
8
|
+
.select(
|
9
|
+
Sequel[:verifications][:id],
|
10
|
+
Sequel[:verifications][:number],
|
11
|
+
:success,
|
12
|
+
:provider_version_id,
|
13
|
+
Sequel[:v][:number].as(:provider_version_number),
|
14
|
+
Sequel[:v][:order].as(:provider_version_order),
|
15
|
+
Sequel[:verifications][:build_url],
|
16
|
+
:pact_version_id,
|
17
|
+
:execution_date,
|
18
|
+
Sequel[:verifications][:created_at],
|
19
|
+
:test_results
|
20
|
+
).join(:versions, { id: :provider_version_id }, { :table_alias => :v })
|
21
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative "../ddl_statements/all_verifications"
|
2
|
+
|
3
|
+
# Naughtily insert this migration file after the creation of 20211104_switch_integrations_and_temp_integrations.rb
|
4
|
+
# to fix the all_verifications view before
|
5
|
+
# dropping the columns in 20210702_drop_unused_columns_from_deployed_versions.rb.
|
6
|
+
# The update to all_verifications was already applied in
|
7
|
+
# 20211101_recreate_all_verifications.rb, but some versions of SQLite error
|
8
|
+
# if the view is not updated first, meaning 20210702 was never run.
|
9
|
+
# It won't matter if this update runs out of order, as long as it's after
|
10
|
+
# 20210117_add_branch_to_version.rb
|
11
|
+
Sequel.migration do
|
12
|
+
up do
|
13
|
+
create_or_replace_view(:all_verifications, all_verifications_v2(self))
|
14
|
+
end
|
15
|
+
|
16
|
+
down do
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
Sequel.migration do
|
2
|
+
up do
|
3
|
+
# Have not created indexes on the consumer_id or provider_id because the table is likely to be small
|
4
|
+
# (in the 10s or 100s) and it would probably just do a full table scan anyway.
|
5
|
+
create_table(:temp_integrations, charset: "utf8") do
|
6
|
+
primary_key :id, primary_key_constraint_name: "integrations_pkey"
|
7
|
+
foreign_key(:consumer_id, :pacticipants, null: false, on_delete: :cascade, foreign_key_constraint_name: "integrations_consumer_id_foreign_key")
|
8
|
+
foreign_key(:provider_id, :pacticipants, null: false, on_delete: :cascade, foreign_key_constraint_name: "integrations_provider_id_foreign_key")
|
9
|
+
String :consumer_name
|
10
|
+
String :provider_name
|
11
|
+
DateTime :created_at, null: false
|
12
|
+
index([:consumer_id, :provider_id], unique: true, name: "integrations_consumer_id_provider_id_unique")
|
13
|
+
end
|
14
|
+
|
15
|
+
# TODO drop these columns
|
16
|
+
# They are just for backwards compatiblity during schema migrations
|
17
|
+
# alter_table(:integrations) do
|
18
|
+
# drop_column(:consumer_name)
|
19
|
+
# drop_column(:provider_name)
|
20
|
+
# end
|
21
|
+
end
|
22
|
+
|
23
|
+
down do
|
24
|
+
drop_table(:temp_integrations)
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
Sequel.migration do
|
2
|
+
up do
|
3
|
+
from(:temp_integrations).insert(
|
4
|
+
[:consumer_id, :consumer_name, :provider_id, :provider_name, :created_at],
|
5
|
+
from(:pact_publications)
|
6
|
+
.select(
|
7
|
+
:consumer_id,
|
8
|
+
Sequel[:c][:name].as(:consumer_name),
|
9
|
+
:provider_id,
|
10
|
+
Sequel[:p][:name].as(:provider_name),
|
11
|
+
Sequel[:c][:created_at]
|
12
|
+
).distinct
|
13
|
+
.join(:pacticipants, {:id => :consumer_id}, {:table_alias => :c, implicit_qualifier: :pact_publications})
|
14
|
+
.join(:pacticipants, {:id => :provider_id}, {:table_alias => :p, implicit_qualifier: :pact_publications})
|
15
|
+
)
|
16
|
+
end
|
17
|
+
|
18
|
+
down do
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
Sequel.migration do
|
2
|
+
up do
|
3
|
+
transaction do
|
4
|
+
drop_view :integrations
|
5
|
+
rename_table :temp_integrations, :integrations
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
down do
|
10
|
+
transaction do
|
11
|
+
rename_table :integrations, :temp_integrations
|
12
|
+
create_view(:integrations,
|
13
|
+
from(:pact_publications)
|
14
|
+
.select(
|
15
|
+
:consumer_id,
|
16
|
+
Sequel[:c][:name].as(:consumer_name),
|
17
|
+
:provider_id,
|
18
|
+
Sequel[:p][:name].as(:provider_name)
|
19
|
+
).distinct
|
20
|
+
.join(:pacticipants, {:id => :consumer_id}, {:table_alias => :c, implicit_qualifier: :pact_publications})
|
21
|
+
.join(:pacticipants, {:id => :provider_id}, {:table_alias => :p, implicit_qualifier: :pact_publications})
|
22
|
+
)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
Sequel.migration do
|
2
|
+
up do
|
3
|
+
create_table(:pact_version_provider_tag_successful_verifications, charset: "utf8") do
|
4
|
+
primary_key :id
|
5
|
+
foreign_key :pact_version_id, :pact_versions, null: false, on_delete: :cascade, foreign_key_constraint_name: "pact_version_provider_tag_successful_verifications_pv_id_fk"
|
6
|
+
String :provider_version_tag_name, null: false
|
7
|
+
Boolean :wip, null: false
|
8
|
+
Integer :verification_id
|
9
|
+
DateTime :execution_date, null: false
|
10
|
+
index([:pact_version_id, :provider_version_tag_name, :wip], unique: true, name: "pact_version_provider_tag_verifications_pv_pvtn_wip_unique")
|
11
|
+
# The implication of the on_delete: :set_null for verification_id is
|
12
|
+
# that even if the verification result is deleted from the broker,
|
13
|
+
# the wip/pending status stays the same.
|
14
|
+
# We may or may not want this. Will have to wait and see.
|
15
|
+
# Have made the foreign key a separate declaration so it can more easily be remade.
|
16
|
+
foreign_key([:verification_id], :verifications, on_delete: :set_null, name: "pact_version_provider_tag_successful_verifications_v_id_fk")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
down do
|
21
|
+
drop_table(:pact_version_provider_tag_successful_verifications)
|
22
|
+
end
|
23
|
+
end
|
data/db/migrations/20211121_migrate_pact_version_provider_tag_successful_verifications_data.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require "pact_broker/db/data_migrations/migrate_pact_version_provider_tag_successful_verifications"
|
2
|
+
|
3
|
+
Sequel.migration do
|
4
|
+
up do
|
5
|
+
PactBroker::DB::DataMigrations::MigratePactVersionProviderTagSuccessfulVerifications.call(self)
|
6
|
+
end
|
7
|
+
|
8
|
+
down do
|
9
|
+
|
10
|
+
end
|
11
|
+
end
|
data/docs/CONFIGURATION.md
CHANGED
@@ -392,6 +392,26 @@ Please read the [Webhook whitelists section](https://docs.pact.io/pact_broker/co
|
|
392
392
|
**Examples:** `github.com`, `10.2.3.41/24`, `/.*\\.foo\\.com$/`<br/>
|
393
393
|
**More information:** https://docs.pact.io/pact_broker/configuration/#webhook-whitelists<br/>
|
394
394
|
|
395
|
+
### webhook_certificates
|
396
|
+
|
397
|
+
A list of SSL certificate configuration objects with the keys `description`, and either `content` or `path`. These
|
398
|
+
certificates are used when a webhook needs to connect to a server that uses a self signed certificate.
|
399
|
+
|
400
|
+
Each certificate configuration item accepts a chain of certificates in PEM format - there may be multiple 'BEGIN CERTIFICATE' and 'END CERTIFICATE' in the content of each item.
|
401
|
+
|
402
|
+
When setting the content, use the syntax "content: |-" followed by a new line, and then the contents of the certificate
|
403
|
+
chain in PEM format, indented by 2 more characters.
|
404
|
+
|
405
|
+
When setting the path, the full path to the certificate file in PEM format must be specified.
|
406
|
+
|
407
|
+
The certificate configuration is not validated on startup. If any of the configured certificates cannot be loaded during the execution of a webhook, an error
|
408
|
+
will be logged, and they will be ignored. You can check if the configuration is working by testing the execution of
|
409
|
+
a webhook that connects to the server with the self signed certificate by following these instructions https://docs.pact.io/pact_broker/webhooks/debugging_webhooks#testing-webhook-execution
|
410
|
+
|
411
|
+
**YAML configuration key name:** `webhook_certificates`<br/>
|
412
|
+
**Environment variable name:** `PACT_BROKER_WEBHOOK_CERTIFICATES`<br/>
|
413
|
+
**Supported versions:** From v2.90.0<br/>
|
414
|
+
|
395
415
|
### disable_ssl_verification
|
396
416
|
|
397
417
|
If set to true, SSL verification will be disabled for the HTTP requests made by the webhooks
|
@@ -481,6 +501,16 @@ is available (do not use this for load balancing, as it makes a database connect
|
|
481
501
|
**Default:** `true`<br/>
|
482
502
|
**Allowed values:** `true`, `false`<br/>
|
483
503
|
|
504
|
+
### use_hal_browser
|
505
|
+
|
506
|
+
Whether or not to enable the embedded HAL Browser.
|
507
|
+
|
508
|
+
**YAML configuration key name:** `use_hal_browser`<br/>
|
509
|
+
**Environment variable name:** `PACT_BROKER_USE_HAL_BROWSER`<br/>
|
510
|
+
**Default:** `true`<br/>
|
511
|
+
**Allowed values:** `true`, `false`<br/>
|
512
|
+
**More information:** https://github.com/mikekelly/hal-browser<br/>
|
513
|
+
|
484
514
|
<br/>
|
485
515
|
|
486
516
|
## Domain
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require_relative "base_decorator"
|
2
|
+
require_relative "timestamps"
|
3
|
+
|
4
|
+
module PactBroker
|
5
|
+
module Api
|
6
|
+
module Decorators
|
7
|
+
class EmbeddedEnvironmentDecorator < BaseDecorator
|
8
|
+
property :uuid, writeable: false
|
9
|
+
property :name
|
10
|
+
property :display_name, camelize: true
|
11
|
+
property :production
|
12
|
+
|
13
|
+
include Timestamps
|
14
|
+
|
15
|
+
link :self do | user_options |
|
16
|
+
{
|
17
|
+
title: "Environment",
|
18
|
+
name: represented.name,
|
19
|
+
href: environment_url(represented, user_options.fetch(:base_url))
|
20
|
+
}
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -3,6 +3,7 @@ require "pact_broker/api/pact_broker_urls"
|
|
3
3
|
require "pact_broker/api/decorators/reason_decorator"
|
4
4
|
require "pact_broker/api/decorators/format_date_time"
|
5
5
|
require "pact_broker/api/decorators/embedded_branch_version_decorator"
|
6
|
+
require "pact_broker/api/decorators/embedded_environment_decorator"
|
6
7
|
|
7
8
|
module PactBroker
|
8
9
|
module Api
|
@@ -85,7 +86,9 @@ module PactBroker
|
|
85
86
|
version: {
|
86
87
|
number: line.consumer_version_number,
|
87
88
|
branch: line.consumer_version_branch_versions.last&.branch_name,
|
88
|
-
branches: branches(line.consumer_version_branch_versions, base_url),
|
89
|
+
branches: branches(line.consumer_version_branch_versions, base_url), # TODO delete this
|
90
|
+
branchVersions: branches(line.consumer_version_branch_versions, base_url),
|
91
|
+
environments: environments(line.consumer_version_deployed_versions, line.consumer_version_released_versions, base_url),
|
89
92
|
_links: {
|
90
93
|
self: {
|
91
94
|
href: version_url(base_url, consumer_version)
|
@@ -107,6 +110,16 @@ module PactBroker
|
|
107
110
|
end
|
108
111
|
end
|
109
112
|
|
113
|
+
def environments(deployed_versions, released_versions, base_url)
|
114
|
+
(deployed_versions + released_versions).sort_by(&:created_at).collect(&:environment).uniq.collect do | environment |
|
115
|
+
environment_decorator_class.new(environment).to_hash(user_options: { base_url: base_url })
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
def environment_decorator_class
|
120
|
+
PactBroker::Api::Decorators::EmbeddedEnvironmentDecorator
|
121
|
+
end
|
122
|
+
|
110
123
|
def tags(tags, base_url)
|
111
124
|
tags.sort_by(&:created_at).collect do | tag |
|
112
125
|
{
|
@@ -136,7 +149,9 @@ module PactBroker
|
|
136
149
|
hash[:version] = {
|
137
150
|
number: line.provider_version_number,
|
138
151
|
branch: line.provider_version_branch_versions.last&.branch_name,
|
139
|
-
branches: branches(line.provider_version_branch_versions, base_url),
|
152
|
+
branches: branches(line.provider_version_branch_versions, base_url), # TODO delete this
|
153
|
+
branchVersions: branches(line.provider_version_branch_versions, base_url),
|
154
|
+
environments: environments(line.provider_version_deployed_versions, line.provider_version_released_versions, base_url),
|
140
155
|
_links: {
|
141
156
|
self: {
|
142
157
|
href: version_url(base_url, provider_version)
|
@@ -7,7 +7,9 @@ module PactBroker
|
|
7
7
|
class VersionDecorator < BaseDecorator
|
8
8
|
|
9
9
|
property :number, writeable: false
|
10
|
+
# TODO delete branches in preference for branchVersions
|
10
11
|
collection :branch_versions, as: :branches, embedded: true, writeable: false, extend: PactBroker::Api::Decorators::EmbeddedBranchVersionDecorator
|
12
|
+
collection :branch_versions, as: :branchVersions, embedded: true, writeable: false, extend: PactBroker::Api::Decorators::EmbeddedBranchVersionDecorator
|
11
13
|
property :build_url, as: :buildUrl
|
12
14
|
|
13
15
|
collection :tags, embedded: true, :extend => PactBroker::Api::Decorators::EmbeddedTagDecorator, class: OpenStruct
|
@@ -44,6 +44,10 @@ module PactBroker
|
|
44
44
|
<link rel='stylesheet' type='text/css' href='#{base_url}/stylesheets/material-menu.css'>
|
45
45
|
<link rel='stylesheet' type='text/css' href='#{base_url}/stylesheets/pact.css'>
|
46
46
|
<link rel='stylesheet' type='text/css' href='#{base_url}/stylesheets/jquery-confirm.min.css'>
|
47
|
+
<script type='text/javascript'>
|
48
|
+
const BASE_URL = '#{base_url}';
|
49
|
+
</script>
|
50
|
+
<script src='#{base_url}/javascripts/set-css-asset-base-url.js'></script>
|
47
51
|
<script src='#{base_url}/javascripts/highlight.pack.js'></script>
|
48
52
|
<script src='#{base_url}/javascripts/jquery-3.5.1.min.js'></script>
|
49
53
|
<script src='#{base_url}/js/bootstrap.min.js'></script>
|
@@ -50,7 +50,7 @@ module PactBroker
|
|
50
50
|
end
|
51
51
|
|
52
52
|
def from_json
|
53
|
-
handle_webhook_events do
|
53
|
+
handle_webhook_events(build_url: verification_params["buildUrl"]) do
|
54
54
|
verified_pacts = pact_service.find_for_verification_publication(pact_params, event_context[:consumer_version_selectors])
|
55
55
|
verification = verification_service.create(next_verification_number, verification_params, verified_pacts, event_context)
|
56
56
|
response.body = decorator_for(verification).to_json(decorator_options)
|
data/lib/pact_broker/app.rb
CHANGED
@@ -46,7 +46,7 @@ module PactBroker
|
|
46
46
|
# Can only be required after database connection has been made because the decorators rely on the Sequel models
|
47
47
|
@create_pact_broker_api_block = ->() { require "pact_broker/api"; PactBroker::API }
|
48
48
|
@configuration = PactBroker.configuration
|
49
|
-
yield configuration
|
49
|
+
yield configuration if block_given?
|
50
50
|
post_configure
|
51
51
|
prepare_database
|
52
52
|
load_configuration_from_database
|
@@ -25,9 +25,12 @@ module PactBroker
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def find_all_certificates
|
28
|
+
certificates_from_database + certificates_from_config
|
29
|
+
end
|
30
|
+
|
31
|
+
def certificates_from_database
|
28
32
|
Certificate.collect do | certificate |
|
29
|
-
|
30
|
-
cert_arr.collect do |c|
|
33
|
+
split_certificate_chain(certificate.content).collect do |c|
|
31
34
|
begin
|
32
35
|
OpenSSL::X509::Certificate.new(c)
|
33
36
|
rescue StandardError => e
|
@@ -37,6 +40,33 @@ module PactBroker
|
|
37
40
|
end
|
38
41
|
end.flatten.compact
|
39
42
|
end
|
43
|
+
|
44
|
+
def certificates_from_config
|
45
|
+
PactBroker.configuration.webhook_certificates.select{| c| c[:content] || c[:path] }.collect do | certificate_config, i |
|
46
|
+
load_certificate_config(certificate_config, i)
|
47
|
+
end.flatten.compact
|
48
|
+
end
|
49
|
+
|
50
|
+
def load_certificate_config(certificate_config, i)
|
51
|
+
begin
|
52
|
+
content = certificate_config[:content] || File.read(certificate_config[:path])
|
53
|
+
split_certificate_chain(content).collect do |c|
|
54
|
+
begin
|
55
|
+
OpenSSL::X509::Certificate.new(c)
|
56
|
+
rescue StandardError => e
|
57
|
+
logger.warn("Error creating certificate object from webhook_certificate at index #{i} with description #{certificate_config[:description]}", e)
|
58
|
+
nil
|
59
|
+
end
|
60
|
+
end
|
61
|
+
rescue StandardError => e
|
62
|
+
logger.warn("Error loading webhook_certificate at index #{i} with description #{certificate_config[:description]}", e)
|
63
|
+
nil
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def split_certificate_chain(content)
|
68
|
+
content.split(/(-----END [^\-]+-----)/).each_slice(2).map(&:join).map(&:strip).select{|s| !s.empty?}
|
69
|
+
end
|
40
70
|
end
|
41
71
|
end
|
42
72
|
end
|
@@ -52,6 +52,7 @@ module PactBroker
|
|
52
52
|
webhook_scheme_whitelist: ["https"],
|
53
53
|
webhook_host_whitelist: [],
|
54
54
|
disable_ssl_verification: false,
|
55
|
+
webhook_certificates: [],
|
55
56
|
user_agent: "Pact Broker v#{PactBroker::VERSION}",
|
56
57
|
)
|
57
58
|
|
@@ -174,6 +175,14 @@ module PactBroker
|
|
174
175
|
super(value_to_string_array(features, "features").collect(&:downcase))
|
175
176
|
end
|
176
177
|
|
178
|
+
def webhook_certificates= webhook_certificates
|
179
|
+
if webhook_certificates.is_a?(Array)
|
180
|
+
super(webhook_certificates.collect(&:symbolize_keys))
|
181
|
+
elsif !webhook_certificates.nil?
|
182
|
+
raise_validation_error("webhook_certificates must be an array")
|
183
|
+
end
|
184
|
+
end
|
185
|
+
|
177
186
|
def warning_error_classes
|
178
187
|
warning_error_class_names.collect do | class_name |
|
179
188
|
begin
|
@@ -18,6 +18,7 @@ module PactBroker
|
|
18
18
|
database_sslmode: nil,
|
19
19
|
sql_log_level: :debug,
|
20
20
|
sql_log_warn_duration: 5,
|
21
|
+
sql_enable_caller_logging: false,
|
21
22
|
database_max_connections: nil,
|
22
23
|
database_pool_timeout: 5,
|
23
24
|
database_connect_max_retries: 0,
|
@@ -36,6 +37,7 @@ module PactBroker
|
|
36
37
|
encoding: "utf8",
|
37
38
|
sslmode: database_sslmode,
|
38
39
|
sql_log_level: sql_log_level,
|
40
|
+
enable_caller_logging: sql_enable_caller_logging,
|
39
41
|
log_warn_duration: sql_log_warn_duration,
|
40
42
|
max_connections: database_max_connections,
|
41
43
|
pool_timeout: database_pool_timeout,
|
@@ -65,6 +67,10 @@ module PactBroker
|
|
65
67
|
super(metrics_sql_statement_timeout&.to_i)
|
66
68
|
end
|
67
69
|
|
70
|
+
def database_connection_validation_timeout= database_connection_validation_timeout
|
71
|
+
super(database_connection_validation_timeout&.to_i)
|
72
|
+
end
|
73
|
+
|
68
74
|
def postgres?
|
69
75
|
database_credentials[:adapter] == "postgres"
|
70
76
|
end
|
@@ -38,8 +38,12 @@ module PactBroker
|
|
38
38
|
if value && name.to_s.end_with?("_url")
|
39
39
|
begin
|
40
40
|
uri = URI(value)
|
41
|
-
uri.password
|
42
|
-
|
41
|
+
if uri.password
|
42
|
+
uri.password = "*****"
|
43
|
+
uri.to_s
|
44
|
+
else
|
45
|
+
value
|
46
|
+
end
|
43
47
|
rescue StandardError
|
44
48
|
"*****"
|
45
49
|
end
|
@@ -66,13 +66,15 @@ module PactBroker
|
|
66
66
|
if dry_run?
|
67
67
|
dry_run_results
|
68
68
|
else
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
69
|
+
db.transaction do
|
70
|
+
before_counts = current_counts
|
71
|
+
PactBroker::Domain::Version.where(id: resolve_ids(version_ids_to_delete)).delete
|
72
|
+
delete_orphan_pact_versions
|
73
|
+
after_counts = current_counts
|
74
|
+
|
75
|
+
TABLES.each_with_object({}) do | table_name, comparison_counts |
|
76
|
+
comparison_counts[table_name.to_s] = { "deleted" => before_counts[table_name] - after_counts[table_name], "kept" => after_counts[table_name] }
|
77
|
+
end
|
76
78
|
end
|
77
79
|
end
|
78
80
|
end
|
@@ -92,8 +94,23 @@ module PactBroker
|
|
92
94
|
end
|
93
95
|
|
94
96
|
def delete_orphan_pact_versions
|
95
|
-
|
96
|
-
|
97
|
+
db[:pact_versions].where(id: orphan_pact_versions).delete
|
98
|
+
rescue Sequel::DatabaseError => e
|
99
|
+
raise unless e.cause.class.name == "Mysql2::Error"
|
100
|
+
|
101
|
+
ids = orphan_pact_versions.map { |row| row[:id] }
|
102
|
+
db[:pact_versions].where(id: ids).delete
|
103
|
+
end
|
104
|
+
|
105
|
+
def orphan_pact_versions
|
106
|
+
db[:pact_versions]
|
107
|
+
.left_join(:pact_publications, Sequel[:pact_publications][:pact_version_id]=> Sequel[:pact_versions][:id])
|
108
|
+
.left_join(:verifications, Sequel[:verifications][:pact_version_id]=> Sequel[:pact_versions][:id])
|
109
|
+
.select(Sequel[:pact_versions][:id])
|
110
|
+
.where(
|
111
|
+
Sequel[:pact_publications][:id] => nil,
|
112
|
+
Sequel[:verifications][:id] => nil
|
113
|
+
)
|
97
114
|
end
|
98
115
|
|
99
116
|
def version_info(version)
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require "pact_broker/db/data_migrations/helpers"
|
2
|
+
|
3
|
+
module PactBroker
|
4
|
+
module DB
|
5
|
+
module DataMigrations
|
6
|
+
class MigrateIntegrations
|
7
|
+
extend Helpers
|
8
|
+
|
9
|
+
def self.call(connection)
|
10
|
+
self_join = {
|
11
|
+
Sequel[:pact_publications][:consumer_id] => Sequel[:existing_integrations][:consumer_id],
|
12
|
+
Sequel[:pact_publications][:provider_id] => Sequel[:existing_integrations][:provider_id]
|
13
|
+
}
|
14
|
+
|
15
|
+
missing_integrations = connection
|
16
|
+
.from(:pact_publications)
|
17
|
+
.select(
|
18
|
+
Sequel[:pact_publications][:consumer_id],
|
19
|
+
Sequel[:consumer][:name].as(:consumer_name),
|
20
|
+
Sequel[:pact_publications][:provider_id],
|
21
|
+
Sequel[:provider][:name].as(:provider_name),
|
22
|
+
Sequel[:consumer][:created_at]
|
23
|
+
)
|
24
|
+
.distinct
|
25
|
+
.left_outer_join(:integrations, self_join, { :table_alias => :existing_integrations })
|
26
|
+
.join(:pacticipants, { :id => :consumer_id }, { :table_alias => :consumer, implicit_qualifier: :pact_publications })
|
27
|
+
.join(:pacticipants, { :id => :provider_id }, { :table_alias => :provider, implicit_qualifier: :pact_publications })
|
28
|
+
.where(Sequel[:existing_integrations][:provider_id] => nil)
|
29
|
+
|
30
|
+
connection
|
31
|
+
.from(:integrations)
|
32
|
+
.insert(
|
33
|
+
[:consumer_id, :consumer_name, :provider_id, :provider_name, :created_at],
|
34
|
+
missing_integrations
|
35
|
+
)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|