---
sourceDocument: Zurich Build or modify applications
sourceDocumentLink: https://www.servicenow.com/docs/r/zurich/application-development

 Release :

    - zurich

ft:locale :

    - en-US

ft:publication_title :

    - Zurich Build or modify applications

ft:clusterId :

    - cadev

bundleId :

    - cadev

workflow :

    - Development, Data, and Analytics


---

# Link an app to source control

# Link an app to source control in ServiceNow Studio {#ariaid-title1}

* Release version: Zurich
* 
* Updated July 31, 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 minutes to read

Linking an application or application-customization to source control allows application developers to manage changes in ServiceNow Studio from a Git repository.

## Before you begin

* Learn more about [Manage customizations to applications](https://www.servicenow.com/docs/05whcr88t~iGZKAuImc7ag "You can manage your company's customizations for applications that belong to other organizations or a scoped ServiceNow plug-in.").
* Create a dedicated Git repository for the application. For increased security, enable multi-factor authentication for the Git repository.
* Generate an access token that the source control integration can use instead of a password and multi-factor authentication passkey while creating a Credential record. Search for personal access token on [GitHub](https://help.github.com) or [GitLab](https://docs.gitlab.com).
* Restrict permissions on the access token to allow read and write access to the Git repository.
* Verify that the non-production instance has network access to the Git repository.
* Ensure that users add the email address to their respective Users table \[sys_user\] records that they use in their commits to the Git repository.
* Role required: admin
{#link-app-to-source-control__ul_wqq_ddl_p5}

## About this task

The source control integration does not support linking to an application or customization on a production instance. Instead, install applications on a production instance from the application repository, an update set, or ServiceNow Studio.

## Procedure

1. Navigate to AllApp EngineServiceNow Studio.
2. In the file navigator, select the application you want to open.
3. Select App details to open the app in the canvas.
4. Select Source controlLink to source control.  
5. Enter the connection details for the Git repository.  
   {#link-app-to-source-control__table_s3x_2fl_p5__entry__2}

   | Field | Description |
   |-|-|
   | Network protocol | Https or SSH credential type that enables secure channel data exchange. |
   | URL | The URL to the Git repository where you want to save application files. For SSH protocol, use command to generate private key `ssh-keygen -t rsa -m PEM -b 4096 -C "email@address"`. Note: If the Git repository URL for SSH provided by your Git server does not work, check with your Git server owner or provider for the correct URL. There may be additional specifications such as scheme protocol prefixes, port numbers, and so on, required for your Git repository URL to function. |
   | Branch | The repository branch to work on within the application. Note: This branch is used for commits. The default branch is set to "main" if it is not already set in the remote repository. If there is no default branch on the remote git repository, the instance creates a new default branch with the name "main". This is configured using the `glide.source_control.git_default_branch` system property. |
   | MID Server Name | The name of the existing MID Server to link through. Note: Use a separate MID Server to prevent conflicts with Discovery activities. Be sure that the MID Server user can create files to the \[sys_attachment\] table, and that the table can accept files of the "bundle" type. Linking or an application through a MID Server enables access to repositories behind a firewall. See [MID Server](https://www.servicenow.com/docs/access?context=mid-server-landing&version=zurich&pubname=zurich-servicenow-platform&ft:locale=en-US) for more information. |
   | Default email | The committer email address is defined by the sys_user record if available. But if a committer's sys_user record email field is empty, the ServiceNow AI Platform generates an alternate email (username@instancename.service-now.com). You can also enter a default email address and change it later. To use that default email address in all cases, select the check box. |
   | Credential | The credential to be used with the selected protocol. See [Get started with credentials](https://www.servicenow.com/docs/access?context=credentials-getting-started&version=zurich&pubname=zurich-platform-security&ft:locale=en-US) to learn more about creating credentials. Note: If you select the SSH network protocol, enter a valid credential of the SSH private key type. If you select the https protocol, enter a valid credential of the Basic Auth credentials type. |
   | Commit Comment | An optional description of the repository or application. |
   [Table 1. Source control connection details]

   {#link-app-to-source-control__table_s3x_2fl_p5}  
   Note:  
   All application developers on the instance share a single set of repository credentials.
6. Select Link to source control.  
   The ServiceNow AI Platform validates the connection and user credentials and displays a success message.

   All application developers on the instance can use the linked Git repository to manage changes.
{#link-app-to-source-control__steps_ely_1gl_p5}
**Related topics**   

* [MID Server](https://www.servicenow.com/docs/access?context=mid-server-landing&version=zurich&pubname=zurich-servicenow-platform&ft:locale=en-US)
* [Getting started with credentials](https://www.servicenow.com/docs/access?context=credentials-getting-started&version=zurich&pubname=zurich-platform-security&ft:locale=en-US)

*[\>]: and then


