-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feat api testing with devzery #6765
Feat api testing with devzery #6765
Conversation
fix: package version update
* fix: issue activity for project id validation (makeplane#6668) * fix: work item attachment count mutation (makeplane#6670) * updated the action to modify the release build assets (makeplane#6669) * feat: russian translation (makeplane#6666) * chore: ru translation updated (makeplane#6672) * fix: state drop down refactor * fix: intake work item creation refactor * fix: cleanup for deprecated functions * fix: date range picker on cycles and modules list (makeplane#6676) * fix: Handled workspace switcher closing on click * fix: replaced date range picker with date picker at some places * chore: add common translation keys (makeplane#6688) * chore: add missing translation keys * chore: add russian translation keys * fix: issue activity task (makeplane#6689) * changed github workflow action ubuntu version to `ubuntu-22.04` (makeplane#6683) * chore: update russian translation (makeplane#6682) * chore: update russian translation * chore: rename issues to work items in russian translation * [PE-275] chore: editor line spacing variables (makeplane#6678) * chore: variable editor line spacing * chore: variable list spacing --------- Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com> * [WEB-3475] fix: cycle dates dropdown (makeplane#6690) * fix: Handled workspace switcher closing on click * fix: Cycle date picker * fix: Made onSelect optional in range range component * fix: module date picker (makeplane#6691) * fix: Handled workspace switcher closing on click * fix: reverted module date picker changes * chore: extended sidebar improvement (makeplane#6693) * feat: italian translations (makeplane#6692) * Create translations.json - ITALIAN translation (makeplane#6667) * chore: italian translation updated * feat: italian translation added * fix: module end date translation --------- Co-authored-by: Nicolas Bossi <nicolasbossi@gmail.com> Co-authored-by: gakshita <akshitagoyal1516@gmail.com> * fix: attachment item created by (makeplane#6695) * fix: module flicker issue on property updation (makeplane#6699) * [WEB-3477] fix: mutation issue on moving work items for a manually ended cycle (makeplane#6696) * fix: package version update * fix: esbuild version fix * fix: package license repliation * [WEB-3488] improvement: assignee validation for work item creation (makeplane#6701) * fix: work item assignee update validation (makeplane#6704) --------- Co-authored-by: Nikhil <118773738+pablohashescobar@users.noreply.github.com> Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com> Co-authored-by: Manish Gupta <59428681+mguptahub@users.noreply.github.com> Co-authored-by: Nikita Mitasov <32384814+ch4og@users.noreply.github.com> Co-authored-by: Akshita Goyal <36129505+gakshita@users.noreply.github.com> Co-authored-by: Aaryan Khandelwal <65252264+aaryan610@users.noreply.github.com> Co-authored-by: Akshat Jain <akshatjain9782@gmail.com> Co-authored-by: Lakhan Baheti <94619783+1akhanBaheti@users.noreply.github.com> Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com> Co-authored-by: Nicolas Bossi <nicolasbossi@gmail.com> Co-authored-by: gakshita <akshitagoyal1516@gmail.com> Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
|
WalkthroughThe pull request introduces two new configuration variables, Changes
Sequence Diagram(s)sequenceDiagram
participant C as Client
participant MW as DevzeryMiddleware
participant V as View
C->>MW: Send Request
MW->>V: Process Request
V->>MW: Return Response
MW->>C: Send Response
Poem
Tip ⚡🧪 Multi-step agentic review comment chat (experimental)
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (1)
apiserver/plane/settings/common.py (1)
66-71
: Include documentation for the Devzery integration.The PR adds new middleware and configuration but doesn't include documentation explaining what Devzery does, why it's being added, or how it should be configured.
Consider adding comments explaining:
- The purpose of the Devzery integration
- Documentation link for the package
- Configuration requirements
- Impact on the application's behavior
For example:
+# Devzery Integration +# This middleware enables API observability and monitoring using Devzery +# See: https://devzery.com/docs for more information DEVZERY_API_KEY = os.environ.get("DEVZERY_API_KEY", "") DEVZERY_SERVER_NAME = os.environ.get("DEVZERY_SERVER_NAME", "")
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
apiserver/plane/settings/common.py
(1 hunks)apiserver/requirements/base.txt
(1 hunks)
🔇 Additional comments (2)
apiserver/requirements/base.txt (1)
70-70
:❓ Verification inconclusive
Verify the Devzery package version.
The PR introduces
devzery==0.1.0
as a new dependency. Note that version 0.1.0 typically indicates an early development stage of a package, which might lack stability or comprehensive documentation.
🌐 Web query:
What is the latest version of the devzery Python package and its stability status?
💡 Result:
Based on the provided search results, there's no direct mention of a Python package named "devzery" in PyPI or standard packaging resources. However, Devzery appears to be a software testing platform that offers SDKs for multiple languages including Python[13][17].
Key findings about Devzery's Python integration:
SDK Availability:
- Devzery provides a Python SDK as part of its middleware solution for API testing automation[13][17]
- Installation instructions show usage of standard Python packaging tools:
pip install mpire # Example from their testing tools[11]
Release Status:
While specific version numbers aren't listed in the search results, Devzery's documentation shows active maintenance as of:
- September 2024 references in testing guides[11]
- December 2024 articles about API testing[18]
Stability Indicators:
The platform demonstrates production-ready characteristics through:
- CI/CD integration capabilities[17]
- Security-focused testing features[18]
- Active development shown by multiple 2024-dated references[11][13][18]
For the most current version information, you would need to check either:
- PyPI directly (
pip show devzery
)- Devzery's official Python SDK documentation[13]
- Their GitHub repositories[15]
The search results suggest Devzery maintains modern Python compatibility, with examples using Python 3.12 syntax and type hints[11][13].
Citations:
- 1: https://www.python.org/downloads/
- 2: https://packaging.python.org/en/latest/discussions/downstream-packaging/
- 3: https://pyoxidizer.readthedocs.io/en/stable/pyoxidizer_packaging_python_files.html
- 4: https://devguide.python.org/versions/
- 5: https://packaging.pypa.io/en/stable/version.html
- 6: https://github.com/Stability-AI/stability-sdk-ab
- 7: https://packaging.python.org/en/latest/guides/writing-pyproject-toml/
- 8: https://www.activestate.com/resources/quick-reads/python-packages/
- 9: https://py-pkgs.org/07-releasing-versioning.html
- 10: https://realpython.com/python-package-quality/
- 11: https://www.devzery.com/post/simplify-python-multiprocessing-with-mpire-a-guide
- 12: https://docs.python.org/3/whatsnew/3.9.html
- 13: https://www.devzery.com/sdk
- 14: https://platform.stability.ai/docs/legacy/python-grpc-sdk
- 15: https://github.com/devzery/devzery-ui-testcase-generator
- 16: https://chriswarrick.com/blog/2024/01/15/python-packaging-one-year-later/
- 17: https://www.devzery.com
- 18: https://www.devzery.com/post/mastering-rate-limit-testing-apis-a-complete-guide
- 19: https://pypi.org/project/python-dev-tools/
- 20: https://docs.python.org/3/whatsnew/3.13.html
Action Required: Verify the Correct Devzery Dependency Version
Based on our web search, there is no official PyPI package named “devzery”, and the available documentation points to Devzery offering a Python SDK as part of a testing platform rather than a directly published package. The current use of
devzery==0.1.0
appears to be a placeholder, and it’s not clear if this version correctly reflects a stable, production-ready release.
- Please confirm whether this dependency is meant to reference an internal package or if it should be installed from a non-PyPI source (e.g., directly via a VCS URL or an alternative repository).
- Verify the intended package name and version through the official Devzery documentation or repository.
- Ensure that the version specified aligns with the stable version provided by Devzery if available.
apiserver/plane/settings/common.py (1)
66-66
:❓ Verification inconclusive
Confirm middleware placement and impact.
Adding the Devzery middleware to the end of the MIDDLEWARE list will affect the request/response processing order. In Django, middleware ordering matters - the request passes through middleware from top to bottom, and the response passes through from bottom to top.
🏁 Script executed:
#!/bin/bash # Check documentation for this middleware to understand its requirements pip install devzery==0.1.0 || true python -c "import devzery; help(devzery.django.middleware)" 2>/dev/null || echo "No middleware documentation available" # Check if other projects implement this middleware and how they configure it rg -A 2 -B 2 "DevzeryDjangoMiddleware" --type pyLength of output: 1827
Verify Middleware Order Impact
The DevzeryDjangoMiddleware is being added as the last middleware in the list, meaning it will process responses first and requests last—consistent with Django’s middleware behavior. However, note that the middleware’s documentation wasn’t available via the installation check, and our repository search shows its standard placement without additional context. Please confirm that this ordering aligns with your intended request/response processing logic, and consider verifying its behavior through additional testing or by reviewing its implementation if any ordering dependencies exist.
- Location:
apiserver/plane/settings/common.py
(middleware added at the end)- Impact: Request processing flows top-to-bottom and responses bottom-to-top; ensure this placement doesn’t inadvertently affect behavior relative to other middleware.
DEVZERY_API_KEY = "" # Replace with your Devzery API key | ||
DEVZERY_SERVER_NAME = "" # Replace with an identifier for your microservice | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Environment variables should be used for the Devzery credentials.
Currently, the Devzery API key and server name are hardcoded as empty strings with comments to replace them. For security best practices:
- These values should be loaded from environment variables rather than hardcoded
- API keys should never be committed to version control
- This follows the pattern used for other sensitive values in this file
-DEVZERY_API_KEY = "" # Replace with your Devzery API key
-DEVZERY_SERVER_NAME = "" # Replace with an identifier for your microservice
+DEVZERY_API_KEY = os.environ.get("DEVZERY_API_KEY", "")
+DEVZERY_SERVER_NAME = os.environ.get("DEVZERY_SERVER_NAME", "")
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
DEVZERY_API_KEY = "" # Replace with your Devzery API key | |
DEVZERY_SERVER_NAME = "" # Replace with an identifier for your microservice | |
DEVZERY_API_KEY = os.environ.get("DEVZERY_API_KEY", "") | |
DEVZERY_SERVER_NAME = os.environ.get("DEVZERY_SERVER_NAME", "") |
We're closing this PR as devzery does not meet the open source standards we maintain for this repository. Our community repository does not rely on proprietary applications, and we need to ensure all contributions align with this principle. Thank you for your interest in contributing. If you'd like to make future contributions that align with our open source standards, we welcome your participation. |
This pull request introduces a new middleware to integrate Devzery into the project. The most important changes include adding the
DevzeryDjangoMiddleware
to the middleware settings and including thedevzery
package in the project dependencies.Integration with Devzery:
apiserver/plane/settings/common.py
: AddedDevzeryDjangoMiddleware
to the middleware list and included placeholders forDEVZERY_API_KEY
andDEVZERY_SERVER_NAME
settings.apiserver/requirements/base.txt
: Addeddevzery==0.1.0
to the list of project dependencies.Description
Type of Change
Screenshots and Media (if applicable)
Test Scenarios
Ran Plane and tested out the APIs if they are working fine with Devzery
References
Summary by CodeRabbit