pact_broker 2.89.1 → 2.90.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 +18 -0
- data/db/ddl_statements/all_verifications.rb +21 -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/docs/CONFIGURATION.md +30 -0
- 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_logging_methods.rb +6 -2
- data/lib/pact_broker/db/data_migrations/migrate_integrations.rb +40 -0
- data/lib/pact_broker/db/migrate_data.rb +1 -0
- data/lib/pact_broker/doc/views/webhooks.markdown +23 -0
- data/lib/pact_broker/domain/pacticipant.rb +2 -0
- 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/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/pacts_for_verification_repository.rb +1 -1
- 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/test_data_builder.rb +6 -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/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
- metadata +13 -1067
- 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/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: a41b90582f2bdd3705172c79b28f01ca1bf9db3c2a32aa221baf164315017d74
|
4
|
+
data.tar.gz: 3e3c6263edf2440b0fd1003f4a4bc03a4b81df3f85953a56e2dae23bd2b95fa2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0fdf1ae5f33491587a8a26f730976089a91a763376974f4703df46317b64e9814d2d4c56319c5417ebcad4485b79b9ec3d152175b4470d8021b7e27f9ce6ef6d
|
7
|
+
data.tar.gz: 7a02341d2cd0f63a7168b2d437f4b10346d82243dc0b624af686d74de645c4f611deb756ecd9076eb226666af38600bd6448c8abcb58633f4db10c8a5d5ed468
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,21 @@
|
|
1
|
+
<a name="v2.90.0"></a>
|
2
|
+
### v2.90.0 (2021-11-12)
|
3
|
+
|
4
|
+
#### Features
|
5
|
+
|
6
|
+
* do not let clean task delete currently deployed or currently released+supported versions ([b05f0b67](/../../commit/b05f0b67))
|
7
|
+
* allow webhook certificates to be configured in the pact_broker.yml file ([7c60c955](/../../commit/7c60c955))
|
8
|
+
|
9
|
+
#### Bug Fixes
|
10
|
+
|
11
|
+
* handle conflict check for pacts where the interactions are missing in one or the other ([71844f0f](/../../commit/71844f0f))
|
12
|
+
* fix error that occurs in some versions of Sqlite when running 20210702_drop_unused_columns_from_deployed_versions.rb ([0daa4459](/../../commit/0daa4459))
|
13
|
+
* correct logic when redacting database URL without a password ([30d66cf7](/../../commit/30d66cf7))
|
14
|
+
* set resolved environment for environment selectors ([f02474b7](/../../commit/f02474b7))
|
15
|
+
|
16
|
+
* **deps**
|
17
|
+
* upgrade to bootstrap v4.6.1 ([0433107c](/../../commit/0433107c))
|
18
|
+
|
1
19
|
<a name="v2.89.1"></a>
|
2
20
|
### v2.89.1 (2021-10-28)
|
3
21
|
|
@@ -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
|
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
|
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
|
@@ -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
|
@@ -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
|
@@ -27,6 +27,7 @@ module PactBroker
|
|
27
27
|
DataMigrations::SetConsumerVersionOrderForPactPublications.call(database_connection)
|
28
28
|
DataMigrations::SetExtraColumnsForTags.call(database_connection)
|
29
29
|
DataMigrations::CreateBranches.call(database_connection)
|
30
|
+
DataMigrations::MigrateIntegrations.call(database_connection)
|
30
31
|
end
|
31
32
|
end
|
32
33
|
end
|
@@ -102,6 +102,8 @@ Webhooks can be created to match events of certain set of [consumers or provider
|
|
102
102
|
|
103
103
|
`contract_content_changed:` triggered when the content of the contract, or tags applied to the contract have changed since the previous publication. If `base_equality_only_on_content_that_affects_verification_results` is set to `true` in the configuration (the default), any changes to whitespace, ordering of keys, or the ordering of the `interactions` or `messages` will be ignored, and will not trigger this event. It is recommended to trigger a provider verification build for this event.
|
104
104
|
|
105
|
+
`contract_requiring_verification_published:` when a pact is published, triggered once for each unique provider version that is either the latest from the main branch of the provider, or is currently deployed or released.
|
106
|
+
|
105
107
|
`provider_verification_published:` triggered whenever a provider publishes a verification result.
|
106
108
|
|
107
109
|
`provider_verification_succeeded:` triggered whenever a provider publishes a successful verification result.
|
@@ -127,6 +129,7 @@ The following variables may be used in the request path, parameters or body, and
|
|
127
129
|
* `${pactbroker.bitbucketVerificationStatus}`: the verification status using the correct keywords for posting to the the [Bitbucket commit status API](https://developer.atlassian.com/server/bitbucket/how-tos/updating-build-status-for-commits/).
|
128
130
|
* `${pactbroker.gitlabVerificationStatus}`: the verification status using the correct keywords for posting to the the [Gitlab Commits API](https://docs.gitlab.com/ee/api/commits.html#post-the-build-status-to-a-commit).
|
129
131
|
* `${pactbroker.verificationResultUrl}`: the URL to the relevant verification result.
|
132
|
+
* `${pactbroker.providerVersionDescriptions}`: The descriptions of the provider version(s) for which the contract_requiring_verification_published webhook has been triggered. Only populated for the contract_requiring_verification_published event.
|
130
133
|
|
131
134
|
Example usage:
|
132
135
|
|
@@ -143,6 +146,26 @@ Example usage:
|
|
143
146
|
}
|
144
147
|
}
|
145
148
|
|
149
|
+
#### Pacticipant versions used in the template parameters
|
150
|
+
|
151
|
+
The consumer version and provider version will be populated from different sources depending on which event has been triggered,
|
152
|
+
and how it has been triggered.
|
153
|
+
|
154
|
+
##### contract published/changed
|
155
|
+
|
156
|
+
* *Consumer version*: The consumer version the pact is published with.
|
157
|
+
* *Provider version*: This is the provider version of the latest verification for this pact content from the main branch of the provider, if it exists. Otherwise, it is the overall latest provider version that has verified the pact content. If there is none, it will be empty.
|
158
|
+
|
159
|
+
##### contract requiring verification published
|
160
|
+
|
161
|
+
* *Consumer version*: The consumer version the pact is published with.
|
162
|
+
* *Provider version*: A webhook will be triggered for each unique provider version that is either the latest from the main branch of the provider, or is currently deployed or released.
|
163
|
+
|
164
|
+
##### provider verification published/failed/succeeded
|
165
|
+
|
166
|
+
* *Consumer version*: If the pact was verified using the URL passed through from the webhook, then the consumer version will be the one from the pact publication that triggered the webhook. If the result was from the provider verification task, then a webhook will be triggered for each unique consumer version identified by the consumer version selectors that selected that pact content.
|
167
|
+
* *Provider version*: The provider version that the verification was published with.
|
168
|
+
|
146
169
|
<a name="whitelist"></a>
|
147
170
|
### Webhook Whitelist
|
148
171
|
|
@@ -103,6 +103,8 @@ end
|
|
103
103
|
# Referenced By:
|
104
104
|
# branches | branches_pacticipant_id_fkey | (pacticipant_id) REFERENCES pacticipants(id) ON DELETE CASCADE
|
105
105
|
# currently_deployed_version_ids | currently_deployed_version_ids_pacticipant_id_fkey | (pacticipant_id) REFERENCES pacticipants(id) ON DELETE CASCADE
|
106
|
+
# integrations | integrations_consumer_id_foreign_key | (consumer_id) REFERENCES pacticipants(id) ON DELETE CASCADE
|
107
|
+
# integrations | integrations_provider_id_foreign_key | (provider_id) REFERENCES pacticipants(id) ON DELETE CASCADE
|
106
108
|
# labels | labels_pacticipant_id_fkey | (pacticipant_id) REFERENCES pacticipants(id)
|
107
109
|
# latest_pact_publication_ids_for_consumer_versions | latest_pact_publication_ids_for_consumer_versi_consumer_id_fkey | (consumer_id) REFERENCES pacticipants(id) ON DELETE CASCADE
|
108
110
|
# latest_pact_publication_ids_for_consumer_versions | latest_pact_publication_ids_for_consumer_versi_provider_id_fkey | (provider_id) REFERENCES pacticipants(id) ON DELETE CASCADE
|
@@ -6,8 +6,8 @@ require "pact_broker/webhooks/webhook"
|
|
6
6
|
|
7
7
|
module PactBroker
|
8
8
|
module Integrations
|
9
|
-
class Integration < Sequel::Model
|
10
|
-
|
9
|
+
class Integration < Sequel::Model(Sequel::Model.db[:integrations].select(:id, :consumer_id, :provider_id))
|
10
|
+
plugin :insert_ignore, identifying_columns: [:consumer_id, :provider_id]
|
11
11
|
associate(:many_to_one, :consumer, :class => "PactBroker::Domain::Pacticipant", :key => :consumer_id, :primary_key => :id)
|
12
12
|
associate(:many_to_one, :provider, :class => "PactBroker::Domain::Pacticipant", :key => :provider_id, :primary_key => :id)
|
13
13
|
associate(:one_to_one, :latest_verification, :class => "PactBroker::Verifications::LatestVerificationForConsumerAndProvider", key: [:consumer_id, :provider_id], primary_key: [:consumer_id, :provider_id])
|
@@ -18,7 +18,7 @@ module PactBroker
|
|
18
18
|
# Update: now we have pagination, we should probably filter the pacts by consumer/provider id.
|
19
19
|
LATEST_PACT_EAGER_LOADER = proc do |eo_opts|
|
20
20
|
eo_opts[:rows].each do |integration|
|
21
|
-
integration.associations[:latest_pact] =
|
21
|
+
integration.associations[:latest_pact] = nil
|
22
22
|
end
|
23
23
|
|
24
24
|
PactBroker::Pacts::PactPublication.overall_latest.each do | pact |
|
@@ -53,12 +53,24 @@ module PactBroker
|
|
53
53
|
end
|
54
54
|
end)
|
55
55
|
|
56
|
+
def self.compare_by_last_action_date a, b
|
57
|
+
if b.latest_pact_or_verification_publication_date && a.latest_pact_or_verification_publication_date
|
58
|
+
b.latest_pact_or_verification_publication_date <=> a.latest_pact_or_verification_publication_date
|
59
|
+
elsif b.latest_pact_or_verification_publication_date
|
60
|
+
1
|
61
|
+
elsif a.latest_pact_or_verification_publication_date
|
62
|
+
-1
|
63
|
+
else
|
64
|
+
a <=> b
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
56
68
|
def verification_status_for_latest_pact
|
57
69
|
@verification_status_for_latest_pact ||= PactBroker::Verifications::PseudoBranchStatus.new(latest_pact, latest_pact&.latest_verification)
|
58
70
|
end
|
59
71
|
|
60
72
|
def latest_pact_or_verification_publication_date
|
61
|
-
[latest_pact
|
73
|
+
[latest_pact&.created_at, latest_verification_publication_date].compact.max
|
62
74
|
end
|
63
75
|
|
64
76
|
def latest_verification_publication_date
|
@@ -66,16 +78,28 @@ module PactBroker
|
|
66
78
|
end
|
67
79
|
|
68
80
|
def <=>(other)
|
69
|
-
[
|
81
|
+
[consumer_name.downcase, provider_name.downcase] <=> [other.consumer_name.downcase, other.provider_name.downcase]
|
82
|
+
end
|
83
|
+
|
84
|
+
def consumer_name
|
85
|
+
consumer.name
|
86
|
+
end
|
87
|
+
|
88
|
+
def provider_name
|
89
|
+
provider.name
|
70
90
|
end
|
71
91
|
end
|
72
92
|
end
|
73
93
|
end
|
74
94
|
|
75
95
|
# Table: integrations
|
76
|
-
# Primary Key: (consumer_id, provider_id)
|
77
96
|
# Columns:
|
78
|
-
#
|
79
|
-
#
|
80
|
-
# provider_id
|
81
|
-
#
|
97
|
+
# id | integer | PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY
|
98
|
+
# consumer_id | integer | NOT NULL
|
99
|
+
# provider_id | integer | NOT NULL
|
100
|
+
# Indexes:
|
101
|
+
# integrations_pkey | PRIMARY KEY btree (id)
|
102
|
+
# integrations_consumer_id_provider_id_unique | UNIQUE btree (consumer_id, provider_id)
|
103
|
+
# Foreign key constraints:
|
104
|
+
# integrations_consumer_id_foreign_key | (consumer_id) REFERENCES pacticipants(id) ON DELETE CASCADE
|
105
|
+
# integrations_provider_id_foreign_key | (provider_id) REFERENCES pacticipants(id) ON DELETE CASCADE
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require "pact_broker/integrations/integration"
|
2
|
+
|
3
|
+
module PactBroker
|
4
|
+
module Integrations
|
5
|
+
class Repository
|
6
|
+
def create_for_pact(consumer_id, provider_id)
|
7
|
+
if Integration.where(consumer_id: consumer_id, provider_id: provider_id).empty?
|
8
|
+
Integration.new(
|
9
|
+
consumer_id: consumer_id,
|
10
|
+
provider_id: provider_id,
|
11
|
+
created_at: Sequel.datetime_class.now
|
12
|
+
).insert_ignore
|
13
|
+
end
|
14
|
+
nil
|
15
|
+
end
|
16
|
+
|
17
|
+
def delete(consumer_id, provider_id)
|
18
|
+
Integration.where(consumer_id: consumer_id, provider_id: provider_id).delete
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -29,7 +29,7 @@ module PactBroker
|
|
29
29
|
.eager(latest_pact: [:latest_verification, :pact_version])
|
30
30
|
.eager(:latest_verification)
|
31
31
|
.all
|
32
|
-
.sort { | a, b|
|
32
|
+
.sort { | a, b| Integration.compare_by_last_action_date(a, b) }
|
33
33
|
end
|
34
34
|
|
35
35
|
def self.delete(consumer_name, provider_name)
|
@@ -41,7 +41,7 @@ module PactBroker
|
|
41
41
|
pact_service.delete_all_pact_versions_between(consumer_name, and: provider_name)
|
42
42
|
webhook_repository.delete_by_consumer_and_provider(consumer, provider)
|
43
43
|
version_repository.delete_orphan_versions(consumer, provider)
|
44
|
-
|
44
|
+
integration_repository.delete(consumer.id, provider.id)
|
45
45
|
pacticipant_service.delete_if_orphan(consumer)
|
46
46
|
pacticipant_service.delete_if_orphan(provider) unless consumer == provider
|
47
47
|
end
|
@@ -34,7 +34,7 @@ en:
|
|
34
34
|
consumerVersionTags: The list of tag names for the most recent consumer version associated with the pact content, separated by ", "
|
35
35
|
consumerVersionBranch: The repository branch associated with the consumer version
|
36
36
|
providerVersionTags: The list of tag names for the provider version associated with the verification result, separated by ", ".
|
37
|
-
providerVersionDescriptions: The descriptions of the provider version(s) for which the contract_requiring_verification_published webhook has been triggered.
|
37
|
+
providerVersionDescriptions: The descriptions of the provider version(s) for which the contract_requiring_verification_published webhook has been triggered. Only populated for the contract_requiring_verification_published event.
|
38
38
|
providerVersionBranch: The repository branch associated with the provider version
|
39
39
|
consumerLabels: The list of labels for the consumer associated with the pact content, separated by ", ".
|
40
40
|
providerLabels: The list of labels for the provider associated with the pact content, separated by ", ".
|
@@ -46,7 +46,6 @@ en:
|
|
46
46
|
gitlabVerificationStatus: The verification status using the correct keywords for posting to the Gitlab Commits API. See https://docs.gitlab.com/ee/api/commits.html#post-the-build-status-to-a-commit
|
47
47
|
eventName: The name of the event that triggered the webhook
|
48
48
|
buildUrl: The URL of the build that published the resources that have triggered the webhook (currently only supported for contracts published using the 'all in one' endpoint).
|
49
|
-
currentlyDeployedProviderVersionNumber: The version number of the currently deployed provider version (when used in a template, the webhook will be triggered once for each currently deployed provider version)
|
50
49
|
no_webhooks_enabled_for_event: No enabled webhooks found for the detected events
|
51
50
|
webhook_triggered_for_event: Webhook %{webhook_description} triggered for event %{event_name}.
|
52
51
|
triggered_webhook_see_logs: View logs at %{url}
|
@@ -77,9 +77,14 @@ module PactBroker
|
|
77
77
|
).save
|
78
78
|
end
|
79
79
|
|
80
|
+
def delete(pacticipant)
|
81
|
+
pacticipant.destroy
|
82
|
+
end
|
83
|
+
|
80
84
|
def pacticipant_names
|
81
85
|
PactBroker::Domain::Pacticipant.select(:name).order(:name).collect(&:name)
|
82
86
|
end
|
87
|
+
|
83
88
|
def delete_if_orphan(pacticipant)
|
84
89
|
if PactBroker::Domain::Version.where(pacticipant: pacticipant).empty? &&
|
85
90
|
PactBroker::Pacts::PactPublication.where(provider: pacticipant).or(consumer: pacticipant).empty? &&
|
@@ -79,7 +79,7 @@ module PactBroker
|
|
79
79
|
def self.delete(name)
|
80
80
|
pacticipant = find_pacticipant_by_name name
|
81
81
|
webhook_service.delete_all_webhhook_related_objects_by_pacticipant(pacticipant)
|
82
|
-
pacticipant
|
82
|
+
pacticipant_repository.delete(pacticipant)
|
83
83
|
end
|
84
84
|
|
85
85
|
def self.delete_if_orphan(pacticipant)
|
@@ -9,10 +9,14 @@ module PactBroker
|
|
9
9
|
def conflict? original_json, additional_json
|
10
10
|
original, additional = [original_json, additional_json].map{|str| JSON.parse(str, PACT_PARSING_OPTIONS) }
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
if original["interactions"].nil? || additional["interactions"].nil?
|
13
|
+
true
|
14
|
+
else
|
15
|
+
additional["interactions"].any? do |new_interaction|
|
16
|
+
original["interactions"].any? do |original_interaction|
|
17
|
+
same_description_and_state?(original_interaction, new_interaction) &&
|
18
|
+
!same_request_properties?(original_interaction["request"], new_interaction["request"])
|
19
|
+
end
|
16
20
|
end
|
17
21
|
end
|
18
22
|
end
|
@@ -111,7 +111,7 @@ module PactBroker
|
|
111
111
|
end
|
112
112
|
|
113
113
|
def create_selected_pact(pact_publication, selector)
|
114
|
-
resolved_selector = if selector.currently_deployed? || selector.currently_supported?
|
114
|
+
resolved_selector = if selector.currently_deployed? || selector.currently_supported? || selector.in_environment?
|
115
115
|
environment = environment_service.find_by_name(pact_publication.values.fetch(:environment_name))
|
116
116
|
selector.resolve_for_environment(pact_publication.consumer_version, environment, pact_publication.values[:target])
|
117
117
|
else
|