feat: modernize project and introduce service execution#28
Conversation
akalipetis
commented
May 14, 2026
- add service execution foundation, to execute all available services
- include a way to discover services.
- switch from Poetry/black/isort to uv/ruff
- add all authors
398fd5e to
4281ada
Compare
Deploying ergani with
|
| Latest commit: |
84b34ad
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://b65985bb.ergani.pages.dev |
| Branch Preview URL: | https://akalipetis-execute-services.ergani.pages.dev |
4281ada to
11c66ea
Compare
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Modernizes the project packaging/tooling (Poetry → uv, Black/isort → Ruff) and adds a foundation for service discovery/execution in the Ergani client.
Changes:
- Migrate packaging metadata to PEP 621
[project], adoptuvfor builds/publishing and dependency management. - Replace formatter/import tooling with Ruff and update CI/devcontainer/Docker workflows accordingly.
- Add URL normalization plus new client methods to discover/execute Ergani services.
Reviewed changes
Copilot reviewed 8 out of 10 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| pyproject.toml | Switch to PEP 621 + uv/ruff configuration and dependency groups |
| ergani/utils.py | Add base URL normalization helper |
| ergani/client.py | Apply base URL normalization; add service execution + services list endpoint |
| ergani/auth.py | Apply base URL normalization; improve JSON error handling on auth |
| Dockerfile | Switch container build/install steps from Poetry to uv |
| .github/workflows/publish.yml | Publish workflow updated to uv build/publish |
| .github/workflows/ci.yml | CI updated to uv + ruff lint/format |
| .devcontainer/devcontainer.json | Devcontainer updated to uv + Ruff tooling |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
11c66ea to
c5149eb
Compare
Add service execution foundation, to execute all available services. Also, include a way to discover services.
c5149eb to
c86163c
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 8 out of 10 changed files in this pull request and generated 4 comments.
Comments suppressed due to low confidence (1)
ergani/client.py:282
- Same URL-joining issue as above:
get_services_list()passes an endpoint with a leading/("/WebServices/ServicesList"), which becomes.../api//WebServices/ServicesListbecause_request()always inserts an extra/. Use a non-leading-slash endpoint, or strip the leading slash inside_request().
def get_services_list(self) -> Optional[Response]:
"""
Fetches the available services list from the Ergani API.
Returns:
Optional[Response]: The raw response returned by the services list endpoint.
Raises:
APIError: An error occurred while communicating with the Ergani API
AuthenticationError: Raised if there is an authentication error with the Ergani API
"""
return self._request("GET", "/WebServices/ServicesList", None)
…nction Introduce tests
1247957 to
62a3e31
Compare
bbbed84 to
546fcf2
Compare
546fcf2 to
d990d6a
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 12 out of 14 changed files in this pull request and generated 3 comments.
Comments suppressed due to low confidence (2)
pyproject.toml:17
- More tab indentation here conflicts with
.editorconfig(indent_style = space). Converting these tabs to spaces will keep formatting consistent across the repo.
classifiers = [
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
pyproject.toml:27
- This section is also indented with tabs, which conflicts with the repo’s
.editorconfig(indent_style = space). Please re-indent with spaces for consistency.
[dependency-groups]
dev = [
"mypy>=1.7.1,<2",
"ruff>=0.11.0,<0.12",
"types-requests>=2.31.0.10,<3",
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>