Skip to content

Conversation

@EnricoMi
Copy link
Collaborator

@EnricoMi EnricoMi commented Oct 21, 2024

Allows to use keys stored in key vaults providing sign-only access to keys.

Removes AppAuth.private_key and AppInstallationAuth.private_key.

Fixes #3064.

@EnricoMi EnricoMi marked this pull request as ready for review February 14, 2025 15:51
@github-actions
Copy link

github-actions bot commented Feb 14, 2025

Test Results

    7 files  ±0      7 suites  ±0   4m 18s ⏱️ -2s
  993 tests ±0    993 ✅ ±0  0 💤 ±0  0 ❌ ±0 
6 951 runs  ±0  6 950 ✅ ±0  1 💤 ±0  0 ❌ ±0 

Results for commit 6745f19. ± Comparison against base commit 9e3cf20.

♻️ This comment has been updated with latest results.

@codecov-commenter
Copy link

codecov-commenter commented Feb 14, 2025

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

Codecov Report

Attention: Patch coverage is 91.66667% with 2 lines in your changes missing coverage. Please review.

Project coverage is 95.87%. Comparing base (f23da45) to head (6745f19).
Report is 89 commits behind head on main.

Files with missing lines Patch % Lines
github/Auth.py 95.23% 1 Missing ⚠️
github/GithubIntegration.py 66.66% 1 Missing ⚠️

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3065      +/-   ##
==========================================
- Coverage   96.50%   95.87%   -0.64%     
==========================================
  Files         155      162       +7     
  Lines       15843    18067    +2224     
==========================================
+ Hits        15289    17321    +2032     
- Misses        554      746     +192     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@EnricoMi EnricoMi merged commit 36697b2 into PyGithub:main Feb 14, 2025
16 checks passed
@EnricoMi EnricoMi deleted the app-auth-sign-func branch February 14, 2025 20:16
return self._app_id

@property
def private_key(self) -> str:
Copy link
Contributor

Choose a reason for hiding this comment

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

This turned out to be a breaking change, but it's only documented in the features section of the change log…

jmertic pushed a commit to jmertic/contrib_check that referenced this pull request Feb 18, 2025
Bumps the all group with 1 update:
[pygithub](https://github.com/pygithub/pygithub).

Updates `pygithub` from 2.5.0 to 2.6.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pygithub/pygithub/releases">pygithub's
releases</a>.</em></p>
<blockquote>
<h2>v2.6.0</h2>
<h3>Breaking Changes</h3>
<ul>
<li>Rework <code>Views</code> and <code>Clones</code> by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3168">PyGithub/PyGithub#3168</a>:
View and clones traffic information returned by
<code>Repository.get_views_traffic</code> and
<code>Repository.get_clones_traffic</code>
now return proper PyGithub objects, instead of a <code>dict</code>, with
all information that used to be provided by the <code>dict</code>:</li>
</ul>
<p>Code like</p>
<pre
lang="python"><code>repo.get_views_traffic().[&quot;views&quot;].timestamp
repo.get_clones_traffic().[&quot;clones&quot;].timestamp
</code></pre>
<p>should be replaced with</p>
<pre lang="python"><code>repo.get_views_traffic().views.timestamp
repo.get_clones_traffic().clones.timestamp
</code></pre>
<ul>
<li>Fix typos by <a
href="https://github.com/kianmeng"><code>@​kianmeng</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3086">PyGithub/PyGithub#3086</a>:
Property <code>OrganizationCustomProperty.respository_id</code> renamed
to <code>OrganizationCustomProperty.repository_id</code>.</li>
</ul>
<h3>New Features</h3>
<ul>
<li>Add capability for global laziness by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/2746">PyGithub/PyGithub#2746</a></li>
<li>Add Support for GitHub Copilot Seat Management in Organizations by
<a href="https://github.com/pashafateev"><code>@​pashafateev</code></a>
in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3082">PyGithub/PyGithub#3082</a></li>
<li>Get branches where commit is head by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3083">PyGithub/PyGithub#3083</a></li>
<li>Support downloading a Release Asset by <a
href="https://github.com/neel-m"><code>@​neel-m</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3060">PyGithub/PyGithub#3060</a></li>
<li>Add <code>Repository.merge_upstream</code> method by <a
href="https://github.com/Felixoid"><code>@​Felixoid</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3175">PyGithub/PyGithub#3175</a></li>
<li>Support updating pull request draft status by <a
href="https://github.com/didot"><code>@​didot</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3104">PyGithub/PyGithub#3104</a></li>
<li>Add transfer ownership method to Repository by <a
href="https://github.com/tanannie22"><code>@​tanannie22</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3091">PyGithub/PyGithub#3091</a></li>
<li>Add enable and disable a Workflow by <a
href="https://github.com/nickrmcclorey"><code>@​nickrmcclorey</code></a>
in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3088">PyGithub/PyGithub#3088</a></li>
<li>Add support for managing Code Security Configrations by <a
href="https://github.com/billnapier"><code>@​billnapier</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3095">PyGithub/PyGithub#3095</a></li>
<li>Allow for private_key / sign function in AppAuth by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3065">PyGithub/PyGithub#3065</a></li>
</ul>
<h3>Improvements</h3>
<ul>
<li>Update RateLimit object with all the new categories GitHub added. by
<a href="https://github.com/billnapier"><code>@​billnapier</code></a> in
<a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3096">PyGithub/PyGithub#3096</a></li>
<li>Add support for make-latest to create_git_release and
create_git_tag_and_release by <a
href="https://github.com/SebastienSyd"><code>@​SebastienSyd</code></a>
in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3067">PyGithub/PyGithub#3067</a></li>
<li>Add branch protection support for
<code>required_status_checks.checks</code> object by <a
href="https://github.com/treee111"><code>@​treee111</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/2884">PyGithub/PyGithub#2884</a></li>
<li>Use id and tree_id from simple-commit to populate GitCommit.sha and
GitCommit.tree by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3167">PyGithub/PyGithub#3167</a></li>
<li>Use message of response in GithubException by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3185">PyGithub/PyGithub#3185</a></li>
<li>Sync Advisory classes with API spec by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3193">PyGithub/PyGithub#3193</a></li>
<li>Sync Branch class with API spec by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3109">PyGithub/PyGithub#3109</a></li>
<li>Sync BranchProtection class with API spec by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3110">PyGithub/PyGithub#3110</a></li>
<li>Sync CheckRunAnnotation class with API spec by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3112">PyGithub/PyGithub#3112</a></li>
<li>Sync CheckRun class with API spec by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3111">PyGithub/PyGithub#3111</a></li>
<li>Sync CheckSuite class with API spec by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3113">PyGithub/PyGithub#3113</a></li>
<li>Sync Commit class with API spec by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3116">PyGithub/PyGithub#3116</a></li>
<li>Sync CommitComment class with API spec by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3117">PyGithub/PyGithub#3117</a></li>
<li>Sync CommitStatus class with API spec by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3118">PyGithub/PyGithub#3118</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/PyGithub/PyGithub/blob/main/doc/changes.rst">pygithub's
changelog</a>.</em></p>
<blockquote>
<h2>Version 2.6.0 (February 15, 2025)</h2>
<p>Breaking Changes
^^^^^^^^^^^^^^^^</p>
<ul>
<li>
<p>Rework <code>Views</code> and <code>Clones</code>
(<code>[#3168](PyGithub/PyGithub#3168)
&lt;https://github.com/PyGithub/PyGithub/pull/3168&gt;</code><em>)
(<code>f7d52249
&lt;https://github.com/PyGithub/PyGithub/commit/f7d52249&gt;</code></em>):</p>
<p>View and clones traffic information returned by
<code>Repository.get_views_traffic</code> and
<code>Repository.get_clones_traffic</code>
now return proper PyGithub objects, instead of a <code>dict</code>, with
all information that used to be provided by the <code>dict</code>:</p>
<p>Code like</p>
<p>.. code-block:: python</p>
<p>repo.get_views_traffic().[&quot;views&quot;].timestamp
repo.get_clones_traffic().[&quot;clones&quot;].timestamp</p>
<p>should be replaced with</p>
<p>.. code-block:: python</p>
<p>repo.get_views_traffic().views.timestamp
repo.get_clones_traffic().clones.timestamp</p>
</li>
<li>
<p>Fix typos
(<code>[#3086](PyGithub/PyGithub#3086)
&lt;https://github.com/PyGithub/PyGithub/pull/3086&gt;</code><em>)
(<code>a50ae51b
&lt;https://github.com/PyGithub/PyGithub/commit/a50ae51b&gt;</code></em>):</p>
<p>Property <code>OrganizationCustomProperty.respository_id</code>
renamed to <code>OrganizationCustomProperty.repository_id</code>.</p>
</li>
</ul>
<p>New Features
^^^^^^^^^^^^</p>
<ul>
<li>Add capability for global laziness
(<code>[#2746](PyGithub/PyGithub#2746)
&lt;https://github.com/PyGithub/PyGithub/pull/2746&gt;</code><em>)
(<code>f23da453
&lt;https://github.com/PyGithub/PyGithub/commit/f23da453&gt;</code></em>)</li>
<li>Add Support for GitHub Copilot Seat Management in Organizations
(<code>[#3082](PyGithub/PyGithub#3082)
&lt;https://github.com/PyGithub/PyGithub/pull/3082&gt;</code><em>)
(<code>b5f8f078
&lt;https://github.com/PyGithub/PyGithub/commit/b5f8f078&gt;</code></em>)</li>
<li>Get branches where commit is head
(<code>[#3083](PyGithub/PyGithub#3083)
&lt;https://github.com/PyGithub/PyGithub/pull/3083&gt;</code><em>)
(<code>3d84a47a
&lt;https://github.com/PyGithub/PyGithub/commit/3d84a47a&gt;</code></em>)</li>
<li>Support downloading a Release Asset
(<code>[#3060](PyGithub/PyGithub#3060)
&lt;https://github.com/PyGithub/PyGithub/pull/3060&gt;</code><em>)
(<code>67cfdb21
&lt;https://github.com/PyGithub/PyGithub/commit/67cfdb21&gt;</code></em>)</li>
<li>Add <code>Repository.merge_upstream</code> method
(<code>[#3175](PyGithub/PyGithub#3175)
&lt;https://github.com/PyGithub/PyGithub/pull/3175&gt;</code><em>)
(<code>2f95352e
&lt;https://github.com/PyGithub/PyGithub/commit/2f95352e&gt;</code></em>)</li>
<li>Support updating pull request draft status
(<code>[#3104](PyGithub/PyGithub#3104)
&lt;https://github.com/PyGithub/PyGithub/pull/3104&gt;</code><em>)
(<code>5ec7b775
&lt;https://github.com/PyGithub/PyGithub/commit/5ec7b775&gt;</code></em>)</li>
<li>Add transfer ownership method to Repository
(<code>[#3091](PyGithub/PyGithub#3091)
&lt;https://github.com/PyGithub/PyGithub/pull/3091&gt;</code><em>)
(<code>b3ccd105
&lt;https://github.com/PyGithub/PyGithub/commit/b3ccd105&gt;</code></em>)</li>
<li>Add enable and disable a Workflow
(<code>[#3088](PyGithub/PyGithub#3088)
&lt;https://github.com/PyGithub/PyGithub/pull/3088&gt;</code><em>)
(<code>7f7d2282
&lt;https://github.com/PyGithub/PyGithub/commit/7f7d2282&gt;</code></em>)</li>
<li>Add support for managing Code Security Configurations
(<code>[#3095](PyGithub/PyGithub#3095)
&lt;https://github.com/PyGithub/PyGithub/pull/3095&gt;</code><em>)
(<code>ee5d1da3
&lt;https://github.com/PyGithub/PyGithub/commit/ee5d1da3&gt;</code></em>)</li>
<li>Allow for private_key / sign function in AppAuth
(<code>[#3065](PyGithub/PyGithub#3065)
&lt;https://github.com/PyGithub/PyGithub/pull/3065&gt;</code><em>)
(<code>36697b22
&lt;https://github.com/PyGithub/PyGithub/commit/36697b22&gt;</code></em>)</li>
<li>Add <code>GitCommitVerification</code> class
(<code>[#3028](PyGithub/PyGithub#3028)
&lt;https://github.com/PyGithub/PyGithub/pull/3028&gt;</code><em>)
(<code>822e6d71
&lt;https://github.com/PyGithub/PyGithub/commit/822e6d71&gt;</code></em>)</li>
</ul>
<p>Improvements
^^^^^^^^^^^^</p>
<ul>
<li>Update RateLimit object with all the new categories GitHub added.
(<code>[#3096](PyGithub/PyGithub#3096)
&lt;https://github.com/PyGithub/PyGithub/pull/3096&gt;</code><em>)
(<code>152429d9
&lt;https://github.com/PyGithub/PyGithub/commit/152429d9&gt;</code></em>)</li>
<li>Add support for make-latest to create_git_release and
create_git_tag_and_release
(<code>[#3067](PyGithub/PyGithub#3067)
&lt;https://github.com/PyGithub/PyGithub/pull/3067&gt;</code><em>)
(<code>8ed5635f
&lt;https://github.com/PyGithub/PyGithub/commit/8ed5635f&gt;</code></em>)</li>
<li>Add branch protection support for
<code>required_status_checks.checks</code> object
(<code>[#2884](PyGithub/PyGithub#2884)
&lt;https://github.com/PyGithub/PyGithub/pull/2884&gt;</code><em>)
(<code>764540d3
&lt;https://github.com/PyGithub/PyGithub/commit/764540d3&gt;</code></em>)</li>
<li>Use id and tree_id from simple-commit to populate GitCommit.sha and
GitCommit.tree
(<code>[#3167](PyGithub/PyGithub#3167)
&lt;https://github.com/PyGithub/PyGithub/pull/3167&gt;</code><em>)
(<code>04887640
&lt;https://github.com/PyGithub/PyGithub/commit/04887640&gt;</code></em>)</li>
<li>Use message of response in GithubException
(<code>[#3185](PyGithub/PyGithub#3185)
&lt;https://github.com/PyGithub/PyGithub/pull/3185&gt;</code><em>)
(<code>bd35f7dd
&lt;https://github.com/PyGithub/PyGithub/commit/bd35f7dd&gt;</code></em>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/e3e07d7466b4b1b9cae5b50f1a68c7db92e5cb8f"><code>e3e07d7</code></a>
Fix PyPi upload (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3200">#3200</a>)</li>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/620c83994af1201860b255e04ceb7821e0d2fe2d"><code>620c839</code></a>
Fix PyPi upload (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3199">#3199</a>)</li>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/bf98e178547db7d4e5e4c04d9deb63ff45b135d6"><code>bf98e17</code></a>
Release 2.6.0 (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3198">#3198</a>)</li>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/822e6d713da1c3ccbbfdfdb54c8d69f83f2884f2"><code>822e6d7</code></a>
Add <code>GitCommitVerification</code> class (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3028">#3028</a>)</li>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/cab8d0788dfb2824365d6eb32ccd8808ce5fb4e1"><code>cab8d07</code></a>
Add maintenance label to release.yml (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3197">#3197</a>)</li>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/6f9a2983dd31543426d3943a289f3baad414f041"><code>6f9a298</code></a>
Replace release drafter with Github release note generation (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3196">#3196</a>)</li>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/d9d93c03d1c58c76f7aa0fca009b3fecb4d23973"><code>d9d93c0</code></a>
Sync Advisory classes with API spec (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3193">#3193</a>)</li>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/6ed83964da9211184db0ce1cd9e9cb912ea12455"><code>6ed8396</code></a>
Sync Project class with API spec (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3194">#3194</a>)</li>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/882fe4493905733e921487d266ec8ab9b568a82a"><code>882fe44</code></a>
Make <code>NotSet</code> an <code>Attribute[Any]</code> (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3057">#3057</a>)</li>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/193f699152791f751e324c66ef89558be34b673f"><code>193f699</code></a>
Fix <code>Repository.get_contents</code> redirection (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3183">#3183</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pygithub/pygithub/compare/v2.5.0...v2.6.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pygithub&package-manager=pip&previous-version=2.5.0&new-version=2.6.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
jmertic pushed a commit to jmertic/lfx-landscape-tools that referenced this pull request Feb 18, 2025
Bumps the all group with 1 update:
[pygithub](https://github.com/pygithub/pygithub).

Updates `pygithub` from 2.5.0 to 2.6.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pygithub/pygithub/releases">pygithub's
releases</a>.</em></p>
<blockquote>
<h2>v2.6.0</h2>
<h3>Breaking Changes</h3>
<ul>
<li>Rework <code>Views</code> and <code>Clones</code> by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3168">PyGithub/PyGithub#3168</a>:
View and clones traffic information returned by
<code>Repository.get_views_traffic</code> and
<code>Repository.get_clones_traffic</code>
now return proper PyGithub objects, instead of a <code>dict</code>, with
all information that used to be provided by the <code>dict</code>:</li>
</ul>
<p>Code like</p>
<pre
lang="python"><code>repo.get_views_traffic().[&quot;views&quot;].timestamp
repo.get_clones_traffic().[&quot;clones&quot;].timestamp
</code></pre>
<p>should be replaced with</p>
<pre lang="python"><code>repo.get_views_traffic().views.timestamp
repo.get_clones_traffic().clones.timestamp
</code></pre>
<ul>
<li>Fix typos by <a
href="https://github.com/kianmeng"><code>@​kianmeng</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3086">PyGithub/PyGithub#3086</a>:
Property <code>OrganizationCustomProperty.respository_id</code> renamed
to <code>OrganizationCustomProperty.repository_id</code>.</li>
</ul>
<h3>New Features</h3>
<ul>
<li>Add capability for global laziness by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/2746">PyGithub/PyGithub#2746</a></li>
<li>Add Support for GitHub Copilot Seat Management in Organizations by
<a href="https://github.com/pashafateev"><code>@​pashafateev</code></a>
in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3082">PyGithub/PyGithub#3082</a></li>
<li>Get branches where commit is head by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3083">PyGithub/PyGithub#3083</a></li>
<li>Support downloading a Release Asset by <a
href="https://github.com/neel-m"><code>@​neel-m</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3060">PyGithub/PyGithub#3060</a></li>
<li>Add <code>Repository.merge_upstream</code> method by <a
href="https://github.com/Felixoid"><code>@​Felixoid</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3175">PyGithub/PyGithub#3175</a></li>
<li>Support updating pull request draft status by <a
href="https://github.com/didot"><code>@​didot</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3104">PyGithub/PyGithub#3104</a></li>
<li>Add transfer ownership method to Repository by <a
href="https://github.com/tanannie22"><code>@​tanannie22</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3091">PyGithub/PyGithub#3091</a></li>
<li>Add enable and disable a Workflow by <a
href="https://github.com/nickrmcclorey"><code>@​nickrmcclorey</code></a>
in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3088">PyGithub/PyGithub#3088</a></li>
<li>Add support for managing Code Security Configrations by <a
href="https://github.com/billnapier"><code>@​billnapier</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3095">PyGithub/PyGithub#3095</a></li>
<li>Allow for private_key / sign function in AppAuth by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3065">PyGithub/PyGithub#3065</a></li>
</ul>
<h3>Improvements</h3>
<ul>
<li>Update RateLimit object with all the new categories GitHub added. by
<a href="https://github.com/billnapier"><code>@​billnapier</code></a> in
<a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3096">PyGithub/PyGithub#3096</a></li>
<li>Add support for make-latest to create_git_release and
create_git_tag_and_release by <a
href="https://github.com/SebastienSyd"><code>@​SebastienSyd</code></a>
in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3067">PyGithub/PyGithub#3067</a></li>
<li>Add branch protection support for
<code>required_status_checks.checks</code> object by <a
href="https://github.com/treee111"><code>@​treee111</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/2884">PyGithub/PyGithub#2884</a></li>
<li>Use id and tree_id from simple-commit to populate GitCommit.sha and
GitCommit.tree by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3167">PyGithub/PyGithub#3167</a></li>
<li>Use message of response in GithubException by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3185">PyGithub/PyGithub#3185</a></li>
<li>Sync Advisory classes with API spec by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3193">PyGithub/PyGithub#3193</a></li>
<li>Sync Branch class with API spec by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3109">PyGithub/PyGithub#3109</a></li>
<li>Sync BranchProtection class with API spec by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3110">PyGithub/PyGithub#3110</a></li>
<li>Sync CheckRunAnnotation class with API spec by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3112">PyGithub/PyGithub#3112</a></li>
<li>Sync CheckRun class with API spec by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3111">PyGithub/PyGithub#3111</a></li>
<li>Sync CheckSuite class with API spec by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3113">PyGithub/PyGithub#3113</a></li>
<li>Sync Commit class with API spec by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3116">PyGithub/PyGithub#3116</a></li>
<li>Sync CommitComment class with API spec by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3117">PyGithub/PyGithub#3117</a></li>
<li>Sync CommitStatus class with API spec by <a
href="https://github.com/EnricoMi"><code>@​EnricoMi</code></a> in <a
href="https://redirect.github.com/PyGithub/PyGithub/pull/3118">PyGithub/PyGithub#3118</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/PyGithub/PyGithub/blob/main/doc/changes.rst">pygithub's
changelog</a>.</em></p>
<blockquote>
<h2>Version 2.6.0 (February 15, 2025)</h2>
<p>Breaking Changes
^^^^^^^^^^^^^^^^</p>
<ul>
<li>
<p>Rework <code>Views</code> and <code>Clones</code>
(<code>[#3168](PyGithub/PyGithub#3168)
&lt;https://github.com/PyGithub/PyGithub/pull/3168&gt;</code><em>)
(<code>f7d52249
&lt;https://github.com/PyGithub/PyGithub/commit/f7d52249&gt;</code></em>):</p>
<p>View and clones traffic information returned by
<code>Repository.get_views_traffic</code> and
<code>Repository.get_clones_traffic</code>
now return proper PyGithub objects, instead of a <code>dict</code>, with
all information that used to be provided by the <code>dict</code>:</p>
<p>Code like</p>
<p>.. code-block:: python</p>
<p>repo.get_views_traffic().[&quot;views&quot;].timestamp
repo.get_clones_traffic().[&quot;clones&quot;].timestamp</p>
<p>should be replaced with</p>
<p>.. code-block:: python</p>
<p>repo.get_views_traffic().views.timestamp
repo.get_clones_traffic().clones.timestamp</p>
</li>
<li>
<p>Fix typos
(<code>[#3086](PyGithub/PyGithub#3086)
&lt;https://github.com/PyGithub/PyGithub/pull/3086&gt;</code><em>)
(<code>a50ae51b
&lt;https://github.com/PyGithub/PyGithub/commit/a50ae51b&gt;</code></em>):</p>
<p>Property <code>OrganizationCustomProperty.respository_id</code>
renamed to <code>OrganizationCustomProperty.repository_id</code>.</p>
</li>
</ul>
<p>New Features
^^^^^^^^^^^^</p>
<ul>
<li>Add capability for global laziness
(<code>[#2746](PyGithub/PyGithub#2746)
&lt;https://github.com/PyGithub/PyGithub/pull/2746&gt;</code><em>)
(<code>f23da453
&lt;https://github.com/PyGithub/PyGithub/commit/f23da453&gt;</code></em>)</li>
<li>Add Support for GitHub Copilot Seat Management in Organizations
(<code>[#3082](PyGithub/PyGithub#3082)
&lt;https://github.com/PyGithub/PyGithub/pull/3082&gt;</code><em>)
(<code>b5f8f078
&lt;https://github.com/PyGithub/PyGithub/commit/b5f8f078&gt;</code></em>)</li>
<li>Get branches where commit is head
(<code>[#3083](PyGithub/PyGithub#3083)
&lt;https://github.com/PyGithub/PyGithub/pull/3083&gt;</code><em>)
(<code>3d84a47a
&lt;https://github.com/PyGithub/PyGithub/commit/3d84a47a&gt;</code></em>)</li>
<li>Support downloading a Release Asset
(<code>[#3060](PyGithub/PyGithub#3060)
&lt;https://github.com/PyGithub/PyGithub/pull/3060&gt;</code><em>)
(<code>67cfdb21
&lt;https://github.com/PyGithub/PyGithub/commit/67cfdb21&gt;</code></em>)</li>
<li>Add <code>Repository.merge_upstream</code> method
(<code>[#3175](PyGithub/PyGithub#3175)
&lt;https://github.com/PyGithub/PyGithub/pull/3175&gt;</code><em>)
(<code>2f95352e
&lt;https://github.com/PyGithub/PyGithub/commit/2f95352e&gt;</code></em>)</li>
<li>Support updating pull request draft status
(<code>[#3104](PyGithub/PyGithub#3104)
&lt;https://github.com/PyGithub/PyGithub/pull/3104&gt;</code><em>)
(<code>5ec7b775
&lt;https://github.com/PyGithub/PyGithub/commit/5ec7b775&gt;</code></em>)</li>
<li>Add transfer ownership method to Repository
(<code>[#3091](PyGithub/PyGithub#3091)
&lt;https://github.com/PyGithub/PyGithub/pull/3091&gt;</code><em>)
(<code>b3ccd105
&lt;https://github.com/PyGithub/PyGithub/commit/b3ccd105&gt;</code></em>)</li>
<li>Add enable and disable a Workflow
(<code>[#3088](PyGithub/PyGithub#3088)
&lt;https://github.com/PyGithub/PyGithub/pull/3088&gt;</code><em>)
(<code>7f7d2282
&lt;https://github.com/PyGithub/PyGithub/commit/7f7d2282&gt;</code></em>)</li>
<li>Add support for managing Code Security Configurations
(<code>[#3095](PyGithub/PyGithub#3095)
&lt;https://github.com/PyGithub/PyGithub/pull/3095&gt;</code><em>)
(<code>ee5d1da3
&lt;https://github.com/PyGithub/PyGithub/commit/ee5d1da3&gt;</code></em>)</li>
<li>Allow for private_key / sign function in AppAuth
(<code>[#3065](PyGithub/PyGithub#3065)
&lt;https://github.com/PyGithub/PyGithub/pull/3065&gt;</code><em>)
(<code>36697b22
&lt;https://github.com/PyGithub/PyGithub/commit/36697b22&gt;</code></em>)</li>
<li>Add <code>GitCommitVerification</code> class
(<code>[#3028](PyGithub/PyGithub#3028)
&lt;https://github.com/PyGithub/PyGithub/pull/3028&gt;</code><em>)
(<code>822e6d71
&lt;https://github.com/PyGithub/PyGithub/commit/822e6d71&gt;</code></em>)</li>
</ul>
<p>Improvements
^^^^^^^^^^^^</p>
<ul>
<li>Update RateLimit object with all the new categories GitHub added.
(<code>[#3096](PyGithub/PyGithub#3096)
&lt;https://github.com/PyGithub/PyGithub/pull/3096&gt;</code><em>)
(<code>152429d9
&lt;https://github.com/PyGithub/PyGithub/commit/152429d9&gt;</code></em>)</li>
<li>Add support for make-latest to create_git_release and
create_git_tag_and_release
(<code>[#3067](PyGithub/PyGithub#3067)
&lt;https://github.com/PyGithub/PyGithub/pull/3067&gt;</code><em>)
(<code>8ed5635f
&lt;https://github.com/PyGithub/PyGithub/commit/8ed5635f&gt;</code></em>)</li>
<li>Add branch protection support for
<code>required_status_checks.checks</code> object
(<code>[#2884](PyGithub/PyGithub#2884)
&lt;https://github.com/PyGithub/PyGithub/pull/2884&gt;</code><em>)
(<code>764540d3
&lt;https://github.com/PyGithub/PyGithub/commit/764540d3&gt;</code></em>)</li>
<li>Use id and tree_id from simple-commit to populate GitCommit.sha and
GitCommit.tree
(<code>[#3167](PyGithub/PyGithub#3167)
&lt;https://github.com/PyGithub/PyGithub/pull/3167&gt;</code><em>)
(<code>04887640
&lt;https://github.com/PyGithub/PyGithub/commit/04887640&gt;</code></em>)</li>
<li>Use message of response in GithubException
(<code>[#3185](PyGithub/PyGithub#3185)
&lt;https://github.com/PyGithub/PyGithub/pull/3185&gt;</code><em>)
(<code>bd35f7dd
&lt;https://github.com/PyGithub/PyGithub/commit/bd35f7dd&gt;</code></em>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/e3e07d7466b4b1b9cae5b50f1a68c7db92e5cb8f"><code>e3e07d7</code></a>
Fix PyPi upload (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3200">#3200</a>)</li>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/620c83994af1201860b255e04ceb7821e0d2fe2d"><code>620c839</code></a>
Fix PyPi upload (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3199">#3199</a>)</li>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/bf98e178547db7d4e5e4c04d9deb63ff45b135d6"><code>bf98e17</code></a>
Release 2.6.0 (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3198">#3198</a>)</li>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/822e6d713da1c3ccbbfdfdb54c8d69f83f2884f2"><code>822e6d7</code></a>
Add <code>GitCommitVerification</code> class (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3028">#3028</a>)</li>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/cab8d0788dfb2824365d6eb32ccd8808ce5fb4e1"><code>cab8d07</code></a>
Add maintenance label to release.yml (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3197">#3197</a>)</li>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/6f9a2983dd31543426d3943a289f3baad414f041"><code>6f9a298</code></a>
Replace release drafter with Github release note generation (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3196">#3196</a>)</li>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/d9d93c03d1c58c76f7aa0fca009b3fecb4d23973"><code>d9d93c0</code></a>
Sync Advisory classes with API spec (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3193">#3193</a>)</li>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/6ed83964da9211184db0ce1cd9e9cb912ea12455"><code>6ed8396</code></a>
Sync Project class with API spec (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3194">#3194</a>)</li>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/882fe4493905733e921487d266ec8ab9b568a82a"><code>882fe44</code></a>
Make <code>NotSet</code> an <code>Attribute[Any]</code> (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3057">#3057</a>)</li>
<li><a
href="https://github.com/PyGithub/PyGithub/commit/193f699152791f751e324c66ef89558be34b673f"><code>193f699</code></a>
Fix <code>Repository.get_contents</code> redirection (<a
href="https://redirect.github.com/pygithub/pygithub/issues/3183">#3183</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pygithub/pygithub/compare/v2.5.0...v2.6.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pygithub&package-manager=pip&previous-version=2.5.0&new-version=2.6.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
EnricoMi added a commit that referenced this pull request Feb 21, 2025
With #3065 we broke pickling as it introduced a lambda into an `Auth` instance.

This adds tests for all `Auth` implementations to work with pickle.

Fixes #3208.
EnricoMi added a commit that referenced this pull request Feb 21, 2025
With #3065 we broke pickling as it introduced a lambda into an `Auth` instance.

This adds tests for all `Auth` implementations to work with pickle.

Fixes #3208.
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.

Support "generic" JWT creation instead of explicit private key for AppAuth

3 participants