Просмотр исходного кода

feat(codecov-v2): GA V2 features for codecov integration (#46420)

GA the CTA and V2 improvements for codecov stacktrace integration.
Frontend PR https://github.com/getsentry/sentry/pull/46421
Snigdha Sharma 1 год назад
Родитель
Сommit
ccf00f6525

+ 2 - 4
src/sentry/api/endpoints/organization_details.py

@@ -9,7 +9,7 @@ from pytz import UTC
 from rest_framework import serializers, status
 
 from bitfield.types import BitHandler
-from sentry import audit_log, features, roles
+from sentry import audit_log, roles
 from sentry.api.base import ONE_DAY, region_silo_endpoint
 from sentry.api.bases.organization import OrganizationEndpoint
 from sentry.api.decorators import sudo_required
@@ -495,9 +495,7 @@ class OrganizationDetailsEndpoint(OrganizationEndpoint):
         was_pending_deletion = organization.status in DELETION_STATUSES
 
         enabling_codecov = "codecovAccess" in request.data and request.data["codecovAccess"]
-        if enabling_codecov and features.has(
-            "organizations:codecov-stacktrace-integration-v2", organization
-        ):
+        if enabling_codecov:
             has_integration, error = has_codecov_integration(organization)
             if not has_integration:
                 return self.respond(

+ 0 - 2
src/sentry/conf/server.py

@@ -1031,8 +1031,6 @@ SENTRY_FEATURES = {
     "organizations:artifact-bundles": False,
     # Enables tagging javascript errors from the browser console.
     "organizations:javascript-console-error-tag": False,
-    # Enables V2 for codecov integration for stacktrace highlighting.
-    "organizations:codecov-stacktrace-integration-v2": False,
     # Enables the cron job to auto-enable codecov integrations.
     "organizations:auto-enable-codecov": False,
     # The overall flag for codecov integration, gated by plans.

+ 1 - 2
src/sentry/features/__init__.py

@@ -65,6 +65,7 @@ default_manager.add("organizations:javascript-console-error-tag", OrganizationFe
 default_manager.add("organizations:alert-crash-free-metrics", OrganizationFeature, FeatureHandlerStrategy.REMOTE)
 default_manager.add("organizations:alert-filters", OrganizationFeature, FeatureHandlerStrategy.INTERNAL)
 default_manager.add("organizations:api-keys", OrganizationFeature, FeatureHandlerStrategy.INTERNAL)
+default_manager.add("organizations:auto-enable-codecov", OrganizationFeature, FeatureHandlerStrategy.INTERNAL)
 default_manager.add("organizations:crash-rate-alerts", OrganizationFeature, FeatureHandlerStrategy.INTERNAL)
 default_manager.add("organizations:custom-event-title", OrganizationFeature, FeatureHandlerStrategy.INTERNAL)
 default_manager.add("organizations:customer-domains", OrganizationFeature, FeatureHandlerStrategy.REMOTE)
@@ -234,9 +235,7 @@ default_manager.add("organizations:source-maps-cta", OrganizationFeature, Featur
 default_manager.add("organizations:source-maps-debug-ids", OrganizationFeature, FeatureHandlerStrategy.REMOTE)
 default_manager.add("organizations:team-insights", OrganizationFeature, FeatureHandlerStrategy.INTERNAL)
 default_manager.add("organizations:derive-code-mappings", OrganizationFeature, FeatureHandlerStrategy.INTERNAL)
-default_manager.add("organizations:codecov-stacktrace-integration-v2", OrganizationFeature, FeatureHandlerStrategy.REMOTE)
 default_manager.add("organizations:codecov-integration", OrganizationFeature, FeatureHandlerStrategy.INTERNAL)
-default_manager.add("organizations:auto-enable-codecov", OrganizationFeature, FeatureHandlerStrategy.INTERNAL)
 default_manager.add("organizations:codecov-commit-sha-from-git-blame", OrganizationFeature, FeatureHandlerStrategy.REMOTE)
 default_manager.add("organizations:artifact-bundles", OrganizationFeature, FeatureHandlerStrategy.REMOTE)
 

+ 0 - 3
tests/sentry/api/endpoints/test_organization_details.py

@@ -31,7 +31,6 @@ from sentry.models.organizationmapping import OrganizationMapping
 from sentry.signals import project_created
 from sentry.silo import SiloMode
 from sentry.testutils import APITestCase, TwoFactorAPITestCase, pytest
-from sentry.testutils.helpers import with_feature
 from sentry.testutils.silo import exempt_from_silo_limits, region_silo_test
 from sentry.utils import json
 
@@ -300,7 +299,6 @@ class OrganizationUpdateTest(OrganizationDetailsTestBase):
         "sentry.integrations.github.GitHubAppsClient.get_repositories",
         return_value=[{"name": "cool-repo", "full_name": "testgit/cool-repo"}],
     )
-    @with_feature("organizations:codecov-stacktrace-integration-v2")
     def test_various_options(self, mock_get_repositories):
         initial = self.organization.get_audit_log_data()
         AuditLogEntry.objects.filter(organization_id=self.organization.id).delete()
@@ -386,7 +384,6 @@ class OrganizationUpdateTest(OrganizationDetailsTestBase):
         assert "to {}".format(data["eventsMemberAdmin"]) in log.data["eventsMemberAdmin"]
         assert "to {}".format(data["alertsMemberWrite"]) in log.data["alertsMemberWrite"]
 
-    @with_feature("organizations:codecov-stacktrace-integration-v2")
     @responses.activate
     @patch(
         "sentry.integrations.github.GitHubAppsClient.get_repositories",

+ 0 - 3
tests/sentry/integrations/utils/test_codecov.py

@@ -12,7 +12,6 @@ from sentry.integrations.utils.codecov import (
 )
 from sentry.models.integrations.integration import Integration
 from sentry.testutils.cases import APITestCase
-from sentry.testutils.helpers.features import with_feature
 
 
 class TestCodecovIntegration(APITestCase):
@@ -64,7 +63,6 @@ class TestCodecovIntegration(APITestCase):
         assert has_integration
 
     @responses.activate
-    @with_feature("organizations:codecov-stacktrace-integration-v2")
     def test_get_codecov_report(self):
         expected_line_coverage = [[1, 1], [2, 1], [3, 1], [4, 1], [5, 1]]
         expected_codecov_url = "https://app.codecov.io/gh/testgit/abc/commit/0f1e2d/path/to/file.py"
@@ -88,7 +86,6 @@ class TestCodecovIntegration(APITestCase):
         assert url == expected_codecov_url
 
     @responses.activate
-    @with_feature("organizations:codecov-stacktrace-integration-v2")
     def test_get_codecov_report_error(self):
         responses.add(
             responses.GET,