About configuring code scanning in multiple repositories
There are multiple ways to configure code scanning in multiple repositories at the same time.
The best method to use depends on the analysis needs of the repositories.
- The repositories are eligible for default setup for CodeQL and are owned by an organization.
- The group of repositories has similar configuration needs for CodeQL advanced setup.
In addition, GitHub Actions must be enabled for the organization or enterprise.
Eligible repositories for CodeQL default setup
Note: The ability to enable and disable default set up for code scanning for eligible repositories in an organization is currently in beta and subject to change. During the beta release, if you disable CodeQL code scanning for all repositories this change will not be reflected in the coverage information shown in security overview for the organization. The repositories will still appear to have code scanning enabled in this view.
You can use security overview to find a set of repositories and enable or disable default setup for code scanning for them all at the same time. For more information, see "Enabling security features for multiple repositories."
You can also use the organization settings page for "Code security and analysis" to enable code scanning for all repositories in the organization that are eligible for CodeQL default setup.
Eligibility criteria for organization-level enablement
A repository must meet all the following criteria to be eligible for default setup, otherwise you need to use advanced setup.
- Code scanning is not already enabled.
- GitHub Actions are enabled.
- Does not use any other languages supported by CodeQL, but may include other languages, such as R. For more information on CodeQL-supported languages, see "About code scanning with CodeQL."
- Publicly visible, or GitHub Advanced Security is enabled.
For more information about default setup, see "Configuring code scanning for a repository." For information on editing security and analysis settings for an organization, see "Managing security and analysis settings for your organization."
Finding repositories that are eligible for default setup
You can use the "Security coverage" view in security overview to show repositories in your organization that are eligible for default setup.
On GitHub.com, navigate to the main page of the organization.
Under your organization name, click Security.
In the sidebar, click Coverage to display the "Security coverage" view.
In the search bar, enter one of the following queries:
code-scanning-default-setup:eligible is:publicshows repositories that have languages suitable for default setup and are eligible because they are visible to the public.
code-scanning-default-setup:eligible advanced-security:enabledshows private or internal repositories that have languages suitable for default setup and are eligible because they have GitHub Advanced Security enabled.
code-scanning-default-setup:eligible is:private,internal advanced-security:not-enabledshows private or internal repositories that have languages suitable for default setup but do not have GitHub Advanced Security enabled. Once you enable GitHub Advanced Security for these repositories, they can also be added to default setup.
code-scanning-default-setup:not-eligibleshows repositories that either have advanced setup configured already, or where the languages not are suitable for default setup.
You can select all of the displayed repositories, or a subset of them, and enable or disable default setup for code scanning for them all at the same time. For more information, see "Enabling security features for multiple repositories."
Using a script to configure advanced setup
For repositories that are not eligible for default setup, you can use a bulk configuration script to configure advanced setup across multiple repositories.
- Identify a group of repositories that can be analyzed using the same code scanning configuration. For example, all repositories that build Java artifacts using the production environment.
- Create and test a GitHub Actions workflow to call the CodeQL action with the appropriate configuration. For more information, see "Configuring code scanning for a repository."
- Use one of the example scripts create a custom script to add the workflow to each repository in the group.
- PowerShell example:
- NodeJS example:
- PowerShell example: