---
schema_version: "1"
id: 02be7907415b4fdca9358ed29e1be7f7bb51b4f1e7b00223f2d9c0d03e02a659
title: Set Up Your GitHub Project Repositories
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/platform/264-0-0/devops_center_setup_source_control_repos.md
canonical_url: https://help.salesforce.com/s/articleView?id=platform.devops_center_setup_source_control_repos.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: d609f92a63c6fdb18518e9b686312fb24793002df21a0d8e419acf359350f6a7
description: A GitHub repository (sometimes called a repo for short) stores project work files — code, text, images, and so on. Each DevOps Center project needs its own repository for storing project changes. While you’re working on the project, the repository is the team’s centralized source of truth to manage changes.
products:
  - Salesforce Platform
release: "264"
---
# Set Up Your GitHub Project Repositories

A GitHub repository (sometimes called a repo for short) stores project work files — code, text, images, and so on. Each DevOps Center project needs its own repository for storing project changes. While you’re working on the project, the repository is the team’s centralized source of truth to manage changes.

DevOps Center can be used only with GitHub.com Cloud-based plans, including GitHub Enterprise Cloud. All users must have their own cloud-based GitHub.com account to work in this version of DevOps Center. Locally hosted versions of GitHub, including GitHub Enterprise Server, aren’t currently supported. We’ve designed DevOps Center to eventually integrate with multiple third-party source control systems, such as Bitbucket (in beta), GitLab, and other GitHub versions.

## Communication Protocols

DevOps Center uses the [GitHub REST API](https://docs.github.com/en/rest) for all communications to and from GitHub.

DevOps Center uses the OAuth 2.0 open protocol to establish access to both your GitHub repository (hosted by GitHub) and your work environments (hosted by Salesforce). OAuth allows you to delegate a client application (DevOps Center) to access data from a protected resource (your project repository, for example) through the exchange of tokens, instead of exchanging security credentials. For details, see [Authorize Apps with OAuth](https://help.salesforce.com/s/articleView?id=xcloud.remoteaccess_authenticate.htm&type=5&language=en_US) in Salesforce Help.

## Create a GitHub Account

If you already have a GitHub account, great! If you don’t have a GitHub account yet, it’s easy (and free) to [sign up for one](https://github.com).

## New to GitHub or to Source Control?

We’ve designed DevOps Center to make it easy to take advantage of a source control system like GitHub even if you aren’t yet familiar with it. If you want to learn more about Git and GitHub concepts and terminology as you dive in to using DevOps Center, look at the [Git and GitHub Basics](https://trailhead.salesforce.com/content/learn/modules/git-and-git-hub-basics) Trailhead module (estimated time: less than two hours), which covers why source control is so key to successful team collaboration and what to expect in a typical GitHub workflow.

## Methods to Create GitHub Project Repositories

A DevOps Center project repository must contain a [Salesforce DX project](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_workspace_setup.htm). You can create a DevOps Center project repository using any of these methods:

- When you create your project within DevOps Center, let it create a Github repository that uses the Salesforce DX project structure. Skip to [Environment Management Options](https://help.salesforce.com/s/articleView?id=platform.devops_center_env_management_options.htm&release=264.0.0&type=5 "You have several options to manage your environments from the environment’s menu in the Pipeline Environments tab. Which menu options are available is determined by the environment type and whether the pipeline is activated.").
- Use an existing Github repository.
- Create a different GitHub repository.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/images/icon_note.png)

Note If you plan to use an existing GitHub repository, it must contain an sfdx-project.json file in the root directory, a file that identifies the repo as a Salesforce DX project.

## Create a New Repository

Creating a repository from our template ensures that the repository has the right structure and configuration to work with DevOps Center, that is, the structure and configuration of a [Salesforce DX project](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_workspace_setup.htm).

If you don’t already have a source control repo, a corresponding project repository with the proper DX structure is created when you define a DevOps Center project. Alternately, you can log in to GitHub and use the repository template at [https://github.com/forcedotcom/dx-empty](https://github.com/forcedotcom/dx-empty) to create your project repository. Your project repository can be either public or private. You don’t need to include all branches. For details about how to create a repository from a template, see the GitHub help.

After the repository is created, you can [seed it](https://help.salesforce.com/s/articleView?id=platform.devops_center_setup_seed_repo.htm&release=264.0.0&type=5 "If you’re currently using change sets to move changes to environments in your release pipeline, it’s likely that you don’t have a source control repository that contains your production org’s metadata. Although you can approach this task in any number of ways, this method uses the Salesforce (Developer Experience) DX tools that many of you’re already familiar with. However, those of you who don’t have any experience using DX developer tools can easily follow along.") by adding metadata files from your production org or another source org.