From 12f414efe4f3a357b5e05b5325c327eda9ac6cde Mon Sep 17 00:00:00 2001 From: Meni Yakove Date: Sat, 26 Apr 2025 11:39:04 +0300 Subject: [PATCH] Rename webhook_server_container->webhook_server --- Dockerfile | 2 +- entrypoint.sh | 4 +-- example.config.yaml | 2 +- pyproject.toml | 36 +++++++++---------- pytest.ini | 2 +- tox.toml | 2 +- .../__init__.py | 0 .../app.py | 4 +-- .../config/schema.yaml | 0 .../libs/__init__.py | 0 .../libs/config.py | 2 +- .../libs/github_api.py | 8 ++--- .../tests/conftest.py | 6 ++-- .../tests/manifests/config.yaml | 0 .../tests/test_add_reviewer_action.py | 0 .../tests/test_branch_protection.py | 8 ++--- .../test_prepare_retest_wellcome_comment.py | 0 .../tests/test_pull_request_owners.py | 4 +-- .../tests/test_pull_request_size.py | 3 +- .../tests/test_repo_data_from_config.py | 0 .../utils/__init__.py | 0 .../utils/constants.py | 0 .../github_repository_and_webhook_settings.py | 8 ++--- .../utils/github_repository_settings.py | 6 ++-- .../utils/helpers.py | 2 +- .../utils/webhook.py | 4 +-- 26 files changed, 51 insertions(+), 52 deletions(-) rename {webhook_server_container => webhook_server}/__init__.py (100%) rename {webhook_server_container => webhook_server}/app.py (92%) rename {webhook_server_container => webhook_server}/config/schema.yaml (100%) rename {webhook_server_container => webhook_server}/libs/__init__.py (100%) rename {webhook_server_container => webhook_server}/libs/config.py (95%) rename {webhook_server_container => webhook_server}/libs/github_api.py (99%) rename {webhook_server_container => webhook_server}/tests/conftest.py (93%) rename {webhook_server_container => webhook_server}/tests/manifests/config.yaml (100%) rename {webhook_server_container => webhook_server}/tests/test_add_reviewer_action.py (100%) rename {webhook_server_container => webhook_server}/tests/test_branch_protection.py (91%) rename {webhook_server_container => webhook_server}/tests/test_prepare_retest_wellcome_comment.py (100%) rename {webhook_server_container => webhook_server}/tests/test_pull_request_owners.py (99%) rename {webhook_server_container => webhook_server}/tests/test_pull_request_size.py (92%) rename {webhook_server_container => webhook_server}/tests/test_repo_data_from_config.py (100%) rename {webhook_server_container => webhook_server}/utils/__init__.py (100%) rename {webhook_server_container => webhook_server}/utils/constants.py (100%) rename {webhook_server_container => webhook_server}/utils/github_repository_and_webhook_settings.py (82%) rename {webhook_server_container => webhook_server}/utils/github_repository_settings.py (98%) rename {webhook_server_container => webhook_server}/utils/helpers.py (99%) rename {webhook_server_container => webhook_server}/utils/webhook.py (95%) diff --git a/Dockerfile b/Dockerfile index 1760c242..3d47d0a2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,7 +35,7 @@ RUN mkdir -p $BIN_DIR \ && mkdir -p $DATA_DIR/logs COPY entrypoint.sh pyproject.toml uv.lock README.md $APP_DIR/ -COPY webhook_server_container $APP_DIR/webhook_server_container/ +COPY webhook_server $APP_DIR/webhook_server/ RUN usermod --add-subuids 100000-165535 --add-subgids 100000-165535 $USERNAME \ && chown -R $USERNAME:$USERNAME $HOME_DIR diff --git a/entrypoint.sh b/entrypoint.sh index f795b4d8..8b4a077b 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,11 +1,11 @@ #!/bin/bash -SERVER_RUN_CMD="uv run uvicorn webhook_server_container.app:FASTAPI_APP --host 0.0.0.0 --port 5000 " +SERVER_RUN_CMD="uv run uvicorn webhook_server.app:FASTAPI_APP --host 0.0.0.0 --port 5000 " UVICORN_WORKERS="${UVICORN_MAX_WORKERS:=10}" set -ep -uv run webhook_server_container/utils/github_repository_and_webhook_settings.py +uv run webhook_server/utils/github_repository_and_webhook_settings.py if [[ -z $DEVELOPMENT ]]; then eval "${SERVER_RUN_CMD} --workers ${UVICORN_WORKERS}" diff --git a/example.config.yaml b/example.config.yaml index 717c460d..95c1aee7 100644 --- a/example.config.yaml +++ b/example.config.yaml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/myk-org/github-webhook-server/refs/heads/main/webhook_server_container/config/schema.yaml +# yaml-language-server: $schema=https://raw.githubusercontent.com/myk-org/github-webhook-server/refs/heads/main/webhook_server/config/schema.yaml log-level: INFO # Set global log level, change take effect immediately without server restart log-file: webhook-server.log # Set global log file, change take effect immediately without server restart diff --git a/pyproject.toml b/pyproject.toml index 2c708bd4..1159c6be 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [tool.coverage.run] -omit = [ "tests/*" ] +omit = ["tests/*"] [tool.coverage.report] fail_under = 35 @@ -14,8 +14,8 @@ line-length = 120 fix = true output-format = "grouped" - [tool.ruff.format] - exclude = [ ".git", ".venv", ".mypy_cache", ".tox", "__pycache__" ] +[tool.ruff.format] +exclude = [".git", ".venv", ".mypy_cache", ".tox", "__pycache__"] [tool.mypy] check_untyped_defs = true @@ -31,10 +31,10 @@ warn_unused_configs = true warn_redundant_casts = true [tool.hatch.build.targets.wheel] -packages = [ "webhook_server_container" ] +packages = ["webhook_server"] [tool.uv] -dev-dependencies = [ "ipdb>=0.13.13", "ipython>=8.12.3" ] +dev-dependencies = ["ipdb>=0.13.13", "ipython>=8.12.3"] [project] name = "github-webhook-server" @@ -45,7 +45,7 @@ readme = "README.md" license = "Apache-2.0" classifiers = [ "Programming Language :: Python :: 3", - "Operating System :: OS Independent" + "Operating System :: OS Independent", ] dependencies = [ "build>=1.2.2.post1", @@ -68,20 +68,20 @@ dependencies = [ "uwsgi>=2.0.27", ] - [[project.authors]] - name = "Meni Yakove" - email = " myakove@gmail.com" +[[project.authors]] +name = "Meni Yakove" +email = " myakove@gmail.com" - [[project.authors]] - name = "Ruth Netser" - email = "ruth.netser@gmail.com" +[[project.authors]] +name = "Ruth Netser" +email = "ruth.netser@gmail.com" - [project.urls] - homepage = "https://github.com/myakove/github-webhook-server" - repository = "https://github.com/myakove/github-webhook-server" - Download = "https://quay.io/repository/myakove/github-webhook-server" - "Bug Tracker" = "https://github.com/myakove/github-webhook-server/issues" +[project.urls] +homepage = "https://github.com/myakove/github-webhook-server" +repository = "https://github.com/myakove/github-webhook-server" +Download = "https://quay.io/repository/myakove/github-webhook-server" +"Bug Tracker" = "https://github.com/myakove/github-webhook-server/issues" [build-system] -requires = [ "hatchling" ] +requires = ["hatchling"] build-backend = "hatchling.build" diff --git a/pytest.ini b/pytest.ini index 923c76d4..7097cf42 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,5 +1,5 @@ [pytest] addopts = --pdbcls=IPython.terminal.debugger:TerminalPdb - --cov-config=pyproject.toml --cov-report=html --cov-report=term --cov=webhook_server_container + --cov-config=pyproject.toml --cov-report=html --cov-report=term --cov=webhook_server --log-cli-level=DEBUG diff --git a/tox.toml b/tox.toml index 408a075e..4905ed01 100644 --- a/tox.toml +++ b/tox.toml @@ -14,4 +14,4 @@ commands = [ [env.unittests] deps = ["uv"] -commands = [["uv", "run", "pytest", "webhook_server_container/tests"]] +commands = [["uv", "run", "pytest", "webhook_server/tests"]] diff --git a/webhook_server_container/__init__.py b/webhook_server/__init__.py similarity index 100% rename from webhook_server_container/__init__.py rename to webhook_server/__init__.py diff --git a/webhook_server_container/app.py b/webhook_server/app.py similarity index 92% rename from webhook_server_container/app.py rename to webhook_server/app.py index e0e7609f..44ffcc53 100644 --- a/webhook_server_container/app.py +++ b/webhook_server/app.py @@ -6,8 +6,8 @@ import urllib3 from fastapi import FastAPI, Request -from webhook_server_container.libs.github_api import ProcessGithubWehook -from webhook_server_container.utils.helpers import get_logger_with_params +from webhook_server.libs.github_api import ProcessGithubWehook +from webhook_server.utils.helpers import get_logger_with_params FASTAPI_APP: FastAPI = FastAPI(title="webhook-server") APP_URL_ROOT_PATH: str = "/webhook_server" diff --git a/webhook_server_container/config/schema.yaml b/webhook_server/config/schema.yaml similarity index 100% rename from webhook_server_container/config/schema.yaml rename to webhook_server/config/schema.yaml diff --git a/webhook_server_container/libs/__init__.py b/webhook_server/libs/__init__.py similarity index 100% rename from webhook_server_container/libs/__init__.py rename to webhook_server/libs/__init__.py diff --git a/webhook_server_container/libs/config.py b/webhook_server/libs/config.py similarity index 95% rename from webhook_server_container/libs/config.py rename to webhook_server/libs/config.py index f6804b47..48bbf750 100644 --- a/webhook_server_container/libs/config.py +++ b/webhook_server/libs/config.py @@ -53,7 +53,7 @@ def get_value(self, value: str, return_on_none: Any = None) -> Any: @property def repository_local_data(self) -> dict[str, Any]: if self.repository and self.repository_full_name: - from webhook_server_container.utils.helpers import get_api_with_highest_rate_limit, get_github_repo_api + from webhook_server.utils.helpers import get_api_with_highest_rate_limit, get_github_repo_api github_api, _, _ = get_api_with_highest_rate_limit(config=self, repository_name=self.repository) diff --git a/webhook_server_container/libs/github_api.py b/webhook_server/libs/github_api.py similarity index 99% rename from webhook_server_container/libs/github_api.py rename to webhook_server/libs/github_api.py index ad55a564..d86a3507 100644 --- a/webhook_server_container/libs/github_api.py +++ b/webhook_server/libs/github_api.py @@ -26,8 +26,8 @@ from stringcolor import cs from timeout_sampler import TimeoutExpiredError, TimeoutSampler -from webhook_server_container.libs.config import Config -from webhook_server_container.utils.constants import ( +from webhook_server.libs.config import Config +from webhook_server.utils.constants import ( ADD_STR, APPROVE_STR, APPROVED_BY_LABEL_PREFIX, @@ -68,10 +68,10 @@ VERIFIED_LABEL_STR, WIP_STR, ) -from webhook_server_container.utils.github_repository_settings import ( +from webhook_server.utils.github_repository_settings import ( get_repository_github_app_api, ) -from webhook_server_container.utils.helpers import ( +from webhook_server.utils.helpers import ( extract_key_from_dict, get_api_with_highest_rate_limit, get_apis_and_tokes_from_config, diff --git a/webhook_server_container/tests/conftest.py b/webhook_server/tests/conftest.py similarity index 93% rename from webhook_server_container/tests/conftest.py rename to webhook_server/tests/conftest.py index 278fd1e0..8426aa1e 100644 --- a/webhook_server_container/tests/conftest.py +++ b/webhook_server/tests/conftest.py @@ -5,7 +5,7 @@ from starlette.datastructures import Headers import pytest -from webhook_server_container.libs.github_api import ProcessGithubWehook +from webhook_server.libs.github_api import ProcessGithubWehook ALL_CHANGED_FILES = [ "OWNERS", @@ -96,8 +96,8 @@ def get_contents(self, path: str): @pytest.fixture(scope="function") def process_github_webhook(mocker, request): - base_import_path = "webhook_server_container.libs.github_api" - os.environ["WEBHOOK_SERVER_DATA_DIR"] = "webhook_server_container/tests/manifests" + base_import_path = "webhook_server.libs.github_api" + os.environ["WEBHOOK_SERVER_DATA_DIR"] = "webhook_server/tests/manifests" mocker.patch(f"{base_import_path}.get_repository_github_app_api", return_value=True) mocker.patch("github.AuthenticatedUser", return_value=True) diff --git a/webhook_server_container/tests/manifests/config.yaml b/webhook_server/tests/manifests/config.yaml similarity index 100% rename from webhook_server_container/tests/manifests/config.yaml rename to webhook_server/tests/manifests/config.yaml diff --git a/webhook_server_container/tests/test_add_reviewer_action.py b/webhook_server/tests/test_add_reviewer_action.py similarity index 100% rename from webhook_server_container/tests/test_add_reviewer_action.py rename to webhook_server/tests/test_add_reviewer_action.py diff --git a/webhook_server_container/tests/test_branch_protection.py b/webhook_server/tests/test_branch_protection.py similarity index 91% rename from webhook_server_container/tests/test_branch_protection.py rename to webhook_server/tests/test_branch_protection.py index ce3ecc40..6fb1972d 100644 --- a/webhook_server_container/tests/test_branch_protection.py +++ b/webhook_server/tests/test_branch_protection.py @@ -1,8 +1,8 @@ import os import pytest -from webhook_server_container.libs.config import Config -from webhook_server_container.utils.github_repository_settings import ( +from webhook_server.libs.config import Config +from webhook_server.utils.github_repository_settings import ( DEFAULT_BRANCH_PROTECTION, get_repo_branch_protection_rules, ) @@ -10,8 +10,8 @@ @pytest.fixture() def branch_protection_rules(request, mocker): - config_path = "webhook_server_container.libs.config.Config" - os.environ["WEBHOOK_SERVER_DATA_DIR"] = "webhook_server_container/tests/manifests" + config_path = "webhook_server.libs.config.Config" + os.environ["WEBHOOK_SERVER_DATA_DIR"] = "webhook_server/tests/manifests" repo_name = "test-repo" config = Config(repository=repo_name) root_data = config.root_data diff --git a/webhook_server_container/tests/test_prepare_retest_wellcome_comment.py b/webhook_server/tests/test_prepare_retest_wellcome_comment.py similarity index 100% rename from webhook_server_container/tests/test_prepare_retest_wellcome_comment.py rename to webhook_server/tests/test_prepare_retest_wellcome_comment.py diff --git a/webhook_server_container/tests/test_pull_request_owners.py b/webhook_server/tests/test_pull_request_owners.py similarity index 99% rename from webhook_server_container/tests/test_pull_request_owners.py rename to webhook_server/tests/test_pull_request_owners.py index af28d430..5c9ae103 100644 --- a/webhook_server_container/tests/test_pull_request_owners.py +++ b/webhook_server/tests/test_pull_request_owners.py @@ -1,8 +1,8 @@ import yaml import pytest -from webhook_server_container.tests.conftest import ContentFile, Tree -from webhook_server_container.utils.constants import APPROVED_BY_LABEL_PREFIX +from webhook_server.tests.conftest import ContentFile, Tree +from webhook_server.utils.constants import APPROVED_BY_LABEL_PREFIX class Repository: diff --git a/webhook_server_container/tests/test_pull_request_size.py b/webhook_server/tests/test_pull_request_size.py similarity index 92% rename from webhook_server_container/tests/test_pull_request_size.py rename to webhook_server/tests/test_pull_request_size.py index 827f5c90..c7a27420 100644 --- a/webhook_server_container/tests/test_pull_request_size.py +++ b/webhook_server/tests/test_pull_request_size.py @@ -1,6 +1,5 @@ import pytest - -from webhook_server_container.utils.constants import SIZE_LABEL_PREFIX +from webhook_server.utils.constants import SIZE_LABEL_PREFIX class Label: diff --git a/webhook_server_container/tests/test_repo_data_from_config.py b/webhook_server/tests/test_repo_data_from_config.py similarity index 100% rename from webhook_server_container/tests/test_repo_data_from_config.py rename to webhook_server/tests/test_repo_data_from_config.py diff --git a/webhook_server_container/utils/__init__.py b/webhook_server/utils/__init__.py similarity index 100% rename from webhook_server_container/utils/__init__.py rename to webhook_server/utils/__init__.py diff --git a/webhook_server_container/utils/constants.py b/webhook_server/utils/constants.py similarity index 100% rename from webhook_server_container/utils/constants.py rename to webhook_server/utils/constants.py diff --git a/webhook_server_container/utils/github_repository_and_webhook_settings.py b/webhook_server/utils/github_repository_and_webhook_settings.py similarity index 82% rename from webhook_server_container/utils/github_repository_and_webhook_settings.py rename to webhook_server/utils/github_repository_and_webhook_settings.py index 5f68b0a1..fbbf22d6 100644 --- a/webhook_server_container/utils/github_repository_and_webhook_settings.py +++ b/webhook_server/utils/github_repository_and_webhook_settings.py @@ -3,13 +3,13 @@ import github -from webhook_server_container.libs.config import Config -from webhook_server_container.utils.github_repository_settings import ( +from webhook_server.libs.config import Config +from webhook_server.utils.github_repository_settings import ( set_all_in_progress_check_runs_to_queued, set_repositories_settings, ) -from webhook_server_container.utils.helpers import get_api_with_highest_rate_limit, get_logger_with_params -from webhook_server_container.utils.webhook import create_webhook +from webhook_server.utils.helpers import get_api_with_highest_rate_limit, get_logger_with_params +from webhook_server.utils.webhook import create_webhook def get_repository_api(repository: str) -> tuple[str, github.Github | None, str]: diff --git a/webhook_server_container/utils/github_repository_settings.py b/webhook_server/utils/github_repository_settings.py similarity index 98% rename from webhook_server_container/utils/github_repository_settings.py rename to webhook_server/utils/github_repository_settings.py index fe1742f4..71e10a6d 100644 --- a/webhook_server_container/utils/github_repository_settings.py +++ b/webhook_server/utils/github_repository_settings.py @@ -14,8 +14,8 @@ from github.Label import Label from github.Repository import Repository -from webhook_server_container.libs.config import Config -from webhook_server_container.utils.constants import ( +from webhook_server.libs.config import Config +from webhook_server.utils.constants import ( BUILD_CONTAINER_STR, CAN_BE_MERGED_STR, CONVENTIONAL_TITLE_STR, @@ -26,7 +26,7 @@ STATIC_LABELS_DICT, TOX_STR, ) -from webhook_server_container.utils.helpers import ( +from webhook_server.utils.helpers import ( get_future_results, get_logger_with_params, ) diff --git a/webhook_server_container/utils/helpers.py b/webhook_server/utils/helpers.py similarity index 99% rename from webhook_server_container/utils/helpers.py rename to webhook_server/utils/helpers.py index 235520af..1d0b4c16 100644 --- a/webhook_server_container/utils/helpers.py +++ b/webhook_server/utils/helpers.py @@ -13,7 +13,7 @@ from github.Repository import Repository from simple_logger.logger import get_logger -from webhook_server_container.libs.config import Config +from webhook_server.libs.config import Config def get_logger_with_params(name: str, repository_name: str = "") -> Logger: diff --git a/webhook_server_container/utils/webhook.py b/webhook_server/utils/webhook.py similarity index 95% rename from webhook_server_container/utils/webhook.py rename to webhook_server/utils/webhook.py index a597e578..e55fbca6 100644 --- a/webhook_server_container/utils/webhook.py +++ b/webhook_server/utils/webhook.py @@ -3,8 +3,8 @@ from github.Hook import Hook -from webhook_server_container.libs.config import Config -from webhook_server_container.utils.helpers import ( +from webhook_server.libs.config import Config +from webhook_server.utils.helpers import ( get_future_results, get_github_repo_api, get_logger_with_params,