Skip to content

feat: Disable webhook forwarding to codecov#110023

Draft
calvin-codecov wants to merge 1 commit intomasterfrom
cy/disable_codecov_webhook_forward
Draft

feat: Disable webhook forwarding to codecov#110023
calvin-codecov wants to merge 1 commit intomasterfrom
cy/disable_codecov_webhook_forward

Conversation

@calvin-codecov
Copy link
Contributor

Disable webhook forwarding behind a flag.

@github-actions github-actions bot added the Scope: Backend Automatically applied to PRs that change backend components label Mar 6, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Mar 6, 2026

Backend Test Failures

Failures on 386d1c6 in this run:

tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py::DrainMailboxTest::test_drain_codecov_configuration_errorlog
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py:386: in test_drain_codecov_configuration_error
    drain_mailbox(records[0].id)
src/sentry/silo/base.py:158: in override
    return original_method(*args, **kwargs)
src/sentry/taskworker/task.py:89: in __call__
    return self._func(*args, **kwargs)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:317: in drain_mailbox
    deliver_message(record)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:555: in deliver_message
    perform_request(payload)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:574: in perform_request
    "organizations:codecov-webhooks-forwarding-disabled", payload.organization
E   AttributeError: 'WebhookPayload' object has no attribute 'organization'
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py::DrainMailboxTest::test_drain_codecov_not_filtered_malformed_bodylog
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py:467: in test_drain_codecov_not_filtered_malformed_body
    drain_mailbox(records[0].id)
src/sentry/silo/base.py:158: in override
    return original_method(*args, **kwargs)
src/sentry/taskworker/task.py:89: in __call__
    return self._func(*args, **kwargs)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:317: in drain_mailbox
    deliver_message(record)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:555: in deliver_message
    perform_request(payload)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:574: in perform_request
    "organizations:codecov-webhooks-forwarding-disabled", payload.organization
E   AttributeError: 'WebhookPayload' object has no attribute 'organization'
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py::DrainMailboxTest::test_drain_codecov_request_errorlog
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py:408: in test_drain_codecov_request_error
    drain_mailbox(records[0].id)
src/sentry/silo/base.py:158: in override
    return original_method(*args, **kwargs)
src/sentry/taskworker/task.py:89: in __call__
    return self._func(*args, **kwargs)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:317: in drain_mailbox
    deliver_message(record)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:555: in deliver_message
    perform_request(payload)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:574: in perform_request
    "organizations:codecov-webhooks-forwarding-disabled", payload.organization
E   AttributeError: 'WebhookPayload' object has no attribute 'organization'
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py::DeliveryTimeMetricsTest::test_delivery_time_metrics_codecov_region_sent_tolog
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py:1022: in test_delivery_time_metrics_codecov_region_sent_to
    drain_mailbox(records[0].id)
src/sentry/silo/base.py:158: in override
    return original_method(*args, **kwargs)
src/sentry/taskworker/task.py:89: in __call__
    return self._func(*args, **kwargs)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:317: in drain_mailbox
    deliver_message(record)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:555: in deliver_message
    perform_request(payload)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:574: in perform_request
    "organizations:codecov-webhooks-forwarding-disabled", payload.organization
E   AttributeError: 'WebhookPayload' object has no attribute 'organization'
tests/sentry/integrations/github/test_installation.py::InstallationEndpointTest::test_installation_endpointlog
tests/sentry/integrations/github/test_installation.py:37: in test_installation_endpoint
    response = self.client.post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:299: in post
    response = super().post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:213: in post
    return self.generic('POST', path, data, content_type, **extra)
.venv/lib/python3.13/site-packages/rest_framework/test.py:237: in generic
    return super().generic(
.venv/lib/python3.13/site-packages/django/test/client.py:671: in generic
    return self.request(**r)
.venv/lib/python3.13/site-packages/rest_framework/test.py:289: in request
    return super().request(**kwargs)
.venv/lib/python3.13/site-packages/rest_framework/test.py:241: in request
    request = super().request(**kwargs)
.venv/lib/python3.13/site-packages/django/test/client.py:1087: in request
    self.check_exception(response)
.venv/lib/python3.13/site-packages/django/test/client.py:802: in check_exception
    raise exc_value
.venv/lib/python3.13/site-packages/django/core/handlers/exception.py:55: in inner
    response = get_response(request)
.venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/middleware.py:174: in __call__
    return f(*args, **kwargs)
src/sentry/middleware/integrations/integration_control.py:58: in __call__
    return _cls.get_response(request)
src/sentry/middleware/integrations/classifications.py:140: in get_response
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:123: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:98: in try_forward_to_codecov
    "organizations:codecov-webhooks-forwarding-disabled", self.request.organization
E   AttributeError: 'WSGIRequest' object has no attribute 'organization'
tests/sentry/integrations/github/test_webhooks.py::InstallationDeleteEventWebhookTest::test_installation_deletedlog
tests/sentry/integrations/github/test_webhooks.py:191: in test_installation_deleted
    response = self.client.post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:299: in post
    response = super().post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:213: in post
    return self.generic('POST', path, data, content_type, **extra)
.venv/lib/python3.13/site-packages/rest_framework/test.py:237: in generic
    return super().generic(
.venv/lib/python3.13/site-packages/django/test/client.py:671: in generic
    return self.request(**r)
.venv/lib/python3.13/site-packages/rest_framework/test.py:289: in request
    return super().request(**kwargs)
.venv/lib/python3.13/site-packages/rest_framework/test.py:241: in request
    request = super().request(**kwargs)
.venv/lib/python3.13/site-packages/django/test/client.py:1087: in request
    self.check_exception(response)
.venv/lib/python3.13/site-packages/django/test/client.py:802: in check_exception
    raise exc_value
.venv/lib/python3.13/site-packages/django/core/handlers/exception.py:55: in inner
    response = get_response(request)
.venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/middleware.py:174: in __call__
    return f(*args, **kwargs)
src/sentry/middleware/integrations/integration_control.py:58: in __call__
    return _cls.get_response(request)
src/sentry/middleware/integrations/classifications.py:140: in get_response
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:123: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:98: in try_forward_to_codecov
    "organizations:codecov-webhooks-forwarding-disabled", self.request.organization
E   AttributeError: 'WSGIRequest' object has no attribute 'organization'
tests/sentry/integrations/github/test_webhooks.py::InstallationDeleteEventWebhookTest::test_installation_deleted_no_org_integrationlog
tests/sentry/integrations/github/test_webhooks.py:230: in test_installation_deleted_no_org_integration
    response = self.client.post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:299: in post
    response = super().post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:213: in post
    return self.generic('POST', path, data, content_type, **extra)
.venv/lib/python3.13/site-packages/rest_framework/test.py:237: in generic
    return super().generic(
.venv/lib/python3.13/site-packages/django/test/client.py:671: in generic
    return self.request(**r)
.venv/lib/python3.13/site-packages/rest_framework/test.py:289: in request
    return super().request(**kwargs)
.venv/lib/python3.13/site-packages/rest_framework/test.py:241: in request
    request = super().request(**kwargs)
.venv/lib/python3.13/site-packages/django/test/client.py:1087: in request
    self.check_exception(response)
.venv/lib/python3.13/site-packages/django/test/client.py:802: in check_exception
    raise exc_value
.venv/lib/python3.13/site-packages/django/core/handlers/exception.py:55: in inner
    response = get_response(request)
.venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/middleware.py:174: in __call__
    return f(*args, **kwargs)
src/sentry/middleware/integrations/integration_control.py:58: in __call__
    return _cls.get_response(request)
src/sentry/middleware/integrations/classifications.py:140: in get_response
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:123: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:98: in try_forward_to_codecov
    "organizations:codecov-webhooks-forwarding-disabled", self.request.organization
E   AttributeError: 'WSGIRequest' object has no attribute 'organization'
tests/sentry/integrations/github/test_webhooks.py::InstallationDeleteEventWebhookTest::test_installation_deleted_skips_codecov_unlink_when_app_ids_dont_matchlog
tests/sentry/integrations/github/test_webhooks.py:316: in test_installation_deleted_skips_codecov_unlink_when_app_ids_dont_match
    response = self.client.post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:299: in post
    response = super().post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:213: in post
    return self.generic('POST', path, data, content_type, **extra)
.venv/lib/python3.13/site-packages/rest_framework/test.py:237: in generic
    return super().generic(
.venv/lib/python3.13/site-packages/django/test/client.py:671: in generic
    return self.request(**r)
.venv/lib/python3.13/site-packages/rest_framework/test.py:289: in request
    return super().request(**kwargs)
.venv/lib/python3.13/site-packages/rest_framework/test.py:241: in request
    request = super().request(**kwargs)
.venv/lib/python3.13/site-packages/django/test/client.py:1087: in request
    self.check_exception(response)
.venv/lib/python3.13/site-packages/django/test/client.py:802: in check_exception
    raise exc_value
.venv/lib/python3.13/site-packages/django/core/handlers/exception.py:55: in inner
    response = get_response(request)
.venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/middleware.py:174: in __call__
    return f(*args, **kwargs)
src/sentry/middleware/integrations/integration_control.py:58: in __call__
    return _cls.get_response(request)
src/sentry/middleware/integrations/classifications.py:140: in get_response
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:123: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:98: in try_forward_to_codecov
    "organizations:codecov-webhooks-forwarding-disabled", self.request.organization
E   AttributeError: 'WSGIRequest' object has no attribute 'organization'
tests/sentry/integrations/middleware/hybrid_cloud/test_base.py::BaseRequestParserTest::test_forward_to_codecovlog
tests/sentry/integrations/middleware/hybrid_cloud/test_base.py:142: in test_forward_to_codecov
    parser.forward_to_codecov(external_id="1")
src/sentry/integrations/middleware/hybrid_cloud/parser.py:391: in forward_to_codecov
    "organizations:codecov-webhooks-forwarding-disabled", self.request.organization
E   AttributeError: 'WSGIRequest' object has no attribute 'organization'
tests/sentry/middleware/integrations/parsers/test_github.py::GithubRequestParserTest::test_installation_deleted_routinglog
tests/sentry/middleware/integrations/parsers/test_github.py:261: in test_installation_deleted_routing
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:123: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:98: in try_forward_to_codecov
    "organizations:codecov-webhooks-forwarding-disabled", self.request.organization
E   AttributeError: 'WSGIRequest' object has no attribute 'organization'
tests/sentry/middleware/integrations/parsers/test_github.py::GithubRequestParserTest::test_webhook_for_codecovlog
tests/sentry/middleware/integrations/parsers/test_github.py:179: in test_webhook_for_codecov
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:145: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:98: in try_forward_to_codecov
    "organizations:codecov-webhooks-forwarding-disabled", self.request.organization
E   AttributeError: 'WSGIRequest' object has no attribute 'organization'
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py::DrainMailboxTest::test_drain_codecov_filtered_getsentry_ownerlog
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py:423: in test_drain_codecov_filtered_getsentry_owner
    drain_mailbox(records[0].id)
src/sentry/silo/base.py:158: in override
    return original_method(*args, **kwargs)
src/sentry/taskworker/task.py:89: in __call__
    return self._func(*args, **kwargs)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:317: in drain_mailbox
    deliver_message(record)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:555: in deliver_message
    perform_request(payload)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:574: in perform_request
    "organizations:codecov-webhooks-forwarding-disabled", payload.organization
E   AttributeError: 'WebhookPayload' object has no attribute 'organization'
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py::DrainMailboxTest::test_drain_codecov_not_filtered_other_ownerlog
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py:445: in test_drain_codecov_not_filtered_other_owner
    drain_mailbox(records[0].id)
src/sentry/silo/base.py:158: in override
    return original_method(*args, **kwargs)
src/sentry/taskworker/task.py:89: in __call__
    return self._func(*args, **kwargs)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:317: in drain_mailbox
    deliver_message(record)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:555: in deliver_message
    perform_request(payload)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:574: in perform_request
    "organizations:codecov-webhooks-forwarding-disabled", payload.organization
E   AttributeError: 'WebhookPayload' object has no attribute 'organization'
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py::DrainMailboxTest::test_drain_success_codecovlog
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py:367: in test_drain_success_codecov
    drain_mailbox(records[0].id)
src/sentry/silo/base.py:158: in override
    return original_method(*args, **kwargs)
src/sentry/taskworker/task.py:89: in __call__
    return self._func(*args, **kwargs)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:317: in drain_mailbox
    deliver_message(record)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:555: in deliver_message
    perform_request(payload)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:574: in perform_request
    "organizations:codecov-webhooks-forwarding-disabled", payload.organization
E   AttributeError: 'WebhookPayload' object has no attribute 'organization'
tests/sentry/integrations/github/test_integration.py::GitHubIntegrationTest::test_github_user_mismatchlog
tests/sentry/integrations/github/test_integration.py:561: in test_github_user_mismatch
    resp = self.client.post(
.venv/lib/python3.13/site-packages/django/test/client.py:1153: in post
    response = super().post(
.venv/lib/python3.13/site-packages/django/test/client.py:499: in post
    return self.generic(
.venv/lib/python3.13/site-packages/django/test/client.py:671: in generic
    return self.request(**r)
.venv/lib/python3.13/site-packages/django/test/client.py:1087: in request
    self.check_exception(response)
.venv/lib/python3.13/site-packages/django/test/client.py:802: in check_exception
    raise exc_value
.venv/lib/python3.13/site-packages/django/core/handlers/exception.py:55: in inner
    response = get_response(request)
.venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/middleware.py:174: in __call__
    return f(*args, **kwargs)
src/sentry/middleware/integrations/integration_control.py:58: in __call__
    return _cls.get_response(request)
src/sentry/middleware/integrations/classifications.py:140: in get_response
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:123: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:98: in try_forward_to_codecov
    "organizations:codecov-webhooks-forwarding-disabled", self.request.organization
E   AttributeError: 'WSGIRequest' object has no attribute 'organization'
tests/sentry/integrations/github/test_webhooks.py::InstallationEventWebhookTest::test_installation_createdlog
tests/sentry/integrations/github/test_webhooks.py:110: in test_installation_created
    response = self.client.post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:299: in post
    response = super().post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:213: in post
    return self.generic('POST', path, data, content_type, **extra)
.venv/lib/python3.13/site-packages/rest_framework/test.py:237: in generic
    return super().generic(
.venv/lib/python3.13/site-packages/django/test/client.py:671: in generic
    return self.request(**r)
.venv/lib/python3.13/site-packages/rest_framework/test.py:289: in request
    return super().request(**kwargs)
.venv/lib/python3.13/site-packages/rest_framework/test.py:241: in request
    request = super().request(**kwargs)
.venv/lib/python3.13/site-packages/django/test/client.py:1087: in request
    self.check_exception(response)
.venv/lib/python3.13/site-packages/django/test/client.py:802: in check_exception
    raise exc_value
.venv/lib/python3.13/site-packages/django/core/handlers/exception.py:55: in inner
    response = get_response(request)
.venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/middleware.py:174: in __call__
    return f(*args, **kwargs)
src/sentry/middleware/integrations/integration_control.py:58: in __call__
    return _cls.get_response(request)
src/sentry/middleware/integrations/classifications.py:140: in get_response
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:123: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:98: in try_forward_to_codecov
    "organizations:codecov-webhooks-forwarding-disabled", self.request.organization
E   AttributeError: 'WSGIRequest' object has no attribute 'organization'
tests/sentry/integrations/github/test_webhooks.py::InstallationEventWebhookTest::test_installation_error_metriclog
tests/sentry/integrations/github/test_webhooks.py:148: in test_installation_error_metric
    response = self.client.post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:299: in post
    response = super().post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:213: in post
    return self.generic('POST', path, data, content_type, **extra)
.venv/lib/python3.13/site-packages/rest_framework/test.py:237: in generic
    return super().generic(
.venv/lib/python3.13/site-packages/django/test/client.py:671: in generic
    return self.request(**r)
.venv/lib/python3.13/site-packages/rest_framework/test.py:289: in request
    return super().request(**kwargs)
.venv/lib/python3.13/site-packages/rest_framework/test.py:241: in request
    request = super().request(**kwargs)
.venv/lib/python3.13/site-packages/django/test/client.py:1087: in request
    self.check_exception(response)
.venv/lib/python3.13/site-packages/django/test/client.py:802: in check_exception
    raise exc_value
.venv/lib/python3.13/site-packages/django/core/handlers/exception.py:55: in inner
    response = get_response(request)
.venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/middleware.py:174: in __call__
    return f(*args, **kwargs)
src/sentry/middleware/integrations/integration_control.py:58: in __call__
    return _cls.get_response(request)
src/sentry/middleware/integrations/classifications.py:140: in get_response
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:123: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:98: in try_forward_to_codecov
    "organizations:codecov-webhooks-forwarding-disabled", self.request.organization
E   AttributeError: 'WSGIRequest' object has no attribute 'organization'
tests/sentry/integrations/github/test_webhooks.py::InstallationDeleteEventWebhookTest::test_installation_deleted_triggers_codecov_unlink_when_app_ids_matchlog
tests/sentry/integrations/github/test_webhooks.py:272: in test_installation_deleted_triggers_codecov_unlink_when_app_ids_match
    response = self.client.post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:299: in post
    response = super().post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:213: in post
    return self.generic('POST', path, data, content_type, **extra)
.venv/lib/python3.13/site-packages/rest_framework/test.py:237: in generic
    return super().generic(
.venv/lib/python3.13/site-packages/django/test/client.py:671: in generic
    return self.request(**r)
.venv/lib/python3.13/site-packages/rest_framework/test.py:289: in request
    return super().request(**kwargs)
.venv/lib/python3.13/site-packages/rest_framework/test.py:241: in request
    request = super().request(**kwargs)
.venv/lib/python3.13/site-packages/django/test/client.py:1087: in request
    self.check_exception(response)
.venv/lib/python3.13/site-packages/django/test/client.py:802: in check_exception
    raise exc_value
.venv/lib/python3.13/site-packages/django/core/handlers/exception.py:55: in inner
    response = get_response(request)
.venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/middleware.py:174: in __call__
    return f(*args, **kwargs)
src/sentry/middleware/integrations/integration_control.py:58: in __call__
    return _cls.get_response(request)
src/sentry/middleware/integrations/classifications.py:140: in get_response
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:123: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:98: in try_forward_to_codecov
    "organizations:codecov-webhooks-forwarding-disabled", self.request.organization
E   AttributeError: 'WSGIRequest' object has no attribute 'organization'
tests/sentry/middleware/integrations/parsers/test_github.py::GithubRequestParserTest::test_installation_created_routinglog
tests/sentry/middleware/integrations/parsers/test_github.py:245: in test_installation_created_routing
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:123: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:98: in try_forward_to_codecov
    "organizations:codecov-webhooks-forwarding-disabled", self.request.organization
E   AttributeError: 'WSGIRequest' object has no attribute 'organization'
tests/sentry/middleware/integrations/parsers/test_github.py::GithubRequestParserTypeRoutingTest::test_installation_created_routinglog
tests/sentry/middleware/integrations/parsers/test_github.py:245: in test_installation_created_routing
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:123: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:98: in try_forward_to_codecov
    "organizations:codecov-webhooks-forwarding-disabled", self.request.organization
E   AttributeError: 'WSGIRequest' object has no attribute 'organization'
tests/sentry/middleware/integrations/parsers/test_github.py::GithubRequestParserTypeRoutingTest::test_installation_deleted_routinglog
tests/sentry/middleware/integrations/parsers/test_github.py:261: in test_installation_deleted_routing
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:123: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:98: in try_forward_to_codecov
    "organizations:codecov-webhooks-forwarding-disabled", self.request.organization
E   AttributeError: 'WSGIRequest' object has no attribute 'organization'
tests/sentry/middleware/integrations/parsers/test_github.py::GithubRequestParserTypeRoutingTest::test_webhook_for_codecovlog
tests/sentry/middleware/integrations/parsers/test_github.py:179: in test_webhook_for_codecov
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:145: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:98: in try_forward_to_codecov
    "organizations:codecov-webhooks-forwarding-disabled", self.request.organization
E   AttributeError: 'WSGIRequest' object has no attribute 'organization'
tests/sentry/middleware/integrations/parsers/test_github_enterprise.py::GithubEnterpriseRequestParserTest::test_installation_hook_handled_in_controllog
tests/sentry/middleware/integrations/parsers/test_github_enterprise.py:132: in test_installation_hook_handled_in_control
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:123: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:98: in try_forward_to_codecov
    "organizations:codecov-webhooks-forwarding-disabled", self.request.organization
E   AttributeError: 'WSGIRequest' object has no attribute 'organization'

@github-actions
Copy link
Contributor

github-actions bot commented Mar 7, 2026

Backend Test Failures

Failures on 158fafe in this run:

tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py::DrainMailboxTest::test_drain_codecov_filtered_getsentry_ownerlog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py:423: in test_drain_codecov_filtered_getsentry_owner
    drain_mailbox(records[0].id)
src/sentry/silo/base.py:158: in override
    return original_method(*args, **kwargs)
src/sentry/taskworker/task.py:89: in __call__
    return self._func(*args, **kwargs)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:317: in drain_mailbox
    deliver_message(record)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:555: in deliver_message
    perform_request(payload)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:573: in perform_request
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py::DrainMailboxTest::test_drain_codecov_not_filtered_other_ownerlog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py:445: in test_drain_codecov_not_filtered_other_owner
    drain_mailbox(records[0].id)
src/sentry/silo/base.py:158: in override
    return original_method(*args, **kwargs)
src/sentry/taskworker/task.py:89: in __call__
    return self._func(*args, **kwargs)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:317: in drain_mailbox
    deliver_message(record)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:555: in deliver_message
    perform_request(payload)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:573: in perform_request
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/testutils/helpers/options.py:34: in new_lookup
    return original_lookup(self, key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py::DrainMailboxTest::test_drain_success_codecovlog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py:367: in test_drain_success_codecov
    drain_mailbox(records[0].id)
src/sentry/silo/base.py:158: in override
    return original_method(*args, **kwargs)
src/sentry/taskworker/task.py:89: in __call__
    return self._func(*args, **kwargs)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:317: in drain_mailbox
    deliver_message(record)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:555: in deliver_message
    perform_request(payload)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:573: in perform_request
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/testutils/helpers/options.py:34: in new_lookup
    return original_lookup(self, key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/integrations/github/test_integration.py::GitHubIntegrationTest::test_github_user_mismatchlog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/integrations/github/test_integration.py:561: in test_github_user_mismatch
    resp = self.client.post(
.venv/lib/python3.13/site-packages/django/test/client.py:1153: in post
    response = super().post(
.venv/lib/python3.13/site-packages/django/test/client.py:499: in post
    return self.generic(
.venv/lib/python3.13/site-packages/django/test/client.py:671: in generic
    return self.request(**r)
.venv/lib/python3.13/site-packages/django/test/client.py:1087: in request
    self.check_exception(response)
.venv/lib/python3.13/site-packages/django/test/client.py:802: in check_exception
    raise exc_value
.venv/lib/python3.13/site-packages/django/core/handlers/exception.py:55: in inner
    response = get_response(request)
.venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/middleware.py:174: in __call__
    return f(*args, **kwargs)
src/sentry/middleware/integrations/integration_control.py:58: in __call__
    return _cls.get_response(request)
src/sentry/middleware/integrations/classifications.py:140: in get_response
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:120: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:96: in try_forward_to_codecov
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/testutils/helpers/options.py:34: in new_lookup
    return original_lookup(self, key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/integrations/github/test_webhooks.py::InstallationEventWebhookTest::test_installation_createdlog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/integrations/github/test_webhooks.py:110: in test_installation_created
    response = self.client.post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:299: in post
    response = super().post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:213: in post
    return self.generic('POST', path, data, content_type, **extra)
.venv/lib/python3.13/site-packages/rest_framework/test.py:237: in generic
    return super().generic(
.venv/lib/python3.13/site-packages/django/test/client.py:671: in generic
    return self.request(**r)
.venv/lib/python3.13/site-packages/rest_framework/test.py:289: in request
    return super().request(**kwargs)
.venv/lib/python3.13/site-packages/rest_framework/test.py:241: in request
    request = super().request(**kwargs)
.venv/lib/python3.13/site-packages/django/test/client.py:1087: in request
    self.check_exception(response)
.venv/lib/python3.13/site-packages/django/test/client.py:802: in check_exception
    raise exc_value
.venv/lib/python3.13/site-packages/django/core/handlers/exception.py:55: in inner
    response = get_response(request)
.venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/middleware.py:174: in __call__
    return f(*args, **kwargs)
src/sentry/middleware/integrations/integration_control.py:58: in __call__
    return _cls.get_response(request)
src/sentry/middleware/integrations/classifications.py:140: in get_response
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:120: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:96: in try_forward_to_codecov
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/integrations/github/test_webhooks.py::InstallationEventWebhookTest::test_installation_error_metriclog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/integrations/github/test_webhooks.py:148: in test_installation_error_metric
    response = self.client.post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:299: in post
    response = super().post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:213: in post
    return self.generic('POST', path, data, content_type, **extra)
.venv/lib/python3.13/site-packages/rest_framework/test.py:237: in generic
    return super().generic(
.venv/lib/python3.13/site-packages/django/test/client.py:671: in generic
    return self.request(**r)
.venv/lib/python3.13/site-packages/rest_framework/test.py:289: in request
    return super().request(**kwargs)
.venv/lib/python3.13/site-packages/rest_framework/test.py:241: in request
    request = super().request(**kwargs)
.venv/lib/python3.13/site-packages/django/test/client.py:1087: in request
    self.check_exception(response)
.venv/lib/python3.13/site-packages/django/test/client.py:802: in check_exception
    raise exc_value
.venv/lib/python3.13/site-packages/django/core/handlers/exception.py:55: in inner
    response = get_response(request)
.venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/middleware.py:174: in __call__
    return f(*args, **kwargs)
src/sentry/middleware/integrations/integration_control.py:58: in __call__
    return _cls.get_response(request)
src/sentry/middleware/integrations/classifications.py:140: in get_response
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:120: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:96: in try_forward_to_codecov
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/integrations/github/test_webhooks.py::InstallationDeleteEventWebhookTest::test_installation_deleted_triggers_codecov_unlink_when_app_ids_matchlog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/integrations/github/test_webhooks.py:272: in test_installation_deleted_triggers_codecov_unlink_when_app_ids_match
    response = self.client.post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:299: in post
    response = super().post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:213: in post
    return self.generic('POST', path, data, content_type, **extra)
.venv/lib/python3.13/site-packages/rest_framework/test.py:237: in generic
    return super().generic(
.venv/lib/python3.13/site-packages/django/test/client.py:671: in generic
    return self.request(**r)
.venv/lib/python3.13/site-packages/rest_framework/test.py:289: in request
    return super().request(**kwargs)
.venv/lib/python3.13/site-packages/rest_framework/test.py:241: in request
    request = super().request(**kwargs)
.venv/lib/python3.13/site-packages/django/test/client.py:1087: in request
    self.check_exception(response)
.venv/lib/python3.13/site-packages/django/test/client.py:802: in check_exception
    raise exc_value
.venv/lib/python3.13/site-packages/django/core/handlers/exception.py:55: in inner
    response = get_response(request)
.venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/middleware.py:174: in __call__
    return f(*args, **kwargs)
src/sentry/middleware/integrations/integration_control.py:58: in __call__
    return _cls.get_response(request)
src/sentry/middleware/integrations/classifications.py:140: in get_response
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:120: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:96: in try_forward_to_codecov
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/testutils/helpers/options.py:34: in new_lookup
    return original_lookup(self, key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/middleware/integrations/parsers/test_github.py::GithubRequestParserTest::test_installation_created_routinglog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/middleware/integrations/parsers/test_github.py:245: in test_installation_created_routing
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:120: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:96: in try_forward_to_codecov
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/middleware/integrations/parsers/test_github.py::GithubRequestParserTypeRoutingTest::test_installation_created_routinglog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/middleware/integrations/parsers/test_github.py:245: in test_installation_created_routing
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:120: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:96: in try_forward_to_codecov
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/testutils/helpers/options.py:34: in new_lookup
    return original_lookup(self, key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/middleware/integrations/parsers/test_github.py::GithubRequestParserTypeRoutingTest::test_installation_deleted_routinglog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/middleware/integrations/parsers/test_github.py:261: in test_installation_deleted_routing
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:120: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:96: in try_forward_to_codecov
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/testutils/helpers/options.py:34: in new_lookup
    return original_lookup(self, key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/middleware/integrations/parsers/test_github.py::GithubRequestParserTypeRoutingTest::test_webhook_for_codecovlog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/middleware/integrations/parsers/test_github.py:179: in test_webhook_for_codecov
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:142: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:96: in try_forward_to_codecov
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/testutils/helpers/options.py:34: in new_lookup
    return original_lookup(self, key)
src/sentry/testutils/helpers/options.py:34: in new_lookup
    return original_lookup(self, key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/middleware/integrations/parsers/test_github_enterprise.py::GithubEnterpriseRequestParserTest::test_installation_hook_handled_in_controllog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/middleware/integrations/parsers/test_github_enterprise.py:132: in test_installation_hook_handled_in_control
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:120: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:96: in try_forward_to_codecov
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py::DrainMailboxTest::test_drain_codecov_configuration_errorlog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py:386: in test_drain_codecov_configuration_error
    drain_mailbox(records[0].id)
src/sentry/silo/base.py:158: in override
    return original_method(*args, **kwargs)
src/sentry/taskworker/task.py:89: in __call__
    return self._func(*args, **kwargs)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:317: in drain_mailbox
    deliver_message(record)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:555: in deliver_message
    perform_request(payload)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:573: in perform_request
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py::DrainMailboxTest::test_drain_codecov_not_filtered_malformed_bodylog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py:467: in test_drain_codecov_not_filtered_malformed_body
    drain_mailbox(records[0].id)
src/sentry/silo/base.py:158: in override
    return original_method(*args, **kwargs)
src/sentry/taskworker/task.py:89: in __call__
    return self._func(*args, **kwargs)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:317: in drain_mailbox
    deliver_message(record)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:555: in deliver_message
    perform_request(payload)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:573: in perform_request
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/testutils/helpers/options.py:34: in new_lookup
    return original_lookup(self, key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py::DrainMailboxTest::test_drain_codecov_request_errorlog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py:408: in test_drain_codecov_request_error
    drain_mailbox(records[0].id)
src/sentry/silo/base.py:158: in override
    return original_method(*args, **kwargs)
src/sentry/taskworker/task.py:89: in __call__
    return self._func(*args, **kwargs)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:317: in drain_mailbox
    deliver_message(record)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:555: in deliver_message
    perform_request(payload)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:573: in perform_request
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/testutils/helpers/options.py:34: in new_lookup
    return original_lookup(self, key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py::DeliveryTimeMetricsTest::test_delivery_time_metrics_codecov_region_sent_tolog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/hybridcloud/tasks/test_deliver_webhooks.py:1022: in test_delivery_time_metrics_codecov_region_sent_to
    drain_mailbox(records[0].id)
src/sentry/silo/base.py:158: in override
    return original_method(*args, **kwargs)
src/sentry/taskworker/task.py:89: in __call__
    return self._func(*args, **kwargs)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:317: in drain_mailbox
    deliver_message(record)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:555: in deliver_message
    perform_request(payload)
src/sentry/hybridcloud/tasks/deliver_webhooks.py:573: in perform_request
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/testutils/helpers/options.py:34: in new_lookup
    return original_lookup(self, key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/integrations/github/test_installation.py::InstallationEndpointTest::test_installation_endpointlog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/integrations/github/test_installation.py:37: in test_installation_endpoint
    response = self.client.post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:299: in post
    response = super().post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:213: in post
    return self.generic('POST', path, data, content_type, **extra)
.venv/lib/python3.13/site-packages/rest_framework/test.py:237: in generic
    return super().generic(
.venv/lib/python3.13/site-packages/django/test/client.py:671: in generic
    return self.request(**r)
.venv/lib/python3.13/site-packages/rest_framework/test.py:289: in request
    return super().request(**kwargs)
.venv/lib/python3.13/site-packages/rest_framework/test.py:241: in request
    request = super().request(**kwargs)
.venv/lib/python3.13/site-packages/django/test/client.py:1087: in request
    self.check_exception(response)
.venv/lib/python3.13/site-packages/django/test/client.py:802: in check_exception
    raise exc_value
.venv/lib/python3.13/site-packages/django/core/handlers/exception.py:55: in inner
    response = get_response(request)
.venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/middleware.py:174: in __call__
    return f(*args, **kwargs)
src/sentry/middleware/integrations/integration_control.py:58: in __call__
    return _cls.get_response(request)
src/sentry/middleware/integrations/classifications.py:140: in get_response
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:120: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:96: in try_forward_to_codecov
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/integrations/github/test_webhooks.py::InstallationDeleteEventWebhookTest::test_installation_deletedlog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/integrations/github/test_webhooks.py:191: in test_installation_deleted
    response = self.client.post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:299: in post
    response = super().post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:213: in post
    return self.generic('POST', path, data, content_type, **extra)
.venv/lib/python3.13/site-packages/rest_framework/test.py:237: in generic
    return super().generic(
.venv/lib/python3.13/site-packages/django/test/client.py:671: in generic
    return self.request(**r)
.venv/lib/python3.13/site-packages/rest_framework/test.py:289: in request
    return super().request(**kwargs)
.venv/lib/python3.13/site-packages/rest_framework/test.py:241: in request
    request = super().request(**kwargs)
.venv/lib/python3.13/site-packages/django/test/client.py:1087: in request
    self.check_exception(response)
.venv/lib/python3.13/site-packages/django/test/client.py:802: in check_exception
    raise exc_value
.venv/lib/python3.13/site-packages/django/core/handlers/exception.py:55: in inner
    response = get_response(request)
.venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/middleware.py:174: in __call__
    return f(*args, **kwargs)
src/sentry/middleware/integrations/integration_control.py:58: in __call__
    return _cls.get_response(request)
src/sentry/middleware/integrations/classifications.py:140: in get_response
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:120: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:96: in try_forward_to_codecov
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/integrations/github/test_webhooks.py::InstallationDeleteEventWebhookTest::test_installation_deleted_no_org_integrationlog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/integrations/github/test_webhooks.py:230: in test_installation_deleted_no_org_integration
    response = self.client.post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:299: in post
    response = super().post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:213: in post
    return self.generic('POST', path, data, content_type, **extra)
.venv/lib/python3.13/site-packages/rest_framework/test.py:237: in generic
    return super().generic(
.venv/lib/python3.13/site-packages/django/test/client.py:671: in generic
    return self.request(**r)
.venv/lib/python3.13/site-packages/rest_framework/test.py:289: in request
    return super().request(**kwargs)
.venv/lib/python3.13/site-packages/rest_framework/test.py:241: in request
    request = super().request(**kwargs)
.venv/lib/python3.13/site-packages/django/test/client.py:1087: in request
    self.check_exception(response)
.venv/lib/python3.13/site-packages/django/test/client.py:802: in check_exception
    raise exc_value
.venv/lib/python3.13/site-packages/django/core/handlers/exception.py:55: in inner
    response = get_response(request)
.venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/middleware.py:174: in __call__
    return f(*args, **kwargs)
src/sentry/middleware/integrations/integration_control.py:58: in __call__
    return _cls.get_response(request)
src/sentry/middleware/integrations/classifications.py:140: in get_response
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:120: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:96: in try_forward_to_codecov
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/integrations/github/test_webhooks.py::InstallationDeleteEventWebhookTest::test_installation_deleted_skips_codecov_unlink_when_app_ids_dont_matchlog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/integrations/github/test_webhooks.py:316: in test_installation_deleted_skips_codecov_unlink_when_app_ids_dont_match
    response = self.client.post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:299: in post
    response = super().post(
.venv/lib/python3.13/site-packages/rest_framework/test.py:213: in post
    return self.generic('POST', path, data, content_type, **extra)
.venv/lib/python3.13/site-packages/rest_framework/test.py:237: in generic
    return super().generic(
.venv/lib/python3.13/site-packages/django/test/client.py:671: in generic
    return self.request(**r)
.venv/lib/python3.13/site-packages/rest_framework/test.py:289: in request
    return super().request(**kwargs)
.venv/lib/python3.13/site-packages/rest_framework/test.py:241: in request
    request = super().request(**kwargs)
.venv/lib/python3.13/site-packages/django/test/client.py:1087: in request
    self.check_exception(response)
.venv/lib/python3.13/site-packages/django/test/client.py:802: in check_exception
    raise exc_value
.venv/lib/python3.13/site-packages/django/core/handlers/exception.py:55: in inner
    response = get_response(request)
.venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/middleware.py:174: in __call__
    return f(*args, **kwargs)
src/sentry/middleware/integrations/integration_control.py:58: in __call__
    return _cls.get_response(request)
src/sentry/middleware/integrations/classifications.py:140: in get_response
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:120: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:96: in try_forward_to_codecov
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/testutils/helpers/options.py:34: in new_lookup
    return original_lookup(self, key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/integrations/middleware/hybrid_cloud/test_base.py::BaseRequestParserTest::test_forward_to_codecovlog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/integrations/middleware/hybrid_cloud/test_base.py:142: in test_forward_to_codecov
    parser.forward_to_codecov(external_id="1")
src/sentry/integrations/middleware/hybrid_cloud/parser.py:389: in forward_to_codecov
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/testutils/helpers/options.py:34: in new_lookup
    return original_lookup(self, key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/middleware/integrations/parsers/test_github.py::GithubRequestParserTest::test_installation_deleted_routinglog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/middleware/integrations/parsers/test_github.py:261: in test_installation_deleted_routing
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:120: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:96: in try_forward_to_codecov
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'
tests/sentry/middleware/integrations/parsers/test_github.py::GithubRequestParserTest::test_webhook_for_codecovlog
src/sentry/options/manager.py:223: in lookup_key
    return self.registry[key]
E   KeyError: 'codecov.forward-webhooks.disabled'

During handling of the above exception, another exception occurred:
tests/sentry/middleware/integrations/parsers/test_github.py:179: in test_webhook_for_codecov
    response = parser.get_response()
src/sentry/middleware/integrations/parsers/github.py:142: in get_response
    self.try_forward_to_codecov(event=event)
src/sentry/middleware/integrations/parsers/github.py:96: in try_forward_to_codecov
    if options.get("codecov.forward-webhooks.disabled"):
src/sentry/options/manager.py:295: in get
    opt = self.lookup_key(key)
src/sentry/testutils/helpers/options.py:34: in new_lookup
    return original_lookup(self, key)
src/sentry/options/manager.py:233: in lookup_key
    raise UnknownOption(key)
E   sentry.options.manager.UnknownOption: 'codecov.forward-webhooks.disabled'

Copy link
Contributor

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

"""

if options.get("codecov.forward-webhooks.disabled"):
return True
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same flag checked redundantly across call chain

Low Severity

The codecov.forward-webhooks.disabled option is checked at five locations across only two call chains. In the delivery path, perform_requestperform_codecov_request_should_skip_codecov_forward_for_github_owner all check the same flag. In the parser path, try_forward_to_codecovforward_to_codecov both check it. The check in _should_skip_codecov_forward_for_github_owner is especially misplaced since the function is semantically about owner-based filtering, not global disable. This redundancy increases maintenance burden — if the option key changes, five locations need updating.

Additional Locations (2)

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Backend Automatically applied to PRs that change backend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant