예제 #1
0
def register_extensions():
    from sentry.plugins.base import plugins
    from sentry.plugins.utils import TestIssuePlugin2

    plugins.register(TestIssuePlugin2)

    from sentry import integrations
    from sentry.integrations.example import (
        AlertRuleIntegrationProvider,
        AliasedIntegrationProvider,
        ExampleIntegrationProvider,
        ExampleRepositoryProvider,
        FeatureFlagIntegration,
        ServerExampleProvider,
    )

    integrations.register(ExampleIntegrationProvider)
    integrations.register(AliasedIntegrationProvider)
    integrations.register(ServerExampleProvider)
    integrations.register(FeatureFlagIntegration)
    integrations.register(AlertRuleIntegrationProvider)

    from sentry.plugins.base import bindings
    from sentry.plugins.providers.dummy import DummyRepositoryProvider

    bindings.add("repository.provider", DummyRepositoryProvider, id="dummy")
    bindings.add(
        "integration-repository.provider", ExampleRepositoryProvider, id="integrations:example"
    )
예제 #2
0
파일: cases.py 프로젝트: ngandhy/sentry
    def setUp(self):
        super(PluginTestCase, self).setUp()

        # Old plugins, plugin is a class, new plugins, it's an instance
        # New plugins don't need to be registered
        if isinstance(self.plugin, (type, types.ClassType)):
            plugins.register(self.plugin)
            self.addCleanup(plugins.unregister, self.plugin)
예제 #3
0
    def setUp(self):
        super(PluginTestCase, self).setUp()

        # Old plugins, plugin is a class, new plugins, it's an instance
        # New plugins don't need to be registered
        if inspect.isclass(self.plugin):
            plugins.register(self.plugin)
            self.addCleanup(plugins.unregister, self.plugin)
예제 #4
0
def register_plugins(settings, test_plugins=False):
    from pkg_resources import iter_entry_points
    from sentry.plugins.base import plugins

    # entry_points={
    #    'sentry.plugins': [
    #         'phabricator = sentry_phabricator.plugins:PhabricatorPlugin'
    #     ],
    # },
    entry_points = [
        "sentry.new_plugins",
        "sentry.test_only_plugins" if test_plugins else "sentry.plugins",
    ]

    for entry_point in entry_points:
        for ep in iter_entry_points(entry_point):
            try:
                plugin = ep.load()
            except Exception:
                import traceback

                click.echo("Failed to load plugin %r:\n%s" %
                           (ep.name, traceback.format_exc()),
                           err=True)
            else:
                plugins.register(plugin)

    for plugin in plugins.all(version=None):
        init_plugin(plugin)

    from sentry import integrations
    from sentry.utils.imports import import_string

    for integration_path in settings.SENTRY_DEFAULT_INTEGRATIONS:
        try:
            integration_cls = import_string(integration_path)
        except Exception:
            import traceback

            click.echo(
                "Failed to load integration %r:\n%s" %
                (integration_path, traceback.format_exc()),
                err=True,
            )
        else:
            integrations.register(integration_cls)

    for integration in integrations.all():
        try:
            integration.setup()
        except AttributeError:
            pass
예제 #5
0
def register_extensions():
    from sentry.plugins.base import plugins
    from sentry.plugins.utils import TestIssuePlugin2

    plugins.register(TestIssuePlugin2)

    from sentry import integrations
    from sentry.integrations.bitbucket import BitbucketIntegrationProvider
    from sentry.integrations.bitbucket_server import BitbucketServerIntegrationProvider
    from sentry.integrations.example import (
        ExampleIntegrationProvider,
        AliasedIntegrationProvider,
        ExampleRepositoryProvider,
        ServerExampleProvider,
        FeatureFlagIntegration,
    )
    from sentry.integrations.github import GitHubIntegrationProvider
    from sentry.integrations.github_enterprise import GitHubEnterpriseIntegrationProvider
    from sentry.integrations.gitlab import GitlabIntegrationProvider
    from sentry.integrations.jira import JiraIntegrationProvider
    from sentry.integrations.jira_server import JiraServerIntegrationProvider
    from sentry.integrations.slack import SlackIntegrationProvider
    from sentry.integrations.vsts import VstsIntegrationProvider
    from sentry.integrations.vsts_extension import VstsExtensionIntegrationProvider
    from sentry.integrations.pagerduty.integration import PagerDutyIntegrationProvider

    integrations.register(BitbucketIntegrationProvider)
    integrations.register(BitbucketServerIntegrationProvider)
    integrations.register(ExampleIntegrationProvider)
    integrations.register(AliasedIntegrationProvider)
    integrations.register(ServerExampleProvider)
    integrations.register(FeatureFlagIntegration)
    integrations.register(GitHubIntegrationProvider)
    integrations.register(GitHubEnterpriseIntegrationProvider)
    integrations.register(GitlabIntegrationProvider)
    integrations.register(JiraIntegrationProvider)
    integrations.register(JiraServerIntegrationProvider)
    integrations.register(SlackIntegrationProvider)
    integrations.register(VstsIntegrationProvider)
    integrations.register(VstsExtensionIntegrationProvider)
    integrations.register(PagerDutyIntegrationProvider)

    from sentry.plugins.base import bindings
    from sentry.plugins.providers.dummy import DummyRepositoryProvider

    bindings.add("repository.provider", DummyRepositoryProvider, id="dummy")
    bindings.add("integration-repository.provider",
                 ExampleRepositoryProvider,
                 id="integrations:example")
예제 #6
0
def register_plugins(settings, raise_on_plugin_load_failure=False):
    from pkg_resources import iter_entry_points

    from sentry.plugins.base import plugins

    # entry_points={
    #    'sentry.plugins': [
    #         'phabricator = sentry_phabricator.plugins:PhabricatorPlugin'
    #     ],
    # },
    for ep in iter_entry_points("sentry.plugins"):
        try:
            plugin = ep.load()
        except Exception:
            import traceback

            click.echo(
                f"Failed to load plugin {ep.name!r}:\n{traceback.format_exc()}",
                err=True)
            if raise_on_plugin_load_failure:
                raise
        else:
            plugins.register(plugin)

    for plugin in plugins.all(version=None):
        init_plugin(plugin)

    from sentry import integrations
    from sentry.utils.imports import import_string

    for integration_path in settings.SENTRY_DEFAULT_INTEGRATIONS:
        try:
            integration_cls = import_string(integration_path)
        except Exception:
            import traceback

            click.echo(
                f"Failed to load integration {integration_path!r}:\n{traceback.format_exc()}",
                err=True,
            )
        else:
            integrations.register(integration_cls)

    for integration in integrations.all():
        try:
            integration.setup()
        except AttributeError:
            pass
예제 #7
0
파일: test_store.py 프로젝트: y1024/sentry
    def inner(cls):
        from sentry.plugins.base import plugins

        monkeypatch.setitem(globals(), cls.__name__, cls)
        plugins.register(cls)
        request.addfinalizer(lambda: plugins.unregister(cls))
예제 #8
0
    def inner(cls):
        from sentry.plugins.base import plugins

        plugins.register(cls)
        request.addfinalizer(lambda: plugins.unregister(cls))
예제 #9
0
from sentry.integrations.example import ExampleIntegrationProvider
from sentry.mediators.plugins import Migrator
from sentry.models import Integration, Repository
from sentry.plugins.base import plugins
from sentry.plugins.bases.issue2 import IssuePlugin2
from sentry.testutils import TestCase


class ExamplePlugin(IssuePlugin2):
    slug = "example"


plugins.register(ExamplePlugin)


class MigratorTest(TestCase):
    def setUp(self):
        super().setUp()

        self.organization = self.create_organization()
        self.project = self.create_project(organization=self.organization)

        self.integration = Integration.objects.create(provider=ExampleIntegrationProvider.key)

        self.migrator = Migrator(integration=self.integration, organization=self.organization)

    def test_all_repos_migrated(self):
        Repository.objects.create(
            organization_id=self.organization.id,
            provider=self.integration.provider,
            integration_id=self.integration.id,
예제 #10
0
def register_mock_plugins():
    plugins.register(VstsPlugin)
    plugins.register(GitHubPlugin)
    plugins.register(BitbucketPlugin)