From dfc6de80fc0459697808a131ef891c3b9c5868e7 Mon Sep 17 00:00:00 2001 From: Juha Louhiranta Date: Fri, 8 Aug 2025 15:38:10 +0300 Subject: [PATCH 1/2] chore: don't require python 3.12 specifically for pre-commit The plain python3 is enough. --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 85e655b9..5c45431c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,7 +5,7 @@ # Ruff pre-commit hook documentation: # - https://github.com/astral-sh/ruff-pre-commit default_language_version: - python: python3.12 + python: python3 repos: - repo: https://github.com/astral-sh/ruff-pre-commit # NOTE: Don't move the trailing "ruff-pre-commit version" comment from From 7b0d0def0bdbb1f8723a2205e5db1a75c83272f5 Mon Sep 17 00:00:00 2001 From: Juha Louhiranta Date: Fri, 8 Aug 2025 15:39:59 +0300 Subject: [PATCH 2/2] chore: don't use git to determine the commit hash Get the commit hash from the openshift's environment. --- Dockerfile | 5 +---- common/utils.py | 2 +- palvelutarjotin/settings.py | 12 +++++------- palvelutarjotin/urls.py | 2 +- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6d63ac79..3d5a3f4a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,9 +22,6 @@ RUN yum update -y && yum install -y \ && uwsgi --build-plugin https://github.com/City-of-Helsinki/uwsgi-sentry \ && yum clean all -# fatal: detected dubious ownership in repository at '/app' -RUN git config --system --add safe.directory /app - COPY --chown=root:root --chmod=755 docker-entrypoint.sh /entrypoint/docker-entrypoint.sh ENTRYPOINT ["/entrypoint/docker-entrypoint.sh"] @@ -46,4 +43,4 @@ FROM appbase AS production RUN SECRET_KEY="only-used-for-collectstatic" python manage.py collectstatic USER default -EXPOSE 8000/tcp \ No newline at end of file +EXPOSE 8000/tcp diff --git a/common/utils.py b/common/utils.py index 868898e1..873660e9 100644 --- a/common/utils.py +++ b/common/utils.py @@ -86,7 +86,7 @@ def update_object_with_translations(model, model_data): def get_api_version(): - return " | ".join((__version__, settings.COMMIT_HASH.decode("utf-8"))) + return " | ".join((__version__, settings.COMMIT_HASH)) def get_node_id_from_global_id(global_id, node_name): diff --git a/palvelutarjotin/settings.py b/palvelutarjotin/settings.py index 1f5fb14c..b913562e 100644 --- a/palvelutarjotin/settings.py +++ b/palvelutarjotin/settings.py @@ -1,5 +1,4 @@ import os -import subprocess import tempfile from datetime import datetime from pathlib import Path @@ -10,6 +9,7 @@ from django.utils.translation import gettext_lazy as _ from sentry_sdk.integrations.django import DjangoIntegration +from palvelutarjotin import __version__ from palvelutarjotin.consts import CSP checkout_dir = environ.Path(__file__) - 2 @@ -94,6 +94,7 @@ SOCIAL_AUTH_TUNNISTAMO_SECRET=(str, ""), # empty to ignore it's being unset. LOGIN_REDIRECT_URL=(str, "/admin/"), LOGOUT_REDIRECT_URL=(str, "/admin/"), + OPENSHIFT_BUILD_COMMIT=(str, ""), ) if os.path.exists(env_file): @@ -158,14 +159,11 @@ ILMOITIN_QUEUE_NOTIFICATIONS = env("ILMOITIN_QUEUE_NOTIFICATIONS") TRANSLATED_SMS_SENDER = env("TRANSLATED_SMS_SENDER") -try: - COMMIT_HASH = subprocess.check_output(["git", "rev-parse", "HEAD"]).strip() -except Exception: - COMMIT_HASH = b"n/a" - +COMMIT_HASH = env("OPENSHIFT_BUILD_COMMIT") +VERSION = __version__ sentry_sdk.init( dsn=env.str("SENTRY_DSN"), - release=COMMIT_HASH, + release=env.str("OPENSHIFT_BUILD_COMMIT", VERSION), environment=env("SENTRY_ENVIRONMENT"), integrations=[DjangoIntegration()], ) diff --git a/palvelutarjotin/urls.py b/palvelutarjotin/urls.py index e1edf420..0dae8d68 100644 --- a/palvelutarjotin/urls.py +++ b/palvelutarjotin/urls.py @@ -64,7 +64,7 @@ def readiness(*args, **kwargs): "status": "ok", "release": settings.APP_RELEASE, "packageVersion": __version__, - "commitHash": settings.COMMIT_HASH.decode("utf-8"), + "commitHash": settings.COMMIT_HASH, "buildTime": settings.APP_BUILD_TIME.strftime("%Y-%m-%dT%H:%M:%S.000Z"), } return JsonResponse(response_json, status=200)