Skip to content

Conversation

@OscarVanL
Copy link
Contributor

@OscarVanL OscarVanL commented Mar 11, 2025

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:

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.

@OscarVanL OscarVanL changed the title fix:: Correct url encoding of environment name fix: Correct url encoding of environment name Mar 11, 2025
@EnricoMi
Copy link
Collaborator

Thanks for fixing this. I think all places where we call quote should be fixed. Can you roll this fix out everywhere?

@OscarVanL
Copy link
Contributor Author

I can, but I think I will have trouble updating all the unit test cases.

@OscarVanL
Copy link
Contributor Author

@EnricoMi
I've fixed that up for other usages of quote. I skipped cases that related to commit SHAs, as they shouldn't contain any slashes anyway.

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.

@OscarVanL OscarVanL changed the title fix: Correct url encoding of environment name fix: Incorrect url encoding of strings in URLs Mar 23, 2025
Copy link
Collaborator

@JLLeitschuh JLLeitschuh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@github-actions
Copy link

github-actions bot commented Apr 9, 2025

Test Results

     8 files  ±0       8 suites  ±0   4m 49s ⏱️ -7s
 1 002 tests ±0   1 002 ✅ ±0  0 💤 ±0  0 ❌ ±0 
11 091 runs  ±0  11 090 ✅ ±0  1 💤 ±0  0 ❌ ±0 

Results for commit 3063797. ± Comparison against base commit 95f015c.

♻️ This comment has been updated with latest results.

@JLLeitschuh JLLeitschuh force-pushed the fix/3262/correct-url-escaping branch from 4340169 to cd1db86 Compare April 14, 2025 15:37
@JLLeitschuh JLLeitschuh enabled auto-merge April 14, 2025 15:38
@JLLeitschuh
Copy link
Collaborator

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 JLLeitschuh disabled auto-merge April 14, 2025 15:39
@OscarVanL
Copy link
Contributor Author

@JLLeitschuh Thanks, I ran black and fixed the end of file newlines.

@EnricoMi EnricoMi changed the title fix: Incorrect url encoding of strings in URLs Fix url encoding of strings with slashes in URLs Jul 30, 2025
@EnricoMi EnricoMi enabled auto-merge July 30, 2025 15:38
Copy link
Collaborator

@EnricoMi EnricoMi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@EnricoMi EnricoMi added this pull request to the merge queue Jul 30, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to a conflict with the base branch Jul 30, 2025
@codecov-commenter
Copy link

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 70.83333% with 7 lines in your changes missing coverage. Please review.
✅ Project coverage is 97.33%. Comparing base (fa8f9df) to head (3063797).
⚠️ Report is 19 commits behind head on main.

Files with missing lines Patch % Lines
github/Repository.py 80.95% 4 Missing ⚠️
github/Team.py 0.00% 3 Missing ⚠️
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.
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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@EnricoMi EnricoMi enabled auto-merge July 30, 2025 16:35
@EnricoMi EnricoMi added this pull request to the merge queue Jul 30, 2025
Merged via the queue into PyGithub:main with commit da73fc8 Jul 30, 2025
22 checks passed
matt-davis27 pushed a commit to matt-davis27/PyGithub that referenced this pull request Aug 22, 2025
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>
renovate bot added a commit to codegen-sh/graph-sitter that referenced this pull request Sep 28, 2025
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` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/pygithub/2.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pygithub/2.6.1/2.8.1?slim=true)](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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;EnricoMi](https://redirect.github.com/EnricoMi) in
[PyGithub/PyGithub#3201](https://redirect.github.com/PyGithub/PyGithub/pull/3201)
- Reduce test replay data by
[@&#8203;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
[@&#8203;EnricoMi](https://redirect.github.com/EnricoMi) in
[PyGithub/PyGithub#3332](https://redirect.github.com/PyGithub/PyGithub/pull/3332)
- Improve apply OpenAPI schemas by
[@&#8203;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
[@&#8203;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
[@&#8203;EnricoMi](https://redirect.github.com/EnricoMi) in
[PyGithub/PyGithub#3318](https://redirect.github.com/PyGithub/PyGithub/pull/3318)
- Fix CI OpenApi apply command by
[@&#8203;EnricoMi](https://redirect.github.com/EnricoMi) in
[PyGithub/PyGithub#3341](https://redirect.github.com/PyGithub/PyGithub/pull/3341)
- Improve OpenAPI scripts by
[@&#8203;EnricoMi](https://redirect.github.com/EnricoMi) in
[PyGithub/PyGithub#3340](https://redirect.github.com/PyGithub/PyGithub/pull/3340)
- Improve OpenAPI CI by
[@&#8203;EnricoMi](https://redirect.github.com/EnricoMi) in
[PyGithub/PyGithub#3347](https://redirect.github.com/PyGithub/PyGithub/pull/3347)
- Rework test framework by
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;EnricoMi](https://redirect.github.com/EnricoMi) in
[PyGithub/PyGithub#3357](https://redirect.github.com/PyGithub/PyGithub/pull/3357)
- Upgrade docformatter pre-commit hook by
[@&#8203;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
[@&#8203;atodorov](https://redirect.github.com/atodorov) in
[PyGithub/PyGithub#3229](https://redirect.github.com/PyGithub/PyGithub/pull/3229)
- Update docs on development by
[@&#8203;EnricoMi](https://redirect.github.com/EnricoMi) in
[PyGithub/PyGithub#3352](https://redirect.github.com/PyGithub/PyGithub/pull/3352)

#### New Contributors

- [@&#8203;chriskuehl](https://redirect.github.com/chriskuehl) made
their first contribution in
[PyGithub/PyGithub#3289](https://redirect.github.com/PyGithub/PyGithub/pull/3289)
- [@&#8203;zstyblik](https://redirect.github.com/zstyblik) made their
first contribution in
[PyGithub/PyGithub#3303](https://redirect.github.com/PyGithub/PyGithub/pull/3303)
- [@&#8203;csalerno-asml](https://redirect.github.com/csalerno-asml)
made their first contribution in
[PyGithub/PyGithub#2992](https://redirect.github.com/PyGithub/PyGithub/pull/2992)
- [@&#8203;eddie-santos](https://redirect.github.com/eddie-santos) made
their first contribution in
[PyGithub/PyGithub#3078](https://redirect.github.com/PyGithub/PyGithub/pull/3078)
- [@&#8203;aolieman](https://redirect.github.com/aolieman) made their
first contribution in
[PyGithub/PyGithub#3339](https://redirect.github.com/PyGithub/PyGithub/pull/3339)
- [@&#8203;sam93210](https://redirect.github.com/sam93210) made their
first contribution in
[PyGithub/PyGithub#3039](https://redirect.github.com/PyGithub/PyGithub/pull/3039)
- [@&#8203;mball-agathos](https://redirect.github.com/mball-agathos)
made their first contribution in
[PyGithub/PyGithub#3022](https://redirect.github.com/PyGithub/PyGithub/pull/3022)
- [@&#8203;atodorov](https://redirect.github.com/atodorov) made their
first contribution in
[PyGithub/PyGithub#3229](https://redirect.github.com/PyGithub/PyGithub/pull/3229)
- [@&#8203;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
[@&#8203;climbfuji](https://redirect.github.com/climbfuji) in
[PyGithub/PyGithub#3190](https://redirect.github.com/PyGithub/PyGithub/pull/3190)
- Apply OpenAPI spec by
[@&#8203;EnricoMi](https://redirect.github.com/EnricoMi) in
[PyGithub/PyGithub#3317](https://redirect.github.com/PyGithub/PyGithub/pull/3317)
- Add support for Sub-Issues by
[@&#8203;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
[@&#8203;EnricoMi](https://redirect.github.com/EnricoMi) in
[PyGithub/PyGithub#3204](https://redirect.github.com/PyGithub/PyGithub/pull/3204)
- Add `OrganizationInvitation` by
[@&#8203;EnricoMi](https://redirect.github.com/EnricoMi) in
[PyGithub/PyGithub#3207](https://redirect.github.com/PyGithub/PyGithub/pull/3207)
- Add and apply missing schemas by
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;lazka](https://redirect.github.com/lazka) in
[PyGithub/PyGithub#3255](https://redirect.github.com/PyGithub/PyGithub/pull/3255)
- fix(CodeScanAlert): add missing attributes by
[@&#8203;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
[@&#8203;tuchfarber](https://redirect.github.com/tuchfarber) in
[PyGithub/PyGithub#3248](https://redirect.github.com/PyGithub/PyGithub/pull/3248)
- Get collaborator role name by
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;EnricoMi](https://redirect.github.com/EnricoMi) in
[PyGithub/PyGithub#3223](https://redirect.github.com/PyGithub/PyGithub/pull/3223)
- Fix incorrect deprecated import by
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;EnricoMi](https://redirect.github.com/EnricoMi) in
[PyGithub/PyGithub#3212](https://redirect.github.com/PyGithub/PyGithub/pull/3212)
- Remove wrong schema from Repository by
[@&#8203;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
[@&#8203;EnricoMi](https://redirect.github.com/EnricoMi) in
[PyGithub/PyGithub#3221](https://redirect.github.com/PyGithub/PyGithub/pull/3221)
- Sort classes' functions by
[@&#8203;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
[@&#8203;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
[@&#8203;EnricoMi](https://redirect.github.com/EnricoMi) in
[PyGithub/PyGithub#3240](https://redirect.github.com/PyGithub/PyGithub/pull/3240)
- Sync with OpenAPI spec by
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;lazka](https://redirect.github.com/lazka) in
[PyGithub/PyGithub#3253](https://redirect.github.com/PyGithub/PyGithub/pull/3253)
- Enhance PyGithub webhook documentation by
[@&#8203;ssganesh035](https://redirect.github.com/ssganesh035) in
[PyGithub/PyGithub#3267](https://redirect.github.com/PyGithub/PyGithub/pull/3267)
- Create codeql.yml by
[@&#8203;JLLeitschuh](https://redirect.github.com/JLLeitschuh) in
[PyGithub/PyGithub#3277](https://redirect.github.com/PyGithub/PyGithub/pull/3277)
- Add schema to `TimingData` by
[@&#8203;EnricoMi](https://redirect.github.com/EnricoMi) in
[PyGithub/PyGithub#3206](https://redirect.github.com/PyGithub/PyGithub/pull/3206)
- Remove error schemas from classes by
[@&#8203;EnricoMi](https://redirect.github.com/EnricoMi) in
[PyGithub/PyGithub#3202](https://redirect.github.com/PyGithub/PyGithub/pull/3202)

#### New Contributors

- [@&#8203;ssganesh035](https://redirect.github.com/ssganesh035) made
their first contribution in
[PyGithub/PyGithub#3267](https://redirect.github.com/PyGithub/PyGithub/pull/3267)
- [@&#8203;ReenigneArcher](https://redirect.github.com/ReenigneArcher)
made their first contribution in
[PyGithub/PyGithub#3274](https://redirect.github.com/PyGithub/PyGithub/pull/3274)
- [@&#8203;climbfuji](https://redirect.github.com/climbfuji) made their
first contribution in
[PyGithub/PyGithub#3190](https://redirect.github.com/PyGithub/PyGithub/pull/3190)
- [@&#8203;tuchfarber](https://redirect.github.com/tuchfarber) made
their first contribution in
[PyGithub/PyGithub#3248](https://redirect.github.com/PyGithub/PyGithub/pull/3248)
- [@&#8203;jmgate](https://redirect.github.com/jmgate) made their first
contribution in
[PyGithub/PyGithub#3295](https://redirect.github.com/PyGithub/PyGithub/pull/3295)
- [@&#8203;gopidesupavan](https://redirect.github.com/gopidesupavan)
made their first contribution in
[PyGithub/PyGithub#3246](https://redirect.github.com/PyGithub/PyGithub/pull/3246)
- [@&#8203;kukarkinmm](https://redirect.github.com/kukarkinmm) made
their first contribution in
[PyGithub/PyGithub#3259](https://redirect.github.com/PyGithub/PyGithub/pull/3259)
- [@&#8203;mfocko](https://redirect.github.com/mfocko) made their first
contribution in
[PyGithub/PyGithub#3260](https://redirect.github.com/PyGithub/PyGithub/pull/3260)
- [@&#8203;gfog-floqast](https://redirect.github.com/gfog-floqast) made
their first contribution in
[PyGithub/PyGithub#3173](https://redirect.github.com/PyGithub/PyGithub/pull/3173)
- [@&#8203;jsmolar](https://redirect.github.com/jsmolar) made their
first contribution in
[PyGithub/PyGithub#3299](https://redirect.github.com/PyGithub/PyGithub/pull/3299)
- [@&#8203;OscarVanL](https://redirect.github.com/OscarVanL) made their
first contribution in
[PyGithub/PyGithub#3263](https://redirect.github.com/PyGithub/PyGithub/pull/3263)
- [@&#8203;alecglen](https://redirect.github.com/alecglen) made their
first contribution in
[PyGithub/PyGithub#3313](https://redirect.github.com/PyGithub/PyGithub/pull/3313)
- [@&#8203;LifeLex](https://redirect.github.com/LifeLex) made their
first contribution in
[PyGithub/PyGithub#3268](https://redirect.github.com/PyGithub/PyGithub/pull/3268)
- [@&#8203;e7217](https://redirect.github.com/e7217) made their first
contribution in
[PyGithub/PyGithub#3258](https://redirect.github.com/PyGithub/PyGithub/pull/3258)
- [@&#8203;x612skm](https://redirect.github.com/x612skm) made their
first contribution in
[PyGithub/PyGithub#3272](https://redirect.github.com/PyGithub/PyGithub/pull/3272)
- [@&#8203;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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

URL Encoding misses forward slashes in create_environment environment_name

4 participants