|
@@ -1,45 +0,0 @@
|
|
|
-from rest_framework.request import Request
|
|
|
-from rest_framework.response import Response
|
|
|
-
|
|
|
-import sentry
|
|
|
-from sentry.plugins.bases import ReleaseTrackingPlugin
|
|
|
-from sentry.plugins.interfaces.releasehook import ReleaseHook
|
|
|
-from sentry.utils import json
|
|
|
-
|
|
|
-DOC_HTML = """
|
|
|
-<p>Configure a Freight notification with the given webhook url.</p>
|
|
|
-<pre class="clippy">{{
|
|
|
- "type": "sentry",
|
|
|
- "config": {{"webhook_url": "{hook_url}"}}
|
|
|
-}}</pre>
|
|
|
-"""
|
|
|
-
|
|
|
-
|
|
|
-class FreightReleaseHook(ReleaseHook):
|
|
|
- def handle(self, request: Request) -> Response:
|
|
|
- data = json.loads(request.body)
|
|
|
- if data["event"] == "started":
|
|
|
- self.start_release(version=data["sha"], ref=data["ref"], url=data["link"])
|
|
|
- elif data["event"] == "finished":
|
|
|
- self.finish_release(version=data["sha"], ref=data["ref"], url=data["link"])
|
|
|
- else:
|
|
|
- raise ValueError(data["event"])
|
|
|
-
|
|
|
-
|
|
|
-class FreightPlugin(ReleaseTrackingPlugin):
|
|
|
- author = "Sentry Team"
|
|
|
- author_url = "https://github.com/getsentry"
|
|
|
-
|
|
|
- title = "Freight"
|
|
|
- slug = "freight"
|
|
|
- description = "Integrate Freight release tracking."
|
|
|
- version = sentry.VERSION
|
|
|
-
|
|
|
- def has_plugin_conf(self):
|
|
|
- return True
|
|
|
-
|
|
|
- def get_release_doc_html(self, hook_url):
|
|
|
- return DOC_HTML.format(hook_url=hook_url)
|
|
|
-
|
|
|
- def get_release_hook(self):
|
|
|
- return FreightReleaseHook
|