Skip to content

Conversation

@LifeLex
Copy link
Contributor

@LifeLex LifeLex commented Mar 15, 2025

This PR aims to fix a bug that occurs when a user tries to request the timing of a workflow run, the issue occurs because if the run failed because of a badly formatted ci.yml file the field run_duration_ms is not sent in the response of the API call.

As per the documentation here in the response body the field run_duration_ms is not required, see the response schema below. This field is not present in the case for example that the ci file for a workflow was badly formatted.

In the current implementation since it is accessing the dict that is the data object returned from the request to the api using square brackets if the key is not present it raises a key error.
The implementation on this branch fixes it by using .get() and setting the default to None if it does not exist in the returned dict.

The PR includes a test to simulate this behaviour

{
  "title": "Workflow Run Usage",
  "description": "Workflow Run Usage",
  "type": "object",
  "properties": {
    "billable": {
      "type": "object",
      ...
    },
    "run_duration_ms": {
      "type": "integer"
    }
  },
  "required": [
    "billable"
  ]
}

@EnricoMi EnricoMi changed the title fix: run_duration_ms raises key error when not present in response in timing Make TimingData.run_duration_ms optional Mar 17, 2025
@github-actions
Copy link

github-actions bot commented Mar 17, 2025

Test Results

     8 files  ± 0       8 suites  ±0   4m 49s ⏱️ -9s
 1 004 tests + 4   1 004 ✅ + 4  0 💤 ±0  0 ❌ ±0 
11 107 runs  +32  11 106 ✅ +32  1 💤 ±0  0 ❌ ±0 

Results for commit b78466e. ± Comparison against base commit 2d4785d.

♻️ This comment has been updated with latest results.

Co-authored-by: Enrico Minack <github@enrico.minack.dev>
@LifeLex LifeLex requested a review from EnricoMi March 17, 2025 09:58
@LifeLex
Copy link
Contributor Author

LifeLex commented Mar 23, 2025

@EnricoMi can this be merged or does it need any other change ?

Copy link
Contributor Author

@LifeLex LifeLex left a comment

Choose a reason for hiding this comment

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

@EnricoMi your requested changes have been added, I am not sure why Github is not marking them as such, could you please give it another review when you have some time ? Thank you !

@LifeLex
Copy link
Contributor Author

LifeLex commented May 8, 2025

@EnricoMi Hi ! is there anything blocking the merge of this change ?

Copy link
Contributor Author

@LifeLex LifeLex left a comment

Choose a reason for hiding this comment

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

All the requested changes have been made

@LifeLex
Copy link
Contributor Author

LifeLex commented Jul 28, 2025

@EnricoMi hey ! it's been around 2 and a half months, not sure what is left here, could we merge this PR thank you

Copy link
Contributor Author

@LifeLex LifeLex left a comment

Choose a reason for hiding this comment

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

Done

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 enabled auto-merge July 30, 2025 16:43
@EnricoMi EnricoMi added this pull request to the merge queue Jul 30, 2025
Merged via the queue into PyGithub:main with commit 131949b Jul 30, 2025
22 checks passed
matt-davis27 pushed a commit to matt-davis27/PyGithub that referenced this pull request Aug 22, 2025
This PR aims to fix a bug that occurs when a user tries to request the
timing of a workflow run, the issue occurs because if the run failed
because of a badly formatted ci.yml file the field `run_duration_ms` is
not sent in the response of the API call.

As per the documentation
[here](https://docs.github.com/en/rest/actions/workflow-runs?apiVersion=2022-11-28#get-workflow-run-usage)
in the response body the field `run_duration_ms` is not required, see
the response schema below. This field is not present in the case for
example that the ci file for a workflow was badly formatted.

In the current implementation since it is accessing the dict that is the
data object returned from the request to the api using square brackets
if the key is not present it raises a key error.
The implementation on this branch fixes it by using `.get()` and setting
the default to None if it does not exist in the returned dict.

The PR includes a test to simulate this behaviour

```json
{
  "title": "Workflow Run Usage",
  "description": "Workflow Run Usage",
  "type": "object",
  "properties": {
    "billable": {
      "type": "object",
      ...
    },
    "run_duration_ms": {
      "type": "integer"
    }
  },
  "required": [
    "billable"
  ]
}
```

---------

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.

2 participants