[Core] Base URL formatting in Ocean class to ensure trailing slashes are removed from base URLs
User description
Description
I'll break down the changes we made in a What-Why-How format:
What:
We modified the base_url property in port_ocean/ocean.py to handle trailing slashes in URLs by adding rstrip('/') to the return value. The property now returns the base URL with any trailing slashes removed.
Why:
- To prevent double slashes in webhook URLs that are constructed using this base URL
- To ensure consistent URL formatting across all integrations
How:
- We modified the return statement to:
- Add a fallback empty string (
or "") to handle None cases - Wrap the expression in parentheses for clarity
- Add
rstrip('/')to remove trailing slashes
- Add a fallback empty string (
Type of change
Please leave one option from the following and delete the rest:
- [X] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] New Integration (non-breaking change which adds a new integration)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Non-breaking change (fix of existing functionality that will not change current behavior)
- [ ] Documentation (added/updated documentation)
All tests should be run against the port production environment(using a testing org).
Core testing checklist
- [ ] Integration able to create all default resources from scratch
- [ ] Resync finishes successfully
- [ ] Resync able to create entities
- [ ] Resync able to update entities
- [ ] Resync able to detect and delete entities
- [ ] Scheduled resync able to abort existing resync and start a new one
- [ ] Tested with at least 2 integrations from scratch
- [ ] Tested with Kafka and Polling event listeners
- [ ] Tested deletion of entities that don't pass the selector
Integration testing checklist
- [ ] Integration able to create all default resources from scratch
- [ ] Resync able to create entities
- [ ] Resync able to update entities
- [ ] Resync able to detect and delete entities
- [ ] Resync finishes successfully
- [ ] If new resource kind is added or updated in the integration, add example raw data, mapping and expected result to the
examplesfolder in the integration directory. - [ ] If resource kind is updated, run the integration with the example data and check if the expected result is achieved
- [ ] If new resource kind is added or updated, validate that live-events for that resource are working as expected
- [ ] Docs PR link here
Preflight checklist
- [ ] Handled rate limiting
- [ ] Handled pagination
- [ ] Implemented the code in async
- [ ] Support Multi account
Screenshots
Include screenshots from your environment showing how the resources of the integration will look.
API Documentation
Provide links to the API documentation used for this integration.
PR Type
Bug fix
Description
-
Ensures
base_urlproperty removes trailing slashes from URLs -
Prevents double slashes in constructed webhook URLs
-
Adds fallback to empty string for missing base URL values
Changes walkthrough 📝
| Relevant files | |||
|---|---|---|---|
| Bug fix |
|
Need help?
Type /help how to ...in the comments thread for any questions about Qodo Merge usage.Check out the documentation for more information.
Qodo Merge was enabled for this repository. To continue using it, please link your Git account with your Qodo account here.
PR Reviewer Guide 🔍
Here are some key observations to aid the review process:
| ⏱️ Estimated effort to review: 1 🔵⚪⚪⚪⚪ |
| 🧪 No relevant tests |
| 🔒 No security concerns identified |
⚡ Recommended focus areas for reviewEdge Case Handling
|
Qodo Merge was enabled for this repository. To continue using it, please link your Git account with your Qodo account here.
PR Code Suggestions ✨
Explore these optional code suggestions:
| Category | Suggestion | Impact |
| Possible issue |
Handle potential None valuesThe current implementation strips trailing slashes but doesn't handle potential
Suggestion importance[1-10]: 7__ Why: The suggestion correctly points out the risk of a TypeError if | Medium |
| ||
This pull request is automatically being deployed by Amplify Hosting (learn more).
Access this pull request here: https://pr-1629.d1ftd8v2gowp8w.amplifyapp.com
Code Coverage Artifact 📈: https://github.com/port-labs/ocean/actions/runs/15024234056/artifacts/3123856837
Code Coverage Total Percentage: 80.53%