Securing your repository

You can use a number of GitHub features to help keep your repository secure.

Repository administrators and organization owners can configure repository security settings.

Introduction

This guide shows you how to configure security features for a repository. You must be a repository administrator or organization owner to configure security settings 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 security features are only available for public repositories, and for private repositories owned by organizations with an Advanced Security license. For more information, see "About GitHub Advanced Security."

Managing access to your repository

The first step to securing a repository is to set up who can see and modify your code. For more information, see "Managing repository settings."

From the main page of your repository, click Settings, then scroll down to the "Danger Zone."

Setting a security policy

  1. From the main page of your repository, click Security.
  2. Click Security policy.
  3. Click Start setup.
  4. Add information about supported versions of your project and how to report vulnerabilities.

For more information, see "Adding a security policy to your repository."

Managing the dependency graph

Once you have enabled the dependency graph, it is automatically generated for all public repositories, and you can choose to enable it for private repositories.

  1. From the main page of your repository, click Settings.
  2. Click Security & analysis.
  3. Next to Dependency graph, click Enable or Disable.

For more information, see "Exploring the dependencies of a repository."

Managing Dependabot alerts

By default, GitHub detects vulnerabilities in public repositories and generates Dependabot alerts. Dependabot alerts can also be enabled for private repositories.

  1. Click your profile photo, then click Settings.
  2. Click Security & analysis.
  3. Click Enable all next to Dependabot alerts.

For more information, see "About alerts for vulnerable dependencies" and "Managing security and analysis settings for your user account."

Managing dependency review

Dependency review lets you visualize dependency changes in pull requests before they are merged into your repositories.Dependency review is available in all public repositories. For private and internal repositories you require a license for Advanced Security. To enable dependency review for a repository, enable the dependency graph and enable Advanced Security. For more information, see "About dependency review."

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.

  1. From the main page of your repository, click Settings.
  2. Click Security & analysis.
  3. 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 "Enabling and disabling Dependabot version updates."

Configuring code scanning

Code scanning is available for all public repositories, and for private repositories owned by organizations with an Advanced Security license.

You can set up 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. For more information, see "Setting up code scanning for a repository."

Configuring secret scanning

Secret scanning is available for all public repositories, and for private repositories owned by organizations with an Advanced Security license.

Secret scanning may be enabled for your repository by default depending upon your organization's settings.

  1. From the main page of your repository, click Settings.
  2. Click Security & analysis.
  3. If GitHub Advanced Security is not already enabled, click Enable.
  4. Next to Secret scanning, click Enable.

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 vulnerable dependencies in your repository," "Managing pull requests for dependency updates," "Managing code scanning for your repository," and "Managing alerts from secret scanning."

If you have a security vulnerability, you can create a security advisory to privately discuss and fix the vulnerability. For more information, see "About GitHub Security Advisories" and "Creating a security advisory."

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Or, learn how to contribute.