Module: PactBroker

Includes:
Logging
Defined in:
lib/pact_broker/matrix/row.rb,
lib/pact_broker/db.rb,
lib/pact_broker/api.rb,
lib/pact_broker/app.rb,
lib/pact_broker/json.rb,
lib/pact_broker/error.rb,
lib/pact_broker/errors.rb,
lib/pact_broker/ui/app.rb,
lib/pact_broker/logging.rb,
lib/pact_broker/version.rb,
lib/pact_broker/db/clean.rb,
lib/pact_broker/messages.rb,
lib/pact_broker/policies.rb,
lib/pact_broker/services.rb,
lib/pact_broker/api/paths.rb,
lib/pact_broker/constants.rb,
lib/pact_broker/db/models.rb,
lib/pact_broker/db/migrate.rb,
lib/pact_broker/db/version.rb,
lib/pact_broker/domain/tag.rb,
lib/pact_broker/index/page.rb,
lib/pact_broker/pacts/diff.rb,
lib/pact_broker/config/load.rb,
lib/pact_broker/config/save.rb,
lib/pact_broker/date_helper.rb,
lib/pact_broker/domain/pact.rb,
lib/pact_broker/pacts/parse.rb,
lib/pact_broker/domain/group.rb,
lib/pact_broker/domain/label.rb,
lib/pact_broker/events/event.rb,
lib/pact_broker/pacts/merger.rb,
lib/pact_broker/project_root.rb,
lib/pact_broker/repositories.rb,
lib/pact_broker/tags/service.rb,
lib/pact_broker/webhooks/job.rb,
lib/pact_broker/configuration.rb,
lib/pact_broker/index/service.rb,
lib/pact_broker/matrix/reason.rb,
lib/pact_broker/pacts/content.rb,
lib/pact_broker/pacts/service.rb,
lib/pact_broker/badges/service.rb,
lib/pact_broker/config/setting.rb,
lib/pact_broker/diagnostic/app.rb,
lib/pact_broker/domain/version.rb,
lib/pact_broker/domain/webhook.rb,
lib/pact_broker/feature_toggle.rb,
lib/pact_broker/groups/service.rb,
lib/pact_broker/labels/service.rb,
lib/pact_broker/matrix/service.rb,
lib/pact_broker/pacts/metadata.rb,
lib/pact_broker/pacts/selector.rb,
lib/pact_broker/db/migrate_data.rb,
lib/pact_broker/matrix/head_row.rb,
lib/pact_broker/metrics/service.rb,
lib/pact_broker/pacts/head_pact.rb,
lib/pact_broker/pacts/selectors.rb,
lib/pact_broker/tags/repository.rb,
lib/pact_broker/versions/branch.rb,
lib/pact_broker/webhooks/render.rb,
lib/pact_broker/webhooks/status.rb,
lib/pact_broker/contracts/notice.rb,
lib/pact_broker/db/log_quietener.rb,
lib/pact_broker/events/publisher.rb,
lib/pact_broker/hash_refinements.rb,
lib/pact_broker/matrix/every_row.rb,
lib/pact_broker/matrix/query_ids.rb,
lib/pact_broker/matrix/quick_row.rb,
lib/pact_broker/pacts/repository.rb,
lib/pact_broker/tasks/clean_task.rb,
lib/pact_broker/versions/service.rb,
lib/pact_broker/webhooks/service.rb,
lib/pact_broker/webhooks/webhook.rb,
lib/pact_broker/api/resources/tag.rb,
lib/pact_broker/config/repository.rb,
lib/pact_broker/contracts/service.rb,
lib/pact_broker/db/clean/selector.rb,
lib/pact_broker/domain/index_item.rb,
lib/pact_broker/events/subscriber.rb,
lib/pact_broker/events/subscriber.rb,
lib/pact_broker/labels/repository.rb,
lib/pact_broker/matrix/repository.rb,
lib/pact_broker/pacts/pact_params.rb,
lib/pact_broker/versions/selector.rb,
lib/pact_broker/versions/sequence.rb,
lib/pact_broker/api/resources/pact.rb,
lib/pact_broker/build_http_options.rb,
lib/pact_broker/domain/pacticipant.rb,
lib/pact_broker/matrix/integration.rb,
lib/pact_broker/matrix/parse_query.rb,
lib/pact_broker/pacts/generate_sha.rb,
lib/pact_broker/pacts/lazy_loaders.rb,
lib/pact_broker/pacts/pact_version.rb,
lib/pact_broker/pacts/sort_content.rb,
lib/pact_broker/string_refinements.rb,
lib/pact_broker/tags/eager_loaders.rb,
lib/pact_broker/tasks/version_task.rb,
lib/pact_broker/versions/selectors.rb,
lib/pact_broker/webhooks/execution.rb,
lib/pact_broker/api/resources/badge.rb,
lib/pact_broker/api/resources/clean.rb,
lib/pact_broker/api/resources/group.rb,
lib/pact_broker/api/resources/index.rb,
lib/pact_broker/api/resources/label.rb,
lib/pact_broker/application_context.rb,
lib/pact_broker/doc/controllers/app.rb,
lib/pact_broker/domain/verification.rb,
lib/pact_broker/errors/error_logger.rb,
lib/pact_broker/pacts/eager_loaders.rb,
lib/pact_broker/pacts/selected_pact.rb,
lib/pact_broker/repositories/scopes.rb,
lib/pact_broker/tags/head_pact_tags.rb,
lib/pact_broker/versions/repository.rb,
lib/pact_broker/webhooks/repository.rb,
lib/pact_broker/api/pact_broker_urls.rb,
lib/pact_broker/api/resources/matrix.rb,
lib/pact_broker/certificates/service.rb,
lib/pact_broker/db/clean_incremental.rb,
lib/pact_broker/db/seed_example_data.rb,
lib/pact_broker/db/validate_encoding.rb,
lib/pact_broker/integrations/service.rb,
lib/pact_broker/matrix/query_builder.rb,
lib/pact_broker/matrix/query_results.rb,
lib/pact_broker/pacticipants/service.rb,
lib/pact_broker/repositories/helpers.rb,
lib/pact_broker/tasks/migration_task.rb,
lib/pact_broker/ui/controllers/index.rb,
lib/pact_broker/ui/controllers/pacts.rb,
lib/pact_broker/versions/branch_head.rb,
lib/pact_broker/webhooks/redact_logs.rb,
lib/pact_broker/api/resources/metrics.rb,
lib/pact_broker/api/resources/version.rb,
lib/pact_broker/api/resources/webhook.rb,
lib/pact_broker/domain/order_versions.rb,
lib/pact_broker/matrix/aggregated_row.rb,
lib/pact_broker/pacts/order_hash_keys.rb,
lib/pact_broker/pacts/verifiable_pact.rb,
lib/pact_broker/ui/controllers/groups.rb,
lib/pact_broker/ui/controllers/matrix.rb,
lib/pact_broker/ui/helpers/url_helper.rb,
lib/pact_broker/verifications/service.rb,
lib/pact_broker/api/resources/versions.rb,
lib/pact_broker/domain/webhook_request.rb,
lib/pact_broker/pacts/pact_publication.rb,
lib/pact_broker/pacts/placeholder_pact.rb,
lib/pact_broker/relationships/groupify.rb,
lib/pact_broker/test/test_data_builder.rb,
lib/pact_broker/verifications/sequence.rb,
lib/pact_broker/versions/eager_loaders.rb,
lib/pact_broker/webhooks/webhook_event.rb,
lib/pact_broker/api/resources/dashboard.rb,
lib/pact_broker/deployments/environment.rb,
lib/pact_broker/integrations/repository.rb,
lib/pact_broker/pacticipants/repository.rb,
lib/pact_broker/ui/controllers/clusters.rb,
lib/pact_broker/versions/branch_service.rb,
lib/pact_broker/versions/branch_version.rb,
lib/pact_broker/webhooks/event_listener.rb,
lib/pact_broker/api/resources/error_test.rb,
lib/pact_broker/certificates/certificate.rb,
lib/pact_broker/integrations/integration.rb,
lib/pact_broker/matrix/resolved_selector.rb,
lib/pact_broker/ui/controllers/dashboard.rb,
lib/pact_broker/ui/helpers/matrix_helper.rb,
lib/pact_broker/verifications/repository.rb,
lib/pact_broker/webhooks/trigger_service.rb,
lib/pact_broker/api/decorators/timestamps.rb,
lib/pact_broker/api/middleware/basic_auth.rb,
lib/pact_broker/api/resources/environment.rb,
lib/pact_broker/api/resources/integration.rb,
lib/pact_broker/api/resources/latest_pact.rb,
lib/pact_broker/api/resources/pacticipant.rb,
lib/pact_broker/logging/default_formatter.rb,
lib/pact_broker/tags/tag_with_latest_flag.rb,
lib/pact_broker/tasks/data_migration_task.rb,
lib/pact_broker/ui/controllers/error_test.rb,
lib/pact_broker/ui/view_models/index_item.rb,
lib/pact_broker/ui/view_models/matrix_tag.rb,
lib/pact_broker/api/resources/all_webhooks.rb,
lib/pact_broker/api/resources/can_i_deploy.rb,
lib/pact_broker/api/resources/environments.rb,
lib/pact_broker/api/resources/integrations.rb,
lib/pact_broker/api/resources/latest_pacts.rb,
lib/pact_broker/api/resources/matrix_badge.rb,
lib/pact_broker/api/resources/pact_version.rb,
lib/pact_broker/api/resources/pacticipants.rb,
lib/pact_broker/api/resources/verification.rb,
lib/pact_broker/db/data_migrations/helpers.rb,
lib/pact_broker/db/delete_overwritten_data.rb,
lib/pact_broker/domain/webhook_pacticipant.rb,
lib/pact_broker/matrix/unresolved_selector.rb,
lib/pact_broker/ui/view_models/index_items.rb,
lib/pact_broker/ui/view_models/matrix_line.rb,
lib/pact_broker/versions/abbreviate_number.rb,
lib/pact_broker/webhooks/triggered_webhook.rb,
lib/pact_broker/api/contracts/base_contract.rb,
lib/pact_broker/api/contracts/configuration.rb,
lib/pact_broker/api/resources/authorization.rb,
lib/pact_broker/api/resources/base_resource.rb,
lib/pact_broker/api/resources/error_handler.rb,
lib/pact_broker/api/resources/pact_versions.rb,
lib/pact_broker/api/resources/pact_webhooks.rb,
lib/pact_broker/api/resources/relationships.rb,
lib/pact_broker/api/resources/verifications.rb,
lib/pact_broker/pacts/create_formatted_diff.rb,
lib/pact_broker/test/http_test_data_builder.rb,
lib/pact_broker/ui/controllers/can_i_deploy.rb,
lib/pact_broker/ui/view_models/matrix_lines.rb,
lib/pact_broker/api/decorators/configuration.rb,
lib/pact_broker/api/decorators/tag_decorator.rb,
lib/pact_broker/api/middleware/configuration.rb,
lib/pact_broker/api/resources/authentication.rb,
lib/pact_broker/api/resources/branch_version.rb,
lib/pact_broker/api/resources/latest_version.rb,
lib/pact_broker/api/resources/provider_pacts.rb,
lib/pact_broker/config/runtime_configuration.rb,
lib/pact_broker/deployments/deployed_version.rb,
lib/pact_broker/deployments/released_version.rb,
lib/pact_broker/ui/view_models/matrix_branch.rb,
lib/pact_broker/api/decorators/base_decorator.rb,
lib/pact_broker/api/decorators/pact_decorator.rb,
lib/pact_broker/contracts/contract_to_publish.rb,
lib/pact_broker/webhooks/check_host_whitelist.rb,
lib/pact_broker/api/contracts/webhook_contract.rb,
lib/pact_broker/api/decorators/label_decorator.rb,
lib/pact_broker/api/resources/deployed_version.rb,
lib/pact_broker/api/resources/released_version.rb,
lib/pact_broker/contracts/contracts_to_publish.rb,
lib/pact_broker/db/table_dependency_calculator.rb,
lib/pact_broker/diagnostic/resources/heartbeat.rb,
lib/pact_broker/pacts/generate_interaction_sha.rb,
lib/pact_broker/pacts/verifiable_pact_messages.rb,
lib/pact_broker/ui/controllers/base_controller.rb,
lib/pact_broker/api/decorators/format_date_time.rb,
lib/pact_broker/api/decorators/matrix_decorator.rb,
lib/pact_broker/api/decorators/pagination_links.rb,
lib/pact_broker/api/decorators/reason_decorator.rb,
lib/pact_broker/api/resources/pact_content_diff.rb,
lib/pact_broker/api/resources/publish_contracts.rb,
lib/pact_broker/api/resources/webhook_execution.rb,
lib/pact_broker/config/basic_auth_configuration.rb,
lib/pact_broker/deployments/environment_service.rb,
lib/pact_broker/matrix/parse_can_i_deploy_query.rb,
lib/pact_broker/versions/parse_semantic_version.rb,
lib/pact_broker/webhooks/webhook_request_logger.rb,
lib/pact_broker/api/contracts/environment_schema.rb,
lib/pact_broker/api/contracts/pacticipant_schema.rb,
lib/pact_broker/api/decorators/decorator_context.rb,
lib/pact_broker/api/decorators/version_decorator.rb,
lib/pact_broker/api/decorators/webhook_decorator.rb,
lib/pact_broker/api/renderers/html_pact_renderer.rb,
lib/pact_broker/api/resources/can_i_deploy_badge.rb,
lib/pact_broker/api/resources/pagination_methods.rb,
lib/pact_broker/initializers/database_connection.rb,
lib/pact_broker/matrix/can_i_deploy_query_schema.rb,
lib/pact_broker/matrix/deployment_status_summary.rb,
lib/pact_broker/webhooks/execution_configuration.rb,
lib/pact_broker/api/contracts/request_validations.rb,
lib/pact_broker/api/decorators/representable_pact.rb,
lib/pact_broker/api/decorators/versions_decorator.rb,
lib/pact_broker/api/decorators/webhooks_decorator.rb,
lib/pact_broker/diagnostic/resources/dependencies.rb,
lib/pact_broker/webhooks/latest_triggered_webhook.rb,
lib/pact_broker/webhooks/webhook_execution_result.rb,
lib/pact_broker/webhooks/webhook_request_template.rb,
lib/pact_broker/api/decorators/dashboard_decorator.rb,
lib/pact_broker/api/resources/pact_webhooks_status.rb,
lib/pact_broker/api/resources/pacticipant_webhooks.rb,
lib/pact_broker/api/resources/tagged_pact_versions.rb,
lib/pact_broker/config/space_delimited_string_list.rb,
lib/pact_broker/db/data_migrations/create_branches.rb,
lib/pact_broker/diagnostic/resources/base_resource.rb,
lib/pact_broker/pacticipants/generate_display_name.rb,
lib/pact_broker/tasks/delete_overwritten_data_task.rb,
lib/pact_broker/verifications/pseudo_branch_status.rb,
lib/pact_broker/versions/branch_version_repository.rb,
lib/pact_broker/api/contracts/verification_contract.rb,
lib/pact_broker/api/resources/default_base_resource.rb,
lib/pact_broker/api/resources/latest_provider_pacts.rb,
lib/pact_broker/api/resources/pact_resource_methods.rb,
lib/pact_broker/config/space_delimited_integer_list.rb,
lib/pact_broker/db/data_migrations/set_webhook_uuid.rb,
lib/pact_broker/pacts/build_verifiable_pact_notices.rb,
lib/pact_broker/pacts/squash_pacts_for_verification.rb,
lib/pact_broker/verifications/required_verification.rb,
lib/pact_broker/api/decorators/environment_decorator.rb,
lib/pact_broker/api/decorators/integration_decorator.rb,
lib/pact_broker/api/decorators/latest_pact_decorator.rb,
lib/pact_broker/api/decorators/matrix_text_decorator.rb,
lib/pact_broker/api/decorators/pacticipant_decorator.rb,
lib/pact_broker/api/resources/pacticipants_for_label.rb,
lib/pact_broker/api/resources/triggered_webhook_logs.rb,
lib/pact_broker/deployments/deployed_version_service.rb,
lib/pact_broker/deployments/released_version_service.rb,
lib/pact_broker/api/decorators/embedded_tag_decorator.rb,
lib/pact_broker/api/decorators/environments_decorator.rb,
lib/pact_broker/api/decorators/integrations_decorator.rb,
lib/pact_broker/api/decorators/pact_details_decorator.rb,
lib/pact_broker/api/decorators/pact_version_decorator.rb,
lib/pact_broker/api/decorators/verification_decorator.rb,
lib/pact_broker/api/resources/pact_triggered_webhooks.rb,
lib/pact_broker/pacts/pact_publication_dataset_module.rb,
lib/pact_broker/ui/view_models/index_item_branch_head.rb,
lib/pact_broker/api/contracts/publish_contracts_schema.rb,
lib/pact_broker/api/contracts/put_pact_params_contract.rb,
lib/pact_broker/api/decorators/extended_pact_decorator.rb,
lib/pact_broker/api/decorators/pact_versions_decorator.rb,
lib/pact_broker/api/resources/pact_versions_for_branch.rb,
lib/pact_broker/api/resources/webhook_resource_methods.rb,
lib/pact_broker/ui/view_models/matrix_deployed_version.rb,
lib/pact_broker/ui/view_models/matrix_released_version.rb,
lib/pact_broker/verifications/placeholder_verification.rb,
lib/pact_broker/api/authorization/resource_access_rules.rb,
lib/pact_broker/api/contracts/dry_validation_predicates.rb,
lib/pact_broker/api/contracts/pacticipant_name_contract.rb,
lib/pact_broker/api/decorators/branch_version_decorator.rb,
lib/pact_broker/api/decorators/dashboard_text_decorator.rb,
lib/pact_broker/api/decorators/embedded_label_decorator.rb,
lib/pact_broker/api/decorators/provider_pacts_decorator.rb,
lib/pact_broker/api/renderers/integrations_dot_renderer.rb,
lib/pact_broker/api/resources/metadata_resource_methods.rb,
lib/pact_broker/api/resources/webhook_execution_methods.rb,
lib/pact_broker/contracts/contracts_publication_results.rb,
lib/pact_broker/db/data_migrations/migrate_integrations.rb,
lib/pact_broker/db/data_migrations/set_webhooks_enabled.rb,
lib/pact_broker/pacts/pacts_for_verification_repository.rb,
lib/pact_broker/api/authorization/resource_access_policy.rb,
lib/pact_broker/api/contracts/dry_validation_workarounds.rb,
lib/pact_broker/api/decorators/decorator_context_creator.rb,
lib/pact_broker/api/decorators/pact_collection_decorator.rb,
lib/pact_broker/api/decorators/verifiable_pact_decorator.rb,
lib/pact_broker/webhooks/execution_configuration_creator.rb,
lib/pact_broker/api/contracts/pacticipant_name_validation.rb,
lib/pact_broker/api/decorators/deployed_version_decorator.rb,
lib/pact_broker/api/decorators/embedded_version_decorator.rb,
lib/pact_broker/api/decorators/pact_pacticipant_decorator.rb,
lib/pact_broker/api/decorators/publish_contract_decorator.rb,
lib/pact_broker/api/decorators/released_version_decorator.rb,
lib/pact_broker/api/decorators/verifiable_pacts_decorator.rb,
lib/pact_broker/deployments/currently_deployed_version_id.rb,
lib/pact_broker/pacts/pact_publication_wip_dataset_module.rb,
lib/pact_broker/webhooks/pact_and_verification_parameters.rb,
lib/pact_broker/api/decorators/basic_pacticipant_decorator.rb,
lib/pact_broker/api/decorators/deployed_versions_decorator.rb,
lib/pact_broker/api/decorators/publish_contracts_decorator.rb,
lib/pact_broker/api/decorators/relationships_csv_decorator.rb,
lib/pact_broker/api/decorators/released_versions_decorator.rb,
lib/pact_broker/api/decorators/triggered_webhook_decorator.rb,
lib/pact_broker/api/resources/latest_verification_for_pact.rb,
lib/pact_broker/api/resources/pacticipant_resource_methods.rb,
lib/pact_broker/db/data_migrations/migrate_webhook_headers.rb,
lib/pact_broker/db/data_migrations/set_interactions_counts.rb,
lib/pact_broker/verifications/summary_for_consumer_version.rb,
lib/pact_broker/api/decorators/triggered_webhooks_decorator.rb,
lib/pact_broker/api/resources/error_response_body_generator.rb,
lib/pact_broker/webhooks/http_request_with_redacted_headers.rb,
lib/pact_broker/webhooks/http_response_with_utf_8_safe_body.rb,
lib/pact_broker/api/resources/previous_distinct_pact_version.rb,
lib/pact_broker/config/runtime_configuration_logging_methods.rb,
lib/pact_broker/api/decorators/embedded_environment_decorator.rb,
lib/pact_broker/api/decorators/embedded_pacticipant_decorator.rb,
lib/pact_broker/api/decorators/pact_webhooks_status_decorator.rb,
lib/pact_broker/api/decorators/tagged_pact_versions_decorator.rb,
lib/pact_broker/api/decorators/verification_summary_decorator.rb,
lib/pact_broker/api/resources/provider_pacts_for_verification.rb,
lib/pact_broker/api/resources/verification_triggered_webhooks.rb,
lib/pact_broker/config/runtime_configuration_coercion_methods.rb,
lib/pact_broker/config/runtime_configuration_database_methods.rb,
lib/pact_broker/db/data_migrations/set_extra_columns_for_tags.rb,
lib/pact_broker/api/decorators/extended_verification_decorator.rb,
lib/pact_broker/api/resources/can_i_deploy_pacticipant_version.rb,
lib/pact_broker/api/resources/matrix_for_consumer_and_provider.rb,
lib/pact_broker/db/data_migrations/set_pacticipant_main_branch.rb,
lib/pact_broker/pacts/pact_publication_selector_dataset_module.rb,
lib/pact_broker/ui/view_models/index_item_provider_branch_head.rb,
lib/pact_broker/api/decorators/pacticipant_collection_decorator.rb,
lib/pact_broker/db/data_migrations/set_pacticipant_display_name.rb,
lib/pact_broker/api/decorators/embedded_branch_version_decorator.rb,
lib/pact_broker/api/decorators/webhook_execution_result_decorator.rb,
lib/pact_broker/api/decorators/webhook_request_template_decorator.rb,
lib/pact_broker/api/resources/latest_verification_for_latest_pact.rb,
lib/pact_broker/api/decorators/publish_contracts_results_decorator.rb,
lib/pact_broker/matrix/query_results_with_deployment_status_summary.rb,
lib/pact_broker/db/data_migrations/set_latest_version_sequence_value.rb,
lib/pact_broker/pacts/pact_publication_clean_selector_dataset_module.rb,
lib/pact_broker/api/decorators/pacts_for_verification_query_decorator.rb,
lib/pact_broker/pacts/latest_pact_publication_id_for_consumer_version.rb,
lib/pact_broker/api/contracts/pacts_for_verification_json_query_schema.rb,
lib/pact_broker/api/resources/latest_verifications_for_consumer_version.rb,
lib/pact_broker/db/data_migrations/delete_deprecated_webhook_executions.rb,
lib/pact_broker/pacticipants/find_potential_duplicate_pacticipant_names.rb,
lib/pact_broker/api/contracts/pacts_for_verification_query_string_schema.rb,
lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb,
lib/pact_broker/api/resources/currently_deployed_versions_for_environment.rb,
lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb,
lib/pact_broker/api/resources/currently_supported_versions_for_environment.rb,
lib/pact_broker/db/data_migrations/set_created_at_for_latest_verifications.rb,
lib/pact_broker/verifications/latest_verification_for_consumer_version_tag.rb,
lib/pact_broker/api/resources/deployed_versions_for_version_and_environment.rb,
lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb,
lib/pact_broker/verifications/latest_verification_for_consumer_and_provider.rb,
lib/pact_broker/db/data_migrations/set_created_at_for_latest_pact_publications.rb,
lib/pact_broker/verifications/pact_version_provider_tag_successful_verification.rb,
lib/pact_broker/db/data_migrations/set_consumer_version_order_for_pact_publications.rb,
lib/pact_broker/verifications/latest_verification_id_for_pact_version_and_provider_version.rb,
lib/pact_broker/db/data_migrations/migrate_pact_version_provider_tag_successful_verifications.rb

Overview

Represents a non WIP, successful verification for a provider version with a tag.

Defined Under Namespace

Modules: Api, Badges, Certificates, Config, Contracts, DB, DateHelper, Deployments, Diagnostic, Doc, Domain, Errors, Events, Groups, HashRefinements, Index, Integrations, Labels, Logging, Matrix, Messages, Metrics, Pacticipants, Pacts, Relationships, Repositories, Services, StringRefinements, Tags, Test, UI, Verifications, Versions, Webhooks Classes: App, ApplicationContext, BuildHttpOptions, Configuration, ConfigurationError, DefaultPolicy, Error, FeatureToggle, TestError, UnsetAttribute, UnsetAttributeError

Constant Summary collapse

PACT_PARSING_OPTIONS =
{ max_nesting: 50 }
VERSION =
"2.93.2"
CONSUMER_VERSION_HEADER =
"X-Pact-Consumer-Version".freeze
DO_NOT_ROLLBACK =
"X-Pact-Broker-Do-Not-Rollback".freeze
INTEGRATIONS_TABLES =
[
  PactBroker::Webhooks::Execution,
  PactBroker::Webhooks::TriggeredWebhook,
  PactBroker::Webhooks::Webhook,
  PactBroker::Pacts::LatestPactPublicationIdForConsumerVersion,
  PactBroker::Verifications::LatestVerificationIdForPactVersionAndProviderVersion,
  PactBroker::Domain::Verification,
  PactBroker::Pacts::PactPublication,
  PactBroker::Pacts::PactVersion,
  PactBroker::Domain::Tag,
  PactBroker::Deployments::DeployedVersion,
  PactBroker::Deployments::ReleasedVersion,
  PactBroker::Versions::BranchHead,
  PactBroker::Versions::BranchVersion,
  PactBroker::Versions::Branch,
  PactBroker::Domain::Version,
  PactBroker::Domain::Label,
  PactBroker::Domain::Pacticipant
]

Class Method Summary collapse

Methods included from Logging

included, #log_error, #log_with_tag

Class Method Details

.build_api(application_context = PactBroker::ApplicationContext.default_application_context) ⇒ Object

rubocop: disable Metrics/MethodLength



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/pact_broker/api.rb', line 27

def self.build_api(application_context = PactBroker::ApplicationContext.default_application_context)
  pact_api = Webmachine::Application.new do |app|
    app.routes do
      add(["trace", :*], Webmachine::Trace::TraceResource) unless ENV["RACK_ENV"] == "production"

      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "versions"], Api::Resources::PactVersions, {resource_name: "pact_publications"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "versions", :consumer_version_number], Api::Resources::Pact, {resource_name: "pact_publication", deprecated: true} # Not the standard URL, but keep for backwards compatibility
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "tag", :tag], Api::Resources::TaggedPactVersions, {resource_name: "tagged_pact_publications"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "branch", :branch_name], Api::Resources::PactVersionsForBranch, {resource_name: "pact_publications_for_branch"}

      # Pacts
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "version", :consumer_version_number], Api::Resources::Pact, {resource_name: "pact_publication"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "pact-version", :pact_version_sha], Api::Resources::PactVersion, {resource_name: "pact_publication"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "pact-version", :pact_version_sha, "metadata", :metadata], Api::Resources::PactVersion, {resource_name: "pact_publication"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "version", :consumer_version_number, "previous-distinct"], Api::Resources::PreviousDistinctPactVersion, {resource_name: "previous_distinct_pact_version"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "version", :consumer_version_number, "diff", "previous-distinct"], Api::Resources::PactContentDiff, {resource_name: "previous_distinct_pact_version_diff"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "version", :consumer_version_number, "diff", "version", :comparison_consumer_version], Api::Resources::PactContentDiff, {resource_name: "pact_version_diff_by_consumer_version"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "pact-version", :pact_version_sha, "diff", "pact-version", :comparison_pact_version_sha], Api::Resources::PactContentDiff, {resource_name: "pact_version_diff_by_pact_version_sha"}

      # Verifications
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "pact-version", :pact_version_sha, "verification-results"], Api::Resources::Verifications, {resource_name: "verification_results"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "pact-version", :pact_version_sha, "metadata", :metadata, "verification-results"], Api::Resources::Verifications, {resource_name: "verification_results"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "version", :consumer_version_number, "verification-results", "latest"], Api::Resources::LatestVerificationForPact, {resource_name: "latest_verification_results_for_pact_publication"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "pact-version", :pact_version_sha, "verification-results", "latest"], Api::Resources::LatestVerificationForPact, {resource_name: "latest_verification_results_for_pact_version"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "pact-version", :pact_version_sha, "verification-results", :verification_number], Api::Resources::Verification, {resource_name: "verification_result"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "pact-version", :pact_version_sha, "metadata", :metadata, "verification-results", :verification_number], Api::Resources::Verification, {resource_name: "verification_result"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "pact-version", :pact_version_sha, "verification-results", :verification_number, "triggered-webhooks"], Api::Resources::VerificationTriggeredWebhooks, {resource_name: "verification_result_triggered_webhooks"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "latest", "verification-results","latest"], Api::Resources::LatestVerificationForLatestPact, {resource_name: "latest_verification_results_for_latest_pact_publication"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "latest", :tag, "verification-results","latest"], Api::Resources::LatestVerificationForLatestPact, {resource_name: "latest_verification_results_for_latest_tagged_pact_publication"}
      add ["verification-results", "consumer", :consumer_name, "version", :consumer_version_number,"latest"], Api::Resources::LatestVerificationsForConsumerVersion, {resource_name: "verification_results_for_consumer_version"}

      # Badges
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "latest", "badge"], Api::Resources::Badge, {resource_name: "latest_pact_badge"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "latest", :tag, "badge"], Api::Resources::Badge, {resource_name: "latest_tagged_pact_badge"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "latest-untagged", "badge"], Api::Resources::Badge, {resource_name: "latest_untagged_pact_badge", tag: :untagged}

      # Latest pacts
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "latest"], Api::Resources::LatestPact, {resource_name: "latest_pact_publication"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "latest", :tag], Api::Resources::LatestPact, {resource_name: "latest_tagged_pact_publication"}
      add ["pacts", "provider", :provider_name], Api::Resources::ProviderPacts, {resource_name: "provider_pact_publications"}
      add ["pacts", "provider", :provider_name, "tag", :tag], Api::Resources::ProviderPacts, {resource_name: "tagged_provider_pact_publications"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "latest-untagged"], Api::Resources::LatestPact, {resource_name: "latest_untagged_pact_publication", tag: :untagged}
      add ["pacts", "provider", :provider_name, "latest"], Api::Resources::LatestProviderPacts, {resource_name: "latest_provider_pact_publications"}
      add ["pacts", "provider", :provider_name, "latest", :tag], Api::Resources::LatestProviderPacts, {resource_name: "latest_tagged_provider_pact_publications"}
      add ["pacts", "latest"], Api::Resources::LatestPacts, {resource_name: "latest_pacts"}

      # Pacts for verification
      add ["pacts", "provider", :provider_name, "for-verification"], Api::Resources::ProviderPactsForVerification, {resource_name: "pacts_for_verification"}

      # Deprecated pact
      add ["pact", "provider", :provider_name, "consumer", :consumer_name, "version", :consumer_version_number], Api::Resources::Pact, {resource_name: "pact_publication", deprecated: "true"} # Deprecate, singular /pact
      add ["pact", "provider", :provider_name, "consumer", :consumer_name, "latest"], Api::Resources::LatestPact, {resource_name: "latest_pact_publications", deprecated: "true"}

      # Pacticipants
      add ["pacticipants"], Api::Resources::Pacticipants, {resource_name: "pacticipants"}
      add ["pacticipants", "label", :label_name], PactBroker::Api::Resources::PacticipantsForLabel, {resource_name: "pacticipants_for_label"}
      add ["pacticipants", :pacticipant_name], Api::Resources::Pacticipant, {resource_name: "pacticipant"}
      add ["pacticipants", :pacticipant_name, "versions"], Api::Resources::Versions, {resource_name: "pacticipant_versions"}
      add ["pacticipants", :pacticipant_name, "versions", :pacticipant_version_number], Api::Resources::Version, {resource_name: "pacticipant_version"}
      add ["pacticipants", :pacticipant_name, "latest-version", :tag], Api::Resources::LatestVersion, {resource_name: "latest_tagged_pacticipant_version"}
      add ["pacticipants", :pacticipant_name, "latest-version", :tag, "can-i-deploy", "to", :to], Api::Resources::CanIDeployPacticipantVersion, { resource_name: "can_i_deploy_latest_tagged_version" }
      add ["pacticipants", :pacticipant_name, "latest-version", :tag, "can-i-deploy", "to", :to, "badge"], Api::Resources::CanIDeployBadge, { resource_name: "can_i_deploy_badge" }
      add ["pacticipants", :pacticipant_name, "latest-version"], Api::Resources::LatestVersion, {resource_name: "latest_pacticipant_version"}
      add ["pacticipants", :pacticipant_name, "versions", :pacticipant_version_number, "tags", :tag_name], Api::Resources::Tag, {resource_name: "pacticipant_version_tag"}
      add ["pacticipants", :pacticipant_name, "labels", :label_name], Api::Resources::Label, {resource_name: "pacticipant_label"}
      add ["pacticipants", :pacticipant_name, "branches", :branch_name, "versions", :version_number], Api::Resources::BranchVersion, { resource_name: "branch_version" }

      # Webhooks
      add ["webhooks", "provider", :provider_name, "consumer", :consumer_name ], Api::Resources::PacticipantWebhooks, {resource_name: "pacticipant_webhooks"}
      add ["webhooks", "provider", :provider_name], Api::Resources::PacticipantWebhooks, {resource_name: "provider_webhooks"}
      add ["webhooks", "consumer", :consumer_name], Api::Resources::PacticipantWebhooks, {resource_name: "consumer_webhooks"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "webhooks"], Api::Resources::PactWebhooks, {resource_name: "pact_webhooks"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "webhooks", "status"], Api::Resources::PactWebhooksStatus, {resource_name: "pact_webhooks_status"}
      add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "version", :consumer_version_number, "triggered-webhooks"], Api::Resources::PactTriggeredWebhooks, {resource_name: "pact_triggered_webhooks"}

      add ["webhooks", "execute" ], Api::Resources::WebhookExecution, {resource_name: "execute_unsaved_webhook"}
      add ["webhooks", :uuid ], Api::Resources::Webhook, {resource_name: "webhook"}
      add ["triggered-webhooks", :uuid, "logs" ], Api::Resources::TriggeredWebhookLogs, { resource_name: "triggered_webhook_logs" }
      add ["webhooks", :uuid, "execute" ], Api::Resources::WebhookExecution, {resource_name: "execute_webhook"}
      add ["webhooks"], Api::Resources::AllWebhooks, {resource_name: "webhooks"}

      add ["relationships"], Api::Resources::Relationships, {resource_name: "relationships"}
      add ["groups", :pacticipant_name], Api::Resources::Group, {resource_name: "group"}

      # matrix
      add ["matrix", "provider", :provider_name, "consumer", :consumer_name], Api::Resources::MatrixForConsumerAndProvider, {resource_name: "matrix_consumer_provider"}
      add ["matrix", "provider", :provider_name, "latest", :provider_tag, "consumer", :consumer_name, "latest", :tag, "badge"], Api::Resources::MatrixBadge, {resource_name: "matrix_tag_badge"}
      add ["matrix"], Api::Resources::Matrix, {resource_name: "matrix"}
      add ["can-i-deploy"], Api::Resources::CanIDeploy, {resource_name: "can_i_deploy"}

      add ["dashboard"], Api::Resources::Dashboard, {resource_name: "dashboard"}
      add ["dashboard", "provider", :provider_name, "consumer", :consumer_name ], Api::Resources::Dashboard, {resource_name: "integration_dashboard"}
      add ["test","error"], Api::Resources::ErrorTest, {resource_name: "error_test"}

      add ["contracts", "publish"], Api::Resources::PublishContracts, { resource_name: "publish_contracts" }

      add ["environments"], Api::Resources::Environments, { resource_name: "environments" }
      add ["environments", :environment_uuid], Api::Resources::Environment, { resource_name: "environment" }
      add ["environments", :environment_uuid, "deployed-versions", "currently-deployed"], Api::Resources::CurrentlyDeployedVersionsForEnvironment, { resource_name: "environment_currently_deployed_deployed_versions" }
      add ["environments", :environment_uuid, "released-versions", "currently-supported"], Api::Resources::CurrentlySupportedVersionsForEnvironment, { resource_name: "environment_currently_supported_released_versions" }
      add ["pacticipants", :pacticipant_name, "versions", :pacticipant_version_number, "deployed-versions", "environment", :environment_uuid], Api::Resources::DeployedVersionsForVersionAndEnvironment, { resource_name: "deployed_versions_for_version_and_environment" }
      add ["pacticipants", :pacticipant_name, "versions", :pacticipant_version_number, "released-versions", "environment", :environment_uuid], Api::Resources::ReleasedVersionsForVersionAndEnvironment, { resource_name: "released_versions_for_version_and_environment" }
      add ["released-versions", :uuid], Api::Resources::ReleasedVersion, { resource_name: "released_version" }
      add ["deployed-versions", :uuid], Api::Resources::DeployedVersion, { resource_name: "deployed_version" }

      add ["integrations"], Api::Resources::Integrations, {resource_name: "integrations"}
      add ["integrations", "provider", :provider_name, "consumer", :consumer_name], Api::Resources::Integration, {resource_name: "integration"}
      add ["metrics"], Api::Resources::Metrics, {resource_name: "metrics"}
      add [], Api::Resources::Index, {resource_name: "index"}
    end
  end

  # naughty, but better than setting each route manually
  pact_api.routes.each do | route |
    route.instance_variable_get(:@bindings)[:application_context] = application_context
  end

  pact_api.configure do |config|
    config.adapter = :RackMapped
  end

  pact_api.adapter
end

.configurationObject



10
11
12
# File 'lib/pact_broker/configuration.rb', line 10

def self.configuration
  RequestStore.store[:pact_broker_configuration] ||= Configuration.default_configuration
end

.create_database_connection(config, logger = nil) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/pact_broker/initializers/database_connection.rb', line 6

def self.create_database_connection(config, logger = nil)
  logger&.info "Connecting to database:", payload: "#{config.merge(password: "*****")}"

  sequel_config = config.dup
  max_retries = sequel_config.delete(:connect_max_retries) || 0
  connection_validation_timeout = config.delete(:connection_validation_timeout)
  enable_caller_logging = config.delete(:enable_caller_logging)
  configure_logger(sequel_config, logger)
  create_sqlite_database_dir(config)

  connection = with_retries(max_retries, logger) do
    Sequel.connect(sequel_config)
  end

  logger&.info "Connected to database #{sequel_config[:database]}"

  configure_connection(connection, connection_validation_timeout, enable_caller_logging)
end

.feature_enabled?(feature, ignore_env = false) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/pact_broker/feature_toggle.rb', line 22

def self.feature_enabled?(feature, ignore_env = false)
  FeatureToggle.enabled?(feature, ignore_env)
end

.policy!(*args) ⇒ Object



46
47
48
# File 'lib/pact_broker/policies.rb', line 46

def self.policy!(*args)
  PactBroker.configuration.policy_builder.call(*args)
end

.policy_scope!(*args) ⇒ Object



50
51
52
# File 'lib/pact_broker/policies.rb', line 50

def self.policy_scope!(*args)
  PactBroker.configuration.policy_scope_builder.call(*args)
end

.project_rootObject



4
5
6
# File 'lib/pact_broker/project_root.rb', line 4

def self.project_root
  @project_root ||= Pathname.new(File.expand_path("../../../",__FILE__)).freeze
end

.reset_configurationObject

@private, for testing only



23
24
25
# File 'lib/pact_broker/configuration.rb', line 23

def self.reset_configuration
  RequestStore.store[:pact_broker_configuration] = Configuration.default_configuration
end

.routesObject



156
157
158
159
# File 'lib/pact_broker/api.rb', line 156

def self.routes
  require "webmachine/describe_routes"
  @routes ||= Webmachine::DescribeRoutes.call([API.application])
end

.set_configuration(configuration) ⇒ Object



14
15
16
# File 'lib/pact_broker/configuration.rb', line 14

def self.set_configuration(configuration)
  RequestStore.store[:pact_broker_configuration] = configuration
end

.with_runtime_configuration_overrides(overrides, &block) ⇒ Object



18
19
20
# File 'lib/pact_broker/configuration.rb', line 18

def self.with_runtime_configuration_overrides(overrides, &block)
  self.configuration.with_runtime_configuration_overrides(overrides, &block)
end