-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Fix url encoding of strings with slashes in URLs #3263
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
Fix url encoding of strings with slashes in URLs #3263
Conversation
|
Thanks for fixing this. I think all places where we call |
|
I can, but I think I will have trouble updating all the unit test cases. |
|
@EnricoMi I didn't add any new test cases, except of course for the updated Environments API test I originally opened this fix for. I don't have time to setup the required integrations etc to do this. Hopefully the existing tests not failing is a good indication that the change doesn't cause any regressions. Please double-check what API usages I've updated and if you're satisfied that's correct. |
JLLeitschuh
left a comment
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.
LGTM!
…SHAs (as they shouldn't contain slashes anyway)
4340169 to
cd1db86
Compare
|
It looks like some linting tasks are failing. I've rebased the branch. Can you pull the branch and fix the formatting issues? After that I'm happy to merge this. |
|
@JLLeitschuh Thanks, I ran black and fixed the end of file newlines. |
EnricoMi
left a comment
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.
LGTM!
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3263 +/- ##
==========================================
+ Coverage 95.69% 97.33% +1.64%
==========================================
Files 165 165
Lines 18475 18203 -272
==========================================
+ Hits 17679 17718 +39
+ Misses 796 485 -311 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Fixes PyGithub#3262. This changes the URL encoding function used for strings in URLs. Currently, this uses `urllib.parse.quote`, which makes an exclusion of URL-encoding the `/` character: > urllib.parse.quote(string, safe='/', encoding=None, errors=None) Replace special characters in string using the %xx escape. Letters, digits, and the characters '_.-~' are never quoted. By default, this function is intended for quoting the path section of a URL. The optional safe parameter specifies additional ASCII characters that should not be quoted — its default value is '/'. The GitHub APIs expect that `/` _should_ be URL encoded. For example, if my environment name contains `/` I get a 404 from the GitHub API. I have modified the call to remove this exclusion for the `/` character, which causes the environment name to be correctly encoded. I have updated the test cases to provide coverage for this change. --------- Co-authored-by: Enrico Minack <github@enrico.minack.dev>
Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs from Renovate will soon appear from 'Mend'. Learn more [here](https://redirect.github.com/renovatebot/renovate/discussions/37842). This PR contains the following updates: | Package | Change | Age | Confidence | |---|---|---|---| | [PyGithub](https://redirect.github.com/pygithub/pygithub) | `==2.6.1` -> `==2.8.1` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>pygithub/pygithub (PyGithub)</summary> ### [`v2.8.1`](https://redirect.github.com/PyGithub/PyGithub/releases/tag/v2.8.1) [Compare Source](https://redirect.github.com/pygithub/pygithub/compare/v2.8.0...v2.8.1) #### What's Changed ##### Bug Fixes - Use default type if known type is not supported by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3365](https://redirect.github.com/PyGithub/PyGithub/pull/3365) **Full Changelog**: <PyGithub/PyGithub@v2.8.0...v2.8.1> ### [`v2.8.0`](https://redirect.github.com/PyGithub/PyGithub/releases/tag/v2.8.0) [Compare Source](https://redirect.github.com/pygithub/pygithub/compare/v2.7.0...v2.8.0) #### What's Changed ##### New Features - Add self hosted runner management to Organization by [@​billnapier](https://redirect.github.com/billnapier) in [PyGithub/PyGithub#3203](https://redirect.github.com/PyGithub/PyGithub/pull/3203) - Add support to generate release notes by [@​mball-agathos](https://redirect.github.com/mball-agathos) in [PyGithub/PyGithub#3022](https://redirect.github.com/PyGithub/PyGithub/pull/3022) ##### Improvements - Fix connection pooling to improve connection performance by [@​chriskuehl](https://redirect.github.com/chriskuehl) in [PyGithub/PyGithub#3289](https://redirect.github.com/PyGithub/PyGithub/pull/3289) - Add `Repository.get_automated_security_fixes` method by [@​zstyblik](https://redirect.github.com/zstyblik) in [PyGithub/PyGithub#3303](https://redirect.github.com/PyGithub/PyGithub/pull/3303) - Sync `Issue` class with API spec by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3338](https://redirect.github.com/PyGithub/PyGithub/pull/3338) - Return more union classes like `NamedUser | Organization | Enterprise` by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3224](https://redirect.github.com/PyGithub/PyGithub/pull/3224) - Sync `Enterprise` class with API spec by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3342](https://redirect.github.com/PyGithub/PyGithub/pull/3342) - Sync `GitReleaseAsset` class with API spec by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3343](https://redirect.github.com/PyGithub/PyGithub/pull/3343) - Sync many class with OpenAPI spec by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3344](https://redirect.github.com/PyGithub/PyGithub/pull/3344) - Point deprecation warnings to the caller code rather than inner class by [@​xmo-odoo](https://redirect.github.com/xmo-odoo) in [PyGithub/PyGithub#3275](https://redirect.github.com/PyGithub/PyGithub/pull/3275) - Allow for repo strings in all `Team` repo methods by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3356](https://redirect.github.com/PyGithub/PyGithub/pull/3356) ##### Bug Fixes - Fix API path of `Repository.get_git_ref` by [@​csalerno-asml](https://redirect.github.com/csalerno-asml) in [PyGithub/PyGithub#2992](https://redirect.github.com/PyGithub/PyGithub/pull/2992) - Rework redirection URL allowance check by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3329](https://redirect.github.com/PyGithub/PyGithub/pull/3329) - Fix `GitRelease.name`, deprecate `GitRelease.title` by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3346](https://redirect.github.com/PyGithub/PyGithub/pull/3346) - Remove `"COMMENT"` as the default event for `create_review` by [@​eddie-santos](https://redirect.github.com/eddie-santos) in [PyGithub/PyGithub#3078](https://redirect.github.com/PyGithub/PyGithub/pull/3078) - Add support for public release assets by [@​aolieman](https://redirect.github.com/aolieman) in [PyGithub/PyGithub#3339](https://redirect.github.com/PyGithub/PyGithub/pull/3339) - Fix GitHub breaking API change of `maintainers` in `Organization.create_team` by [@​interifter](https://redirect.github.com/interifter) in [PyGithub/PyGithub#3291](https://redirect.github.com/PyGithub/PyGithub/pull/3291) ##### Maintenance - Minor fix to release.yml by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3201](https://redirect.github.com/PyGithub/PyGithub/pull/3201) - Reduce test replay data by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3243](https://redirect.github.com/PyGithub/PyGithub/pull/3243) - Add check to OpenAPI script to check doc-string verbs by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3332](https://redirect.github.com/PyGithub/PyGithub/pull/3332) - Improve apply OpenAPI schemas by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3333](https://redirect.github.com/PyGithub/PyGithub/pull/3333) - Add config to OpenAPI script to ignore schemas by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3334](https://redirect.github.com/PyGithub/PyGithub/pull/3334) - Add suggest and create method feature to OpenAPI script by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3318](https://redirect.github.com/PyGithub/PyGithub/pull/3318) - Fix CI OpenApi apply command by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3341](https://redirect.github.com/PyGithub/PyGithub/pull/3341) - Improve OpenAPI scripts by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3340](https://redirect.github.com/PyGithub/PyGithub/pull/3340) - Improve OpenAPI CI by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3347](https://redirect.github.com/PyGithub/PyGithub/pull/3347) - Rework test framework by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3271](https://redirect.github.com/PyGithub/PyGithub/pull/3271) - Some minor fixes to OpenAPI scripts by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3350](https://redirect.github.com/PyGithub/PyGithub/pull/3350) - Add manual workflow to fix auto-fixable issues by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3351](https://redirect.github.com/PyGithub/PyGithub/pull/3351) - Bump actions/download-artifact from 4 to 5 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [PyGithub/PyGithub#3330](https://redirect.github.com/PyGithub/PyGithub/pull/3330) - Use default per-page const in `PaginatedList` by [@​sam93210](https://redirect.github.com/sam93210) in [PyGithub/PyGithub#3039](https://redirect.github.com/PyGithub/PyGithub/pull/3039) - Bump actions/setup-python from 4 to 5 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [PyGithub/PyGithub#3283](https://redirect.github.com/PyGithub/PyGithub/pull/3283) - Bump actions/checkout from 3 to 5 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [PyGithub/PyGithub#3348](https://redirect.github.com/PyGithub/PyGithub/pull/3348) - Various minor OpenAPI scripts fixes by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3353](https://redirect.github.com/PyGithub/PyGithub/pull/3353) - Add union class support to OpenAPI script by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3354](https://redirect.github.com/PyGithub/PyGithub/pull/3354) - Add `github_actions` label to Maintenance section by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3357](https://redirect.github.com/PyGithub/PyGithub/pull/3357) - Upgrade docformatter pre-commit hook by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3359](https://redirect.github.com/PyGithub/PyGithub/pull/3359) - Add warning about Checks API in doc-strings by [@​atodorov](https://redirect.github.com/atodorov) in [PyGithub/PyGithub#3229](https://redirect.github.com/PyGithub/PyGithub/pull/3229) - Update docs on development by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3352](https://redirect.github.com/PyGithub/PyGithub/pull/3352) #### New Contributors - [@​chriskuehl](https://redirect.github.com/chriskuehl) made their first contribution in [PyGithub/PyGithub#3289](https://redirect.github.com/PyGithub/PyGithub/pull/3289) - [@​zstyblik](https://redirect.github.com/zstyblik) made their first contribution in [PyGithub/PyGithub#3303](https://redirect.github.com/PyGithub/PyGithub/pull/3303) - [@​csalerno-asml](https://redirect.github.com/csalerno-asml) made their first contribution in [PyGithub/PyGithub#2992](https://redirect.github.com/PyGithub/PyGithub/pull/2992) - [@​eddie-santos](https://redirect.github.com/eddie-santos) made their first contribution in [PyGithub/PyGithub#3078](https://redirect.github.com/PyGithub/PyGithub/pull/3078) - [@​aolieman](https://redirect.github.com/aolieman) made their first contribution in [PyGithub/PyGithub#3339](https://redirect.github.com/PyGithub/PyGithub/pull/3339) - [@​sam93210](https://redirect.github.com/sam93210) made their first contribution in [PyGithub/PyGithub#3039](https://redirect.github.com/PyGithub/PyGithub/pull/3039) - [@​mball-agathos](https://redirect.github.com/mball-agathos) made their first contribution in [PyGithub/PyGithub#3022](https://redirect.github.com/PyGithub/PyGithub/pull/3022) - [@​atodorov](https://redirect.github.com/atodorov) made their first contribution in [PyGithub/PyGithub#3229](https://redirect.github.com/PyGithub/PyGithub/pull/3229) - [@​interifter](https://redirect.github.com/interifter) made their first contribution in [PyGithub/PyGithub#3291](https://redirect.github.com/PyGithub/PyGithub/pull/3291) **Full Changelog**: <PyGithub/PyGithub@v2.7.0...v2.8.0> ### [`v2.7.0`](https://redirect.github.com/PyGithub/PyGithub/releases/tag/v2.7.0) [Compare Source](https://redirect.github.com/pygithub/pygithub/compare/v2.6.1...v2.7.0) #### What's Changed ##### Breaking Changes - Method `Github.get_rate_limit()` now returns `RateLimitOverview` rather than `RateLimit` ([PyGithub/PyGithub#3205](https://redirect.github.com/PyGithub/PyGithub/pull/3205)). Code like ```python gh.get_rate_limit().core.remaining ``` should be replaced with ```python gh.get_rate_limit().resources.core.remaining ``` - Method `GitTag.verification` now returns `GitCommitVerification` rather than `dict[str, Any]` ([PyGithub/PyGithub#3226](https://redirect.github.com/PyGithub/PyGithub/pull/3226)). Code like ```python tag.verification["reason"] tag.verification.get("reason") ``` should be replaced with ```python tag.verification.reason ``` ##### New Features - Add getting list of self-hosted runners of organization by [@​climbfuji](https://redirect.github.com/climbfuji) in [PyGithub/PyGithub#3190](https://redirect.github.com/PyGithub/PyGithub/pull/3190) - Apply OpenAPI spec by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3317](https://redirect.github.com/PyGithub/PyGithub/pull/3317) - Add support for Sub-Issues by [@​e7217](https://redirect.github.com/e7217) in [PyGithub/PyGithub#3258](https://redirect.github.com/PyGithub/PyGithub/pull/3258) ##### Improvements - Refactor search results into separate classes by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3204](https://redirect.github.com/PyGithub/PyGithub/pull/3204) - Add `OrganizationInvitation` by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3207](https://redirect.github.com/PyGithub/PyGithub/pull/3207) - Add and apply missing schemas by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3209](https://redirect.github.com/PyGithub/PyGithub/pull/3209) - Sync `RepositoryAdvisory` tests with OpenAPI spec by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3215](https://redirect.github.com/PyGithub/PyGithub/pull/3215) - Sync `ProjectColumn` and `ProjectCard` tests with OpenAPI spec by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3216](https://redirect.github.com/PyGithub/PyGithub/pull/3216) - Sync `CopilotSeat` class with API spec by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3232](https://redirect.github.com/PyGithub/PyGithub/pull/3232) - Sync `HookDeliverySummary` class with API spec by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3233](https://redirect.github.com/PyGithub/PyGithub/pull/3233) - Sync `RequiredPullRequestReviews` class with API spec by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3234](https://redirect.github.com/PyGithub/PyGithub/pull/3234) - Sync `RequiredStatusChecks` class with API spec by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3236](https://redirect.github.com/PyGithub/PyGithub/pull/3236) - Sync `Team` class with API spec by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3237](https://redirect.github.com/PyGithub/PyGithub/pull/3237) - Replace `deprecated.deprecated()` with `typing_extensions.deprecated()` by [@​lazka](https://redirect.github.com/lazka) in [PyGithub/PyGithub#3255](https://redirect.github.com/PyGithub/PyGithub/pull/3255) - fix(CodeScanAlert): add missing attributes by [@​ReenigneArcher](https://redirect.github.com/ReenigneArcher) in [PyGithub/PyGithub#3274](https://redirect.github.com/PyGithub/PyGithub/pull/3274) - Allow SHAs when creating PR comments by [@​tuchfarber](https://redirect.github.com/tuchfarber) in [PyGithub/PyGithub#3248](https://redirect.github.com/PyGithub/PyGithub/pull/3248) - Get collaborator role name by [@​jmgate](https://redirect.github.com/jmgate) in [PyGithub/PyGithub#3295](https://redirect.github.com/PyGithub/PyGithub/pull/3295) - Adding `prevent_self_review` property to `Repository.createEnvironment` by [@​gopidesupavan](https://redirect.github.com/gopidesupavan) in [PyGithub/PyGithub#3246](https://redirect.github.com/PyGithub/PyGithub/pull/3246) - Add `PullRequest.get_issue_timeline` method by [@​kukarkinmm](https://redirect.github.com/kukarkinmm) in [PyGithub/PyGithub#3259](https://redirect.github.com/PyGithub/PyGithub/pull/3259) - Support built-in `reversed()` on `PaginatedList` by [@​mfocko](https://redirect.github.com/mfocko) in [PyGithub/PyGithub#3260](https://redirect.github.com/PyGithub/PyGithub/pull/3260) - Relax 404 condition in `Requester` exception handling by [@​jsmolar](https://redirect.github.com/jsmolar) in [PyGithub/PyGithub#3299](https://redirect.github.com/PyGithub/PyGithub/pull/3299) - Add `delete_self_hosted_runner` to `Organization` by [@​uncleDecart](https://redirect.github.com/uncleDecart) in [PyGithub/PyGithub#3306](https://redirect.github.com/PyGithub/PyGithub/pull/3306) ##### Bug Fixes - Fix broken pickle support for `Auth` classes by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3211](https://redirect.github.com/PyGithub/PyGithub/pull/3211) - Remove schema from `Deployment`, remove `message` attribute by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3223](https://redirect.github.com/PyGithub/PyGithub/pull/3223) - Fix incorrect deprecated import by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3225](https://redirect.github.com/PyGithub/PyGithub/pull/3225) - Add `CodeSecurityConfigRepository` returned by `get_repos_for_code_security_config` by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3219](https://redirect.github.com/PyGithub/PyGithub/pull/3219) - Fix `Branch.get_required_status_checks` return type by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3235](https://redirect.github.com/PyGithub/PyGithub/pull/3235) - Adds `multi_select` and `true_false` options to `CustomProperty.value_type` by [@​gfog-floqast](https://redirect.github.com/gfog-floqast) in [PyGithub/PyGithub#3173](https://redirect.github.com/PyGithub/PyGithub/pull/3173) - Fix url encoding of strings with slashes in URLs by [@​OscarVanL](https://redirect.github.com/OscarVanL) in [PyGithub/PyGithub#3263](https://redirect.github.com/PyGithub/PyGithub/pull/3263) - Fix side-effect when removing Authorization key from headers by [@​alecglen](https://redirect.github.com/alecglen) in [PyGithub/PyGithub#3313](https://redirect.github.com/PyGithub/PyGithub/pull/3313) - Make `TimingData.run_duration_ms` optional by [@​LifeLex](https://redirect.github.com/LifeLex) in [PyGithub/PyGithub#3268](https://redirect.github.com/PyGithub/PyGithub/pull/3268) - Normalize App ID to String & Enhance JWT Issuer Verification by [@​x612skm](https://redirect.github.com/x612skm) in [PyGithub/PyGithub#3272](https://redirect.github.com/PyGithub/PyGithub/pull/3272) ##### Dependencies - Bump actions/checkout from 3 to 4 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [PyGithub/PyGithub#2754](https://redirect.github.com/PyGithub/PyGithub/pull/2754) ##### Maintenance - Mention removal of `AppAuth.private_key` in changelog by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3212](https://redirect.github.com/PyGithub/PyGithub/pull/3212) - Remove wrong schema from Repository by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3220](https://redirect.github.com/PyGithub/PyGithub/pull/3220) - Rename `HookDeliveryRequest` and `…Response` private headers fields by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3221](https://redirect.github.com/PyGithub/PyGithub/pull/3221) - Sort classes' functions by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3231](https://redirect.github.com/PyGithub/PyGithub/pull/3231) - Move all Python files to future annotations by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3241](https://redirect.github.com/PyGithub/PyGithub/pull/3241) - Fix return type of `PaginatedList[int]` by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3240](https://redirect.github.com/PyGithub/PyGithub/pull/3240) - Sync with OpenAPI spec by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3244](https://redirect.github.com/PyGithub/PyGithub/pull/3244) - Make token auth default in tests by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3242](https://redirect.github.com/PyGithub/PyGithub/pull/3242) - Add `Organization.get_repos_for_code_security_config` test by [@​billnapier](https://redirect.github.com/billnapier) in [PyGithub/PyGithub#3239](https://redirect.github.com/PyGithub/PyGithub/pull/3239) - Add Python 3.13 to CI by [@​lazka](https://redirect.github.com/lazka) in [PyGithub/PyGithub#3253](https://redirect.github.com/PyGithub/PyGithub/pull/3253) - Enhance PyGithub webhook documentation by [@​ssganesh035](https://redirect.github.com/ssganesh035) in [PyGithub/PyGithub#3267](https://redirect.github.com/PyGithub/PyGithub/pull/3267) - Create codeql.yml by [@​JLLeitschuh](https://redirect.github.com/JLLeitschuh) in [PyGithub/PyGithub#3277](https://redirect.github.com/PyGithub/PyGithub/pull/3277) - Add schema to `TimingData` by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3206](https://redirect.github.com/PyGithub/PyGithub/pull/3206) - Remove error schemas from classes by [@​EnricoMi](https://redirect.github.com/EnricoMi) in [PyGithub/PyGithub#3202](https://redirect.github.com/PyGithub/PyGithub/pull/3202) #### New Contributors - [@​ssganesh035](https://redirect.github.com/ssganesh035) made their first contribution in [PyGithub/PyGithub#3267](https://redirect.github.com/PyGithub/PyGithub/pull/3267) - [@​ReenigneArcher](https://redirect.github.com/ReenigneArcher) made their first contribution in [PyGithub/PyGithub#3274](https://redirect.github.com/PyGithub/PyGithub/pull/3274) - [@​climbfuji](https://redirect.github.com/climbfuji) made their first contribution in [PyGithub/PyGithub#3190](https://redirect.github.com/PyGithub/PyGithub/pull/3190) - [@​tuchfarber](https://redirect.github.com/tuchfarber) made their first contribution in [PyGithub/PyGithub#3248](https://redirect.github.com/PyGithub/PyGithub/pull/3248) - [@​jmgate](https://redirect.github.com/jmgate) made their first contribution in [PyGithub/PyGithub#3295](https://redirect.github.com/PyGithub/PyGithub/pull/3295) - [@​gopidesupavan](https://redirect.github.com/gopidesupavan) made their first contribution in [PyGithub/PyGithub#3246](https://redirect.github.com/PyGithub/PyGithub/pull/3246) - [@​kukarkinmm](https://redirect.github.com/kukarkinmm) made their first contribution in [PyGithub/PyGithub#3259](https://redirect.github.com/PyGithub/PyGithub/pull/3259) - [@​mfocko](https://redirect.github.com/mfocko) made their first contribution in [PyGithub/PyGithub#3260](https://redirect.github.com/PyGithub/PyGithub/pull/3260) - [@​gfog-floqast](https://redirect.github.com/gfog-floqast) made their first contribution in [PyGithub/PyGithub#3173](https://redirect.github.com/PyGithub/PyGithub/pull/3173) - [@​jsmolar](https://redirect.github.com/jsmolar) made their first contribution in [PyGithub/PyGithub#3299](https://redirect.github.com/PyGithub/PyGithub/pull/3299) - [@​OscarVanL](https://redirect.github.com/OscarVanL) made their first contribution in [PyGithub/PyGithub#3263](https://redirect.github.com/PyGithub/PyGithub/pull/3263) - [@​alecglen](https://redirect.github.com/alecglen) made their first contribution in [PyGithub/PyGithub#3313](https://redirect.github.com/PyGithub/PyGithub/pull/3313) - [@​LifeLex](https://redirect.github.com/LifeLex) made their first contribution in [PyGithub/PyGithub#3268](https://redirect.github.com/PyGithub/PyGithub/pull/3268) - [@​e7217](https://redirect.github.com/e7217) made their first contribution in [PyGithub/PyGithub#3258](https://redirect.github.com/PyGithub/PyGithub/pull/3258) - [@​x612skm](https://redirect.github.com/x612skm) made their first contribution in [PyGithub/PyGithub#3272](https://redirect.github.com/PyGithub/PyGithub/pull/3272) - [@​uncleDecart](https://redirect.github.com/uncleDecart) made their first contribution in [PyGithub/PyGithub#3306](https://redirect.github.com/PyGithub/PyGithub/pull/3306) **Full Changelog**: <PyGithub/PyGithub@v2.6.0...v2.7.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/codegen-sh/graph-sitter). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQxLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Fixes #3262.
This changes the URL encoding function used for strings in URLs. Currently, this uses
urllib.parse.quote, which makes an exclusion of URL-encoding the/character:The GitHub APIs expect that
/should be URL encoded. For example, if my environment name contains/I get a 404 from the GitHub API.I have modified the call to remove this exclusion for the
/character, which causes the environment name to be correctly encoded. I have updated the test cases to provide coverage for this change.