You can now use the REST API to check if a repository has private vulnerability reporting enabled.
Learn more about:
– Evaluating a repository’s security settings
– Repository security advisories
– Private vulnerability reporting
You can now use the REST API to check if a repository has private vulnerability reporting enabled.
Learn more about:
– Evaluating a repository’s security settings
– Repository security advisories
– Private vulnerability reporting
As a proactive measure to protect Github.com availability, GitHub Apps that attempt to create high-complexity scoped installation tokens will receive failures if they would individually reference too many repositories. At the time of release, no GitHub App is above these limits – the limit is approximately 8 times higher than what any app is consuming. See below for details on how complexity is calculated.
Scoped tokens allow a GitHub App to create an installation token that has just a subset of the privileges that the app has within an organization – both a reduced set of repositories, as well as permissions.
In this way, an application with many permissions and access to many repositories can still safely request a token that’s good for just the access that’s currently required, a useful least-privilege feature.
When requesting a scoped token, applications can indicate both the permissions and repositories that are desired. Both parameters are optional, and if either is omitted the full corresponding access will be given to the token, either all granted permissions or all accessible repositories.
The first limit being added is when the repositories are included in the token request – now, no more than 500 individual repositories can be listed.
The second limit is if the repositories are not listed but permissions are, and the application is installed on some
repositories in the organization – as in, it has not been explicitly granted access to all
repositories in the organization.
In that case, the limit is based on the number of permissions being requested and the number of repositories the application has access to. If the complexity limit is exceeded, the application will recieve an error: Too many repositories for installation
, and provides the maximum number of repositories the application can have access to in order to succeed, as well as other options to reduce the complexity of your token, which are provided here as well.
To reduce the complexity of your token request, you can do one of the following:
1. Reduce the number of repositories that the application has access to in the organization.
2. Reduce the number of permissions requested for the token.
3. Set the application to have access to “all” of the organization’s repositories.
4. Not request a scoped token at all, and instead request a standard installation token.
Any of these options will reduce the complexity of the token and allow the application to fetch tokens for that organization once again.
To learn more about GitHub App scoped token issuance and installation, see our documentation:
Beginning January 8th, 2024, we will be making changes to the repository insights UI and API on GitHub for repositories with over 10,000 commits. The targeted UI and API have very low usage and rely on a legacy service we’re moving away from.
We are removing the following data:
Current page | Repos with over 10,000 commits after the change is made |
---|---|
Current page | Repos with over 10,000 commits after the change is made |
---|---|
Alongside the UI changes, the following API changes will be implemented:
0
values for the addition and deletion counts to improve performance. This impacts the /repos/{owner}/{repo}/stats/contributors
endpoint to get all contributor commit activity/repos/{owner}/{repo}/stats/code_frequency
API endpoint will return a 422 status code for repos with 10,000 or more commits.
For users who continue to need detailed addition and deletion statistics for large-scale repositories, we suggest using the following Git command, as described in the Git documentation:
git log --pretty="format:%m%ad----%ae%n%-(trailers:only,unfold)" --date=raw --shortstat --no-renames --no-merges
Starting today, apps and tokens used to create a release via the REST API endpoint will require the workflow
scope or workflows:write
permission in certain cases.
The workflow
scope or workflows:write
will be required when creating a release that targets a commit SHA (target_commitish
) that modifies an Actions workflow file and that SHA does not have an existing ref
(branch head or tag).
For more details see the REST API documentation or visit the GitHub Actions community if you have any questions.
There are two new metrics available under the Repository
object in the GraphQL API:
These metrics are currently in public beta, so you will need to include a header to your GraphQL requests to opt-in:
GraphQL-Features: ospo_metrics_api
Additional documentation and context around these metrics is available in the github-ospo repo. Please provide your feedback on this discussion thread: https://github.com/orgs/community/discussions/72156
Up until recently, the /rate_limit
REST API endpoint was not covered by the API's rate limit. While this allowed API consumers to fetch rate limit information whenever they wanted, it was also a potential vector for abuse.
With that in mind, the /rate_limit
endpoint is now covered by rate limits. Requests to the endpoint will not consume the primary rate limit quotas for the authenticated user. However, making a very high number of requests to the endpoint in a short period of time will trigger the secondary rate limits. Please follow the guidelines on avoiding the limits and what to do if you do hit them.
These limits are not intended to cause friction for any normal usage of the API. Rather, their aim is to prevent abusive patterns. If you run into any problems with these limits for the /rate_limit
endpoint, please contact GitHub Support.
The Source Imports REST API allows integrators to programatically import internet-accessible Git repositories into GitHub.com – for example, from code hosting platforms like Bitbucket Cloud or GitLab.com.
We're ending support for this API due to very low levels of usage and available alternatives. From 00:00 UTC on April 12, 2024, these endpoints will return an error. Integrators affected by this change will receive email alerts ahead of this deprecation.
If you're using the Source Imports API, you'll need to update your integration by that date, or it will stop working. You can learn about alternatives to this API on the new "Programatically importing repositories" page on the GitHub Docs.
Actions customers will now be able to clear stuck workflows by forcing a cancel request from the REST API. This is a new feature and the existing endpoint to cancel a workflow run will remain unchanged.
Sometimes an Actions workflow can become stuck in a state that will not respond to a cancel request. This could block other workflows from executing and would often require customers to contact GitHub Support to resolve the issue. Going forward, customers can invoke force-cancel
from the REST API, which will bypass conditions that would otherwise cause the workflow execution to continue. Customers should still only use force-cancel
if the workflow fails to respond to POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel
.
For more details see the GitHub Actions workflow runs REST API documentation.
For questions, visit the GitHub Actions community.
To see what's next for Actions, visit our public roadmap.
We've added the ability to retrieve a repository's Contributing Guidelines via the GraphQL API. There is a new ContributingGuidelines
object that's available under Repository
object, when a CONTRIBUTING.md
file is present.
This addition brings API parity with the other Community health files like CODE_OF_CONDUCT.md
, which were previously available.
Public documentation of the SCIM API for Enterprise Managed Users (EMU) is now available.
Administrators of EMU enterprises can use a token with the admin:enterprise
scope to make GET
requests from SCIM clients. With this read access, you can directly reconcile GitHub's understanding of SCIM-defined users and groups with your federated identity groups for auditing purposes.
Write requests to these APIs are possible through our published IdP applications, or through a new private beta that offers direct API access.
To get write access to these APIs in beta, register your interest here.
A new header will be sent back to API callers that use the fine-grained permission model (GitHub Apps and fine-grained PATs) to help developers discover which permissions are needed to call an API route. This new header, x-accepted-github-permissions
, contains the list of permissions required to access the endpoint.
In the fine-grained permission model more than one permission may be needed to access an endpoint. Multiple sets of permissions may also be valid, since there are multiple ways to access data within GitHub. All valid sets are included in the header, each set separated by a semicolon (;
).
For example, when calling "List project collaborators", you'll recieve the header x-accepted-github-permissions: repository_projects=write; organization_projects=admin
. This indicates that to get the list of collaborators on a project, you need either the repository_projects
Write permission or the organization_projects
Admin permission.
This header is used in the same way as the x-accepted-oauth-scopes
header for coarse-grained scope actors (OAuth apps and PATs (Classic)).
To learn more about troubleshooting permissions issues with GitHub Apps and fine-grained PATs and to get more information about this header, see "Insufficient permission errors". To see the permissions needed for each endpoint, see "Permissions required for GitHub Apps" and "Permissions required for fine-grained PATs".
For security reasons, source IP addresses have been removed from error messages that are returned from the GitHub API when callers try to access protected resources from non-permitted IP addresses.
To learn more about IP allow lists, visit Restricting network traffic to your enterprise with an IP allow list in the GitHub documentation.
If you'd like to learn more about your source IP addresses, please contact GitHub Support.
You will now be able to see whether Dependabot security updates are enabled or disabled in the security and analysis block within the repository information you can fetch from the REST API, and enable or disable them via API requests.
For more information, you can check out our repository API documentation.
Enterprise users will now notice added functionality where Dependabot security and version updates may be paused for repositories.
If you are an enterprise user that uses Dependabot updates and there has been no activity in a repository, such as merging, closing, or any other interaction, with Dependabot pull requests for a period exceeding 90 days, the updates will be paused. To resume activity, simply merge or close one of Dependabot's pull requests, or modify the Dependabot config file in the repository.
This change will help Dependabot be more focused to the repositories you care about and reduce use of GitHub Actions minutes on inactive Dependabot pull requests.
If you are using security overview with GitHub Advanced Security, you will be able to see which repositories in your organization have been paused from the security coverage view.
You will also be able to see whether Dependabot has been paused for a repository by querying the /repos/{owner}/{repo}/automated-security-fixes
REST API endpoint, which will return both the enablement status and paused status of the repository.
This change only applies to repositories where Dependabot pull requests exist but remain untouched. If no Dependabot pull requests have been opened, Dependabot will never become paused.
The following must be true for at least 90 days:
Dependabot will add a notice to the body of all open Dependabot pull requests and add a dependabot-paused
label to them. Dependabot will also add a banner notice in the UI of your repository settings page (under “Dependabot”) as well as your Dependabot alerts page (if Dependabot security updates are affected).
This change does not apply to Dependabot alerts or subsequent notifications. So, only repositories that have automated Dependabot version updates or security updates, but haven't interacted with these pull requests for a while, will be affected.
Learn more about this change
Learn more about how to interact with the REST API