Introduction
This guide shows you how to configure security features for a repository.
Your security needs are unique to your repository, so you may not need to enable every feature for your repository. For more information, see GitHub security features.
Some features are available for all repositories. Additional features are available to organizations and enterprises that use GitHub Secret Protection, GitHub Code Security, or GitHub Advanced Security. For more information, see About GitHub Advanced Security.
Managing access to your repository
The first step to securing a repository is to establish who can see and modify your code. For more information, see Managing your repository’s settings and features.
From the main page of your repository, click Settings, then scroll down to the "Danger Zone."
- To change who can view your repository, click Change visibility. For more information, see Setting repository visibility.
- To change who can access your repository and adjust permissions, click Manage access. For more information, see Managing teams and people with access to your repository.
Managing the dependency graph
Enterprise owners can configure the dependency graph and Dependabot alerts for an enterprise. For more information, see Enabling the dependency graph for your enterprise and Enabling Dependabot for your enterprise.
For more information, see Exploring the dependencies of a repository.
Managing Dependabot alerts
Dependabot alerts are generated when GitHub identifies a dependency in the dependency graph with a vulnerability.
Additionally, you can use Dependabot auto-triage rules to manage your alerts at scale, so you can auto-dismiss or snooze alerts, and specify which alerts you want Dependabot to open pull requests for. For information about the different types of auto-triage rules, and whether your repositories are eligible, see About Dependabot auto-triage rules.
For an overview of the different features offered by Dependabot and instructions on how to get started, see Dependabot quickstart guide.
Enterprise owners must configure the dependency graph and Dependabot alerts for an enterprise.
Once Dependabot alerts have been configured, repository administrators and organization owners can enable Dependabot alerts for private and internal repositories in their "Advanced Security" settings page. Public repositories are enabled by default. For more information, see Enabling the dependency graph for your enterprise, Enabling Dependabot for your enterprise, and Configuring Dependabot alerts.
For more information, see About Dependabot alerts.
Managing dependency review
Dependency review lets you visualize dependency changes in pull requests before they are merged into your repositories. For more information, see About dependency review.
Dependency review is a GitHub Code Security feature.
To enable dependency review for a repository, ensure that the dependency graph is enabled and enable GitHub Code Security.
- From the main page of your repository, click Settings.
- Click Advanced Security.
- To the right of "Code Security" or "GitHub Advanced Security", depending on your license type, click Enable.
- Check that dependency graph is configured for your enterprise.
Managing Dependabot security updates
For any repository that uses Dependabot alerts, you can enable Dependabot security updates to raise pull requests with security updates when vulnerabilities are detected.
- From the main page of your repository, click Settings.
- Click Advanced Security.
- Next to Dependabot security updates, click Enable.
For more information, see About Dependabot security updates and Configuring Dependabot security updates.
Managing Dependabot version updates
You can enable Dependabot to automatically raise pull requests to keep your dependencies up-to-date. For more information, see About Dependabot version updates.
To enable Dependabot version updates, you must create a dependabot.yml
configuration file. For more information, see Configuring Dependabot version updates.
Configuring Code Security
GitHub Code Security includes code scanning, CodeQL CLI and Copilot Autofix, as well as other features that find and fix vulnerabilities in your codebase.
You can configure code scanning to automatically identify vulnerabilities and errors in the code stored in your repository by using a CodeQL analysis workflow or third-party tool. Depending on the programming languages in your repository, you can configure code scanning with CodeQL using default setup, in which GitHub automatically determines the languages to scan, query suites to run, and events that will trigger a new scan. For more information, see Configuring default setup for code scanning.
- From the main page of your repository, click Settings.
- In the "Security" section of the sidebar, click Advanced Security.
- If "Code Security" or "GitHub Advanced Security" is not already enabled, click Enable.
- To the right of "CodeQL analysis", select Set up , then click Default.
- In the pop-up window that appears, review the default configuration settings for your repository, then click Enable CodeQL.
As an alternative to default setup, you can use advanced setup, which generates a workflow file you can edit to customize your code scanning with CodeQL. For more information, see Configuring advanced setup for code scanning.
Configuring Secret Protection
GitHub Secret Protection includes secret scanning and push protection, as well as other features that help you detect and prevent secret leaks in your repository.
- From the main page of your repository, click Settings.
- Click Advanced Security.
- If "Secret Protection" or "GitHub Advanced Security" is not already enabled, click Enable.
- If the option "Secret scanning" is shown, click Enable.
- Choose whether you want to enable additional features, such as scanning for non-provider patterns and push protection.
Setting a security policy
If you are a repository maintainer, it's good practice to specify a security policy for your repository by creating a file named SECURITY.md
in the repository. This file instructs users about how to best contact you and collaborate with you when they want to report security vulnerabilities in your repository. You can view the security policy of a repository from the repository’s Security tab.
- From the main page of your repository, click Security.
- In the left sidebar, under "Reporting", click Policy.
- Click Start setup.
- Add information about supported versions of your project and how to report vulnerabilities.
For more information, see Adding a security policy to your repository.
Next steps
You can view and manage alerts from security features to address dependencies and vulnerabilities in your code. For more information, see Viewing and updating Dependabot alerts, Managing pull requests for dependency updates, Assessing code scanning alerts for your repository, and Managing alerts from secret scanning.
You can also use GitHub's tools to audit responses to security alerts. For more information, see Auditing security alerts.
If you use GitHub Actions, you can use GitHub's security features to increase the security of your workflows. For more information, see Using GitHub's security features to secure your use of GitHub Actions.