Skip to content

Commit

Permalink
ref(sentry_apps): Move SentryAppInstallation model to sentry_apps (#7…
Browse files Browse the repository at this point in the history
  • Loading branch information
Christinarlong authored Sep 18, 2024
1 parent 9b4b3b8 commit 652f6c0
Show file tree
Hide file tree
Showing 63 changed files with 68 additions and 121 deletions.
1 change: 0 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,6 @@ module = [
"sentry.middleware.auth",
"sentry.middleware.ratelimit",
"sentry.middleware.superuser",
"sentry.models.integrations.sentry_app_installation",
"sentry.models.organizationaccessrequest",
"sentry.monitors.consumers.monitor_consumer",
"sentry.monitors.endpoints.base",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@
from sentry.api.serializers import serialize
from sentry.coreapi import APIError
from sentry.models.integrations.sentry_app_component import SentryAppComponent
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.organizations.services.organization.model import (
RpcOrganization,
RpcUserOrganizationContext,
)
from sentry.sentry_apps.components import SentryAppComponentPreparer
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation


# TODO(mgaeta): These endpoints are doing the same thing, but one takes a
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@
from sentry.auth.staff import is_active_staff
from sentry.constants import SentryAppStatus
from sentry.mediators.sentry_app_installations.installation_notifier import InstallationNotifier
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.organizations.services.organization import organization_service
from sentry.sentry_apps.logic import SentryAppUpdater
from sentry.sentry_apps.models.sentry_app import SentryApp
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation
from sentry.utils.audit import create_audit_entry

logger = logging.getLogger(__name__)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from sentry.api.serializers.rest_framework import SentryAppInstallationSerializer
from sentry.mediators.sentry_app_installations.installation_notifier import InstallationNotifier
from sentry.mediators.sentry_app_installations.updater import Updater
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation
from sentry.utils.audit import create_audit_entry


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
from sentry.constants import SENTRY_APP_SLUG_MAX_LENGTH, SentryAppStatus
from sentry.features.exceptions import FeatureNotRegistered
from sentry.integrations.models.integration_feature import IntegrationFeature, IntegrationTypes
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.installations import SentryAppInstallationCreator
from sentry.sentry_apps.models.sentry_app import SentryApp
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation


class SentryAppInstallationsSerializer(serializers.Serializer):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
from sentry.api.serializers.models.apitoken import ApiTokenSerializer
from sentry.exceptions import ApiTokenLimitError
from sentry.models.apitoken import ApiToken
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.installations import SentryAppInstallationTokenCreator
from sentry.sentry_apps.models.sentry_app import MASKED_VALUE
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation


@control_silo_endpoint
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from sentry.api.api_publish_status import ApiPublishStatus
from sentry.api.base import StatsMixin, control_silo_endpoint
from sentry.api.bases import SentryAppBaseEndpoint, SentryAppStatsPermission
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation


@control_silo_endpoint
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/api/endpoints/project_index.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
from sentry.auth.superuser import is_active_superuser
from sentry.constants import ObjectStatus
from sentry.db.models.query import in_iexact
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.models.project import Project
from sentry.models.projectplatform import ProjectPlatform
from sentry.search.utils import tokenize_query
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation


@region_silo_endpoint
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/api/serializers/models/rule.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
from sentry.api.serializers import Serializer, register
from sentry.constants import ObjectStatus
from sentry.models.environment import Environment
from sentry.models.integrations.sentry_app_installation import prepare_ui_component
from sentry.models.rule import NeglectedRule, Rule, RuleActivity, RuleActivityType
from sentry.models.rulefirehistory import RuleFireHistory
from sentry.models.rulesnooze import RuleSnooze
from sentry.sentry_apps.models.sentry_app_installation import prepare_ui_component
from sentry.sentry_apps.services.app.model import RpcSentryAppComponentContext
from sentry.users.services.user.service import user_service

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
from sentry.api.serializers import Serializer, register
from sentry.constants import SentryAppInstallationStatus
from sentry.hybridcloud.services.organization_mapping import organization_mapping_service
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.models.sentry_app import SentryApp
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation
from sentry.users.models.user import User
from sentry.users.services.user import RpcUser

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
from sentry.constants import SentryAppInstallationStatus
from sentry.integrations.services.integration import integration_service
from sentry.integrations.slack.utils.channel import get_channel_id, validate_channel_id
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.models.notificationaction import ActionService, ActionTarget, NotificationAction
from sentry.models.project import Project
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation
from sentry.utils.strings import oxfordize_list


Expand Down
5 changes: 2 additions & 3 deletions src/sentry/deletions/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ def load_defaults() -> None:
from sentry.models.rulefirehistory import RuleFireHistory
from sentry.monitors import models as monitor_models
from sentry.sentry_apps.models.sentry_app import SentryApp
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation
from sentry.snuba import models as snuba_models

from . import defaults
Expand Down Expand Up @@ -165,9 +166,7 @@ def load_defaults() -> None:
RepositoryProjectPathConfig, defaults.RepositoryProjectPathConfigDeletionTask
)
default_manager.register(SentryApp, defaults.SentryAppDeletionTask)
default_manager.register(
models.SentryAppInstallation, defaults.SentryAppInstallationDeletionTask
)
default_manager.register(SentryAppInstallation, defaults.SentryAppInstallationDeletionTask)
default_manager.register(
models.SentryAppInstallationToken, defaults.SentryAppInstallationTokenDeletionTask
)
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/deletions/defaults/sentry_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
class SentryAppDeletionTask(ModelDeletionTask):
def get_child_relations(self, instance):
from sentry.models.apiapplication import ApiApplication
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation
from sentry.users.models.user import User

return [
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/hybridcloud/apigateway/proxy.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@

from sentry import options
from sentry.api.exceptions import RequestTimeout
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.models.organizationmapping import OrganizationMapping
from sentry.sentry_apps.models.sentry_app import SentryApp
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation
from sentry.silo.util import (
PROXY_DIRECT_LOCATION_HEADER,
clean_outbound_headers,
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/incidents/endpoints/serializers/alert_rule.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@
)
from sentry.incidents.models.alert_rule_activations import AlertRuleActivations
from sentry.incidents.models.incident import Incident
from sentry.models.integrations.sentry_app_installation import prepare_ui_component
from sentry.models.rule import Rule
from sentry.models.rulesnooze import RuleSnooze
from sentry.sentry_apps.models.sentry_app_installation import prepare_ui_component
from sentry.sentry_apps.services.app import app_service
from sentry.sentry_apps.services.app.model import RpcSentryAppComponentContext
from sentry.snuba.models import SnubaQueryEventType
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/integrations/services/integration/impl.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@
serialize_integration_external_project,
serialize_organization_integration,
)
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.rules.actions.notify_event_service import find_alert_rule_action_ui_component
from sentry.sentry_apps.models.sentry_app import SentryApp
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation
from sentry.shared_integrations.exceptions import ApiError
from sentry.utils import json, metrics
from sentry.utils.sentry_apps import send_and_save_webhook_request
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/integrations/vercel/integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
)
from sentry.integrations.models.integration import Integration
from sentry.integrations.services.integration import integration_service
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.models.integrations.sentry_app_installation_for_provider import (
SentryAppInstallationForProvider,
)
Expand All @@ -28,6 +27,7 @@
from sentry.pipeline import NestedPipelineView
from sentry.projects.services.project_key import project_key_service
from sentry.sentry_apps.logic import SentryAppCreator
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation
from sentry.shared_integrations.exceptions import ApiError, IntegrationError
from sentry.users.models.user import User
from sentry.utils.http import absolute_uri
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/mediators/alert_rule_actions/creator.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from sentry.mediators.mediator import Mediator
from sentry.mediators.param import Param
from sentry.models.integrations.sentry_app_component import SentryAppComponent
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation


class AlertRuleActionCreator(Mediator):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from sentry.mediators.external_requests.util import send_and_save_sentry_app_request
from sentry.mediators.mediator import Mediator
from sentry.mediators.param import Param
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation
from sentry.utils import json

logger = logging.getLogger("sentry.mediators.external-requests")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
from sentry.mediators.mediator import Mediator
from sentry.mediators.param import Param
from sentry.models.apigrant import ApiGrant
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.models.sentry_app import SentryApp
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation
from sentry.users.services.user.model import RpcUser
from sentry.utils.sentry_apps import send_and_save_webhook_request

Expand Down
2 changes: 1 addition & 1 deletion src/sentry/mediators/sentry_app_installations/updater.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from sentry.constants import SentryAppInstallationStatus
from sentry.mediators.mediator import Mediator
from sentry.mediators.param import Param
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.services.app import RpcSentryAppInstallation


Expand Down
2 changes: 1 addition & 1 deletion src/sentry/mediators/token_exchange/grant_exchanger.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
from sentry.models.apiapplication import ApiApplication
from sentry.models.apigrant import ApiGrant
from sentry.models.apitoken import ApiToken
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.models.sentry_app import SentryApp
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.services.app import RpcSentryAppInstallation
from sentry.silo.safety import unguarded_write
from sentry.users.models.user import User
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/mediators/token_exchange/refresher.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
from sentry.mediators.token_exchange.validator import Validator
from sentry.models.apiapplication import ApiApplication
from sentry.models.apitoken import ApiToken
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.models.sentry_app import SentryApp
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.services.app import RpcSentryAppInstallation
from sentry.users.models.user import User

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@
import sentry.models.apitoken
import sentry.models.broadcast
import sentry.models.groupshare
import sentry.models.integrations.sentry_app_installation
import sentry.models.scheduledeletion
import sentry.models.servicehook
import sentry.sentry_apps.models.sentry_app
import sentry.sentry_apps.models.sentry_app_installation
import sentry.users.models.authenticator
import sentry.users.models.user
import sentry.utils.security.hash
Expand Down Expand Up @@ -1961,7 +1961,7 @@ class Migration(CheckedMigration):
(
"uuid",
models.CharField(
default=sentry.models.integrations.sentry_app_installation.default_uuid,
default=sentry.sentry_apps.models.sentry_app_installation.default_uuid,
max_length=64,
),
),
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/models/apitoken.py
Original file line number Diff line number Diff line change
Expand Up @@ -351,10 +351,10 @@ def sanitize_relocation_json(

@property
def organization_id(self) -> int | None:
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.models.integrations.sentry_app_installation_token import (
SentryAppInstallationToken,
)
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation

try:
installation = SentryAppInstallation.objects.get_by_api_token(self.id).get()
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/models/authprovider.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,11 +122,11 @@ def get_scim_token(self):
return get_scim_token(self.flags.scim_enabled, self.organization_id, self.provider)

def enable_scim(self, user):
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.models.integrations.sentry_app_installation_for_provider import (
SentryAppInstallationForProvider,
)
from sentry.sentry_apps.logic import SentryAppCreator
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation

if (
not self.get_provider().can_use_scim(self.organization_id, user)
Expand Down
2 changes: 0 additions & 2 deletions src/sentry/models/integrations/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
__all__ = (
"SentryApp",
"SentryAppComponent",
"SentryAppInstallation",
"SentryAppInstallationForProvider",
"SentryAppInstallationToken",
)
Expand All @@ -10,7 +9,6 @@
# REQUIRED for migrations to run.
from sentry.integrations.types import ExternalProviders # NOQA
from sentry.models.integrations.sentry_app_component import SentryAppComponent
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.models.integrations.sentry_app_installation_for_provider import (
SentryAppInstallationForProvider,
)
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/receivers/outbox/control.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@
from sentry.issues.services.issue import issue_service
from sentry.models.apiapplication import ApiApplication
from sentry.models.files.utils import get_relocation_storage
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.models.organizationmapping import OrganizationMapping
from sentry.organizations.services.organization import RpcOrganizationSignal, organization_service
from sentry.receivers.outbox import maybe_process_tombstone
from sentry.relocation.services.relocation_export.service import region_relocation_export_service
from sentry.sentry_apps.models.sentry_app import SentryApp
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.services.app.service import get_by_application_id, get_installation

logger = logging.getLogger(__name__)
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/sentry_apps/components.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

from sentry.mediators.external_requests.select_requester import SelectRequester
from sentry.models.integrations.sentry_app_component import SentryAppComponent
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.services.app.model import RpcSentryAppComponent, RpcSentryAppInstallation
from sentry.sentry_apps.services.app.serial import serialize_sentry_app_installation
from sentry.utils import json
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/sentry_apps/installations.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
from sentry.models.apiapplication import ApiApplication
from sentry.models.apigrant import ApiGrant
from sentry.models.apitoken import ApiToken
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.models.integrations.sentry_app_installation_token import SentryAppInstallationToken
from sentry.sentry_apps.models.sentry_app import SentryApp
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.services.hook import hook_service
from sentry.tasks.sentry_apps import installation_webhook
from sentry.users.models.user import User
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/sentry_apps/logic.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
from sentry.models.apiscopes import add_scope_hierarchy
from sentry.models.apitoken import ApiToken
from sentry.models.integrations.sentry_app_component import SentryAppComponent
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.installations import (
SentryAppInstallationCreator,
SentryAppInstallationTokenCreator,
Expand All @@ -37,6 +36,7 @@
SentryApp,
default_uuid,
)
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation
from sentry.tasks.sentry_apps import create_or_update_service_hooks_for_sentry_app
from sentry.users.models.user import User
from sentry.users.services.user.model import RpcUser
Expand Down
3 changes: 2 additions & 1 deletion src/sentry/sentry_apps/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from .sentry_app import SentryApp
from .sentry_app_installation import SentryAppInstallation

__all__ = ("SentryApp",)
__all__ = ("SentryApp", "SentryAppInstallation")
2 changes: 1 addition & 1 deletion src/sentry/sentry_apps/models/sentry_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ def update(self, *args, **kwargs):
return result

def is_installed_on(self, organization):
from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
from sentry.sentry_apps.models.sentry_app_installation import SentryAppInstallation

return SentryAppInstallation.objects.filter(
organization_id=organization.id,
Expand Down
Loading

0 comments on commit 652f6c0

Please sign in to comment.