Skip to content

feat: drop projects-classic endpoints, add GitHub API endpoints: cache limits (retention & storage) for repos/orgs/enterprises, billing budgets & usage, artifacts deployment metadata, and projectsV2 drafts & fields#518

Merged
wolfy1339 merged 8 commits intomainfrom
update
Dec 9, 2025

Conversation

@octokit
Copy link
Contributor

@octokit octokit bot commented Nov 19, 2025

I found new changes in GitHub's official OpenAPI specifications and thought I'd let you know about it 👋🤖

I can't tell if the changes include fixes, features, breaking changes or just cache updates, you'll have to figure that out on yourself and adapt the commit messages accordingly to trigger the right release, see our commit message conventions.

@octokit
Copy link
Contributor Author

octokit bot commented Nov 19, 2025

👋 Hi! Thank you for this contribution! Just to let you know, our GitHub SDK team does a round of issue and PR reviews twice a week, every Monday and Friday! We have a process in place for prioritizing and responding to your input. Because you are a part of this community please feel free to comment, add to, or pick up any issues/PRs that are labeled with Status: Up for grabs. You & others like you are the reason all of this works! So thank you & happy coding! 🚀

@wolfy1339
Copy link
Member

wolfy1339 commented Nov 19, 2025

==                            API CHANGE LOG                            ==
==========================================================================
            GitHub's official OpenAPI spec + Octokit extension            
--------------------------------------------------------------------------
--                              What's New                              --
--------------------------------------------------------------------------
- GET    /enterprises/{enterprise}/actions/cache/retention-limit
- PUT    /enterprises/{enterprise}/actions/cache/retention-limit
- GET    /enterprises/{enterprise}/actions/cache/storage-limit
- PUT    /enterprises/{enterprise}/actions/cache/storage-limit
- GET    /organizations/{org}/actions/cache/retention-limit
- PUT    /organizations/{org}/actions/cache/retention-limit
- GET    /organizations/{org}/actions/cache/storage-limit
- PUT    /organizations/{org}/actions/cache/storage-limit
- GET    /organizations/{org}/settings/billing/budgets
- GET    /organizations/{org}/settings/billing/budgets/{budget_id}
- DELETE /organizations/{org}/settings/billing/budgets/{budget_id}
- PATCH  /organizations/{org}/settings/billing/budgets/{budget_id}
- GET    /organizations/{org}/settings/billing/usage/summary
- POST   /orgs/{org}/artifacts/metadata/deployment-record
- POST   /orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}
- GET    /orgs/{org}/artifacts/{subject_digest}/metadata/deployment-records
- POST   /orgs/{org}/projectsV2/{project_number}/drafts
- GET    /repos/{owner}/{repo}/actions/cache/retention-limit
- PUT    /repos/{owner}/{repo}/actions/cache/retention-limit
- GET    /repos/{owner}/{repo}/actions/cache/storage-limit
- PUT    /repos/{owner}/{repo}/actions/cache/storage-limit
- POST   /user/{user_id}/projectsV2/{project_number}/drafts
- GET    /users/{username}/settings/billing/usage/summary
- POST   /orgs/{org}/projectsV2/{project_number}/fields
- POST   /users/{username}/projectsV2/{project_number}/fields

--------------------------------------------------------------------------
--                            What's Deleted                            --
--------------------------------------------------------------------------
- GET    /orgs/{org}/projects
- POST   /orgs/{org}/projects
- GET    /orgs/{org}/settings/billing/actions
- GET    /orgs/{org}/settings/billing/packages
- GET    /orgs/{org}/settings/billing/shared-storage
- GET    /orgs/{org}/teams/{team_slug}/projects
- GET    /orgs/{org}/teams/{team_slug}/projects/{project_id}
- PUT    /orgs/{org}/teams/{team_slug}/projects/{project_id}
- DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}
- GET    /projects/columns/{column_id}
- DELETE /projects/columns/{column_id}
- PATCH  /projects/columns/{column_id}
- POST   /projects/columns/{column_id}/moves
- GET    /projects/{project_id}
- DELETE /projects/{project_id}
- PATCH  /projects/{project_id}
- GET    /projects/{project_id}/collaborators
- PUT    /projects/{project_id}/collaborators/{username}
- DELETE /projects/{project_id}/collaborators/{username}
- GET    /projects/{project_id}/collaborators/{username}/permission
- GET    /repos/{owner}/{repo}/projects
- POST   /repos/{owner}/{repo}/projects
- GET    /teams/{team_id}/projects
- GET    /teams/{team_id}/projects/{project_id}
- PUT    /teams/{team_id}/projects/{project_id}
- DELETE /teams/{team_id}/projects/{project_id}
- POST   /user/projects
- GET    /users/{username}/projects
- GET    /users/{username}/settings/billing/actions
- GET    /users/{username}/settings/billing/packages
- GET    /users/{username}/settings/billing/shared-storage

--------------------------------------------------------------------------
--                            What's Changed                            --
--------------------------------------------------------------------------
- POST   /orgs/{org}/artifacts/metadata/storage-record
  Request:
        - Changed application/json
          Schema: Backward compatible
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- GET    /orgs/{org}/private-registries
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- POST   /orgs/{org}/private-registries
  Request:
        - Changed application/json
          Schema: Backward compatible
  Return Type:
    - Changed 201 Created
      Media types:
        - Changed application/json
          Schema: Backward compatible
- GET    /orgs/{org}/private-registries/{secret_name}
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- PATCH  /orgs/{org}/private-registries/{secret_name}
  Request:
        - Changed application/json
          Schema: Backward compatible
- GET    /orgs/{org}/properties/schema
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
- PATCH  /orgs/{org}/properties/schema
  Request:
        - Changed application/json
          Schema: Backward compatible
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
- GET    /orgs/{org}/properties/schema/{custom_property_name}
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
- PUT    /orgs/{org}/properties/schema/{custom_property_name}
  Request:
        - Changed application/json
          Schema: Backward compatible
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
- GET    /app/installations/{installation_id}
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- GET    /events
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type: [n].payload (object -> object)
- GET    /networks/{owner}/{repo}/events
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type: [n].payload (object -> object)
- GET    /orgs/{org}/events
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type: [n].payload (object -> object)
- GET    /orgs/{org}/installation
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- GET    /orgs/{org}/installations
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- GET    /orgs/{org}/projectsV2/{project_number}/fields
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- POST   /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses
  Request:
        - Changed application/json
          Schema: Backward compatible
  Return Type:
    - Changed 201 Created
      Media types:
        - Changed application/json
          Schema: Broken compatibility
- GET    /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
- GET    /repos/{owner}/{repo}/commits
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type: [n].commit.author.date (string -> string)
- GET    /repos/{owner}/{repo}/commits/{ref}
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type: commit.author.date (string -> string)
- GET    /repos/{owner}/{repo}/events
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type: [n].payload (object -> object)
- GET    /repos/{owner}/{repo}/installation
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- POST   /repos/{owner}/{repo}/merges
  Return Type:
    - Changed 201 Created
      Media types:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type: commit.author.date (string -> string)
- GET    /repos/{owner}/{repo}/pulls/{pull_number}/commits
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type: [n].commit.author.date (string -> string)
- GET    /user/installations
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- GET    /users/{username}/events
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type: [n].payload (object -> object)
- GET    /users/{username}/events/orgs/{org}
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type: [n].payload (object -> object)
- GET    /users/{username}/events/public
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type: [n].payload (object -> object)
- GET    /users/{username}/installation
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- GET    /users/{username}/projectsV2/{project_number}/fields
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- GET    /users/{username}/received_events
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type: [n].payload (object -> object)
- GET    /users/{username}/received_events/public
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type: [n].payload (object -> object)
- POST   /app/installations/{installation_id}/access_tokens
  Request:
        - Changed application/json
          Schema: Backward compatible
  Return Type:
    - Changed 201 Created
      Media types:
        - Changed application/json
          Schema: Backward compatible
- POST   /applications/{client_id}/token
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- PATCH  /applications/{client_id}/token
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- POST   /applications/{client_id}/token/scoped
  Request:
        - Changed application/json
          Schema: Backward compatible
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- GET    /enterprises/{enterprise}/dependabot/alerts
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- GET    /orgs/{org}/dependabot/alerts
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- GET    /orgs/{org}/secret-scanning/alerts
  Parameter:
    - Add assignee in query
- PATCH  /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}
  Request:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type:  (object -> object)
- GET    /repos/{owner}/{repo}/compare/{basehead}
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type: base_commit.commit.author.date (string -> string)
- GET    /repos/{owner}/{repo}/dependabot/alerts
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- GET    /repos/{owner}/{repo}/dependabot/alerts/{alert_number}
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- PATCH  /repos/{owner}/{repo}/dependabot/alerts/{alert_number}
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- GET    /repos/{owner}/{repo}/issues/comments
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
- GET    /repos/{owner}/{repo}/issues/comments/{comment_id}
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
- PATCH  /repos/{owner}/{repo}/issues/comments/{comment_id}
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
- GET    /repos/{owner}/{repo}/issues/{issue_number}/comments
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
- POST   /repos/{owner}/{repo}/issues/{issue_number}/comments
  Return Type:
    - Changed 201 Created
      Media types:
        - Changed application/json
          Schema: Broken compatibility
- GET    /repos/{owner}/{repo}/secret-scanning/alerts
  Parameter:
    - Add assignee in query
- PATCH  /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}
  Request:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type:  (object -> object)
  Return Type:
    - Changed 422 Unprocessable Entity
      Media types:
- GET    /search/commits
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type: items[n].commit.committer.date (string -> string)
- GET    /repos/{owner}/{repo}/compare/{base}...{head}
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type: base_commit.commit.author.date (string -> string)
- GET    /orgs/{org}/rulesets
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- POST   /orgs/{org}/rulesets
  Request:
        - Changed application/json
          Schema: Backward compatible
  Return Type:
    - Changed 201 Created
      Media types:
        - Changed application/json
          Schema: Backward compatible
- GET    /orgs/{org}/rulesets/{ruleset_id}
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- PUT    /orgs/{org}/rulesets/{ruleset_id}
  Request:
        - Changed application/json
          Schema: Backward compatible
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- GET    /repos/{owner}/{repo}/rulesets
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- POST   /repos/{owner}/{repo}/rulesets
  Request:
        - Changed application/json
          Schema: Backward compatible
  Return Type:
    - Changed 201 Created
      Media types:
        - Changed application/json
          Schema: Backward compatible
- GET    /repos/{owner}/{repo}/rulesets/{ruleset_id}
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- PUT    /repos/{owner}/{repo}/rulesets/{ruleset_id}
  Request:
        - Changed application/json
          Schema: Backward compatible
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Backward compatible
- GET    /repos/{owner}/{repo}/branches/{branch}
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type: commit.commit.author.date (string -> string)
- POST   /repos/{owner}/{repo}/branches/{branch}/rename
  Return Type:
    - Changed 201 Created
      Media types:
        - Changed application/json
          Schema: Broken compatibility
          Changed property type: commit.commit.author.date (string -> string)
--------------------------------------------------------------------------
--                                Result                                --
--------------------------------------------------------------------------
                 API changes broke backward compatibility                 
--------------------------------------------------------------------------

@wolfy1339 wolfy1339 changed the title 🤖📯 GitHub OpenAPI Update feat: drop projects-classic endpoints, new billing budget endpoints, new deployment-record artifacts metadata endpoints, projectsV2 draft endpoints Nov 19, 2025
@wolfy1339
Copy link
Member

Well... it seems GitHub truly doesn't like this massive pr

wolfy1339
wolfy1339 previously approved these changes Dec 9, 2025
@wolfy1339 wolfy1339 changed the title feat: drop projects-classic endpoints, new billing budget endpoints, new deployment-record artifacts metadata endpoints, projectsV2 draft endpoints feat: drop projects-classic endpoints, add GitHub API endpoints: cache limits (retention & storage) for repos/orgs/enterprises, billing budgets & usage, artifacts deployment metadata, and projectsV2 drafts & fields Dec 9, 2025
@wolfy1339 wolfy1339 merged commit b0c44a4 into main Dec 9, 2025
4 of 5 checks passed
@wolfy1339 wolfy1339 deleted the update branch December 9, 2025 19:27
@github-project-automation github-project-automation bot moved this from 🆕 Triage to ✅ Done in 🧰 Octokit Active Dec 9, 2025
@octokit
Copy link
Contributor Author

octokit bot commented Dec 9, 2025

🎉 This PR is included in version 22.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@octokit octokit bot added the released label Dec 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

1 participant