IEBH-353: Sync with the latest changes#9
Merged
vmoshynskyi merged 2 commits intomainfrom Nov 26, 2025
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR synchronizes the codebase with the latest changes from the pilot repository, modernizing the architecture and dependencies while introducing a new request handling abstraction layer.
Key Changes:
- Introduces
HTTPClientandRequestContextabstractions to centralize HTTP request handling and header filtering for improved security and maintainability - Updates Python dependency constraints to 3.10.x only and upgrades major dependencies (FastAPI 0.90→0.115, httpx 0.23→0.27, gunicorn 20.0.4→23.0.0, redis 3.5.3→4.5.5, cryptography 39.0.0→44.0.3)
- Modernizes Python type hints from
typingmodule types to built-in generics (PEP 585/604) - Removes Vault configuration in favor of simpler environment-based configuration
- Replaces Jenkinsfile CI/CD with GitHub Actions workflow
Reviewed changes
Copilot reviewed 30 out of 31 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
pyproject.toml |
Updates Python constraint to 3.10.x and upgrades multiple dependencies including FastAPI, httpx, gunicorn, redis, cryptography, and pilot-platform-common |
poetry.lock |
Reflects dependency updates with new package versions and removal of deprecated packages (aioredis, rfc3986) |
app/components/request/http_client.py |
Adds new HTTPClient wrapper class to standardize HTTP requests with header management |
app/components/request/context.py |
Adds RequestContext class to filter and manage request headers for downstream service calls |
app/components/request/__init__.py |
Adds package initialization file for new request components module |
app/services/dataset/client.py |
Refactors to use HTTPClient instead of direct AsyncClient, updates imports to use collections.abc |
app/routers/v1/api_project.py |
Replaces Request parameter with RequestContext in endpoints for better header management |
app/routers/v1/api_dataset.py |
Updates imports to use modern type hints and passes HTTPClient to helper functions |
app/resources/helpers.py |
Refactors dataset functions to accept HTTPClient parameter and adds proper error propagation |
app/resources/health_check.py |
Updates redis import from aioredis to redis.asyncio |
app/resources/error_handler.py |
Capitalizes docstrings for consistency |
app/resources/dependencies.py |
Renames parameter from header to headers for clarity |
app/resources/validation_service.py |
Uses bytes literal instead of encode() for improved readability |
app/resources/authorization/decorator.py |
Updates to handle both Request and RequestContext objects, modernizes type hints |
app/models/project_models.py |
Replaces typing.Dict/List with built-in dict/list types |
app/models/file_models.py |
Improves docstring formatting and modernizes string formatting |
app/config.py |
Removes Vault configuration, updates version, adds SettingsDependency type alias |
app/main.py |
Capitalizes docstring for consistency |
tests/fixtures/request_context.py |
Adds new fixture for RequestContext in tests |
tests/fixtures/services/dataset.py |
Updates dataset_service_client fixture to use request_context |
tests/fixtures/fake.py |
Adds headers() method and changes fixture scope from session to function |
tests/conftest.py |
Registers new request_context fixture plugin |
tests/app/components/request/__init__.py |
Adds package initialization for request component tests |
tests/app/components/request/test_http_client.py |
Adds tests for HTTPClient header merging behavior |
tests/routers/v1/test_api_file.py |
Removes empty parent_path parameter from test URL |
tests/routers/v1/test_api_dataset.py |
Updates import to use collections.abc.Callable |
.github/workflows/hdc-pipeline.yml |
Adds new GitHub Actions workflow for HDC CI/CD pipeline |
.pre-commit-config.yaml |
Updates docformatter version from v1.7.5 to v1.7.7 |
.env.example |
Removes Vault-related configuration variables |
Jenkinsfile |
Removes deprecated Jenkins pipeline configuration |
README.md |
Removes trailing newline |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add the latest changes from the pilot repo.