---
schema_version: "1"
id: 7f585be9c37ece58d2fe39e8fe8ae0ac88c54122d96b23ad07cc44ce43f36c09
title: Set Up GitHub as Your Source Control
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/platform/264-0-0/devops_center_set_your_source_control.md
canonical_url: https://help.salesforce.com/s/articleView?id=platform.devops_center_set_your_source_control.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 98a1ddd9a0a3bad01e73698ba49d7b8d9fe671d22f2b5a3f937cc372cae04803
description: Configure your GitHub repository to store project files and manage team access.
products:
  - Salesforce Platform
release: "264"
---
# Set Up GitHub as Your Source Control

Configure your GitHub repository to store project files and manage team access.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: Lightning Experience in <strong>Professional</strong> (API access required), <strong>Enterprise</strong>, <strong>Performance</strong>, <strong>Unlimited</strong>, and <strong>Developer</strong> Editions</td></tr></tbody><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Not available in: <strong>Government Cloud Plus</strong>. Contact your Salesforce account executive for more details.</td></tr></tbody><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Not available in: <strong>EU Operating</strong> Zone. EU Operating zone is a special paid offering that provides an enhanced level of data residency commitment. Lifecycle Center <em>is</em> supported in orgs in the EU that aren’t part of EU OZ, per standard product terms and conditions.</td></tr></tbody></table>

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small permission">
        <colgroup>
          <col style="width:50%">
          <col style="width:50%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="colgroup" class="slds-cell-wrap" colspan="2" style="text-align:center;vertical-align:top;" id="d10267e105">User Permissions Needed</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d10267e105 ">To set up a source control: </td>

            <td class="slds-cell-wrap" style="vertical-align:top;" headers="d10267e105 ">Lifecycle Center Admin</td>

          </tr>
        </tbody>
      </table>

Structure the repository as a [Salesforce DX project](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_workspace_setup.htm). You can identify a Salesforce DX project by the sfdx-project.json file in the root directory. Create the required repository in these ways:

- Lifecycle Center automatically creates the repository when you create a pipeline.
- Use an existing repository or create one manually from the dx-empty template.

As a best practice, configure branch protection rules for branches like main, staging, and integration to prevent the source control from deleting them after a merge. For existing repositories, verify that protection rules are active and make sure that they prevent the deletion of stage branches after a change request merge.

Each Lifecycle Center pipeline requires its own GitHub repository to act as the single source of truth. Lifecycle Center uses the GitHub REST API and OAuth 2.0 to ensure secure communication.

#### See Also

- [_GitHub documentation_: About GitHub and Git](https://docs.github.com/en/get-started/start-your-journey/about-github-and-git)

## Add a Team Member to the Project Repository

If you’re a team manager or Salesforce admin, complete these steps:

1. Ask each team member to create a GitHub account (if they don’t have one) and to send you their GitHub username.
2. Log in to GitHub and update the project repository settings for access to invite the team member as a collaborator.
3. Confirm that the team member received the email invitation from GitHub and accepted it.

## Join a Project Repository as a Collaborator

If you’re a team member, complete these steps:

1. Create a GitHub account if you don’t have one.
2. Send your GitHub username to the team manager or Salesforce admin who’s setting up Lifecycle Center.
3. Check your email for an invitation to collaborate on the repository, and then accept it. 
    
    If you haven’t received an email invitation, contact the person who set up Lifecycle Center.

## Grant Access to Organization-Owned GitHub Repositories

Request access to GitHub repositories owned by an organization to make them available for your Lifecycle Center pipelines. GitHub repositories owned by an organization aren’t visible in Lifecycle Center until an organization account owner grants access. If you don't see your organization's repositories when setting up a pipeline, you must request access through your personal GitHub.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_note.png)

Note When you authorize GitHub from Lifecycle Center, you'll see a request from the Salesforce DX connected app, owned by the ALM DX Salesforce Bot Account, a Salesforce-owned service account. Authorizing this app is required for Lifecycle Center to interact with GitHub on your behalf, including fetching repositories, creating branches, and syncing changes. The app requests access to all repositories because Lifecycle Center needs to retrieve the full list of repositories available to your GitHub account when setting up a pipeline.

1. Log in to your personal GitHub account, and go to Settings.
2. Click **Applications**, then select **Authorized OAuth Apps**.
3. Click **Salesforce DX**.
4. Find the organization that owns the repository, then click **Request**.
5. Repeat the steps for other Salesforce integration applications.
    
     The GitHub repository owner receives a notification to approve your request.

After the GitHub repository owner approves the request, go to Lifecycle Center, and start creating your project.