diff options
| author | 2022-11-20 07:12:25 -0800 | |
|---|---|---|
| committer | 2022-11-20 07:12:25 -0800 | |
| commit | 6d8cafc45438f63918ccd300686e368354e1e4f0 (patch) | |
| tree | 39fd46a19381b0f358867c952e7a4b8ab43ab990 /pydis_site/settings.py | |
| parent | Rename file for consistency (diff) | |
| parent | Merge pull request #789 from python-discord/messages-in-past-n-days-endpoint (diff) | |
Merge branch 'main' into main
Diffstat (limited to 'pydis_site/settings.py')
| -rw-r--r-- | pydis_site/settings.py | 79 | 
1 files changed, 49 insertions, 30 deletions
| diff --git a/pydis_site/settings.py b/pydis_site/settings.py index 17f220f3..e9e0ba67 100644 --- a/pydis_site/settings.py +++ b/pydis_site/settings.py @@ -21,7 +21,6 @@ import environ  import sentry_sdk  from sentry_sdk.integrations.django import DjangoIntegration -  env = environ.Env(      DEBUG=(bool, False),      SITE_DSN=(str, ""), @@ -30,17 +29,31 @@ env = environ.Env(      GIT_SHA=(str, 'development'),      TIMEOUT_PERIOD=(int, 5),      GITHUB_TOKEN=(str, None), +    GITHUB_APP_ID=(str, None), +    GITHUB_APP_KEY=(str, None),  )  GIT_SHA = env("GIT_SHA") +GITHUB_API = "https://api.github.com"  GITHUB_TOKEN = env("GITHUB_TOKEN") - -sentry_sdk.init( -    dsn=env('SITE_DSN'), -    integrations=[DjangoIntegration()], -    send_default_pii=True, -    release=f"site@{GIT_SHA}" -) +GITHUB_APP_ID = env("GITHUB_APP_ID") +GITHUB_APP_KEY = env("GITHUB_APP_KEY") +GITHUB_TIMESTAMP_FORMAT = "%Y-%m-%dT%H:%M:%SZ" +"""The datetime string format GitHub uses.""" + +STATIC_BUILD: bool = env("STATIC_BUILD") + +if GITHUB_APP_KEY and (key_file := Path(GITHUB_APP_KEY)).is_file(): +    # Allow the OAuth key to be loaded from a file +    GITHUB_APP_KEY = key_file.read_text(encoding="utf-8") + +if not STATIC_BUILD: +    sentry_sdk.init( +        dsn=env('SITE_DSN'), +        integrations=[DjangoIntegration()], +        send_default_pii=True, +        release=f"site@{GIT_SHA}" +    )  # Build paths inside the project like this: os.path.join(BASE_DIR, ...)  BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) @@ -91,7 +104,7 @@ else:  NON_STATIC_APPS = [      'pydis_site.apps.api',      'pydis_site.apps.staff', -] if not env("STATIC_BUILD") else [] +] if not STATIC_BUILD else []  INSTALLED_APPS = [      *NON_STATIC_APPS, @@ -120,25 +133,29 @@ INSTALLED_APPS = [  if not env("BUILDING_DOCKER"):      INSTALLED_APPS.append("django_prometheus") -NON_STATIC_MIDDLEWARE = [ -    'django_prometheus.middleware.PrometheusBeforeMiddleware', -] if not env("STATIC_BUILD") else [] - -# Ensure that Prometheus middlewares are first and last here. -MIDDLEWARE = [ -    *NON_STATIC_MIDDLEWARE, - -    'django.middleware.security.SecurityMiddleware', -    'whitenoise.middleware.WhiteNoiseMiddleware', -    'django.contrib.sessions.middleware.SessionMiddleware', -    'django.middleware.common.CommonMiddleware', -    'django.middleware.csrf.CsrfViewMiddleware', -    'django.contrib.auth.middleware.AuthenticationMiddleware', -    'django.contrib.messages.middleware.MessageMiddleware', -    'django.middleware.clickjacking.XFrameOptionsMiddleware', - -    'django_prometheus.middleware.PrometheusAfterMiddleware' -] +if STATIC_BUILD: +    # The only middleware required during static builds +    MIDDLEWARE = [ +        'django.contrib.sessions.middleware.SessionMiddleware', +        'django.contrib.auth.middleware.AuthenticationMiddleware', +        'django.contrib.messages.middleware.MessageMiddleware', +    ] +else: +    # Ensure that Prometheus middlewares are first and last here. +    MIDDLEWARE = [ +        'django_prometheus.middleware.PrometheusBeforeMiddleware', + +        'django.middleware.security.SecurityMiddleware', +        'whitenoise.middleware.WhiteNoiseMiddleware', +        'django.contrib.sessions.middleware.SessionMiddleware', +        'django.middleware.common.CommonMiddleware', +        'django.middleware.csrf.CsrfViewMiddleware', +        'django.contrib.auth.middleware.AuthenticationMiddleware', +        'django.contrib.messages.middleware.MessageMiddleware', +        'django.middleware.clickjacking.XFrameOptionsMiddleware', + +        'django_prometheus.middleware.PrometheusAfterMiddleware' +    ]  ROOT_URLCONF = 'pydis_site.urls' @@ -167,7 +184,7 @@ WSGI_APPLICATION = 'pydis_site.wsgi.application'  DATABASES = {      'default': env.db(),      'metricity': env.db('METRICITY_DB_URL'), -} if not env("STATIC_BUILD") else {} +} if not STATIC_BUILD else {}  # Password validation  # https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators @@ -192,7 +209,6 @@ AUTH_PASSWORD_VALIDATORS = [  LANGUAGE_CODE = 'en-us'  TIME_ZONE = 'UTC'  USE_I18N = True -USE_L10N = True  USE_TZ = True  # Static files (CSS, JavaScript, Images) @@ -219,6 +235,9 @@ if DEBUG:  else:      PARENT_HOST = env('PARENT_HOST', default='pythondiscord.com') +# Django Model Configuration +DEFAULT_AUTO_FIELD = "django.db.models.AutoField" +  # Django REST framework  # https://www.django-rest-framework.org  REST_FRAMEWORK = { | 
