mirror of
https://github.com/odoo/runbot.git
synced 2025-03-22 02:45:51 +07:00

Rather than try to fix up various bits where we search & all and wonder what index we should be using, make the column a CIText. For mergebot the main use case would be properly handling delegate=XXX: currently if XXX is not a case-sensitive match we're going to create a new partner with the new github login and give *them* delegation, and the intended target of the delegation isn't going to work correctly. Also try to install the citext extension if it's not in the database, and run the database-creation process with `check=True` so if that fails we properly bubble up the error and don't try to run tests on a corrupted / broken DB. Fixes #318
44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
import logging
|
|
from os import environ
|
|
|
|
import sentry_sdk
|
|
from sentry_sdk.integrations.logging import LoggingIntegration
|
|
from sentry_sdk.integrations.wsgi import SentryWsgiMiddleware
|
|
|
|
from odoo import http
|
|
from . import models, controllers
|
|
|
|
|
|
def enable_sentry():
|
|
logger = logging.getLogger('runbot_merge')
|
|
|
|
dsn = environ.get('SENTRY_DSN')
|
|
if not dsn:
|
|
logger.info("No DSN found, skipping sentry...")
|
|
return
|
|
|
|
try:
|
|
sentry_sdk.init(
|
|
dsn,
|
|
integrations=[
|
|
# note: if the colorformatter is enabled, sentry gets lost
|
|
# and classifies everything as errors because it fails to
|
|
# properly classify levels as the colorformatter injects
|
|
# the ANSI color codes right into LogRecord.levelname
|
|
LoggingIntegration(level=logging.INFO, event_level=logging.WARNING),
|
|
]
|
|
)
|
|
http.root = SentryWsgiMiddleware(http.root)
|
|
except Exception:
|
|
logger.exception("DSN found, failed to enable sentry...")
|
|
else:
|
|
logger.info("DSN found, sentry enabled...")
|
|
|
|
def _check_citext(cr):
|
|
cr.execute("select 1 from pg_extension where extname = 'citext'")
|
|
if not cr.rowcount:
|
|
try:
|
|
cr.execute('create extension citext')
|
|
except Exception:
|
|
raise AssertionError("runbot_merge needs the citext extension")
|