About SCM Connectors, Instances, and Synchronizations

The following describes the Code Insight SCM entities, operations, and the relationships between them.

SCM Connectors

The Code Insight SCM facility includes a set of connectors that enable codebase repositories on remote servers to synchronize to the Scan Server. Currently, SCM connectors are available for Git, Perforce, Subversion, and TFS repository types.

SCM Instances

Access to a given remote repository is enabled through an SCM instance defined at the project level by the Project Administrator. Each instance is configured for the appropriate SCM connector and identifies both the URL for a specific repository and the credentials needed to access that repository.

A given instance can identify the URL for a single repository only. (The exception is the SCM Git instance, which allows URLs for multiple repositories.) However, a project can have multiple SCM instances across one or more connector types.

SCM Synchronizations

Once the SCM instances for a project are defined and their connections tested, the Project Administrator should perform an initial synchronization to ensure that the codebases represented by these instances are properly synchronized to the Scan Server. Additionally, each time a scan is initiated on the project, another synchronization is automatically performed to ensure that the latest codebase(s) are in place before starting the scan. (The Project Administrator can continue to initiate synchronizations manually as needed for the project.)

The repository for a given instance is synchronized to following location on the Scan Server:

<scanroot>/<projectID>/<scm_instance_ID>

where

<scanroot> is the Scan Server root directory.
<projectID> is the ID of project to which you have added SCM instances.
<scm_instance_ID> is the internal ID for the SCM instance, such git.0, git.1, and so forth.